diff options
207 files changed, 31568 insertions, 16945 deletions
@@ -1,6 +1,4 @@ .version -shave -shave-libtool .*.swp ABOUT-NLS intltool-extract.in diff --git a/Makefile.am b/Makefile.am index 2448e748..4d45a07d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -62,12 +62,6 @@ dist-hook: fi echo $(VERSION) > $(distdir)/.tarball-version -update-shave: - for i in shave.in shave.m4 shave-libtool.in; do \ - wget -O $$i http://git.lespiau.name/cgit/shave/blob/\?path=shave/$$i ; \ - done - mv shave.m4 m4/ - .PHONY: homepage distcleancheck doxygen # see git-version-gen @@ -181,3 +181,10 @@ new messages: PA_COMMAND_PLAYBACK_BUFFER_ATTR_CHANGED PA_COMMAND_RECORD_BUFFER_ATTR_CHANGED + +### v16, implemented by >= 0.9.15 + +new messages: + + PA_COMMAND_SET_SINK_PORT + PA_COMMAND_SET_SOURCE_PORT diff --git a/bootstrap.sh b/bootstrap.sh index c7737a6e..d5025db6 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -16,7 +16,7 @@ # along with PulseAudio; if not, write to the Free Software Foundation, # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -VERSION=1.10 +VERSION=1.11 run_versioned() { local P @@ -83,7 +83,7 @@ else run_versioned automake "$VERSION" --copy --foreign --add-missing if test "x$NOCONFIGURE" = "x"; then - CFLAGS="-g -O0" ./configure --sysconfdir=/etc --localstatedir=/var --enable-force-preopen --enable-shave "$@" + CFLAGS="-g -O0" ./configure --sysconfdir=/etc --localstatedir=/var --enable-force-preopen "$@" make clean fi fi diff --git a/configure.ac b/configure.ac index a3f9f0ef..185f13bb 100644 --- a/configure.ac +++ b/configure.ac @@ -22,16 +22,15 @@ AC_PREREQ(2.63) -AC_INIT([pulseaudio], m4_esyscmd([./git-version-gen .tarball-version]), - [mzchyfrnhqvb (at) 0pointer (dot) net]) +AC_INIT([pulseaudio],[m4_esyscmd(./git-version-gen .tarball-version)],[mzchyfrnhqvb (at) 0pointer (dot) net]) AC_CONFIG_SRCDIR([src/daemon/main.c]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_HEADERS([config.h]) -AM_INIT_AUTOMAKE([foreign 1.10 -Wall -Wno-portability]) +AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability silent-rules tar-pax]) -m4_define(pa_major, `echo $VERSION | cut -d. -f 1`) -m4_define(pa_minor, `echo $VERSION | cut -d. -f 2`) -m4_define(pa_micro, `echo $VERSION | cut -d. -f 3`) +m4_define(pa_major, `echo $VERSION | cut -d. -f1 | cut -d- -f1`) +m4_define(pa_minor, `echo $VERSION | cut -d. -f2 | cut -d- -f1`) +m4_define(pa_micro, `echo $VERSION | cut -d. -f3 | cut -d- -f1`) AC_SUBST(PA_MAJOR, pa_major) AC_SUBST(PA_MINOR, pa_minor) @@ -41,7 +40,7 @@ AC_SUBST(PA_MAJORMINORMICRO, pa_major.pa_minor.pa_micro) AC_SUBST(PACKAGE_URL, [http://pulseaudio.org/]) AC_SUBST(PA_API_VERSION, 12) -AC_SUBST(PA_PROTOCOL_VERSION, 15) +AC_SUBST(PA_PROTOCOL_VERSION, 16) # The stable ABI for client applications, for the version info x:y:z # always will hold y=z @@ -76,6 +75,8 @@ case $host in ;; esac +AM_SILENT_RULES([yes]) + #### Checks for programs. #### # mkdir -p @@ -539,7 +540,7 @@ AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h]) #### Sound file #### -PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.10 ]) +PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.20 ]) AC_SUBST(LIBSNDFILE_CFLAGS) AC_SUBST(LIBSNDFILE_LIBS) @@ -1057,7 +1058,7 @@ AC_ARG_ENABLE([udev], ], [udev=auto]) if test "x${udev}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then - PKG_CHECK_MODULES(UDEV, [ libudev >= 137 ], + PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ], [ HAVE_UDEV=1 AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.]) @@ -1152,44 +1153,6 @@ AC_SUBST(DBUS_LIBS) AC_SUBST(HAVE_DBUS) AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1]) -#### PolicyKit support (optional) #### - -AC_ARG_ENABLE([polkit], - AS_HELP_STRING([--disable-polkit],[Disable optional PolicyKit support]), - [ - case "${enableval}" in - yes) polkit=yes ;; - no) polkit=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for --disable-polkit) ;; - esac - ], - [polkit=auto]) - -if test "x${polkit}" != xno ; then - - PKG_CHECK_MODULES(POLKIT, [ polkit-dbus >= 0.7 ], - [ - HAVE_POLKIT=1 - AC_DEFINE([HAVE_POLKIT], 1, [Have PolicyKit]) - policydir=`pkg-config polkit-dbus --variable prefix`/share/PolicyKit/policy/ - AC_SUBST(policydir) - ], - [ - HAVE_POLKIT=0 - if test "x$polkit" = xyes ; then - AC_MSG_ERROR([*** PolicyKit support not found]) - fi - ]) -else - HAVE_POLKIT=0 -fi - -AC_SUBST(POLKIT_CFLAGS) -AC_SUBST(POLKIT_LIBS) -AC_SUBST(HAVE_POLKIT) -AM_CONDITIONAL([HAVE_POLKIT], [test "x$HAVE_POLKIT" = x1]) - - ### IPv6 connection support (optional) ### AC_ARG_ENABLE([ipv6], @@ -1276,15 +1239,6 @@ fi AC_SUBST(PA_SYSTEM_GROUP) AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon]) -AC_ARG_WITH(realtime_group,AS_HELP_STRING([--with-realtime-group=<group>],[Group for users that are allowed to start the PulseAudio daemon with realtime scheduling (realtime)])) -if test -z "$with_realtime_group" ; then - PA_REALTIME_GROUP=pulse-rt -else - PA_REALTIME_GROUP=$with_realtime_group -fi -AC_SUBST(PA_REALTIME_GROUP) -AC_DEFINE_UNQUOTED(PA_REALTIME_GROUP,"$PA_REALTIME_GROUP", [Realtime group]) - AC_ARG_WITH(access_group,AS_HELP_STRING([--with-access-group=<group>],[Group which is allowed access to a system-wide PulseAudio daemon (pulse-access)])) if test -z "$with_access_group" ; then PA_ACCESS_GROUP=pulse-access @@ -1350,8 +1304,8 @@ fi AC_ARG_WITH( [module-dir], - AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINORMICRO}/modules/]), - [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINORMICRO}/modules/"]) + AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINORMICRO}/modules]), + [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINORMICRO}/modules"]) AC_SUBST(modlibexecdir) @@ -1363,8 +1317,6 @@ AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"]) AC_CONFIG_FILES([ Makefile -shave -shave-libtool src/Makefile man/Makefile libpulse.pc @@ -1377,7 +1329,6 @@ src/pulse/version.h po/Makefile.in ]) -SHAVE_INIT AC_OUTPUT # ========================================================================== @@ -1461,11 +1412,6 @@ if test "x${HAVE_BLUEZ}" = "x1" ; then ENABLE_BLUEZ=yes fi -ENABLE_POLKIT=no -if test "x${HAVE_POLKIT}" = "x1" ; then - ENABLE_POLKIT=yes -fi - ENABLE_GDBM=no if test "x${HAVE_GDBM}" = "x1" ; then ENABLE_GDBM=yes @@ -1519,7 +1465,6 @@ echo " Enable BlueZ: ${ENABLE_BLUEZ} Enable TCP Wrappers: ${ENABLE_TCPWRAP} Enable libsamplerate: ${ENABLE_LIBSAMPLERATE} - Enable PolicyKit: ${ENABLE_POLKIT} Enable IPv6: ${ENABLE_IPV6} Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL} Enable tdb: ${ENABLE_TDB} @@ -1527,7 +1472,6 @@ echo " System User: ${PA_SYSTEM_USER} System Group: ${PA_SYSTEM_GROUP} - Realtime Group: ${PA_REALTIME_GROUP} Access Group: ${PA_ACCESS_GROUP} Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET} Force preopen: ${FORCE_PREOPEN} diff --git a/git-version-gen b/git-version-gen index 710870cd..ae3988ea 100755 --- a/git-version-gen +++ b/git-version-gen @@ -106,22 +106,23 @@ then # tag or the previous older version that did not? # Newer: v6.10-77-g0f8faeb # Older: v6.10-g0f8faeb - case $v in - *-*-*) : git describe is okay three part flavor ;; - *-*) - : git describe is older two part flavor - # Recreate the number of commits and rewrite such that the - # result is the same as if we were using the newer version - # of git describe. - vtag=`echo "$v" | sed 's/-.*//'` - numcommits=`git rev-list "$vtag"..HEAD | wc -l` - v=`echo "$v" | sed "s/\(.*\)-\(.*\)/\1-$numcommits-\2/"`; - ;; - esac +# case $v in +# *-*-*) : git describe is okay three part flavor ;; +# *-*) +# : git describe is older two part flavor +# # Recreate the number of commits and rewrite such that the +# # result is the same as if we were using the newer version +# # of git describe. +# vtag=`echo "$v" | sed 's/-.*//'` +# numcommits=`git rev-list "$vtag"..HEAD | wc -l` +# v=`echo "$v" | sed "s/\(.*\)-\(.*\)/\1-$numcommits-\2/"`; +# ;; +# esac # Change the first '-' to a '.', so version-comparing tools work properly. # Remove the "g" in git describe's output string, to save a byte. - v=`echo "$v" | sed 's/-/./;s/\(.*\)-g/\1-/'`; +# v=`echo "$v" | sed 's/-/./;s/\(.*\)-g/\1-/'`; + : else v=UNKNOWN fi diff --git a/m4/shave.m4 b/m4/shave.m4 deleted file mode 100644 index 0a3509e5..00000000 --- a/m4/shave.m4 +++ /dev/null @@ -1,77 +0,0 @@ -dnl Make automake/libtool output more friendly to humans -dnl Damien Lespiau <damien.lespiau@gmail.com> -dnl -dnl SHAVE_INIT([shavedir],[default_mode]) -dnl -dnl shavedir: the directory where the shave scripts are, it defaults to -dnl $(top_builddir) -dnl default_mode: (enable|disable) default shave mode. This parameter -dnl controls shave's behaviour when no option has been -dnl given to configure. It defaults to disable. -dnl -dnl * SHAVE_INIT should be called late in your configure.(ac|in) file (just -dnl before AC_CONFIG_FILE/AC_OUTPUT is perfect. This macro rewrites CC and -dnl LIBTOOL, you don't want the configure tests to have these variables -dnl re-defined. -dnl * This macro requires GNU make's -s option. - -AC_DEFUN([_SHAVE_ARG_ENABLE], -[ - AC_ARG_ENABLE([shave], - AS_HELP_STRING( - [--enable-shave], - [use shave to make the build pretty [[default=$1]]]),, - [enable_shave=$1] - ) -]) - -AC_DEFUN([SHAVE_INIT], -[ - dnl you can tweak the default value of enable_shave - m4_if([$2], [enable], [_SHAVE_ARG_ENABLE(yes)], [_SHAVE_ARG_ENABLE(no)]) - - if test x"$enable_shave" = xyes; then - dnl where can we find the shave scripts? - m4_if([$1],, - [shavedir="$ac_pwd"], - [shavedir="$ac_pwd/$1"]) - AC_SUBST(shavedir) - - dnl make is now quiet - AC_SUBST([MAKEFLAGS], [-s]) - AC_SUBST([AM_MAKEFLAGS], ['`test -z $V && echo -s`']) - - dnl we need sed - AC_CHECK_PROG(SED,sed,sed,false) - - dnl substitute libtool - SHAVE_SAVED_LIBTOOL=$LIBTOOL - LIBTOOL="${SHELL} ${shavedir}/shave-libtool '${SHAVE_SAVED_LIBTOOL}'" - AC_SUBST(LIBTOOL) - - dnl substitute cc/cxx - SHAVE_SAVED_CC=$CC - SHAVE_SAVED_CXX=$CXX - SHAVE_SAVED_FC=$FC - SHAVE_SAVED_F77=$F77 - SHAVE_SAVED_OBJC=$OBJC - CC="${SHELL} ${shavedir}/shave cc ${SHAVE_SAVED_CC}" - CXX="${SHELL} ${shavedir}/shave cxx ${SHAVE_SAVED_CXX}" - FC="${SHELL} ${shavedir}/shave fc ${SHAVE_SAVED_FC}" - F77="${SHELL} ${shavedir}/shave f77 ${SHAVE_SAVED_F77}" - OBJC="${SHELL} ${shavedir}/shave objc ${SHAVE_SAVED_OBJC}" - AC_SUBST(CC) - AC_SUBST(CXX) - AC_SUBST(FC) - AC_SUBST(F77) - AC_SUBST(OBJC) - - V=@ - else - V=1 - fi - Q='$(V:1=)' - AC_SUBST(V) - AC_SUBST(Q) -]) - diff --git a/man/pulse-daemon.conf.5.xml.in b/man/pulse-daemon.conf.5.xml.in index afa7ca00..68bcb77f 100644 --- a/man/pulse-daemon.conf.5.xml.in +++ b/man/pulse-daemon.conf.5.xml.in @@ -164,6 +164,14 @@ USA. </option> <option> + <p><opt>lock-memory=</opt> Locks the entire PulseAudio process + into memory. While this might increase drop-out safety when used + in conjunction with real-time scheduling this takes away a lot + of memory from other processes and might hence considerably slow + down your system. Defaults to <opt>no</opt>.</p> + </option> + + <option> <p><opt>flat-volumes=</opt> Enable 'flat' volumes, i.e. where possible let the sink volume equal the maximum of the volumes of the inputs connected to it. Takes a boolean argument, defaults @@ -228,13 +236,6 @@ USA. </option> <option> - <p><opt>module-idle-time=</opt> Unload autoloaded modules after - being idle for this time in seconds. Defaults to 20. The - <opt>--module-idle-time</opt> command line option takes - precedence.</p> - </option> - - <option> <p><opt>scache-idle-time=</opt> Unload autoloaded sample cache entries after being idle for this time in seconds. Defaults to 20. The <opt>--scache-idle-time</opt> command line option takes @@ -267,9 +268,9 @@ USA. </option> <option> - <p><opt>default-script-file=</opt> Load the default + <p><opt>load-default-script-file=</opt> Load the default configuration script file as specified - in <opt>default-script-file=</opt>. Defaults to "yes".</p> + in <opt>default-script-file=</opt>. Defaults to <opt>yes</opt>.</p> </option> </section> @@ -296,6 +297,23 @@ USA. might alter this setting.</p> </option> + <option> + <p><opt>log-meta=</opt> With each logged message log the code + location the message was generated from. Defaults to + <opt>no</opt>.</p> + </option> + + <option> + <p><opt>log-time=</opt> With each logged messages log the + relative time since startup. Defaults to <opt>no</opt>.</p> + </option> + + <option> + <p><opt>log-backtrace=</opt> When greater than 0, with each + logged message log a code stack trace up the the specified + number of stack frames. Defaults to <opt>0</opt>.</p> + </option> + </section> <section name="Resource Limits"> @@ -371,11 +389,13 @@ USA. <option> <p><opt>default-sample-format=</opt> The default sampling format. Specify one of <opt>u8</opt>, <opt>s16le</opt>, - <opt>s16be</opt>, <opt>s32le</opt>, - <opt>s32be</opt>, <opt>float32le</opt>, <opt>float32be</opt>, + <opt>s16be</opt>, <opt>s24le</opt>, <opt>s24be</opt>, + <opt>s24-32le</opt>, <opt>s24-32be</opt>, <opt>s32le</opt>, + <opt>s32be</opt> <opt>float32le</opt>, <opt>float32be</opt>, <opt>ulaw</opt>, <opt>alaw</opt>. Depending on the endianess of - the CPU the - formats <opt>s16ne</opt>, <opt>s16re</opt>, <opt>s32ne</opt>, <opt>s32re</opt>, + the CPU the formats <opt>s16ne</opt>, <opt>s16re</opt>, + <opt>s24ne</opt>, <opt>s24re</opt>, <opt>s24-32ne</opt>, + <opt>s24-32re</opt>, <opt>s32ne</opt>, <opt>s32re</opt>, <opt>float32ne</opt>, <opt>float32re</opt> (for native, resp. reverse endian) are available as aliases.</p> </option> @@ -401,7 +421,8 @@ USA. these buffer metrics for machines with high scheduling latencies. Not all possible values that may be configured here are available in all hardware. The driver will to find the nearest - setting supported.</p> + setting supported. Modern drivers that support timer-based + scheduling ignore these options.</p> <option> <p><opt>default-fragments=</opt> The default number of @@ -2,13 +2,14 @@ as bn_IN ca cs -de de_CH +de el es fi fr gu +hi it kn mr @@ -17,8 +18,9 @@ or pa pl pt_BR -sr +pt sr@latin +sr sv ta te diff --git a/po/POTFILES.in b/po/POTFILES.in index 2cd451f5..534feb15 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -15,7 +15,7 @@ src/modules/alsa/alsa-util.c src/modules/module-pipe-source.c src/modules/module-solaris.c src/modules/module-default-device-restore.c -src/modules/module-x11-xsmp.c +src/modules/x11/module-x11-xsmp.c src/modules/module-remap-sink.c src/modules/bluetooth/module-bluetooth-proximity.c src/modules/module-detect.c @@ -24,23 +24,23 @@ src/modules/module-lirc.c src/modules/module-hal-detect.c src/modules/module-sine.c src/modules/module-zeroconf-publish.c -src/modules/module-jack-source.c +src/modules/jack/module-jack-source.c src/modules/module-cli.c src/modules/gconf/module-gconf.c src/modules/gconf/gconf-helper.c src/modules/module-esound-sink.c src/modules/alsa/module-alsa-sink.c src/modules/module-volume-restore.c -src/modules/module-x11-bell.c +src/modules/x11/module-x11-bell.c src/modules/module-protocol-stub.c src/modules/module-stream-restore.c -src/modules/module-jack-sink.c +src/modules/jack/module-jack-sink.c src/modules/module-esound-compat-spawnfd.c src/modules/module-esound-compat-spawnpid.c #src/modules/module-waveout.c src/modules/module-combine.c src/modules/bluetooth/proximity-helper.c -src/modules/module-x11-publish.c +src/modules/x11/module-x11-publish.c src/modules/rtp/module-rtp-recv.c src/modules/rtp/sdp.c src/modules/rtp/rtp.c @@ -190,7 +190,6 @@ src/utils/pactl.c src/utils/padsp.c src/utils/pax11publish.c src/utils/pacmd.c -src/utils/paplay.c src/pulsecore/lock-autospawn.c src/modules/alsa/alsa-sink.c src/modules/alsa/alsa-source.c @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio.master-tx.pulseaudio.as\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-21 23:02+0200\n" +"POT-Creation-Date: 2009-06-17 23:42+0200\n" "PO-Revision-Date: 2009-04-08 12:35+0530\n" "Last-Translator: Amitakhya Phukan <aphukan@fedoraproject.org>\n" "Language-Team: Assamese <fedora-trans-as@redhat.com>\n" @@ -16,51 +16,7 @@ msgstr "" "X-Generator: Lokalize 0.3\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: ../src/modules/alsa/alsa-util.c:532 -msgid "Analog Mono" -msgstr "Analog Mono" - -#: ../src/modules/alsa/alsa-util.c:540 -msgid "Analog Stereo" -msgstr "Analog Stereo" - -#: ../src/modules/alsa/alsa-util.c:548 -msgid "Digital Stereo (IEC958)" -msgstr "Digital Stereo (IEC958)" - -#: ../src/modules/alsa/alsa-util.c:556 -msgid "Digital Stereo (HDMI)" -msgstr "Digital Stereo (HDMI)" - -#: ../src/modules/alsa/alsa-util.c:565 -msgid "Analog Surround 4.0" -msgstr "Analog ছাৰাউণà§à¦¡ 4.০" - -#: ../src/modules/alsa/alsa-util.c:574 -msgid "Digital Surround 4.0 (IEC958/AC3)" -msgstr "Digital ছাৰাউণà§à¦¡ 4.০ (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:584 -msgid "Analog Surround 4.1" -msgstr "Analog ছাৰাউণà§à¦¡ 4.1" - -#: ../src/modules/alsa/alsa-util.c:594 -msgid "Analog Surround 5.0" -msgstr "Analog ছাৰাউণà§à¦¡ 5.০" - -#: ../src/modules/alsa/alsa-util.c:604 -msgid "Analog Surround 5.1" -msgstr "Analog ছাৰাউণà§à¦¡ 5.1" - -#: ../src/modules/alsa/alsa-util.c:614 -msgid "Digital Surround 5.1 (IEC958/AC3)" -msgstr "Digital ছাৰাউণà§à¦¡ 5.1 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:625 -msgid "Analog Surround 7.1" -msgstr "Analog ছাৰাউণà§à¦¡ 7.1" - -#: ../src/modules/alsa/alsa-util.c:1646 +#: ../src/modules/alsa/alsa-util.c:1015 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -72,7 +28,7 @@ msgstr "" "অতি সমà§à¦à§± à¦à¦‡à¦Ÿà§‹ ALSA চালক '%s' ৰ à¦à¦Ÿà¦¾ বাগ । অনà§à¦—à§à§°à¦¹ কৰি à¦à¦‡ সমসà§à¦¯à¦¾ ALSA বিকাশকক " "জনাওক ।" -#: ../src/modules/alsa/alsa-util.c:1687 +#: ../src/modules/alsa/alsa-util.c:1056 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -84,7 +40,7 @@ msgstr "" "অতি সমà§à¦à§± à¦à¦‡à¦Ÿà§‹ ALSA চালক '%s' ৰ à¦à¦Ÿà¦¾ বাগ । অনà§à¦—à§à§°à¦¹ কৰি à¦à¦‡ সমসà§à¦¯à¦¾ ALSA বিকাশকক " "জনাওক ।" -#: ../src/modules/alsa/alsa-util.c:1734 +#: ../src/modules/alsa/alsa-util.c:1103 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -96,11 +52,24 @@ msgstr "" "অতি সমà§à¦à§± à¦à¦‡à¦Ÿà§‹ ALSA চালক '%s' ৰ à¦à¦Ÿà¦¾ বাগ । অনà§à¦—à§à§°à¦¹ কৰি à¦à¦‡ সমসà§à¦¯à¦¾ ALSA বিকাশকক " "জনাওক ।" -#: ../src/pulsecore/sink.c:2141 +#: ../src/modules/module-ladspa-sink.c:49 +msgid "Virtual LADSPA sink" +msgstr "" + +#: ../src/modules/module-ladspa-sink.c:53 +msgid "" +"sink_name=<name for the sink> sink_properties=<properties for the sink> " +"master=<name of sink to filter> format=<sample format> rate=<sample rate> " +"channels=<number of channels> channel_map=<channel map> plugin=<ladspa " +"plugin name> label=<ladspa plugin label> control=<comma seperated list of " +"input control values>" +msgstr "" + +#: ../src/pulsecore/sink.c:2394 msgid "Internal Audio" msgstr "আà¦à§à¦¯à¦¨à§à¦¤à§°à§€à¦£ অ'ডিঅ'" -#: ../src/pulsecore/sink.c:2147 +#: ../src/pulsecore/sink.c:2400 msgid "Modem" msgstr "মোডেম" @@ -170,104 +139,104 @@ msgstr "auth পাব নোৱাৰি: %s" msgid "PolicyKit responded with '%s'" msgstr "PolicyKit ঠ'%s' উতà§à¦¤à§° দিলে" -#: ../src/daemon/main.c:138 +#: ../src/daemon/main.c:142 #, c-format msgid "Got signal %s." msgstr "চিগà§à¦¨à§‡à¦² %s পোৱা গ'ল ।" -#: ../src/daemon/main.c:165 +#: ../src/daemon/main.c:169 msgid "Exiting." msgstr "পà§à§°à¦¸à§à¦¥à¦¾à¦¨ কৰা হৈছে ।" -#: ../src/daemon/main.c:183 +#: ../src/daemon/main.c:187 #, c-format msgid "Failed to find user '%s'." msgstr "বà§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§à¦¤à¦¾ '%s' পোৱা ন'গ'ল ।" -#: ../src/daemon/main.c:188 +#: ../src/daemon/main.c:192 #, c-format msgid "Failed to find group '%s'." msgstr "'%s' সমষà§à¦Ÿà¦¿ পোৱা ন'গ'ল ।" -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:196 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "বà§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§à¦¤à¦¾ '%s' (UID %lu) আৰৠসমষà§à¦Ÿà¦¿ '%s' (GID %lu) পোৱা গ'ল ।" -#: ../src/daemon/main.c:197 +#: ../src/daemon/main.c:201 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "বà§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§à¦¤à¦¾ '%s' আৰৠসমষà§à¦Ÿà¦¿ '%s' ৰ GID অমিল ।" -#: ../src/daemon/main.c:202 +#: ../src/daemon/main.c:206 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "বà§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§à¦¤à¦¾ '%s' ৰ ঘৰৰ পঞà§à¦œà¦¿à¦•à¦¾ '%s' নহয়, আওকাণ কৰা হৈছে ।" -#: ../src/daemon/main.c:205 ../src/daemon/main.c:210 +#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 #, c-format msgid "Failed to create '%s': %s" msgstr "'%s' সৃষà§à¦Ÿà¦¿ কৰিবলৈ বিফল: %s" -#: ../src/daemon/main.c:217 +#: ../src/daemon/main.c:221 #, c-format msgid "Failed to change group list: %s" msgstr "সমষà§à¦Ÿà¦¿à§° তালিকা সলনি কৰিবলৈ বà§à¦¯à§°à§à¦¥: %s" -#: ../src/daemon/main.c:233 +#: ../src/daemon/main.c:237 #, c-format msgid "Failed to change GID: %s" msgstr "GID সলনি কৰিবলৈ বà§à¦¯à§°à§à¦¥: %s" -#: ../src/daemon/main.c:249 +#: ../src/daemon/main.c:253 #, c-format msgid "Failed to change UID: %s" msgstr "UID সলনি কৰিবলৈ বà§à¦¯à§°à§à¦¥: %s" -#: ../src/daemon/main.c:263 +#: ../src/daemon/main.c:267 msgid "Successfully dropped root privileges." msgstr "ৰূটৰ অধিকাৰ সফলà¦à¦¾à¦¬à§‡ à¦à§°à§‹à§±à¦¾ গ'ল ।" -#: ../src/daemon/main.c:271 +#: ../src/daemon/main.c:275 msgid "System wide mode unsupported on this platform." msgstr "à¦à¦‡ সà§à¦¥à¦¾à¦ªà¦¤à§à¦¯à¦¤ পà§à§°à¦£à¦¾à¦²à§€ বà§à¦¯à¦¾à¦ªà¦• মোড অসমৰà§à¦¥à¦¿à¦¤ ।" -#: ../src/daemon/main.c:289 +#: ../src/daemon/main.c:293 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) বিফল: %s" -#: ../src/daemon/main.c:477 +#: ../src/daemon/main.c:481 msgid "Failed to parse command line." msgstr "আদেশ শাৰী বিশà§à¦²à§‡à¦·à¦£ কৰিবলৈ বিফল ।" -#: ../src/daemon/main.c:501 +#: ../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:508 +#: ../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:516 +#: ../src/daemon/main.c:520 msgid "PolicyKit grants us acquire-high-priority privilege." msgstr "PolicyKit ঠআমাক acquire-high-priority অধিকাৰ দিয়ে ।" -#: ../src/daemon/main.c:519 +#: ../src/daemon/main.c:523 msgid "PolicyKit refuses acquire-high-priority privilege." msgstr "PolicyKit ঠacquire-high-priority অধিকাৰ নিদিয়ে ।" -#: ../src/daemon/main.c:524 +#: ../src/daemon/main.c:528 msgid "PolicyKit grants us acquire-real-time privilege." msgstr "PolicyKit ঠআমাক acquire-real-time অধিকাৰ দিয়ে ।" -#: ../src/daemon/main.c:527 +#: ../src/daemon/main.c:531 msgid "PolicyKit refuses acquire-real-time privilege." msgstr "PolicyKit ঠacquire-real-time অধিকাৰ নিদিয়ে ।" -#: ../src/daemon/main.c:556 +#: ../src/daemon/main.c:560 #, c-format msgid "" "Called SUID root and real-time and/or high-priority scheduling was requested " @@ -288,207 +257,217 @@ msgstr "" "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:581 +#: ../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:610 +#: ../src/daemon/main.c:614 msgid "Successfully increased RLIMIT_RTPRIO" msgstr "RLIMIT_RTPRIO সফলতাৰে বৃদà§à¦§à¦¿ কৰা হৈছে" -#: ../src/daemon/main.c:613 +#: ../src/daemon/main.c:617 #, c-format msgid "RLIMIT_RTPRIO failed: %s" msgstr "RLIMIT_RTPRIO বিফল: %s" -#: ../src/daemon/main.c:620 +#: ../src/daemon/main.c:624 msgid "Giving up CAP_NICE" msgstr "CAP_NICE বৰà§à¦œà¦¨ কৰা হৈছে" -#: ../src/daemon/main.c:627 +#: ../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:688 +#: ../src/daemon/main.c:692 msgid "Daemon not running" msgstr "ডেমন নাই চলা" -#: ../src/daemon/main.c:690 +#: ../src/daemon/main.c:694 #, c-format msgid "Daemon running as PID %u" msgstr "PID %u ৰূপে ডেমন চলিছে" -#: ../src/daemon/main.c:700 +#: ../src/daemon/main.c:704 #, c-format msgid "Failed to kill daemon: %s" msgstr "ডেমন kill কৰিবলৈ বà§à¦¯à§°à§à¦¥: %s" -#: ../src/daemon/main.c:718 +#: ../src/daemon/main.c:722 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." msgstr "" "root পৰিচয়ে à¦à¦‡ পà§à§°à§‹à¦—à§à§°à¦¾à¦® সঞà§à¦šà¦¾à¦²à¦¿à¦¤ হোৱা উচিত নহয় (ন'হ'লে --system উলà§à¦²à¦¿à¦–িত হয়) ।" -#: ../src/daemon/main.c:720 +#: ../src/daemon/main.c:724 msgid "Root privileges required." msgstr "Root-ৰ অধিকাৰ আৱশà§à¦¯à¦• ।" -#: ../src/daemon/main.c:725 +#: ../src/daemon/main.c:729 msgid "--start not supported for system instances." msgstr "পà§à§°à¦£à¦¾à¦²à§€ চানেকিৰ কà§à¦·à§‡à¦¤à§à§°à¦¤ --start সমৰà§à¦¥à¦¿à¦¤ নহয় ।" -#: ../src/daemon/main.c:730 +#: ../src/daemon/main.c:734 msgid "Running in system mode, but --disallow-exit not set!" msgstr "পà§à§°à¦£à¦¾à¦²à§€ মোডত চলিছে, কিনà§à¦¤à§ --disallow-exit নিৰà§à¦§à¦¾à§°à¦¿à¦¤ নহয়!" -#: ../src/daemon/main.c:733 +#: ../src/daemon/main.c:737 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "পà§à§°à¦£à¦¾à¦²à§€ মোডত চলিছে, কিনà§à¦¤à§ --disallow-module-loading নিৰà§à¦§à¦¾à§°à¦¿à¦¤ নহয়!" -#: ../src/daemon/main.c:736 +#: ../src/daemon/main.c:740 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "পà§à§°à¦£à¦¾à¦²à§€ মোডত চলিছে, SHM মোড বলপূৰà§à¦¬à¦• নিষà§à¦•à§à§°à¦¿à§Ÿ কৰা হৈছে!" -#: ../src/daemon/main.c:741 +#: ../src/daemon/main.c:745 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "" "পà§à§°à¦£à¦¾à¦²à§€ মোডত চলিছে, কাম নকৰা সময়ৰ পৰা পà§à§°à¦¸à§à¦¥à¦¾à¦¨ কৰা বলপূৰà§à¦¬à¦• নিষà§à¦•à§à§°à¦¿à§Ÿ কৰা হৈছে!" -#: ../src/daemon/main.c:768 +#: ../src/daemon/main.c:772 msgid "Failed to acquire stdio." msgstr "stdio পà§à§°à¦¾à¦ªà§à¦¤ কৰিবলৈ বà§à¦¯à§°à§à¦¥ ।" -#: ../src/daemon/main.c:774 +#: ../src/daemon/main.c:778 #, c-format msgid "pipe failed: %s" msgstr "pipe বিফল: %s" -#: ../src/daemon/main.c:779 +#: ../src/daemon/main.c:783 #, c-format msgid "fork() failed: %s" msgstr "fork() বিফল: %s" -#: ../src/daemon/main.c:793 +#: ../src/daemon/main.c:797 #, c-format msgid "read() failed: %s" msgstr "read() বিফল: %s" -#: ../src/daemon/main.c:799 +#: ../src/daemon/main.c:803 msgid "Daemon startup failed." msgstr "ডেমন আৰমà§à¦ কৰিবলৈ বিফল ।" -#: ../src/daemon/main.c:801 +#: ../src/daemon/main.c:805 msgid "Daemon startup successful." msgstr "সফলতাৰে ডেমন আৰমà§à¦ কৰা হৈছে ।" -#: ../src/daemon/main.c:871 +#: ../src/daemon/main.c:875 #, c-format msgid "This is PulseAudio %s" msgstr "à¦à¦‡à¦Ÿà§‹ PulseAudio %s" -#: ../src/daemon/main.c:872 +#: ../src/daemon/main.c:876 #, c-format msgid "Compilation host: %s" msgstr "সঙà§à¦•à¦²à¦¨à§° গৃহসà§à¦¥: %s" -#: ../src/daemon/main.c:873 +#: ../src/daemon/main.c:877 #, c-format msgid "Compilation CFLAGS: %s" msgstr "সঙà§à¦•à¦²à¦¨à§° CFLAGS: %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:880 #, c-format msgid "Running on host: %s" msgstr "গৃহসà§à¦¥à¦¤ চলোৱা হৈছে: %s" -#: ../src/daemon/main.c:879 +#: ../src/daemon/main.c:883 #, c-format msgid "Found %u CPUs." msgstr "%u CPU পোৱা গৈছে ।" -#: ../src/daemon/main.c:881 +#: ../src/daemon/main.c:885 #, c-format msgid "Page size is %lu bytes" msgstr "পেজৰ মাপ %lu bytes" -#: ../src/daemon/main.c:884 +#: ../src/daemon/main.c:888 msgid "Compiled with Valgrind support: yes" msgstr "Valgrind সমৰà§à¦¥à¦¨à§° সৈতে সঙà§à¦•à¦²à¦¨ কৰা হৈছে: হয়" -#: ../src/daemon/main.c:886 +#: ../src/daemon/main.c:890 msgid "Compiled with Valgrind support: no" msgstr "Valgrind সমৰà§à¦¥à¦¨à§° সৈতে সঙà§à¦•à¦²à¦¨ কৰা হৈছে: নহয়" -#: ../src/daemon/main.c:889 +#: ../src/daemon/main.c:893 #, c-format msgid "Running in valgrind mode: %s" msgstr "valgrind মোডত চলিছে: %s" -#: ../src/daemon/main.c:892 +#: ../src/daemon/main.c:896 msgid "Optimized build: yes" msgstr "Optimized build: হয়" -#: ../src/daemon/main.c:894 +#: ../src/daemon/main.c:898 msgid "Optimized build: no" msgstr "Optimized build: নহয়" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:902 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG বà§à¦¯à¦¾à¦–à§à¦¯à¦¾ কৰা হৈছে, সকলো asserts নিষà§à¦•à§à§°à¦¿à§Ÿ কৰা হৈছে ।" -#: ../src/daemon/main.c:900 +#: ../src/daemon/main.c:904 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "FASTPATH বà§à¦¯à¦¾à¦–à§à¦¯à¦¾ কৰা হৈছে, অকল fast path asserts নিষà§à¦•à§à§°à¦¿à§Ÿ কৰা হৈছে ।" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:906 msgid "All asserts enabled." msgstr "সকলো asserts সকà§à§°à¦¿à§Ÿ কৰা হৈছে ।" -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:910 msgid "Failed to get machine ID" msgstr "যনà§à¦¤à§à§° ID পà§à§°à¦¾à¦ªà§à¦¤ কৰিবলৈ বà§à¦¯à§°à§à¦¥" -#: ../src/daemon/main.c:909 +#: ../src/daemon/main.c:913 #, c-format msgid "Machine ID is %s." msgstr "যনà§à¦¤à§à§° ID হ'ল %s ।" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:917 #, fuzzy, c-format msgid "Session ID is %s." msgstr "যনà§à¦¤à§à§° ID হ'ল %s ।" -#: ../src/daemon/main.c:919 +#: ../src/daemon/main.c:923 #, c-format msgid "Using runtime directory %s." msgstr "ৰান-টাইম পঞà§à¦œà¦¿à¦•à¦¾ %s বà§à¦¯à§±à¦¹à¦¾à§° কৰা হৈছে ।" -#: ../src/daemon/main.c:924 +#: ../src/daemon/main.c:928 #, c-format msgid "Using state directory %s." msgstr "অৱসà§à¦¥à¦¾à¦¸à§‚চক পঞà§à¦œà¦¿à¦•à¦¾ %s বà§à¦¯à§±à¦¹à¦¾à§° কৰা হৈছে ।" -#: ../src/daemon/main.c:927 +#: ../src/daemon/main.c:931 #, c-format msgid "Running in system mode: %s" msgstr "পà§à§°à¦£à¦¾à¦²à§€ মোডত চলিছে: %s" -#: ../src/daemon/main.c:942 +#: ../src/daemon/main.c:934 +msgid "" +"OK, so you are running PA in system mode. Please note that you most likely " +"shouldn't be doing that.\n" +"If you do it nonetheless then it's your own fault if things don't work as " +"expected.\n" +"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " +"explanation why system mode is usually a bad idea." +msgstr "" + +#: ../src/daemon/main.c:951 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() বà§à¦¯à§°à§à¦¥ ।" -#: ../src/daemon/main.c:954 +#: ../src/daemon/main.c:961 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "নতà§à¦¨ high-resolution timers পোৱা হয়! অà¦à¦¿à¦¨à¦¨à§à¦¦à¦¨!" -#: ../src/daemon/main.c:956 +#: ../src/daemon/main.c:963 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -496,32 +475,32 @@ msgstr "" "শà§à§°à§€à¦®à¦¾à¦¨, আপোনাৰ কাৰà§à¦£à§‡à¦² পূৰণি! high-resolution timer সকà§à§°à¦¿à§Ÿ থকা Linux ক আজি " "উপদেশ দিয়া হয়!" -#: ../src/daemon/main.c:970 +#: ../src/daemon/main.c:988 msgid "pa_core_new() failed." msgstr "pa_core_new() বà§à¦¯à§°à§à¦¥ ।" -#: ../src/daemon/main.c:1032 +#: ../src/daemon/main.c:1050 msgid "Failed to initialize daemon." msgstr "ডেমন আৰমà§à¦ কৰিবলৈ বà§à¦¯à§°à§à¦¥ ।" -#: ../src/daemon/main.c:1037 +#: ../src/daemon/main.c:1055 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "" "তà§à¦²à¦¿ লোৱা মডিউল নোহোৱাকে ডেমন আৰমà§à¦ কৰা হৈছে, কোনো কাম সঞà§à¦šà¦¾à¦²à¦¨ কৰা সমà§à¦à§± নহয় ।" -#: ../src/daemon/main.c:1054 +#: ../src/daemon/main.c:1072 msgid "Daemon startup complete." msgstr "ডেমন আৰমà§à¦ কৰা সমà§à¦ªà§‚ৰà§à¦£ ।" -#: ../src/daemon/main.c:1060 +#: ../src/daemon/main.c:1078 msgid "Daemon shutdown initiated." msgstr "ডেমন বনà§à¦§ কৰাৰ পà§à§°à¦•à§à§°à¦¿à§Ÿà¦¾ আৰমà§à¦ কৰা হৈছে ।" -#: ../src/daemon/main.c:1082 +#: ../src/daemon/main.c:1100 msgid "Daemon terminated." msgstr "ডেমন বনà§à¦§ কৰা হৈছে ।" -#: ../src/daemon/cmdline.c:121 +#: ../src/daemon/cmdline.c:115 #, c-format msgid "" "%s [options]\n" @@ -664,15 +643,15 @@ msgstr "" "\n" " -n Don't load default script file\n" -#: ../src/daemon/cmdline.c:252 +#: ../src/daemon/cmdline.c:247 msgid "--daemonize expects boolean argument" msgstr "--daemonize দà§à¦¬à¦¾à§°à¦¾ বà§à¦²à¦¿à§Ÿà§‡à¦¨ তৰà§à¦• পà§à§°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤" -#: ../src/daemon/cmdline.c:259 +#: ../src/daemon/cmdline.c:254 msgid "--fail expects boolean argument" msgstr "--fail দà§à¦¬à¦¾à§°à¦¾ বà§à¦²à¦¿à§Ÿà§‡à¦¨ তৰà§à¦• পà§à§°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤" -#: ../src/daemon/cmdline.c:269 +#: ../src/daemon/cmdline.c:264 msgid "" "--log-level expects log level argument (either numeric in range 0..4 or one " "of debug, info, notice, warn, error)." @@ -680,52 +659,52 @@ msgstr "" "--log-level ৰ কাৰণে লগ সà§à¦¤à§°à§° তৰà§à¦• পà§à§°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤ (হয় সংখà§à¦¯à¦¾ ০..৪ ৰ সীমাত বা debug, " "info, notice, warn, error ৰ যিকোনো à¦à¦Ÿà¦¾) ।" -#: ../src/daemon/cmdline.c:281 +#: ../src/daemon/cmdline.c:276 msgid "--high-priority expects boolean argument" msgstr "--high-priority দà§à¦¬à¦¾à§°à¦¾ বà§à¦²à¦¿à§Ÿà§‡à¦¨ তৰà§à¦• পà§à§°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤" -#: ../src/daemon/cmdline.c:288 +#: ../src/daemon/cmdline.c:283 msgid "--realtime expects boolean argument" msgstr "--realtime দà§à¦¬à¦¾à§°à¦¾ বà§à¦²à¦¿à§Ÿà§‡à¦¨ তৰà§à¦• পà§à§°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤" -#: ../src/daemon/cmdline.c:295 +#: ../src/daemon/cmdline.c:290 msgid "--disallow-module-loading expects boolean argument" msgstr "--disallow-module-loading দà§à¦¬à¦¾à§°à¦¾ বà§à¦²à¦¿à§Ÿà§‡à¦¨ তৰà§à¦• পà§à§°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤" -#: ../src/daemon/cmdline.c:302 +#: ../src/daemon/cmdline.c:297 msgid "--disallow-exit expects boolean argument" msgstr "--disallow-exit দà§à¦¬à¦¾à§°à¦¾ বà§à¦²à¦¿à§Ÿà§‡à¦¨ তৰà§à¦• পà§à§°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤" -#: ../src/daemon/cmdline.c:309 +#: ../src/daemon/cmdline.c:304 msgid "--use-pid-file expects boolean argument" msgstr "--use-pid-file দà§à¦¬à¦¾à§°à¦¾ বà§à¦²à¦¿à§Ÿà§‡à¦¨ তৰà§à¦• পà§à§°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤" -#: ../src/daemon/cmdline.c:326 +#: ../src/daemon/cmdline.c:321 msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgstr "অবৈধ লগ লকà§à¦·à§à¦¯: 'syslog', 'stderr' বা 'auto' ৰ à¦à¦Ÿà¦¾ বà§à¦¯à§±à¦¹à¦¾à§° কৰক" -#: ../src/daemon/cmdline.c:333 +#: ../src/daemon/cmdline.c:328 msgid "--log-time expects boolean argument" msgstr "--log-time দà§à¦¬à¦¾à§°à¦¾ বà§à¦²à¦¿à§Ÿà§‡à¦¨ তৰà§à¦• পà§à§°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤" -#: ../src/daemon/cmdline.c:340 +#: ../src/daemon/cmdline.c:335 msgid "--log-meta expects boolean argument" msgstr "--log-meta দà§à¦¬à¦¾à§°à¦¾ বà§à¦²à¦¿à§Ÿà§‡à¦¨ তৰà§à¦• পà§à§°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤" -#: ../src/daemon/cmdline.c:359 +#: ../src/daemon/cmdline.c:354 #, c-format msgid "Invalid resample method '%s'." msgstr "resample পদà§à¦§à¦¤à¦¿ '%s' বৈধ নহয় ।" -#: ../src/daemon/cmdline.c:366 +#: ../src/daemon/cmdline.c:361 msgid "--system expects boolean argument" msgstr "--system দà§à¦¬à¦¾à§°à¦¾ বà§à¦²à¦¿à§Ÿà§‡à¦¨ তৰà§à¦• পà§à§°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤" -#: ../src/daemon/cmdline.c:373 +#: ../src/daemon/cmdline.c:368 msgid "--no-cpu-limit expects boolean argument" msgstr "--no-cpu-limit দà§à¦¬à¦¾à§°à¦¾ বà§à¦²à¦¿à§Ÿà§‡à¦¨ তৰà§à¦• পà§à§°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤" -#: ../src/daemon/cmdline.c:380 +#: ../src/daemon/cmdline.c:375 msgid "--disable-shm expects boolean argument" msgstr "--disable-shm দà§à¦¬à¦¾à§°à¦¾ বà§à¦²à¦¿à§Ÿà§‡à¦¨ তৰà§à¦• পà§à§°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤" @@ -764,77 +743,82 @@ msgstr "বà§à¦¯à§±à¦¹à¦¾à§° পদà§à¦§à¦¤à¦¿: %s\n" msgid "Load Once: %s\n" msgstr "à¦à¦¬à¦¾à§° তà§à¦²à¦¿ লোৱা হ'ব: %s\n" -#: ../src/daemon/dumpmodules.c:77 +#: ../src/daemon/dumpmodules.c:75 +#, c-format +msgid "DEPRECATION WARNING: %s\n" +msgstr "" + +#: ../src/daemon/dumpmodules.c:79 #, c-format msgid "Path: %s\n" msgstr "পাথ: %s\n" -#: ../src/daemon/daemon-conf.c:215 +#: ../src/daemon/daemon-conf.c:216 #, c-format msgid "[%s:%u] Invalid log target '%s'." msgstr "[%s:%u] লগ লকà§à¦·à§à¦¯ '%s' বৈধ নহয় ।" -#: ../src/daemon/daemon-conf.c:231 +#: ../src/daemon/daemon-conf.c:232 #, c-format msgid "[%s:%u] Invalid log level '%s'." msgstr "[%s:%u] লগৰ সà§à¦¤à§° '%s' বৈধ নহয় ।" -#: ../src/daemon/daemon-conf.c:247 +#: ../src/daemon/daemon-conf.c:248 #, c-format msgid "[%s:%u] Invalid resample method '%s'." msgstr "[%s:%u] resample পদà§à¦§à¦¤à¦¿ '%s' বৈধ নহয় ।" -#: ../src/daemon/daemon-conf.c:270 +#: ../src/daemon/daemon-conf.c:271 #, c-format msgid "[%s:%u] Invalid rlimit '%s'." msgstr "[%s:%u] rlimit '%s' বৈধ নহয় ।" -#: ../src/daemon/daemon-conf.c:277 +#: ../src/daemon/daemon-conf.c:278 #, c-format msgid "[%s:%u] rlimit not supported on this platform." msgstr "[%s:%u] à¦à¦‡ সà§à¦¥à¦¾à¦ªà¦¤à§à¦¯à¦¤ rlimit সমৰà§à¦¥à¦¿à¦¤ নহয় ।" -#: ../src/daemon/daemon-conf.c:293 +#: ../src/daemon/daemon-conf.c:294 #, c-format msgid "[%s:%u] Invalid sample format '%s'." msgstr "[%s:%u] চানেকিৰ বিনà§à¦¯à¦¾à¦¸ '%s' বৈধ নহয় ।" -#: ../src/daemon/daemon-conf.c:311 +#: ../src/daemon/daemon-conf.c:312 #, c-format msgid "[%s:%u] Invalid sample rate '%s'." msgstr "[%s:%u] চানেকিৰ মাতà§à§°à¦¾ '%s' বৈধ নহয় ।" -#: ../src/daemon/daemon-conf.c:335 +#: ../src/daemon/daemon-conf.c:336 #, c-format msgid "[%s:%u] Invalid sample channels '%s'." msgstr "[%s:%u] চানেকিৰ চেনেল '%s' বৈধ নহয়" -#: ../src/daemon/daemon-conf.c:353 +#: ../src/daemon/daemon-conf.c:354 #, c-format msgid "[%s:%u] Invalid channel map '%s'." msgstr "[%s:%u] চেনেল মেপ '%s' বৈধ নহয় ।" -#: ../src/daemon/daemon-conf.c:371 +#: ../src/daemon/daemon-conf.c:372 #, c-format msgid "[%s:%u] Invalid number of fragments '%s'." msgstr "[%s:%u] অংশৰ সংখà§à¦¯à¦¾ '%s' বৈধ নহয় ।" -#: ../src/daemon/daemon-conf.c:389 +#: ../src/daemon/daemon-conf.c:390 #, c-format msgid "[%s:%u] Invalid fragment size '%s'." msgstr "[%s:%u] অংশৰ মাপ '%s' বৈধ নহয় ।" -#: ../src/daemon/daemon-conf.c:407 +#: ../src/daemon/daemon-conf.c:408 #, c-format msgid "[%s:%u] Invalid nice level '%s'." msgstr "[%s:%u] nice সà§à¦¤à§° '%s' বৈধ নহয় ।" -#: ../src/daemon/daemon-conf.c:522 +#: ../src/daemon/daemon-conf.c:524 #, c-format msgid "Failed to open configuration file: %s" msgstr "বিনà§à¦¯à¦¾à¦¸ নথিপতà§à§° খà§à¦²à¦¿à¦¬à¦²à§ˆ বà§à¦¯à§°à§à¦¥: %s" -#: ../src/daemon/daemon-conf.c:538 +#: ../src/daemon/daemon-conf.c:540 msgid "" "The specified default channel map has a different number of channels than " "the specified default number of channels." @@ -881,237 +865,237 @@ msgstr "পà§à§°à¦£à¦¾à¦²à§€à§° নীতিয়ে PulseAudio ক high-priority msgid "System policy prevents PulseAudio from acquiring real-time scheduling." msgstr "পà§à§°à¦£à¦¾à¦²à§€à§° নীতিয়ে PulseAudio ক real-time scheduling পাবলৈ নিদিয়ে ।" -#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804 +#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "মোনো" -#: ../src/pulse/channelmap.c:105 +#: ../src/pulse/channelmap.c:107 msgid "Front Center" msgstr "সনà§à¦®à§à¦–ত কেনà§à¦¦à§à§°à¦¸à§à¦¥à¦¿à¦¤" -#: ../src/pulse/channelmap.c:106 +#: ../src/pulse/channelmap.c:108 msgid "Front Left" msgstr "সনà§à¦®à§à¦–ত কেনà§à¦¦à§à§°à¦¸à§à¦¥à¦¿à¦¤" -#: ../src/pulse/channelmap.c:107 +#: ../src/pulse/channelmap.c:109 msgid "Front Right" msgstr "সনà§à¦®à§à¦–ত বাওà¦à¦«à¦¾à¦²à§‡" -#: ../src/pulse/channelmap.c:109 +#: ../src/pulse/channelmap.c:111 msgid "Rear Center" msgstr "পিছত কেনà§à¦¦à§à§°à¦¸à§à¦¥à¦¿à¦¤" -#: ../src/pulse/channelmap.c:110 +#: ../src/pulse/channelmap.c:112 msgid "Rear Left" msgstr "পিছত বাওà¦à¦«à¦¾à¦²à§‡" -#: ../src/pulse/channelmap.c:111 +#: ../src/pulse/channelmap.c:113 msgid "Rear Right" msgstr "পিছত সোà¦à¦«à¦¾à¦²à§‡" -#: ../src/pulse/channelmap.c:113 +#: ../src/pulse/channelmap.c:115 msgid "Low Frequency Emmiter" msgstr "Low Frequency Emmiter" -#: ../src/pulse/channelmap.c:115 +#: ../src/pulse/channelmap.c:117 msgid "Front Left-of-center" msgstr "সনà§à¦®à§à¦–ত কেনà§à¦¦à§à§°à§°-বাওà¦à¦«à¦¾à¦²à§‡" -#: ../src/pulse/channelmap.c:116 +#: ../src/pulse/channelmap.c:118 msgid "Front Right-of-center" msgstr "সনà§à¦®à§à¦–ত কেনà§à¦¦à§à§°à§°-সোà¦à¦«à¦¾à¦²à§‡" -#: ../src/pulse/channelmap.c:118 +#: ../src/pulse/channelmap.c:120 msgid "Side Left" msgstr "কাষত বাওà¦à¦«à¦¾à¦²à§‡" -#: ../src/pulse/channelmap.c:119 +#: ../src/pulse/channelmap.c:121 msgid "Side Right" msgstr "কাষত সোà¦à¦«à¦¾à¦²à§‡" -#: ../src/pulse/channelmap.c:121 +#: ../src/pulse/channelmap.c:123 msgid "Auxiliary 0" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ০" -#: ../src/pulse/channelmap.c:122 +#: ../src/pulse/channelmap.c:124 msgid "Auxiliary 1" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ০" -#: ../src/pulse/channelmap.c:123 +#: ../src/pulse/channelmap.c:125 msgid "Auxiliary 2" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ১" -#: ../src/pulse/channelmap.c:124 +#: ../src/pulse/channelmap.c:126 msgid "Auxiliary 3" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ৩" -#: ../src/pulse/channelmap.c:125 +#: ../src/pulse/channelmap.c:127 msgid "Auxiliary 4" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ৪" -#: ../src/pulse/channelmap.c:126 +#: ../src/pulse/channelmap.c:128 msgid "Auxiliary 5" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ৪" -#: ../src/pulse/channelmap.c:127 +#: ../src/pulse/channelmap.c:129 msgid "Auxiliary 6" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ৬" -#: ../src/pulse/channelmap.c:128 +#: ../src/pulse/channelmap.c:130 msgid "Auxiliary 7" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ à§" -#: ../src/pulse/channelmap.c:129 +#: ../src/pulse/channelmap.c:131 msgid "Auxiliary 8" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ৮" -#: ../src/pulse/channelmap.c:130 +#: ../src/pulse/channelmap.c:132 msgid "Auxiliary 9" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ৯" -#: ../src/pulse/channelmap.c:131 +#: ../src/pulse/channelmap.c:133 msgid "Auxiliary 10" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ১০" -#: ../src/pulse/channelmap.c:132 +#: ../src/pulse/channelmap.c:134 msgid "Auxiliary 11" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ১১" -#: ../src/pulse/channelmap.c:133 +#: ../src/pulse/channelmap.c:135 msgid "Auxiliary 12" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ১২" -#: ../src/pulse/channelmap.c:134 +#: ../src/pulse/channelmap.c:136 msgid "Auxiliary 13" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ১৩" -#: ../src/pulse/channelmap.c:135 +#: ../src/pulse/channelmap.c:137 msgid "Auxiliary 14" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ১৪" -#: ../src/pulse/channelmap.c:136 +#: ../src/pulse/channelmap.c:138 msgid "Auxiliary 15" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ১৫" -#: ../src/pulse/channelmap.c:137 +#: ../src/pulse/channelmap.c:139 msgid "Auxiliary 16" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ১৬" -#: ../src/pulse/channelmap.c:138 +#: ../src/pulse/channelmap.c:140 msgid "Auxiliary 17" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ১à§" -#: ../src/pulse/channelmap.c:139 +#: ../src/pulse/channelmap.c:141 msgid "Auxiliary 18" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ১৮" -#: ../src/pulse/channelmap.c:140 +#: ../src/pulse/channelmap.c:142 msgid "Auxiliary 19" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ১৯" -#: ../src/pulse/channelmap.c:141 +#: ../src/pulse/channelmap.c:143 msgid "Auxiliary 20" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ২০" -#: ../src/pulse/channelmap.c:142 +#: ../src/pulse/channelmap.c:144 msgid "Auxiliary 21" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ২১" -#: ../src/pulse/channelmap.c:143 +#: ../src/pulse/channelmap.c:145 msgid "Auxiliary 22" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ২২" -#: ../src/pulse/channelmap.c:144 +#: ../src/pulse/channelmap.c:146 msgid "Auxiliary 23" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ২৩" -#: ../src/pulse/channelmap.c:145 +#: ../src/pulse/channelmap.c:147 msgid "Auxiliary 24" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ২৪" -#: ../src/pulse/channelmap.c:146 +#: ../src/pulse/channelmap.c:148 msgid "Auxiliary 25" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ২৫" -#: ../src/pulse/channelmap.c:147 +#: ../src/pulse/channelmap.c:149 msgid "Auxiliary 26" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ২৬" -#: ../src/pulse/channelmap.c:148 +#: ../src/pulse/channelmap.c:150 msgid "Auxiliary 27" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ২à§" -#: ../src/pulse/channelmap.c:149 +#: ../src/pulse/channelmap.c:151 msgid "Auxiliary 28" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ২৮" -#: ../src/pulse/channelmap.c:150 +#: ../src/pulse/channelmap.c:152 msgid "Auxiliary 29" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ২৯" -#: ../src/pulse/channelmap.c:151 +#: ../src/pulse/channelmap.c:153 msgid "Auxiliary 30" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ৩০" -#: ../src/pulse/channelmap.c:152 +#: ../src/pulse/channelmap.c:154 msgid "Auxiliary 31" msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ৩১" -#: ../src/pulse/channelmap.c:154 +#: ../src/pulse/channelmap.c:156 msgid "Top Center" msgstr "ওপৰত কেনà§à¦¦à§à§°à¦¸à§à¦¥à¦¿à¦¤" -#: ../src/pulse/channelmap.c:156 +#: ../src/pulse/channelmap.c:158 msgid "Top Front Center" msgstr "ওপৰত সনà§à¦®à§à¦–ত কেনà§à¦¦à§à§°à¦¸à§à¦¥à¦¿à¦¤" -#: ../src/pulse/channelmap.c:157 +#: ../src/pulse/channelmap.c:159 msgid "Top Front Left" msgstr "ওপৰত সনà§à¦®à§à¦–ত বাওà¦à¦«à¦¾à¦²à§‡" -#: ../src/pulse/channelmap.c:158 +#: ../src/pulse/channelmap.c:160 msgid "Top Front Right" msgstr "ওপৰত সনà§à¦®à§à¦–ত বাওà¦à¦«à¦¾à¦²à§‡" -#: ../src/pulse/channelmap.c:160 +#: ../src/pulse/channelmap.c:162 msgid "Top Rear Center" msgstr "ওপৰত পিছত কেনà§à¦¦à§à§°à¦¸à§à¦¥à¦¿à¦¤" -#: ../src/pulse/channelmap.c:161 +#: ../src/pulse/channelmap.c:163 msgid "Top Rear Left" msgstr "ওপৰত পিছত বাওà¦à¦«à¦¾à¦²à§‡" -#: ../src/pulse/channelmap.c:162 +#: ../src/pulse/channelmap.c:164 msgid "Top Rear Right" msgstr "ওপৰত পিছত সোà¦à¦«à¦¾à¦²à§‡" -#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167 -#: ../src/pulse/volume.c:170 ../src/pulse/volume.c:196 -#: ../src/pulse/volume.c:216 ../src/pulse/volume.c:246 +#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167 +#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265 +#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315 msgid "(invalid)" msgstr "(অবৈধ)" -#: ../src/pulse/channelmap.c:808 +#: ../src/pulse/channelmap.c:751 msgid "Stereo" msgstr "সà§à¦Ÿà¦¿à§°à¦¿à¦“" -#: ../src/pulse/channelmap.c:813 +#: ../src/pulse/channelmap.c:756 msgid "Surround 4.0" msgstr "ছাৰাউণà§à¦¡ ৪.০" -#: ../src/pulse/channelmap.c:819 +#: ../src/pulse/channelmap.c:762 msgid "Surround 4.1" msgstr "ছাৰাউণà§à¦¡ ৪.১" -#: ../src/pulse/channelmap.c:825 +#: ../src/pulse/channelmap.c:768 msgid "Surround 5.0" msgstr "ছাৰাউণà§à¦¡ ৫.০" -#: ../src/pulse/channelmap.c:831 +#: ../src/pulse/channelmap.c:774 msgid "Surround 5.1" msgstr "ছাৰাউণà§à¦¡ ৫.১" -#: ../src/pulse/channelmap.c:838 +#: ../src/pulse/channelmap.c:781 msgid "Surround 7.1" msgstr "ছাৰাউণà§à¦¡ à§.১" @@ -1272,173 +1256,168 @@ msgstr "waitpid(): %s" msgid "Received message for unknown extension '%s'" msgstr "অজানা à¦à¦•à§à¦¸à¦Ÿà§‡à¦¨à¦¶à¦¨ '%s'-ৰ বাবে বাৰà§à¦¤à¦¾ পà§à§°à¦¾à¦ªà§à¦¤ হৈছে" -#: ../src/utils/pacat.c:94 +#: ../src/utils/pacat.c:107 +#, c-format +msgid "Failed to drain stream: %s\n" +msgstr "সà§à¦Ÿà§à§°à¦¿à¦® drain কৰিবলৈ বà§à¦¯à§°à§à¦¥: %s\n" + +#: ../src/utils/pacat.c:112 +msgid "Playback stream drained.\n" +msgstr "পà§à¦²à§‡à¦¬à§‡à¦• সà§à¦Ÿà§à§°à¦¿à¦®à¦• drain কৰা হ'ল ।\n" + +#: ../src/utils/pacat.c:122 +msgid "Draining connection to server.\n" +msgstr "সেৱকৰ সৈতে সংযোগ Drain কৰা হৈছে ।\n" + +#: ../src/utils/pacat.c:135 +#, c-format +msgid "pa_stream_drain(): %s\n" +msgstr "pa_stream_drain(): %s\n" + +#: ../src/utils/pacat.c:158 #, c-format msgid "pa_stream_write() failed: %s\n" msgstr "pa_stream_write() বà§à¦¯à§°à§à¦¥: %s\n" -#: ../src/utils/pacat.c:133 +#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 #, c-format msgid "pa_stream_peek() failed: %s\n" msgstr "pa_stream_peek() বà§à¦¯à§°à§à¦¥: %s\n" -#: ../src/utils/pacat.c:169 -#, c-format +#: ../src/utils/pacat.c:302 msgid "Stream successfully created.\n" msgstr "সফলতাৰে সà§à¦Ÿà§à§°à¦¿à¦® নিৰà§à¦®à¦¿à¦¤ হৈছে ।\n" -#: ../src/utils/pacat.c:172 +#: ../src/utils/pacat.c:305 #, c-format msgid "pa_stream_get_buffer_attr() failed: %s\n" msgstr "pa_stream_get_buffer_attr() বà§à¦¯à§°à§à¦¥: %s\n" -#: ../src/utils/pacat.c:176 +#: ../src/utils/pacat.c:309 #, c-format msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgstr "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:179 +#: ../src/utils/pacat.c:312 #, c-format msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgstr "Buffer metrics: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:183 +#: ../src/utils/pacat.c:316 #, c-format msgid "Using sample spec '%s', channel map '%s'.\n" msgstr "চানেকি spec '%s', চেনেল মেপ '%s'পà§à§°à§Ÿà§‹à¦— কৰা হৈছে\n" -#: ../src/utils/pacat.c:187 +#: ../src/utils/pacat.c:320 #, c-format msgid "Connected to device %s (%u, %ssuspended).\n" msgstr "যনà§à¦¤à§à§° %s-ৰ সৈতে সংযোগ কৰা হৈছে (%u, %ssuspended) ।\n" -#: ../src/utils/pacat.c:197 +#: ../src/utils/pacat.c:330 #, c-format msgid "Stream error: %s\n" msgstr "ষà§à¦Ÿà§à§°à¦¿à¦® সংকà§à§°à¦¾à¦¨à§à¦¤ তà§à§°à§à¦Ÿà¦¿: %s\n" -#: ../src/utils/pacat.c:207 +#: ../src/utils/pacat.c:340 #, c-format msgid "Stream device suspended.%s \n" msgstr "সà§à¦Ÿà§à§°à¦¿à¦® যনà§à¦¤à§à§° সà§à¦¥à¦—িত কৰা হৈছে । %s \n" -#: ../src/utils/pacat.c:209 +#: ../src/utils/pacat.c:342 #, c-format msgid "Stream device resumed.%s \n" msgstr "সà§à¦Ÿà§à§°à¦¿à¦® যনà§à¦¤à§à§° পà§à¦¨à§°à¦¾à§°à¦®à§à¦ কৰা হৈছে । %s \n" -#: ../src/utils/pacat.c:217 +#: ../src/utils/pacat.c:350 #, c-format msgid "Stream underrun.%s \n" msgstr "ষà§à¦Ÿà§à§°à¦¿à¦® underrun: %s\n" -#: ../src/utils/pacat.c:224 +#: ../src/utils/pacat.c:357 #, c-format msgid "Stream overrun.%s \n" msgstr "ষà§à¦Ÿà§à§°à¦¿à¦® overrun: %s\n" -#: ../src/utils/pacat.c:231 +#: ../src/utils/pacat.c:364 #, c-format msgid "Stream started.%s \n" msgstr "সà§à¦Ÿà§à§°à¦¿à¦® আৰমà§à¦ কৰা হৈছে । %s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 #, c-format msgid "Stream moved to device %s (%u, %ssuspended).%s \n" msgstr "%s যনà§à¦¤à§à§°à¦²à§ˆ সà§à¦Ÿà§à§°à¦¿à¦® সà§à¦¥à¦¾à¦¨à¦¾à¦¨à§à¦¤à§° কৰা হৈছে (%u, %ssuspended) ।%s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 msgid "not " msgstr "not " -#: ../src/utils/pacat.c:245 +#: ../src/utils/pacat.c:378 #, c-format msgid "Stream buffer attributes changed.%s \n" msgstr "সà§à¦Ÿà§à§°à¦¿à¦® পà§à§°à¦¶à¦®à¦•à§° গà§à¦£ পৰিবৰà§à¦¤à¦¿à¦¤ হৈছে । %s \n" -#: ../src/utils/pacat.c:278 +#: ../src/utils/pacat.c:411 #, c-format msgid "Connection established.%s \n" msgstr "সংযোগ সà§à¦¥à¦¾à¦ªà¦¿à¦¤ হৈছে ।%s \n" -#: ../src/utils/pacat.c:281 +#: ../src/utils/pacat.c:414 #, c-format msgid "pa_stream_new() failed: %s\n" msgstr "pa_stream_new() বà§à¦¯à§°à§à¦¥: %s\n" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:442 #, c-format msgid "pa_stream_connect_playback() failed: %s\n" msgstr "pa_stream_connect_playback() বà§à¦¯à§°à§à¦¥: %s\n" -#: ../src/utils/pacat.c:315 +#: ../src/utils/pacat.c:448 #, c-format msgid "pa_stream_connect_record() failed: %s\n" msgstr "pa_stream_connect_record() বà§à¦¯à§°à§à¦¥: %s\n" -#: ../src/utils/pacat.c:329 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:762 ../src/utils/paplay.c:183 +#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 #, c-format msgid "Connection failure: %s\n" msgstr "<b>সংযোগৰ মোড</b>: %s<br>\n" -#: ../src/utils/pacat.c:349 ../src/utils/paplay.c:75 -#, c-format -msgid "Failed to drain stream: %s\n" -msgstr "সà§à¦Ÿà§à§°à¦¿à¦® drain কৰিবলৈ বà§à¦¯à§°à§à¦¥: %s\n" - -#: ../src/utils/pacat.c:354 ../src/utils/paplay.c:80 -#, c-format -msgid "Playback stream drained.\n" -msgstr "পà§à¦²à§‡à¦¬à§‡à¦• সà§à¦Ÿà§à§°à¦¿à¦®à¦• drain কৰা হ'ল ।\n" - -#: ../src/utils/pacat.c:364 ../src/utils/paplay.c:92 -#, c-format -msgid "Draining connection to server.\n" -msgstr "সেৱকৰ সৈতে সংযোগ Drain কৰা হৈছে ।\n" - -#: ../src/utils/pacat.c:390 -#, c-format +#: ../src/utils/pacat.c:495 msgid "Got EOF.\n" msgstr "EOF পোৱা গ'ল ।\n" -#: ../src/utils/pacat.c:396 -#, c-format -msgid "pa_stream_drain(): %s\n" -msgstr "pa_stream_drain(): %s\n" - -#: ../src/utils/pacat.c:406 +#: ../src/utils/pacat.c:500 #, c-format msgid "read() failed: %s\n" msgstr "read() বà§à¦¯à§°à§à¦¥: %s\n" -#: ../src/utils/pacat.c:438 +#: ../src/utils/pacat.c:532 #, c-format msgid "write() failed: %s\n" msgstr "write() বà§à¦¯à§°à§à¦¥: %s\n" -#: ../src/utils/pacat.c:459 -#, c-format +#: ../src/utils/pacat.c:553 msgid "Got signal, exiting.\n" msgstr "চিগà§à¦¨à§‡à¦² পোৱা গ'ল, পà§à§°à¦¸à§à¦¥à¦¾à¦¨ কৰা হৈছে ।\n" -#: ../src/utils/pacat.c:473 +#: ../src/utils/pacat.c:567 #, c-format msgid "Failed to get latency: %s\n" msgstr "latency পাবলৈ বà§à¦¯à§°à§à¦¥: %s\n" -#: ../src/utils/pacat.c:478 +#: ../src/utils/pacat.c:572 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "সময়: %0.3f sec; Latency: %0.0f usec. \r" -#: ../src/utils/pacat.c:498 +#: ../src/utils/pacat.c:592 #, c-format msgid "pa_stream_update_timing_info() failed: %s\n" msgstr "pa_stream_update_timing_info() বà§à¦¯à§°à§à¦¥: %s\n" -#: ../src/utils/pacat.c:511 -#, c-format +#: ../src/utils/pacat.c:605 +#, fuzzy, c-format msgid "" "%s [options]\n" "\n" @@ -1464,8 +1443,10 @@ msgid "" "44100)\n" " --format=SAMPLEFORMAT The sample type, one of s16le, " "s16be, u8, float32le,\n" -" float32be, ulaw, alaw, s32le, s32be " -"(defaults to s16ne)\n" +" float32be, ulaw, alaw, s32le, s32be, " +"s24le, s24be,\n" +" s24-32le, s24-32be (defaults to " +"s16ne)\n" " --channels=CHANNELS The number of channels, 1 for mono, " "2 for stereo\n" " (defaults to 2)\n" @@ -1488,6 +1469,11 @@ msgid "" "bytes.\n" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" +" --property=PROPERTY=VALUE Set the specified property to the " +"specified value.\n" +" --raw Record/play raw PCM data.\n" +" --file-format=FFORMAT Record/play formatted PCM data.\n" +" --list-file-formats List available file formats.\n" msgstr "" "%s [options]\n" "\n" @@ -1538,7 +1524,7 @@ msgstr "" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" -#: ../src/utils/pacat.c:612 +#: ../src/utils/pacat.c:727 #, c-format msgid "" "pacat %s\n" @@ -1549,88 +1535,133 @@ msgstr "" "libpulse ৰ সৈতে সঙà§à¦•à¦²à¦¨ কৰা হৈছে %s\n" "libpulse ৰ সৈতে যà§à¦•à§à¦¤ %s\n" -#: ../src/utils/pacat.c:669 +#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "চেনেল মেপ '%s' বৈধ নহয়\n" + +#: ../src/utils/pacat.c:776 +#, fuzzy, c-format +msgid "Invalid stream name '%s'\n" +msgstr "resample পদà§à¦§à¦¤à¦¿ '%s' বৈধ নহয় ।" + +#: ../src/utils/pacat.c:813 #, c-format msgid "Invalid channel map '%s'\n" msgstr "চেনেল মেপ '%s' বৈধ নহয়\n" -#: ../src/utils/pacat.c:698 +#: ../src/utils/pacat.c:842 #, c-format msgid "Invalid latency specification '%s'\n" msgstr "অবৈধ latency নিৰà§à¦§à¦¾à§°à¦£ '%s'\n" -#: ../src/utils/pacat.c:705 +#: ../src/utils/pacat.c:849 #, c-format msgid "Invalid process time specification '%s'\n" msgstr "অবৈধ পà§à§°à¦•à§à§°à¦¿à§Ÿà¦¾à§° সময়ৰ নিৰà§à¦§à¦¾à§°à¦£ '%s'\n" -#: ../src/utils/pacat.c:716 +#: ../src/utils/pacat.c:861 +#, fuzzy, c-format +msgid "Invalid property '%s'\n" +msgstr "resample পদà§à¦§à¦¤à¦¿ '%s' বৈধ নহয় ।" + +#: ../src/utils/pacat.c:878 #, c-format +msgid "Unknown file format %s." +msgstr "" + +#: ../src/utils/pacat.c:897 msgid "Invalid sample specification\n" msgstr "অবৈধ চানেকি নিৰà§à¦§à¦¾à§°à¦¿à¦¤\n" -#: ../src/utils/pacat.c:721 +#: ../src/utils/pacat.c:907 +#, c-format +msgid "open(): %s\n" +msgstr "open(): %s\n" + +#: ../src/utils/pacat.c:912 #, c-format +msgid "dup2(): %s\n" +msgstr "dup2(): %s\n" + +#: ../src/utils/pacat.c:919 +msgid "Too many arguments.\n" +msgstr "অতà§à¦¯à¦¾à¦§à¦¿à¦• তৰà§à¦• ।\n" + +#: ../src/utils/pacat.c:930 +#, fuzzy +msgid "Failed to generate sample specification for file.\n" +msgstr "চানেকি সংকà§à§°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à§°à¦¾à¦ªà§à¦¤ কৰিবলৈ বà§à¦¯à§°à§à¦¥: %s\n" + +#: ../src/utils/pacat.c:950 +#, fuzzy +msgid "Failed to open audio file.\n" +msgstr "শবà§à¦¦à§‡à§° নথিপতà§à§° খà§à¦²à¦¿à¦¬à¦²à§ˆ বà§à¦¯à§°à§à¦¥ ।\n" + +#: ../src/utils/pacat.c:956 +msgid "" +"Warning: specified sample specification will be overwritten with " +"specification from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "চানেকি সংকà§à§°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à§°à¦¾à¦ªà§à¦¤ কৰিবলৈ বà§à¦¯à§°à§à¦¥: %s\n" + +#: ../src/utils/pacat.c:968 +msgid "Warning: Failed to determine channel map from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:979 msgid "Channel map doesn't match sample specification\n" msgstr "চেনেল মেপ আৰৠনথিপতà§à§° অমিল ।\n" -#: ../src/utils/pacat.c:728 -#, c-format -msgid "Opening a %s stream with sample specification '%s'.\n" +#: ../src/utils/pacat.c:990 +msgid "Warning: failed to write channel map to file.\n" +msgstr "" + +#: ../src/utils/pacat.c:1005 +#, fuzzy, c-format +msgid "" +"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" msgstr "à¦à¦Ÿà¦¾ %s সà§à¦Ÿà§à§°à¦¿à¦® চানেকি নিৰà§à¦§à¦¾à§°à¦£ '%s' ৰ সৈতে খোলা হৈছে ।\n" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "recording" msgstr "ৰেকৰà§à¦¡ কৰা হৈছে" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "playback" msgstr "পà§à¦²à§‡-বেক" -#: ../src/utils/pacat.c:736 -#, c-format -msgid "open(): %s\n" -msgstr "open(): %s\n" - -#: ../src/utils/pacat.c:741 -#, c-format -msgid "dup2(): %s\n" -msgstr "dup2(): %s\n" - -#: ../src/utils/pacat.c:751 -#, c-format -msgid "Too many arguments.\n" -msgstr "অতà§à¦¯à¦¾à¦§à¦¿à¦• তৰà§à¦• ।\n" - -#: ../src/utils/pacat.c:764 ../src/utils/pasuspender.c:280 -#: ../src/utils/pactl.c:1017 ../src/utils/paplay.c:381 +#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 +#: ../src/utils/pactl.c:1104 #, c-format msgid "pa_mainloop_new() failed.\n" msgstr "pa_mainloop_new() বà§à¦¯à§°à§à¦¥ ।\n" -#: ../src/utils/pacat.c:785 -#, c-format +#: ../src/utils/pacat.c:1051 msgid "io_new() failed.\n" msgstr "io_new() বà§à¦¯à§°à§à¦¥ ।\n" -#: ../src/utils/pacat.c:791 ../src/utils/pasuspender.c:293 -#: ../src/utils/pactl.c:1031 ../src/utils/paplay.c:396 +#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 +#: ../src/utils/pactl.c:1116 #, c-format msgid "pa_context_new() failed.\n" msgstr "pa_context_new() বà§à¦¯à§°à§à¦¥ ।\n" -#: ../src/utils/pacat.c:799 +#: ../src/utils/pacat.c:1066 #, fuzzy, c-format msgid "pa_context_connect() failed: %s\n" msgstr "pa_context_connect() বà§à¦¯à§°à§à¦¥: %s" -#: ../src/utils/pacat.c:810 -#, c-format +#: ../src/utils/pacat.c:1077 msgid "time_new() failed.\n" msgstr "time_new() বà§à¦¯à§°à§à¦¥ ।\n" -#: ../src/utils/pacat.c:817 ../src/utils/pasuspender.c:301 -#: ../src/utils/pactl.c:1042 ../src/utils/paplay.c:410 +#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 +#: ../src/utils/pactl.c:1127 #, c-format msgid "pa_mainloop_run() failed.\n" msgstr "pa_mainloop_run() বà§à¦¯à§°à§à¦¥ ।\n" @@ -1660,8 +1691,7 @@ msgstr "পà§à¦¨à§°à¦¾à§°à¦®à§à¦ কৰিবলৈ বà§à¦¯à§°à§à¦¥: %s\n" msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "সতৰà§à¦•à¦¬à¦¾à§°à§à¦¤à¦¾: ধà§à¦¬à¦¨à¦¿ সেৱক সà§à¦¥à¦¾à¦¨à§€à§Ÿ নহয়, সà§à¦¥à¦—িত কৰা নহয় ।\n" -#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:768 -#: ../src/utils/paplay.c:191 +#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" msgstr "SIGINT পà§à§°à¦¾à¦ªà§à¦¤ হৈছে, পà§à§°à¦¸à§à¦¥à¦¾à¦¨ কৰা হৈছে ।\n" @@ -1690,7 +1720,7 @@ msgstr "" "to\n" "\n" -#: ../src/utils/pasuspender.c:251 +#: ../src/utils/pasuspender.c:248 #, c-format msgid "" "pasuspender %s\n" @@ -1701,32 +1731,32 @@ msgstr "" "libpulse ৰ সৈতে সঙà§à¦•à¦²à¦¨ কৰা হৈছে %s\n" "libpulse ৰ সৈতে যà§à¦•à§à¦¤ %s\n" -#: ../src/utils/pactl.c:108 +#: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" msgstr "পৰিসংখà§à¦¯à¦¾à¦¨ পাবলৈ বà§à¦¯à§°à§à¦¥: %s\n" -#: ../src/utils/pactl.c:114 +#: ../src/utils/pactl.c:134 #, c-format msgid "Currently in use: %u blocks containing %s bytes total.\n" msgstr "বৰà§à¦¤à§à¦¤à¦®à¦¾à¦¨à§‡ বà§à¦¯à§±à¦¹à§ƒà¦¤: %u blocks containing %s bytes total.\n" -#: ../src/utils/pactl.c:117 +#: ../src/utils/pactl.c:137 #, c-format msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n" msgstr "সমà§à¦ªà§‚ৰà§à¦£ জীৱনকালত বিতৰণ কৰা: %u blocks containing %s bytes total.\n" -#: ../src/utils/pactl.c:120 +#: ../src/utils/pactl.c:140 #, c-format msgid "Sample cache size: %s\n" msgstr "চানেকি কেশà§à¦¬à§° মাপ: %s\n" -#: ../src/utils/pactl.c:129 +#: ../src/utils/pactl.c:149 #, c-format msgid "Failed to get server information: %s\n" msgstr "সেৱক সংকà§à§°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à§°à¦¾à¦ªà§à¦¤ কৰিবলৈ বà§à¦¯à§°à§à¦¥: %s\n" -#: ../src/utils/pactl.c:137 +#: ../src/utils/pactl.c:157 #, c-format msgid "" "User name: %s\n" @@ -1749,12 +1779,12 @@ msgstr "" "অবিকলà§à¦ªà¦¿à¦¤ উৎস: %s\n" "কà§à¦•à¦¿: %08x\n" -#: ../src/utils/pactl.c:178 +#: ../src/utils/pactl.c:198 #, c-format msgid "Failed to get sink information: %s\n" msgstr "চিঙà§à¦• সংকà§à§°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à§°à¦¾à¦ªà§à¦¤ কৰিবলৈ বà§à¦¯à§°à§à¦¥: %s\n" -#: ../src/utils/pactl.c:194 +#: ../src/utils/pactl.c:214 #, c-format msgid "" "Sink #%u\n" @@ -1793,12 +1823,22 @@ msgstr "" "\tগà§à¦£:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:258 +#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 +#, fuzzy, c-format +msgid "\tPorts:\n" +msgstr "\tপাৰà§à¦¶à§à¦¬à§°à§‚প:\n" + +#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 +#, fuzzy, c-format +msgid "\tActive Port: %s\n" +msgstr "\tসকà§à§°à¦¿à§Ÿ পাৰà§à¦¶à§à¦¬à§°à§‚প: %s\n" + +#: ../src/utils/pactl.c:290 #, c-format msgid "Failed to get source information: %s\n" msgstr "উৎস সংকà§à§°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à§°à¦¾à¦ªà§à¦¤ কৰিবলৈ বà§à¦¯à§°à§à¦¥: %s\n" -#: ../src/utils/pactl.c:274 +#: ../src/utils/pactl.c:306 #, c-format msgid "" "Source #%u\n" @@ -1837,20 +1877,20 @@ msgstr "" "\tগà§à¦£:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:306 ../src/utils/pactl.c:350 ../src/utils/pactl.c:385 -#: ../src/utils/pactl.c:422 ../src/utils/pactl.c:481 ../src/utils/pactl.c:482 -#: ../src/utils/pactl.c:492 ../src/utils/pactl.c:536 ../src/utils/pactl.c:537 -#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:586 ../src/utils/pactl.c:587 -#: ../src/utils/pactl.c:594 +#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429 +#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526 +#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581 +#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631 +#: ../src/utils/pactl.c:638 msgid "n/a" msgstr "n/a" -#: ../src/utils/pactl.c:324 +#: ../src/utils/pactl.c:368 #, c-format msgid "Failed to get module information: %s\n" msgstr "মডিউল সংকà§à§°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à§°à¦¾à¦ªà§à¦¤ কৰিবলৈ বà§à¦¯à§°à§à¦¥: %s\n" -#: ../src/utils/pactl.c:342 +#: ../src/utils/pactl.c:386 #, c-format msgid "" "Module #%u\n" @@ -1867,12 +1907,12 @@ msgstr "" "\tগà§à¦£:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:361 +#: ../src/utils/pactl.c:405 #, c-format msgid "Failed to get client information: %s\n" msgstr "গà§à§°à¦¾à¦¹à¦• সংকà§à§°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à§°à¦¾à¦ªà§à¦¤ কৰিবলৈ বà§à¦¯à§°à§à¦¥: %s\n" -#: ../src/utils/pactl.c:379 +#: ../src/utils/pactl.c:423 #, c-format msgid "" "Client #%u\n" @@ -1887,12 +1927,12 @@ msgstr "" "\tগà§à¦£:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:396 +#: ../src/utils/pactl.c:440 #, c-format msgid "Failed to get card information: %s\n" msgstr "কাৰà§à¦¡ সংকà§à§°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à§°à¦¾à¦ªà§à¦¤ কৰিবলৈ বà§à¦¯à§°à§à¦¥: %s\n" -#: ../src/utils/pactl.c:414 +#: ../src/utils/pactl.c:458 #, c-format msgid "" "Card #%u\n" @@ -1909,22 +1949,22 @@ msgstr "" "\tগà§à¦£:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:428 +#: ../src/utils/pactl.c:472 #, c-format msgid "\tProfiles:\n" msgstr "\tপাৰà§à¦¶à§à¦¬à§°à§‚প:\n" -#: ../src/utils/pactl.c:434 +#: ../src/utils/pactl.c:478 #, c-format msgid "\tActive Profile: %s\n" msgstr "\tসকà§à§°à¦¿à§Ÿ পাৰà§à¦¶à§à¦¬à§°à§‚প: %s\n" -#: ../src/utils/pactl.c:445 +#: ../src/utils/pactl.c:489 #, c-format msgid "Failed to get sink input information: %s\n" msgstr "চিঙà§à¦• নিবেশ তথà§à¦¯ পà§à§°à¦¾à¦ªà§à¦¤ কৰিবলৈ বà§à¦¯à§°à§à¦¥: %s\n" -#: ../src/utils/pactl.c:464 +#: ../src/utils/pactl.c:508 #, c-format msgid "" "Sink Input #%u\n" @@ -1961,12 +2001,12 @@ msgstr "" "\tগà§à¦£:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:503 +#: ../src/utils/pactl.c:547 #, c-format msgid "Failed to get source output information: %s\n" msgstr "উৎস আউটপà§à¦Ÿ সংকà§à§°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à§°à¦¾à¦ªà§à¦¤ কৰিবলৈ বà§à¦¯à§°à§à¦¥: %s\n" -#: ../src/utils/pactl.c:523 +#: ../src/utils/pactl.c:567 #, c-format msgid "" "Source Output #%u\n" @@ -1995,12 +2035,12 @@ msgstr "" "\tগà§à¦£:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:554 +#: ../src/utils/pactl.c:598 #, c-format msgid "Failed to get sample information: %s\n" msgstr "চানেকি সংকà§à§°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à§°à¦¾à¦ªà§à¦¤ কৰিবলৈ বà§à¦¯à§°à§à¦¥: %s\n" -#: ../src/utils/pactl.c:572 +#: ../src/utils/pactl.c:616 #, c-format msgid "" "Sample #%u\n" @@ -2031,23 +2071,22 @@ msgstr "" "\tগà§à¦£:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:602 ../src/utils/pactl.c:612 +#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 #, c-format msgid "Failure: %s\n" msgstr "বà§à¦¯à§°à§à¦¥à¦¤à¦¾: %s\n" -#: ../src/utils/pactl.c:636 +#: ../src/utils/pactl.c:680 #, c-format msgid "Failed to upload sample: %s\n" msgstr "চানেকি আপল'ড বà§à¦¯à§°à§à¦¥: %s\n" -#: ../src/utils/pactl.c:653 -#, c-format +#: ../src/utils/pactl.c:697 msgid "Premature end of file\n" msgstr "নথিপতà§à§°à§° অসময়ত হোৱা সমাপà§à¦¤à¦¿\n" -#: ../src/utils/pactl.c:774 -#, c-format +#: ../src/utils/pactl.c:826 +#, fuzzy, c-format msgid "" "%s [options] stat\n" "%s [options] list\n" @@ -2062,6 +2101,8 @@ msgid "" "%s [options] suspend-sink [SINK] 1|0\n" "%s [options] suspend-source [SOURCE] 1|0\n" "%s [options] set-card-profile [CARD] [PROFILE] \n" +"%s [options] set-sink-port [SINK] [PORT] \n" +"%s [options] set-source-port [SOURCE] [PORT] \n" "\n" " -h, --help Show this help\n" " --version Show version\n" @@ -2093,7 +2134,7 @@ msgstr "" " -n, --client-name=NAME How to call this client on the " "server\n" -#: ../src/utils/pactl.c:826 +#: ../src/utils/pactl.c:880 #, c-format msgid "" "pactl %s\n" @@ -2104,71 +2145,74 @@ msgstr "" "libpulseৰ সৈতে সঙà§à¦•à¦²à¦¨ কৰা %s\n" "libpulse-ৰ সৈতে যà§à¦•à§à¦¤ %s\n" -#: ../src/utils/pactl.c:865 -#, c-format +#: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "তà§à¦²à¦¿ লোৱাৰ উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ অনà§à¦—à§à§°à¦¹ কৰে à¦à¦•à¦Ÿà¦¿ চানেকি নথিপতà§à§° উলà§à¦²à§‡à¦– কৰà§à¦¨\n" -#: ../src/utils/pactl.c:887 -#, c-format +#: ../src/utils/pactl.c:939 msgid "Failed to open sound file.\n" msgstr "শবà§à¦¦à§‡à§° নথিপতà§à§° খà§à¦²à¦¿à¦¬à¦²à§ˆ বà§à¦¯à§°à§à¦¥ ।\n" -#: ../src/utils/pactl.c:899 -#, c-format +#: ../src/utils/pactl.c:951 +#, fuzzy +msgid "Warning: Failed to determine sample specification from file.\n" +msgstr "à¦à¦Ÿà¦¾ %s সà§à¦Ÿà§à§°à¦¿à¦® চানেকি নিৰà§à¦§à¦¾à§°à¦£ '%s' ৰ সৈতে খোলা হৈছে ।\n" + +#: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" msgstr "বাজানোৰ উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ à¦à¦•à¦Ÿà¦¿ চানেকি নথিপতà§à§° উলà§à¦²à§‡à¦– কৰা আৱশà§à¦¯à¦•\n" -#: ../src/utils/pactl.c:911 -#, c-format +#: ../src/utils/pactl.c:973 msgid "You have to specify a sample name to remove\n" msgstr "আà¦à¦¤à§°à¦¾à¦¬à¦²à§ˆ à¦à¦Ÿà¦¾ চানেকি নাম দিব লাগিব \n" -#: ../src/utils/pactl.c:919 -#, c-format +#: ../src/utils/pactl.c:982 msgid "You have to specify a sink input index and a sink\n" msgstr "চিঙà§à¦• ইনপà§à¦Ÿ ইনà§à¦¡à§‡à¦•à§à¦¸ আৰৠà¦à¦Ÿà¦¾ চিঙà§à¦• নিৰà§à¦§à¦¾à§°à¦£ কৰা আৱশà§à¦¯à¦•\n" -#: ../src/utils/pactl.c:928 -#, c-format +#: ../src/utils/pactl.c:992 msgid "You have to specify a source output index and a source\n" msgstr "উৎস আউটপà§à¦Ÿ ইনà§à¦¡à§‡à¦•à§à¦¸ আৰৠà¦à¦•à¦Ÿà¦¿ উৎস নিৰà§à¦§à¦¾à§°à¦£ কৰা আৱশà§à¦¯à¦•\n" -#: ../src/utils/pactl.c:942 -#, c-format +#: ../src/utils/pactl.c:1007 msgid "You have to specify a module name and arguments.\n" msgstr "মডিউলৰ নাম আৰৠতৰà§à¦• নিৰà§à¦§à¦¾à§°à¦£ কৰা আৱশà§à¦¯à¦•\n" -#: ../src/utils/pactl.c:962 -#, c-format +#: ../src/utils/pactl.c:1027 msgid "You have to specify a module index\n" msgstr "মডিউল ইনà§à¦¡à§‡à¦•à§à¦¸ নিৰà§à¦§à¦¾à§°à¦£ কৰা আৱশà§à¦¯à¦•\n" -#: ../src/utils/pactl.c:972 -#, c-format +#: ../src/utils/pactl.c:1037 msgid "" "You may not specify more than one sink. You have to specify a boolean " "value.\n" msgstr "à¦à¦•à¦¾à¦§à¦¿à¦• চিঙà§à¦• নিৰà§à¦§à¦¾à§°à¦£ কৰা যাবে না । বà§à¦²à¦¿à§Ÿà§‡à¦¨ মান নিৰà§à¦§à¦¾à§°à¦£ কৰা আৱশà§à¦¯à¦• ।\n" -#: ../src/utils/pactl.c:985 -#, c-format +#: ../src/utils/pactl.c:1050 msgid "" "You may not specify more than one source. You have to specify a boolean " "value.\n" msgstr "à¦à¦•à¦¾à¦§à¦¿à¦• উৎস নিৰà§à¦§à¦¾à§°à¦£ কৰা যাবে না । বà§à¦²à¦¿à§Ÿà§‡à¦¨ মান নিৰà§à¦§à¦¾à§°à¦£ কৰা আৱশà§à¦¯à¦• ।\n" -#: ../src/utils/pactl.c:997 -#, c-format +#: ../src/utils/pactl.c:1062 msgid "You have to specify a card name/index and a profile name\n" msgstr "কাৰà§à¦¡à§‡à§° নাম/ইনà§à¦¡à§‡à¦•à§à¦¸ আৰৠà¦à¦•à¦Ÿà¦¿ পাৰà§à¦¶à§à¦¬à§°à§‚পৰ নাম উলà§à¦²à§‡à¦– কৰা আৱশà§à¦¯à¦•\n" -#: ../src/utils/pactl.c:1012 -#, c-format +#: ../src/utils/pactl.c:1073 +#, fuzzy +msgid "You have to specify a sink name/index and a port name\n" +msgstr "কাৰà§à¦¡à§‡à§° নাম/ইনà§à¦¡à§‡à¦•à§à¦¸ আৰৠà¦à¦•à¦Ÿà¦¿ পাৰà§à¦¶à§à¦¬à§°à§‚পৰ নাম উলà§à¦²à§‡à¦– কৰা আৱশà§à¦¯à¦•\n" + +#: ../src/utils/pactl.c:1084 +#, fuzzy +msgid "You have to specify a source name/index and a port name\n" +msgstr "কাৰà§à¦¡à§‡à§° নাম/ইনà§à¦¡à§‡à¦•à§à¦¸ আৰৠà¦à¦•à¦Ÿà¦¿ পাৰà§à¦¶à§à¦¬à§°à§‚পৰ নাম উলà§à¦²à§‡à¦– কৰা আৱশà§à¦¯à¦•\n" + +#: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "সঞà§à¦šà¦¾à¦²à¦¨à§° বাবে আদেশ নিৰà§à¦§à¦¾à§°à¦¿à¦¤ নহয় ।\n" -#: ../src/utils/pactl.c:1037 ../src/utils/paplay.c:404 +#: ../src/utils/pactl.c:1122 #, c-format msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect() বà§à¦¯à§°à§à¦¥: %s" @@ -2252,129 +2296,48 @@ msgstr "কà§à¦•à¦¿ সংকà§à§°à¦¾à¦¨à§à¦¤ তথà§à¦¯ তà§à¦²à¦¿à¦¬à¦² msgid "Not yet implemented.\n" msgstr "à¦à¦¤à¦¿à§Ÿà¦¾à¦“ বাসà§à¦¤à¦¬à¦¾à§Ÿà¦¿à¦¤ নহয় ।\n" -#: ../src/utils/pacmd.c:64 +#: ../src/utils/pacmd.c:61 +msgid "No PulseAudio daemon running, or not running as session daemon." +msgstr "" + +#: ../src/utils/pacmd.c:66 #, c-format msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s" msgstr "socket(PF_UNIX, SOCK_STREAM, 0): %s" -#: ../src/utils/pacmd.c:81 +#: ../src/utils/pacmd.c:83 #, c-format msgid "connect(): %s" msgstr "connect(): %s" -#: ../src/utils/pacmd.c:89 +#: ../src/utils/pacmd.c:91 msgid "Failed to kill PulseAudio daemon." msgstr "PulseAudio ডেমন kill কৰিবলৈ বà§à¦¯à§°à§à¦¥ ।" -#: ../src/utils/pacmd.c:97 +#: ../src/utils/pacmd.c:99 msgid "Daemon not responding." msgstr "ডেমনৰ পৰা কোনো পà§à§°à¦¤à¦¿à¦•à§à§°à¦¿à§Ÿà¦¾ পোৱা নাযায় ।" -#: ../src/utils/pacmd.c:144 +#: ../src/utils/pacmd.c:146 #, c-format msgid "select(): %s" msgstr "select(): %s" -#: ../src/utils/pacmd.c:154 ../src/utils/pacmd.c:171 +#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173 #, c-format msgid "read(): %s" msgstr "read(): %s" -#: ../src/utils/pacmd.c:187 ../src/utils/pacmd.c:201 +#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203 #, c-format msgid "write(): %s" msgstr "write(): %s" -#: ../src/utils/paplay.c:139 -#, c-format -msgid "Stream successfully created\n" -msgstr "সফলতাৰে সà§à¦Ÿà§à§°à¦¿à¦® নিৰà§à¦®à¦¿à¦¤ হৈছে\n" - -#: ../src/utils/paplay.c:144 -#, c-format -msgid "Stream errror: %s\n" -msgstr "সà§à¦Ÿà§à§°à¦¿à¦®à§° তà§à§°à§à¦Ÿà¦¿: %s\n" - -#: ../src/utils/paplay.c:165 -#, c-format -msgid "Connection established.\n" -msgstr "সংযোগ সà§à¦¥à¦¾à¦ªà¦¿à¦¤ ।\n" - -#: ../src/utils/paplay.c:198 -#, c-format -msgid "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" -msgstr "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" - -#: ../src/utils/paplay.c:255 -#, c-format -msgid "" -"paplay %s\n" -"Compiled with libpulse %s\n" -"Linked with libpulse %s\n" -msgstr "" -"paplay %s\n" -"libpulse ৰ সৈতে সঙà§à¦•à¦²à¦¨ কৰা হৈছে %s\n" -"libpulse ৰ সৈতে যà§à¦•à§à¦¤ %s\n" - -#: ../src/utils/paplay.c:292 -#, c-format -msgid "Invalid channel map\n" -msgstr "অবৈধ চেনেল মেপ\n" - -#: ../src/utils/paplay.c:314 -#, c-format -msgid "Failed to open file '%s'\n" -msgstr "'%s' নথিপতà§à§° খà§à¦²à¦¿à¦¬à¦²à§ˆ বà§à¦¯à§°à§à¦¥\n" - -#: ../src/utils/paplay.c:350 -#, c-format -msgid "Channel map doesn't match file.\n" -msgstr "চেনেল মেপ আৰৠনথিপতà§à§° অমিল ।\n" - -#: ../src/utils/paplay.c:376 -#, c-format -msgid "Using sample spec '%s'\n" -msgstr "চানেকি spec '%s' পà§à§°à§Ÿà§‹à¦— কৰা হৈছে\n" - #: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 msgid "Cannot access autospawn lock." msgstr "autospawn লক পà§à§°à§Ÿà§‹à¦— কৰিবলৈ বà§à¦¯à§°à§à¦¥ ।" -#: ../src/modules/alsa/alsa-sink.c:393 ../src/modules/alsa/alsa-sink.c:541 +#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2390,7 +2353,7 @@ msgstr "" "POLLOUT নিৰà§à¦§à¦¾à§°à¦¿à¦¤ হোৱাৰি পিছতো আমি উথিলো -- কিনà§à¦¤à§ তাৰ পিছৰ snd_pcm_avail() ঠ০ " "দিলে বা অনà§à¦¯ à¦à¦Ÿà¦¾ মান < min_avail." -#: ../src/modules/alsa/alsa-source.c:377 ../src/modules/alsa/alsa-source.c:516 +#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2406,34 +2369,130 @@ msgstr "" "POLLIN নিৰà§à¦§à¦¾à§°à¦¿à¦¤ হোৱাৰি পিছতো আমি উথিলো -- কিনà§à¦¤à§ তাৰ পিছৰ snd_pcm_avail() ঠ০ " "দিলে বা অনà§à¦¯ à¦à¦Ÿà¦¾ মান < min_avail." -#: ../src/modules/alsa/module-alsa-card.c:114 -#, c-format -msgid "Output %s + Input %s" -msgstr "নিৰà§à¦—ম %s + নিবেশ %s" - -#: ../src/modules/alsa/module-alsa-card.c:117 -#, c-format -msgid "Output %s" -msgstr "নিৰà§à¦—ম %s" - -#: ../src/modules/alsa/module-alsa-card.c:121 -#, c-format -msgid "Input %s" -msgstr "নিবেশ %s" - -#: ../src/modules/alsa/module-alsa-card.c:170 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2006 +#: ../src/modules/alsa/module-alsa-card.c:152 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 msgid "Off" msgstr "বনà§à¦§" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1976 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 msgid "High Fidelity Playback (A2DP)" msgstr "High Fidelity Playback (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1991 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 msgid "Telephony Duplex (HSP/HFP)" msgstr "Telephony Duplex (HSP/HFP)" -#: ../src/modules/reserve-wrap.c:139 +#: ../src/modules/reserve-wrap.c:151 msgid "PulseAudio Sound Server" msgstr "PulseAudio ধà§à¦¬à¦¨à¦¿ সেৱক" + +#~ msgid "Analog Mono" +#~ msgstr "Analog Mono" + +#~ msgid "Analog Stereo" +#~ msgstr "Analog Stereo" + +#~ msgid "Digital Stereo (IEC958)" +#~ msgstr "Digital Stereo (IEC958)" + +#~ msgid "Digital Stereo (HDMI)" +#~ msgstr "Digital Stereo (HDMI)" + +#~ msgid "Analog Surround 4.0" +#~ msgstr "Analog ছাৰাউণà§à¦¡ 4.০" + +#~ msgid "Digital Surround 4.0 (IEC958/AC3)" +#~ msgstr "Digital ছাৰাউণà§à¦¡ 4.০ (IEC958/AC3)" + +#~ msgid "Analog Surround 4.1" +#~ msgstr "Analog ছাৰাউণà§à¦¡ 4.1" + +#~ msgid "Analog Surround 5.0" +#~ msgstr "Analog ছাৰাউণà§à¦¡ 5.০" + +#~ msgid "Analog Surround 5.1" +#~ msgstr "Analog ছাৰাউণà§à¦¡ 5.1" + +#~ msgid "Digital Surround 5.1 (IEC958/AC3)" +#~ msgstr "Digital ছাৰাউণà§à¦¡ 5.1 (IEC958/AC3)" + +#~ msgid "Analog Surround 7.1" +#~ msgstr "Analog ছাৰাউণà§à¦¡ 7.1" + +#~ msgid "Output %s + Input %s" +#~ msgstr "নিৰà§à¦—ম %s + নিবেশ %s" + +#~ msgid "Output %s" +#~ msgstr "নিৰà§à¦—ম %s" + +#~ msgid "Input %s" +#~ msgstr "নিবেশ %s" + +#~ msgid "Stream successfully created\n" +#~ msgstr "সফলতাৰে সà§à¦Ÿà§à§°à¦¿à¦® নিৰà§à¦®à¦¿à¦¤ হৈছে\n" + +#~ msgid "Stream errror: %s\n" +#~ msgstr "সà§à¦Ÿà§à§°à¦¿à¦®à§° তà§à§°à§à¦Ÿà¦¿: %s\n" + +#~ msgid "Connection established.\n" +#~ msgstr "সংযোগ সà§à¦¥à¦¾à¦ªà¦¿à¦¤ ।\n" + +#~ msgid "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Show this help\n" +#~ " --version Show version\n" +#~ "\n" +#~ " -v, --verbose Enable verbose operation\n" +#~ "\n" +#~ " -s, --server=SERVER The name of the server to connect " +#~ "to\n" +#~ " -d, --device=DEVICE The name of the sink to connect " +#~ "to\n" +#~ " -n, --client-name=NAME How to call this client on the " +#~ "server\n" +#~ " --stream-name=NAME How to call this stream on the " +#~ "server\n" +#~ " --volume=VOLUME Specify the initial (linear) " +#~ "volume in range 0...65536\n" +#~ " --channel-map=CHANNELMAP Set the channel map to the use\n" +#~ msgstr "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Show this help\n" +#~ " --version Show version\n" +#~ "\n" +#~ " -v, --verbose Enable verbose operation\n" +#~ "\n" +#~ " -s, --server=SERVER The name of the server to connect " +#~ "to\n" +#~ " -d, --device=DEVICE The name of the sink to connect " +#~ "to\n" +#~ " -n, --client-name=NAME How to call this client on the " +#~ "server\n" +#~ " --stream-name=NAME How to call this stream on the " +#~ "server\n" +#~ " --volume=VOLUME Specify the initial (linear) " +#~ "volume in range 0...65536\n" +#~ " --channel-map=CHANNELMAP Set the channel map to the use\n" + +#~ msgid "" +#~ "paplay %s\n" +#~ "Compiled with libpulse %s\n" +#~ "Linked with libpulse %s\n" +#~ msgstr "" +#~ "paplay %s\n" +#~ "libpulse ৰ সৈতে সঙà§à¦•à¦²à¦¨ কৰা হৈছে %s\n" +#~ "libpulse ৰ সৈতে যà§à¦•à§à¦¤ %s\n" + +#~ msgid "Invalid channel map\n" +#~ msgstr "অবৈধ চেনেল মেপ\n" + +#~ msgid "Failed to open file '%s'\n" +#~ msgstr "'%s' নথিপতà§à§° খà§à¦²à¦¿à¦¬à¦²à§ˆ বà§à¦¯à§°à§à¦¥\n" + +#~ msgid "Channel map doesn't match file.\n" +#~ msgstr "চেনেল মেপ আৰৠনথিপতà§à§° অমিল ।\n" + +#~ msgid "Using sample spec '%s'\n" +#~ msgstr "চানেকি spec '%s' পà§à§°à§Ÿà§‹à¦— কৰা হৈছে\n" diff --git a/po/bn_IN.po b/po/bn_IN.po index fbb90837..9214f16c 100644 --- a/po/bn_IN.po +++ b/po/bn_IN.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio.master-tx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-21 23:02+0200\n" +"POT-Creation-Date: 2009-06-17 23:42+0200\n" "PO-Revision-Date: 2009-04-08 16:21+0530\n" "Last-Translator: Runa Bhattacharjee <runab@fedoraproject.org>\n" "Language-Team: Bengali INDIA <fedora-trans-bn_in@redhat.com>\n" @@ -17,51 +17,7 @@ msgstr "" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../src/modules/alsa/alsa-util.c:532 -msgid "Analog Mono" -msgstr "অà§à¦¯à¦¾à¦¨à¦¾à¦²à¦— মোনো" - -#: ../src/modules/alsa/alsa-util.c:540 -msgid "Analog Stereo" -msgstr "অà§à¦¯à¦¾à¦¨à¦¾à¦²à¦— সà§à¦Ÿà¦¿à¦°à¦¿à¦“" - -#: ../src/modules/alsa/alsa-util.c:548 -msgid "Digital Stereo (IEC958)" -msgstr "ডিজিটà§à¦¯à¦¾à¦² সà§à¦Ÿà¦¿à¦°à¦¿à¦“ (IEC958)" - -#: ../src/modules/alsa/alsa-util.c:556 -msgid "Digital Stereo (HDMI)" -msgstr "ডিজিটà§à¦¯à¦¾à¦² সà§à¦Ÿà¦¿à¦°à¦¿à¦“ (HDMI)" - -#: ../src/modules/alsa/alsa-util.c:565 -msgid "Analog Surround 4.0" -msgstr "অà§à¦¯à¦¾à¦¨à¦¾à¦²à¦— সà§à¦Ÿà¦¿à¦°à¦¿à¦“ ৪.০" - -#: ../src/modules/alsa/alsa-util.c:574 -msgid "Digital Surround 4.0 (IEC958/AC3)" -msgstr "ডিজিটà§à¦¯à¦¾à¦² সারাউনà§à¦¡ ৪.০ (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:584 -msgid "Analog Surround 4.1" -msgstr "অà§à¦¯à¦¾à¦¨à¦¾à¦²à¦— সারাউনà§à¦¡ ৪.১" - -#: ../src/modules/alsa/alsa-util.c:594 -msgid "Analog Surround 5.0" -msgstr "অà§à¦¯à¦¾à¦¨à¦¾à¦²à¦— সারাউনà§à¦¡ ৫.০" - -#: ../src/modules/alsa/alsa-util.c:604 -msgid "Analog Surround 5.1" -msgstr "অà§à¦¯à¦¾à¦¨à¦¾à¦²à¦— সারাউনà§à¦¡ ৫.১" - -#: ../src/modules/alsa/alsa-util.c:614 -msgid "Digital Surround 5.1 (IEC958/AC3)" -msgstr "ডিজিটà§à¦¯à¦¾à¦² সারাউনà§à¦¡ ৫.১ (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:625 -msgid "Analog Surround 7.1" -msgstr "অà§à¦¯à¦¾à¦¨à¦¾à¦²à¦— সারাউনà§à¦¡ à§.১" - -#: ../src/modules/alsa/alsa-util.c:1646 +#: ../src/modules/alsa/alsa-util.c:1015 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -73,7 +29,7 @@ msgstr "" "সমà§à¦à¦¬à¦¤ à¦à¦Ÿà¦¿ ALSA ডà§à¦°à¦¾à¦‡à¦à¦¾à¦° '%s'-র à¦à¦•à¦Ÿà¦¿ বাগ। অনà§à¦—à§à¦°à¦¹ করে à¦à¦‡ সমসà§à¦¯à¦¾ সমà§à¦¬à¦¨à§à¦§à§‡ ALSA " "ডিà¦à§‡à¦²à¦ªà¦°à¦¦à§‡à¦° সূচিত করà§à¦¨à¥¤" -#: ../src/modules/alsa/alsa-util.c:1687 +#: ../src/modules/alsa/alsa-util.c:1056 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -85,7 +41,7 @@ msgstr "" "সমà§à¦à¦¬à¦¤ à¦à¦Ÿà¦¿ ALSA ডà§à¦°à¦¾à¦‡à¦à¦¾à¦° '%s'-র à¦à¦•à¦Ÿà¦¿ বাগ। অনà§à¦—à§à¦°à¦¹ করে à¦à¦‡ সমসà§à¦¯à¦¾ সমà§à¦¬à¦¨à§à¦§à§‡ ALSA " "ডিà¦à§‡à¦²à¦ªà¦°à¦¦à§‡à¦° সূচিত করà§à¦¨à¥¤" -#: ../src/modules/alsa/alsa-util.c:1734 +#: ../src/modules/alsa/alsa-util.c:1103 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -97,11 +53,24 @@ msgstr "" "সমà§à¦à¦¬à¦¤ à¦à¦Ÿà¦¿ ALSA ডà§à¦°à¦¾à¦‡à¦à¦¾à¦° '%s'-র à¦à¦•à¦Ÿà¦¿ বাগ। অনà§à¦—à§à¦°à¦¹ করে à¦à¦‡ সমসà§à¦¯à¦¾ সমà§à¦¬à¦¨à§à¦§à§‡ ALSA " "ডিà¦à§‡à¦²à¦ªà¦°à¦¦à§‡à¦° সূচিত করà§à¦¨à¥¤" -#: ../src/pulsecore/sink.c:2141 +#: ../src/modules/module-ladspa-sink.c:49 +msgid "Virtual LADSPA sink" +msgstr "" + +#: ../src/modules/module-ladspa-sink.c:53 +msgid "" +"sink_name=<name for the sink> sink_properties=<properties for the sink> " +"master=<name of sink to filter> format=<sample format> rate=<sample rate> " +"channels=<number of channels> channel_map=<channel map> plugin=<ladspa " +"plugin name> label=<ladspa plugin label> control=<comma seperated list of " +"input control values>" +msgstr "" + +#: ../src/pulsecore/sink.c:2394 msgid "Internal Audio" msgstr "অà¦à§à¦¯à¦¨à§à¦¤à¦°à§€à¦£ অডিও" -#: ../src/pulsecore/sink.c:2147 +#: ../src/pulsecore/sink.c:2400 msgid "Modem" msgstr "মোডেম" @@ -171,105 +140,105 @@ msgstr "auth পà§à¦°à¦¾à¦ªà§à¦¤ করতে বà§à¦¯à¦°à§à¦¥: %s" msgid "PolicyKit responded with '%s'" msgstr "PolicyKit থেকে '%s' পà§à¦°à¦¾à¦ªà§à¦¤ হয়েছে" -#: ../src/daemon/main.c:138 +#: ../src/daemon/main.c:142 #, c-format msgid "Got signal %s." msgstr "%s সিগনà§à¦¯à¦¾à¦² পà§à¦°à¦¾à¦ªà§à¦¤ হয়েছে।" -#: ../src/daemon/main.c:165 +#: ../src/daemon/main.c:169 msgid "Exiting." msgstr "পà§à¦°à¦¸à§à¦¥à¦¾à¦¨ করা হচà§à¦›à§‡à¥¤" -#: ../src/daemon/main.c:183 +#: ../src/daemon/main.c:187 #, c-format msgid "Failed to find user '%s'." msgstr "'%s' বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ সনà§à¦§à¦¾à¦¨ করতে বà§à¦¯à¦°à§à¦¥à¥¤" -#: ../src/daemon/main.c:188 +#: ../src/daemon/main.c:192 #, c-format msgid "Failed to find group '%s'." msgstr "দল '%s' সনà§à¦§à¦¾à¦¨ করতে বà§à¦¯à¦°à§à¦¥à¥¤" -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:196 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ '%s' (UID %lu) ও দল '%s' (GID %lu) পà§à¦°à¦¾à¦ªà§à¦¤ হয়েছে।" -#: ../src/daemon/main.c:197 +#: ../src/daemon/main.c:201 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "'%s' বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° ও '%s' দলের GID-র মধà§à¦¯à§‡ গরমিল।" -#: ../src/daemon/main.c:202 +#: ../src/daemon/main.c:206 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "" "'%s' বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ বà§à¦¯à¦•à§à¦¤à¦¿à¦—ত ডিরেকà§à¦Ÿà¦°à¦¿ রূপে '%s' ধারà§à¦¯ করা হয়নি, অগà§à¦°à¦¾à¦¹à§à¦¯ করা হবে।" -#: ../src/daemon/main.c:205 ../src/daemon/main.c:210 +#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 #, c-format msgid "Failed to create '%s': %s" msgstr "'%s' নিরà§à¦®à¦¾à¦£ করতে বà§à¦¯à¦°à§à¦¥: %s" -#: ../src/daemon/main.c:217 +#: ../src/daemon/main.c:221 #, c-format msgid "Failed to change group list: %s" msgstr "দলের তালিকা পরিবরà§à¦¤à¦¨ করতে বà§à¦¯à¦°à§à¦¥: %s" -#: ../src/daemon/main.c:233 +#: ../src/daemon/main.c:237 #, c-format msgid "Failed to change GID: %s" msgstr "GID পরিবরà§à¦¤à¦¨ করতে বà§à¦¯à¦°à§à¦¥: %s" -#: ../src/daemon/main.c:249 +#: ../src/daemon/main.c:253 #, c-format msgid "Failed to change UID: %s" msgstr "UID পরিবরà§à¦¤à¦¨ করতে বà§à¦¯à¦°à§à¦¥: %s" -#: ../src/daemon/main.c:263 +#: ../src/daemon/main.c:267 msgid "Successfully dropped root privileges." msgstr "root-র অধিকার সাফলà§à¦¯à§‡à¦° সাথে বরà§à¦œà¦¨ করা হয়েছে।" -#: ../src/daemon/main.c:271 +#: ../src/daemon/main.c:275 msgid "System wide mode unsupported on this platform." msgstr "à¦à¦‡ পà§à¦²à§à¦¯à¦¾à¦Ÿà¦«à¦°à§à¦®à§‡, সিসà§à¦Ÿà§‡à¦®à¦¬à§à¦¯à¦¾à¦ªà§€ মোড সমরà§à¦¥à¦¿à¦¤ নয়।" -#: ../src/daemon/main.c:289 +#: ../src/daemon/main.c:293 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) বিফল: %s" -#: ../src/daemon/main.c:477 +#: ../src/daemon/main.c:481 msgid "Failed to parse command line." msgstr "কমানà§à¦¡-লাইন পারà§à¦¸ করতে বà§à¦¯à¦°à§à¦¥à¥¤" -#: ../src/daemon/main.c:501 +#: ../src/daemon/main.c:505 #, c-format msgid "We're in the group '%s', allowing high-priority scheduling." msgstr "অধিক গà§à¦°à§à¦¤à§à¦¬à¦¸à¦¹ শিডিউলিংয়ের সà§à¦¬à¦¿à¦§à¦¾ উপলবà§à¦§à¦•à¦¾à¦°à§€ '%s' দলে আমরা উপসà§à¦¥à¦¿à¦¤à¥¤" -#: ../src/daemon/main.c:508 +#: ../src/daemon/main.c:512 #, c-format msgid "We're in the group '%s', allowing real-time scheduling." msgstr "রিয়েল-টাইম শিডিউলিংয়ের সà§à¦¬à¦¿à¦§à¦¾ উপলবà§à¦§à¦•à¦¾à¦°à§€ '%s' দলে আমরা উপসà§à¦¥à¦¿à¦¤à¥¤" -#: ../src/daemon/main.c:516 +#: ../src/daemon/main.c:520 msgid "PolicyKit grants us acquire-high-priority privilege." msgstr "PolicyKit-র পকà§à¦· থেকে acquire-high-priority অধিকার পà§à¦°à¦¾à¦ªà§à¦¤ হয়েছে।" -#: ../src/daemon/main.c:519 +#: ../src/daemon/main.c:523 msgid "PolicyKit refuses acquire-high-priority privilege." msgstr "PolicyKit-র পকà§à¦· থেকে acquire-high-priority অধিকার পà§à¦°à¦¤à§à¦¯à¦¾à¦–à§à¦¯à¦¾à¦¤ হয়েছে।" -#: ../src/daemon/main.c:524 +#: ../src/daemon/main.c:528 msgid "PolicyKit grants us acquire-real-time privilege." msgstr "PolicyKit-র পকà§à¦· থেকে acquire-real-priority অধিকার পà§à¦°à¦¾à¦ªà§à¦¤ হয়েছে।" -#: ../src/daemon/main.c:527 +#: ../src/daemon/main.c:531 msgid "PolicyKit refuses acquire-real-time privilege." msgstr "PolicyKit-র পকà§à¦· থেকে acquire-real-priority অধিকার পà§à¦°à¦¤à§à¦¯à¦¾à¦–à§à¦¯à¦¾à¦¤ হয়েছে।" -#: ../src/daemon/main.c:556 +#: ../src/daemon/main.c:560 #, c-format msgid "" "Called SUID root and real-time and/or high-priority scheduling was requested " @@ -289,240 +258,250 @@ msgstr "" "অধিকার পà§à¦°à¦¾à¦ªà§à¦¤ করà§à¦¨, অথবা '%s' দলের সদসà§à¦¯ হন, অথবা সংশà§à¦²à¦¿à¦·à§à¦Ÿ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° জনà§à¦¯ " "RLIMIT_NICE/RLIMIT_RTPRIO রিসোরà§à¦¸à§‡à¦° সীমা বৃদà§à¦§à¦¿ করà§à¦¨à¥¤" -#: ../src/daemon/main.c:581 +#: ../src/daemon/main.c:585 msgid "" "High-priority scheduling enabled in configuration but not allowed by policy." msgstr "" "কনফিগারেশন দà§à¦¬à¦¾à¦°à¦¾ high-priority শিডিইলিংয়ের সà§à¦¬à¦¿à¦§à¦¾ উপলবà§à¦§ হলেও নিয়মনীতি দà§à¦¬à¦¾à¦°à¦¾ " "তা অনà§à¦®à§‹à¦¦à¦¿à¦¤ নয়।" -#: ../src/daemon/main.c:610 +#: ../src/daemon/main.c:614 msgid "Successfully increased RLIMIT_RTPRIO" msgstr "RLIMIT_RTPRIO সাফলà§à¦¯à§‡à¦° সাথে বৃদà§à¦§à¦¿ করা হয়েছে" -#: ../src/daemon/main.c:613 +#: ../src/daemon/main.c:617 #, c-format msgid "RLIMIT_RTPRIO failed: %s" msgstr "RLIMIT_RTPRIO বিফল: %s" -#: ../src/daemon/main.c:620 +#: ../src/daemon/main.c:624 msgid "Giving up CAP_NICE" msgstr "CAP_NICE বরà§à¦œà¦¨ করা হচà§à¦›à§‡" -#: ../src/daemon/main.c:627 +#: ../src/daemon/main.c:631 msgid "" "Real-time scheduling enabled in configuration but not allowed by policy." msgstr "" "কনফিগারেশন দà§à¦¬à¦¾à¦°à¦¾ real-time শিডিইলিংয়ের সà§à¦¬à¦¿à¦§à¦¾ উপলবà§à¦§ হলেও নিয়মনীতি দà§à¦¬à¦¾à¦°à¦¾ তা " "অনà§à¦®à§‹à¦¦à¦¿à¦¤ নয়।" -#: ../src/daemon/main.c:688 +#: ../src/daemon/main.c:692 msgid "Daemon not running" msgstr "ডেমন চলছে না" -#: ../src/daemon/main.c:690 +#: ../src/daemon/main.c:694 #, c-format msgid "Daemon running as PID %u" msgstr "PID %u রূপে ডেমন চলছে" -#: ../src/daemon/main.c:700 +#: ../src/daemon/main.c:704 #, c-format msgid "Failed to kill daemon: %s" msgstr "ডেমন kill করতে বà§à¦¯à¦°à§à¦¥: %s" -#: ../src/daemon/main.c:718 +#: ../src/daemon/main.c:722 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." msgstr "" "root পরিচয়ে à¦à¦‡ পà§à¦°à§‹à¦—à§à¦°à¦¾à¦®à¦Ÿà¦¿ সঞà§à¦šà¦¾à¦²à¦¿à¦¤ হওয়া উচিত নয় (যদি না --system উলà§à¦²à¦¿à¦–িত হয়)।" -#: ../src/daemon/main.c:720 +#: ../src/daemon/main.c:724 msgid "Root privileges required." msgstr "Root-র অধিকার আবশà§à¦¯à¦•à¥¤" -#: ../src/daemon/main.c:725 +#: ../src/daemon/main.c:729 msgid "--start not supported for system instances." msgstr "সিসà§à¦Ÿà§‡à¦® ইনসà§à¦Ÿà§à¦¯à¦¾à¦¨à§à¦¸à§‡à¦° কà§à¦·à§‡à¦¤à§à¦°à§‡ --start সমরà§à¦¥à¦¿à¦¤ নয়।" -#: ../src/daemon/main.c:730 +#: ../src/daemon/main.c:734 msgid "Running in system mode, but --disallow-exit not set!" msgstr "সিসà§à¦Ÿà§‡à¦® মোডে চলছে, কিনà§à¦¤à§ --disallow-exit নিরà§à¦§à¦¾à¦°à¦¿à¦¤ হয়নি!" -#: ../src/daemon/main.c:733 +#: ../src/daemon/main.c:737 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "সিসà§à¦Ÿà§‡à¦® মোডে চলছে, কিনà§à¦¤à§ --disallow-module-loading নিরà§à¦§à¦¾à¦°à¦¿à¦¤ হয়নি!" -#: ../src/daemon/main.c:736 +#: ../src/daemon/main.c:740 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "সিসà§à¦Ÿà§‡à¦® মোডে চলছে, SHM মোড বলপূরà§à¦¬à¦• নিষà§à¦•à§à¦°à¦¿à§Ÿ করা হচà§à¦›à§‡!" # http://linux.die.net/man/1/pulseaudio à¦à¦–ানে রেফারেনà§à¦¸ পাওয়া যাবে -#: ../src/daemon/main.c:741 +#: ../src/daemon/main.c:745 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "" "সিসà§à¦Ÿà§‡à¦® মোডে চলছে, করà§à¦®à¦¹à§€à¦¨ অবসà§à¦¥à¦¾à¦° জনà§à¦¯ ধারà§à¦¯ সময়সীমা পূরà§à¦¤à§€ পরে পà§à¦°à¦¸à§à¦¥à¦¾à¦¨à§‡à¦° বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾ " "বলপূরà§à¦¬à¦• নিষà§à¦•à§à¦°à¦¿à§Ÿ করা হচà§à¦›à§‡!" -#: ../src/daemon/main.c:768 +#: ../src/daemon/main.c:772 msgid "Failed to acquire stdio." msgstr "stdio পà§à¦°à¦¾à¦ªà§à¦¤ করতে বà§à¦¯à¦°à§à¦¥à¥¤" -#: ../src/daemon/main.c:774 +#: ../src/daemon/main.c:778 #, c-format msgid "pipe failed: %s" msgstr "পাইপ বিফল: %s" -#: ../src/daemon/main.c:779 +#: ../src/daemon/main.c:783 #, c-format msgid "fork() failed: %s" msgstr "fork() বিফল: %s" -#: ../src/daemon/main.c:793 +#: ../src/daemon/main.c:797 #, c-format msgid "read() failed: %s" msgstr "read() বিফল: %s" -#: ../src/daemon/main.c:799 +#: ../src/daemon/main.c:803 msgid "Daemon startup failed." msgstr "ডেমন আরমà§à¦ করতে বিফল।" -#: ../src/daemon/main.c:801 +#: ../src/daemon/main.c:805 msgid "Daemon startup successful." msgstr "সাফলà§à¦¯à§‡à¦° সাথে ডেমন আরমà§à¦ করা হয়েছে।" -#: ../src/daemon/main.c:871 +#: ../src/daemon/main.c:875 #, c-format msgid "This is PulseAudio %s" msgstr "à¦à¦Ÿà¦¿ PulseAudio %s" -#: ../src/daemon/main.c:872 +#: ../src/daemon/main.c:876 #, c-format msgid "Compilation host: %s" msgstr "কমà§à¦ªà¦¾à¦‡à¦²à§‡à¦¶à¦¨à§‡à¦° হোসà§à¦Ÿ: %s" -#: ../src/daemon/main.c:873 +#: ../src/daemon/main.c:877 #, c-format msgid "Compilation CFLAGS: %s" msgstr "কমà§à¦ªà¦¾à¦‡à¦²à¦¶à¦¨à§‡à¦° CFLAGS: %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:880 #, c-format msgid "Running on host: %s" msgstr "চিহà§à¦¨à¦¿à¦¤ হোসà§à¦Ÿà§‡ চলছে: %s" -#: ../src/daemon/main.c:879 +#: ../src/daemon/main.c:883 #, c-format msgid "Found %u CPUs." msgstr "%u CPU পাওয়া গিয়েছে।" -#: ../src/daemon/main.c:881 +#: ../src/daemon/main.c:885 #, c-format msgid "Page size is %lu bytes" msgstr "পেজের মাপ %lu বাইট" -#: ../src/daemon/main.c:884 +#: ../src/daemon/main.c:888 msgid "Compiled with Valgrind support: yes" msgstr "Valgrind সমরà§à¦¥à¦¨ সহ কমà§à¦ªà¦¾à¦‡à¦² করা হয়েছে: হà§à¦¯à¦¾à¦" -#: ../src/daemon/main.c:886 +#: ../src/daemon/main.c:890 msgid "Compiled with Valgrind support: no" msgstr "Valgrind সমরà§à¦¥à¦¨ সহ কমà§à¦ªà¦¾à¦‡à¦² করা হয়েছে: না" -#: ../src/daemon/main.c:889 +#: ../src/daemon/main.c:893 #, c-format msgid "Running in valgrind mode: %s" msgstr "valgrind মোডে চলছে: %s" -#: ../src/daemon/main.c:892 +#: ../src/daemon/main.c:896 msgid "Optimized build: yes" msgstr "সরà§à¦¬à¦¾à¦ªà§‡à¦•à§à¦· উতà§à¦¤à¦® বিলà§à¦¡: হà§à¦¯à¦¾à¦" -#: ../src/daemon/main.c:894 +#: ../src/daemon/main.c:898 msgid "Optimized build: no" msgstr "সরà§à¦¬à¦¾à¦ªà§‡à¦•à§à¦· উতà§à¦¤à¦® বিলà§à¦¡: না" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:902 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG বà§à¦¯à¦¾à¦–à§à¦¯à¦¾ করা হয়েছে, সকল অà§à¦¯à¦¾à¦¸à¦¾à¦°à§à¦Ÿ নিষà§à¦•à§à¦°à¦¿à§Ÿ করা হয়েছে।" -#: ../src/daemon/main.c:900 +#: ../src/daemon/main.c:904 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "FASTPATH বà§à¦¯à¦¾à¦–à§à¦¯à¦¾ করা হয়েছে, শà§à¦§à§à¦®à¦¾à¦¤à§à¦° ফাসà§à¦Ÿ পাথ অà§à¦¯à¦¾à¦¸à¦¾à¦°à§à¦Ÿ নিষà§à¦•à§à¦°à¦¿à§Ÿ করা হয়েছে।" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:906 msgid "All asserts enabled." msgstr "সকল অà§à¦¯à¦¾à¦¸à¦¾à¦°à§à¦Ÿ সকà§à¦°à¦¿à§Ÿ করা হয়েছে।" -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:910 msgid "Failed to get machine ID" msgstr "মেশিন ID পà§à¦°à¦¾à¦ªà§à¦¤ করতে বà§à¦¯à¦°à§à¦¥" -#: ../src/daemon/main.c:909 +#: ../src/daemon/main.c:913 #, c-format msgid "Machine ID is %s." msgstr "মেশিন ID হল %s।" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:917 #, fuzzy, c-format msgid "Session ID is %s." msgstr "মেশিন ID হল %s।" -#: ../src/daemon/main.c:919 +#: ../src/daemon/main.c:923 #, c-format msgid "Using runtime directory %s." msgstr "রান-টাইম ডিরেকà§à¦Ÿà¦°à¦¿ %s বà§à¦¯à¦¬à¦¹à¦¾à¦° করা হচà§à¦›à§‡à¥¤" -#: ../src/daemon/main.c:924 +#: ../src/daemon/main.c:928 #, c-format msgid "Using state directory %s." msgstr "অবসà§à¦¥à¦¾à¦¸à§‚চক ডিরেকà§à¦Ÿà¦°à¦¿ %s বà§à¦¯à¦¬à¦¹à¦¾à¦° করা হচà§à¦›à§‡à¥¤" -#: ../src/daemon/main.c:927 +#: ../src/daemon/main.c:931 #, c-format msgid "Running in system mode: %s" msgstr "সিসà§à¦Ÿà§‡à¦® মোডে চলছে: %s" -#: ../src/daemon/main.c:942 +#: ../src/daemon/main.c:934 +msgid "" +"OK, so you are running PA in system mode. Please note that you most likely " +"shouldn't be doing that.\n" +"If you do it nonetheless then it's your own fault if things don't work as " +"expected.\n" +"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " +"explanation why system mode is usually a bad idea." +msgstr "" + +#: ../src/daemon/main.c:951 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() বà§à¦¯à¦°à§à¦¥à¥¤" -#: ../src/daemon/main.c:954 +#: ../src/daemon/main.c:961 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "উচà§à¦š-রেসোলিউশনের নতà§à¦¨ টাইমার উপলবà§à¦§ রয়েছে! পরীকà§à¦·à¦¾ করে দেখà§à¦¨!" -#: ../src/daemon/main.c:956 +#: ../src/daemon/main.c:963 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" msgstr "উচà§à¦š-রেসোলিউশনের নতà§à¦¨ টাইমার সহ Linux সকà§à¦°à¦¿à§Ÿ করা বাঞà§à¦›à¦¨à§€à§Ÿ!" -#: ../src/daemon/main.c:970 +#: ../src/daemon/main.c:988 msgid "pa_core_new() failed." msgstr "pa_core_new() বà§à¦¯à¦°à§à¦¥à¥¤" -#: ../src/daemon/main.c:1032 +#: ../src/daemon/main.c:1050 msgid "Failed to initialize daemon." msgstr "ডেমন আরমà§à¦ করতে বà§à¦¯à¦°à§à¦¥à¥¤" -#: ../src/daemon/main.c:1037 +#: ../src/daemon/main.c:1055 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "" "লোড করা মডিউল বিনা ডেমন আরমà§à¦ করা হয়েছে à¦à¦¬à¦‚ কোনো করà§à¦® সঞà§à¦šà¦¾à¦²à¦¨ করা সমà§à¦à¦¬ নয়।" -#: ../src/daemon/main.c:1054 +#: ../src/daemon/main.c:1072 msgid "Daemon startup complete." msgstr "ডেমন আরমà§à¦ করা হয়েছে।" -#: ../src/daemon/main.c:1060 +#: ../src/daemon/main.c:1078 msgid "Daemon shutdown initiated." msgstr "ডেমন বনà§à¦§ করার পà§à¦°à¦•à§à¦°à¦¿à§Ÿà¦¾ আরমà§à¦ করা হয়েছে।" -#: ../src/daemon/main.c:1082 +#: ../src/daemon/main.c:1100 msgid "Daemon terminated." msgstr "ডেমন বনà§à¦§ করা হয়েছে।" -#: ../src/daemon/cmdline.c:121 +#: ../src/daemon/cmdline.c:115 #, c-format msgid "" "%s [options]\n" @@ -674,15 +653,15 @@ msgstr "" "\n" " -n ডিফলà§à¦Ÿ সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ ফাইল লোড করা হবে না\n" -#: ../src/daemon/cmdline.c:252 +#: ../src/daemon/cmdline.c:247 msgid "--daemonize expects boolean argument" msgstr "--daemonize দà§à¦¬à¦¾à¦°à¦¾ বà§à¦²à¦¿à§Ÿà¦¾à¦¨ আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ পà§à¦°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤" -#: ../src/daemon/cmdline.c:259 +#: ../src/daemon/cmdline.c:254 msgid "--fail expects boolean argument" msgstr "--fail দà§à¦¬à¦¾à¦°à¦¾ বà§à¦²à¦¿à§Ÿà¦¾à¦¨ আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ পà§à¦°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤" -#: ../src/daemon/cmdline.c:269 +#: ../src/daemon/cmdline.c:264 msgid "" "--log-level expects log level argument (either numeric in range 0..4 or one " "of debug, info, notice, warn, error)." @@ -690,52 +669,52 @@ msgstr "" "--log-level-র কà§à¦·à§‡à¦¤à§à¦°à§‡ লগ সà§à¦¤à¦°à§‡à¦° আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ পà§à¦°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤ (0..4 সীমার মধà§à¦¯à§‡ à¦à¦•à¦Ÿà¦¿ সংখà§à¦¯à¦¾ " "অথবা debug, info, notice, warn, ও error-র মধà§à¦¯à§‡ à¦à¦•à¦Ÿà¦¿ মান)।" -#: ../src/daemon/cmdline.c:281 +#: ../src/daemon/cmdline.c:276 msgid "--high-priority expects boolean argument" msgstr "--high-priority দà§à¦¬à¦¾à¦°à¦¾ বà§à¦²à¦¿à§Ÿà¦¾à¦¨ আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ পà§à¦°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤" -#: ../src/daemon/cmdline.c:288 +#: ../src/daemon/cmdline.c:283 msgid "--realtime expects boolean argument" msgstr "--realtime দà§à¦¬à¦¾à¦°à¦¾ বà§à¦²à¦¿à§Ÿà¦¾à¦¨ আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ পà§à¦°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤" -#: ../src/daemon/cmdline.c:295 +#: ../src/daemon/cmdline.c:290 msgid "--disallow-module-loading expects boolean argument" msgstr "--disallow-module-loading দà§à¦¬à¦¾à¦°à¦¾ বà§à¦²à¦¿à§Ÿà¦¾à¦¨ আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ পà§à¦°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤" -#: ../src/daemon/cmdline.c:302 +#: ../src/daemon/cmdline.c:297 msgid "--disallow-exit expects boolean argument" msgstr "--disallow-exit দà§à¦¬à¦¾à¦°à¦¾ বà§à¦²à¦¿à§Ÿà¦¾à¦¨ আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ পà§à¦°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤" -#: ../src/daemon/cmdline.c:309 +#: ../src/daemon/cmdline.c:304 msgid "--use-pid-file expects boolean argument" msgstr "--use-pid-file দà§à¦¬à¦¾à¦°à¦¾ বà§à¦²à¦¿à§Ÿà¦¾à¦¨ আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ পà§à¦°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤" -#: ../src/daemon/cmdline.c:326 +#: ../src/daemon/cmdline.c:321 msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgstr "লগের উদà§à¦¦à¦¿à¦·à§à¦Ÿ সà§à¦¥à¦¨ বৈধ নয়: 'syslog', 'stderr' অথবা 'auto' পà§à¦°à§Ÿà§‹à¦— করà§à¦¨à¥¤" -#: ../src/daemon/cmdline.c:333 +#: ../src/daemon/cmdline.c:328 msgid "--log-time expects boolean argument" msgstr "--log-time দà§à¦¬à¦¾à¦°à¦¾ বà§à¦²à¦¿à§Ÿà¦¾à¦¨ আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ পà§à¦°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤" -#: ../src/daemon/cmdline.c:340 +#: ../src/daemon/cmdline.c:335 msgid "--log-meta expects boolean argument" msgstr "--log-meta দà§à¦¬à¦¾à¦°à¦¾ বà§à¦²à¦¿à§Ÿà¦¾à¦¨ আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ পà§à¦°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤" -#: ../src/daemon/cmdline.c:359 +#: ../src/daemon/cmdline.c:354 #, c-format msgid "Invalid resample method '%s'." msgstr "রি-সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦² পদà§à¦§à¦¤à¦¿ '%s' বৈধ নয়।" -#: ../src/daemon/cmdline.c:366 +#: ../src/daemon/cmdline.c:361 msgid "--system expects boolean argument" msgstr "--system দà§à¦¬à¦¾à¦°à¦¾ বà§à¦²à¦¿à§Ÿà¦¾à¦¨ আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ পà§à¦°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤" -#: ../src/daemon/cmdline.c:373 +#: ../src/daemon/cmdline.c:368 msgid "--no-cpu-limit expects boolean argument" msgstr "--no-cpu-limit দà§à¦¬à¦¾à¦°à¦¾ বà§à¦²à¦¿à§Ÿà¦¾à¦¨ আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ পà§à¦°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤" -#: ../src/daemon/cmdline.c:380 +#: ../src/daemon/cmdline.c:375 msgid "--disable-shm expects boolean argument" msgstr "--disable-shm দà§à¦¬à¦¾à¦°à¦¾ বà§à¦²à¦¿à§Ÿà¦¾à¦¨ আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ পà§à¦°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤" @@ -774,77 +753,82 @@ msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦° পদà§à¦§à¦¤à¦¿: %s\n" msgid "Load Once: %s\n" msgstr "à¦à¦•à¦¬à¦¾à¦° লোড করা হবে: %s\n" -#: ../src/daemon/dumpmodules.c:77 +#: ../src/daemon/dumpmodules.c:75 +#, c-format +msgid "DEPRECATION WARNING: %s\n" +msgstr "" + +#: ../src/daemon/dumpmodules.c:79 #, c-format msgid "Path: %s\n" msgstr "পাথ: %s\n" -#: ../src/daemon/daemon-conf.c:215 +#: ../src/daemon/daemon-conf.c:216 #, c-format msgid "[%s:%u] Invalid log target '%s'." msgstr "[%s:%u] লগ টারà§à¦—েট '%s' বৈধ নয়।" -#: ../src/daemon/daemon-conf.c:231 +#: ../src/daemon/daemon-conf.c:232 #, c-format msgid "[%s:%u] Invalid log level '%s'." msgstr "[%s:%u] লগের সà§à¦¤à¦° '%s' বৈধ নয়।" -#: ../src/daemon/daemon-conf.c:247 +#: ../src/daemon/daemon-conf.c:248 #, c-format msgid "[%s:%u] Invalid resample method '%s'." msgstr "[%s:%u] রি-সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦² পদà§à¦§à¦¤à¦¿ '%s' বৈধ নয়।" -#: ../src/daemon/daemon-conf.c:270 +#: ../src/daemon/daemon-conf.c:271 #, c-format msgid "[%s:%u] Invalid rlimit '%s'." msgstr "[%s:%u] rlimit '%s' বৈধ নয়।" -#: ../src/daemon/daemon-conf.c:277 +#: ../src/daemon/daemon-conf.c:278 #, c-format msgid "[%s:%u] rlimit not supported on this platform." msgstr "[%s:%u] à¦à¦‡ পà§à¦²à§à¦¯à¦¾à¦Ÿà¦«à¦°à§à¦®à§‡ rlimit সমরà§à¦¥à¦¿à¦¤ নয়।" -#: ../src/daemon/daemon-conf.c:293 +#: ../src/daemon/daemon-conf.c:294 #, c-format msgid "[%s:%u] Invalid sample format '%s'." msgstr "[%s:%u] সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦²à§‡à¦° বিনà§à¦¯à¦¾à¦¸ '%s' বৈধ নয়।" -#: ../src/daemon/daemon-conf.c:311 +#: ../src/daemon/daemon-conf.c:312 #, c-format msgid "[%s:%u] Invalid sample rate '%s'." msgstr "[%s:%u] সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦²à§‡à¦° মাতà§à¦°à¦¾ '%s' বৈধ নয়।" -#: ../src/daemon/daemon-conf.c:335 +#: ../src/daemon/daemon-conf.c:336 #, c-format msgid "[%s:%u] Invalid sample channels '%s'." msgstr "[%s:%u] সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦²à§‡à¦° চà§à¦¯à¦¾à¦¨à§‡à¦² '%s' বৈধ নয়" -#: ../src/daemon/daemon-conf.c:353 +#: ../src/daemon/daemon-conf.c:354 #, c-format msgid "[%s:%u] Invalid channel map '%s'." msgstr "[%s:%u] চà§à¦¯à¦¾à¦¨à§‡à¦² মà§à¦¯à¦¾à¦ª '%s' বৈধ নয়।" -#: ../src/daemon/daemon-conf.c:371 +#: ../src/daemon/daemon-conf.c:372 #, c-format msgid "[%s:%u] Invalid number of fragments '%s'." msgstr "[%s:%u] অংশ সংখà§à¦¯à¦¾ '%s' বৈধ নয়।" -#: ../src/daemon/daemon-conf.c:389 +#: ../src/daemon/daemon-conf.c:390 #, c-format msgid "[%s:%u] Invalid fragment size '%s'." msgstr "[%s:%u] অংশের মাপ '%s' বৈধ নয়।" -#: ../src/daemon/daemon-conf.c:407 +#: ../src/daemon/daemon-conf.c:408 #, c-format msgid "[%s:%u] Invalid nice level '%s'." msgstr "[%s:%u] nice সà§à¦¤à¦° '%s' বৈধ নয়।" -#: ../src/daemon/daemon-conf.c:522 +#: ../src/daemon/daemon-conf.c:524 #, c-format msgid "Failed to open configuration file: %s" msgstr "কনফিগারেশন ফাইল খà§à¦²à¦¤à§‡ বà§à¦¯à¦°à§à¦¥: %s" -#: ../src/daemon/daemon-conf.c:538 +#: ../src/daemon/daemon-conf.c:540 msgid "" "The specified default channel map has a different number of channels than " "the specified default number of channels." @@ -895,237 +879,237 @@ msgstr "" "সিসà§à¦Ÿà§‡à¦®à§‡à¦° নিয়ম-নীতির কারণে PulseAudio দà§à¦¬à¦¾à¦°à¦¾ রিয়েল-টাইম শিডিউলিং পà§à¦°à§Ÿà§‹à¦— করা " "সমà§à¦à¦¬ হচà§à¦›à§‡ না।" -#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804 +#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "মোনো" -#: ../src/pulse/channelmap.c:105 +#: ../src/pulse/channelmap.c:107 msgid "Front Center" msgstr "সামনে কেনà§à¦¦à§à¦°à¦¸à§à¦¥à¦¿à¦¤" -#: ../src/pulse/channelmap.c:106 +#: ../src/pulse/channelmap.c:108 msgid "Front Left" msgstr "সামনে বাà¦à¦¦à¦¿à¦•à§‡" -#: ../src/pulse/channelmap.c:107 +#: ../src/pulse/channelmap.c:109 msgid "Front Right" msgstr "সামনে ডানদিকে" -#: ../src/pulse/channelmap.c:109 +#: ../src/pulse/channelmap.c:111 msgid "Rear Center" msgstr "পিছনে কেনà§à¦¦à§à¦°à¦¸à§à¦¥à¦¿à¦¤" -#: ../src/pulse/channelmap.c:110 +#: ../src/pulse/channelmap.c:112 msgid "Rear Left" msgstr "পিছনে বাà¦à¦¦à¦¿à¦•à§‡" -#: ../src/pulse/channelmap.c:111 +#: ../src/pulse/channelmap.c:113 msgid "Rear Right" msgstr "পিছনে ডানদিকে" -#: ../src/pulse/channelmap.c:113 +#: ../src/pulse/channelmap.c:115 msgid "Low Frequency Emmiter" msgstr "কম ফà§à¦°à¦¿à¦•à§‹à§Ÿà§‡à¦¨à§à¦¸à¦¿à¦° নিঃসরণকারী" -#: ../src/pulse/channelmap.c:115 +#: ../src/pulse/channelmap.c:117 msgid "Front Left-of-center" msgstr "সামনে কেনà§à¦¦à§à¦°à§‡à¦°-বাà¦à¦¦à¦¿à¦•à§‡" -#: ../src/pulse/channelmap.c:116 +#: ../src/pulse/channelmap.c:118 msgid "Front Right-of-center" msgstr "সামনে কেনà§à¦¦à§à¦°à§‡à¦°-ডানদিকে" -#: ../src/pulse/channelmap.c:118 +#: ../src/pulse/channelmap.c:120 msgid "Side Left" msgstr "পাশে বাà¦à¦¦à¦¿à¦•à§‡" -#: ../src/pulse/channelmap.c:119 +#: ../src/pulse/channelmap.c:121 msgid "Side Right" msgstr "পাশে ডানদিকে" -#: ../src/pulse/channelmap.c:121 +#: ../src/pulse/channelmap.c:123 msgid "Auxiliary 0" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ০" -#: ../src/pulse/channelmap.c:122 +#: ../src/pulse/channelmap.c:124 msgid "Auxiliary 1" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ১" -#: ../src/pulse/channelmap.c:123 +#: ../src/pulse/channelmap.c:125 msgid "Auxiliary 2" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ২" -#: ../src/pulse/channelmap.c:124 +#: ../src/pulse/channelmap.c:126 msgid "Auxiliary 3" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ৩" -#: ../src/pulse/channelmap.c:125 +#: ../src/pulse/channelmap.c:127 msgid "Auxiliary 4" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ৪" -#: ../src/pulse/channelmap.c:126 +#: ../src/pulse/channelmap.c:128 msgid "Auxiliary 5" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ৫" -#: ../src/pulse/channelmap.c:127 +#: ../src/pulse/channelmap.c:129 msgid "Auxiliary 6" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ৬" -#: ../src/pulse/channelmap.c:128 +#: ../src/pulse/channelmap.c:130 msgid "Auxiliary 7" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ à§" -#: ../src/pulse/channelmap.c:129 +#: ../src/pulse/channelmap.c:131 msgid "Auxiliary 8" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ৮" -#: ../src/pulse/channelmap.c:130 +#: ../src/pulse/channelmap.c:132 msgid "Auxiliary 9" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ৯" -#: ../src/pulse/channelmap.c:131 +#: ../src/pulse/channelmap.c:133 msgid "Auxiliary 10" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ১০" -#: ../src/pulse/channelmap.c:132 +#: ../src/pulse/channelmap.c:134 msgid "Auxiliary 11" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ১১" -#: ../src/pulse/channelmap.c:133 +#: ../src/pulse/channelmap.c:135 msgid "Auxiliary 12" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ১২" -#: ../src/pulse/channelmap.c:134 +#: ../src/pulse/channelmap.c:136 msgid "Auxiliary 13" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ১৩" -#: ../src/pulse/channelmap.c:135 +#: ../src/pulse/channelmap.c:137 msgid "Auxiliary 14" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ১৪" -#: ../src/pulse/channelmap.c:136 +#: ../src/pulse/channelmap.c:138 msgid "Auxiliary 15" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ১৫" -#: ../src/pulse/channelmap.c:137 +#: ../src/pulse/channelmap.c:139 msgid "Auxiliary 16" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ১৬" -#: ../src/pulse/channelmap.c:138 +#: ../src/pulse/channelmap.c:140 msgid "Auxiliary 17" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ১à§" -#: ../src/pulse/channelmap.c:139 +#: ../src/pulse/channelmap.c:141 msgid "Auxiliary 18" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ১৮" -#: ../src/pulse/channelmap.c:140 +#: ../src/pulse/channelmap.c:142 msgid "Auxiliary 19" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ১৯" -#: ../src/pulse/channelmap.c:141 +#: ../src/pulse/channelmap.c:143 msgid "Auxiliary 20" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ২০" -#: ../src/pulse/channelmap.c:142 +#: ../src/pulse/channelmap.c:144 msgid "Auxiliary 21" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ২১" -#: ../src/pulse/channelmap.c:143 +#: ../src/pulse/channelmap.c:145 msgid "Auxiliary 22" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ২২" -#: ../src/pulse/channelmap.c:144 +#: ../src/pulse/channelmap.c:146 msgid "Auxiliary 23" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ২৩" -#: ../src/pulse/channelmap.c:145 +#: ../src/pulse/channelmap.c:147 msgid "Auxiliary 24" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ২৪" -#: ../src/pulse/channelmap.c:146 +#: ../src/pulse/channelmap.c:148 msgid "Auxiliary 25" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ২৫" -#: ../src/pulse/channelmap.c:147 +#: ../src/pulse/channelmap.c:149 msgid "Auxiliary 26" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ২৬" -#: ../src/pulse/channelmap.c:148 +#: ../src/pulse/channelmap.c:150 msgid "Auxiliary 27" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ২à§" -#: ../src/pulse/channelmap.c:149 +#: ../src/pulse/channelmap.c:151 msgid "Auxiliary 28" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ২৮" -#: ../src/pulse/channelmap.c:150 +#: ../src/pulse/channelmap.c:152 msgid "Auxiliary 29" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ২৯" -#: ../src/pulse/channelmap.c:151 +#: ../src/pulse/channelmap.c:153 msgid "Auxiliary 30" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ৩০" -#: ../src/pulse/channelmap.c:152 +#: ../src/pulse/channelmap.c:154 msgid "Auxiliary 31" msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ৩১" -#: ../src/pulse/channelmap.c:154 +#: ../src/pulse/channelmap.c:156 msgid "Top Center" msgstr "উপরে কেনà§à¦¦à§à¦°à¦¸à§à¦¥à¦¿à¦¤" -#: ../src/pulse/channelmap.c:156 +#: ../src/pulse/channelmap.c:158 msgid "Top Front Center" msgstr "উপরে সামনে কেনà§à¦¦à§à¦°à¦¸à§à¦¥à¦¿à¦¤" -#: ../src/pulse/channelmap.c:157 +#: ../src/pulse/channelmap.c:159 msgid "Top Front Left" msgstr "উপরে সামনে বাà¦à¦¦à¦¿à¦•à§‡" -#: ../src/pulse/channelmap.c:158 +#: ../src/pulse/channelmap.c:160 msgid "Top Front Right" msgstr "উপরে সামনে ডানদিকে" -#: ../src/pulse/channelmap.c:160 +#: ../src/pulse/channelmap.c:162 msgid "Top Rear Center" msgstr "উপরে পিছনে কেনà§à¦¦à§à¦°à¦¸à§à¦¥à¦¿à¦¤" -#: ../src/pulse/channelmap.c:161 +#: ../src/pulse/channelmap.c:163 msgid "Top Rear Left" msgstr "উপরে পিছনে বাà¦à¦¦à¦¿à¦•à§‡" -#: ../src/pulse/channelmap.c:162 +#: ../src/pulse/channelmap.c:164 msgid "Top Rear Right" msgstr "উপরে পিছনে ডানদিকে" -#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167 -#: ../src/pulse/volume.c:170 ../src/pulse/volume.c:196 -#: ../src/pulse/volume.c:216 ../src/pulse/volume.c:246 +#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167 +#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265 +#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315 msgid "(invalid)" msgstr "(অবৈধ)" -#: ../src/pulse/channelmap.c:808 +#: ../src/pulse/channelmap.c:751 msgid "Stereo" msgstr "সà§à¦Ÿà¦¿à¦°à¦¿à¦“" -#: ../src/pulse/channelmap.c:813 +#: ../src/pulse/channelmap.c:756 msgid "Surround 4.0" msgstr "সারাউনà§à¦¡ ৪.০" -#: ../src/pulse/channelmap.c:819 +#: ../src/pulse/channelmap.c:762 msgid "Surround 4.1" msgstr "সারাউনà§à¦¡ ৪.১" -#: ../src/pulse/channelmap.c:825 +#: ../src/pulse/channelmap.c:768 msgid "Surround 5.0" msgstr "সারাউনà§à¦¡ ৫.০" -#: ../src/pulse/channelmap.c:831 +#: ../src/pulse/channelmap.c:774 msgid "Surround 5.1" msgstr "সারাউনà§à¦¡ ৫.১" -#: ../src/pulse/channelmap.c:838 +#: ../src/pulse/channelmap.c:781 msgid "Surround 7.1" msgstr "সারাউনà§à¦¡ à§.১" @@ -1286,177 +1270,172 @@ msgstr "waitpid(): %s" msgid "Received message for unknown extension '%s'" msgstr "অজানা à¦à¦•à§à¦¸à¦Ÿà§‡à¦¨à¦¶à¦¨ '%s'-র জনà§à¦¯ বারà§à¦¤à¦¾ পà§à¦°à¦¾à¦ªà§à¦¤ হয়েছে" -#: ../src/utils/pacat.c:94 +# drain a stream = যখন সà§à¦Ÿà§à¦°à¦¿à¦®à§‡à¦° মধà§à¦¯à§‡ উপসà§à¦¥à¦¿à¦¤ সকল তথà§à¦¯ আহরণ করা হয় ও সà§à¦Ÿà§à¦°à¦¿à¦®à¦Ÿà¦¿ সমà§à¦ªà§‚রà§à¦£à¦°à§‚পে ফাà¦à¦•à¦¾ হয়ে যায়। +#: ../src/utils/pacat.c:107 +#, c-format +msgid "Failed to drain stream: %s\n" +msgstr "সà§à¦Ÿà§à¦°à¦¿à¦® ডà§à¦°à§‡à¦‡à¦¨ (অরà§à¦¥à¦¾à§Ž ফাà¦à¦•à¦¾) করতে বà§à¦¯à¦°à§à¦¥: %s\n" + +#: ../src/utils/pacat.c:112 +msgid "Playback stream drained.\n" +msgstr "পà§à¦²à§‡-বà§à¦¯à¦¾à¦• সà§à¦Ÿà§à¦°à¦¿à¦® ফাà¦à¦•à¦¾ করা হয়েছে।\n" + +#: ../src/utils/pacat.c:122 +msgid "Draining connection to server.\n" +msgstr "সারà§à¦à¦¾à¦°à§‡à¦° সাথে সà§à¦¥à¦¾à¦ªà¦¿à¦¤ সংযোগ ফাà¦à¦•à¦¾ করা হচà§à¦›à§‡à¥¤\n" + +#: ../src/utils/pacat.c:135 +#, c-format +msgid "pa_stream_drain(): %s\n" +msgstr "pa_stream_drain(): %s\n" + +#: ../src/utils/pacat.c:158 #, c-format msgid "pa_stream_write() failed: %s\n" msgstr "pa_stream_write() বà§à¦¯à¦°à§à¦¥: %s\n" -#: ../src/utils/pacat.c:133 +#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 #, c-format msgid "pa_stream_peek() failed: %s\n" msgstr "pa_stream_peek() বà§à¦¯à¦°à§à¦¥: %s\n" -#: ../src/utils/pacat.c:169 -#, c-format +#: ../src/utils/pacat.c:302 msgid "Stream successfully created.\n" msgstr "সাফলà§à¦¯à§‡à¦° সাথে সà§à¦Ÿà§à¦°à¦¿à¦® নিরà§à¦®à¦¿à¦¤ হয়েছে।\n" -#: ../src/utils/pacat.c:172 +#: ../src/utils/pacat.c:305 #, c-format msgid "pa_stream_get_buffer_attr() failed: %s\n" msgstr "pa_stream_get_buffer_attr() বà§à¦¯à¦°à§à¦¥: %s\n" -#: ../src/utils/pacat.c:176 +#: ../src/utils/pacat.c:309 #, c-format msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgstr "বাফারের মাপ: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:179 +#: ../src/utils/pacat.c:312 #, c-format msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgstr "বাফারের মাপ: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:183 +#: ../src/utils/pacat.c:316 #, c-format msgid "Using sample spec '%s', channel map '%s'.\n" msgstr "সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦²à§‡à¦° spec '%s', ও চà§à¦¯à¦¾à¦¨à§‡à¦² মà§à¦¯à¦¾à¦ª '%s' বà§à¦¯à¦¬à¦¹à¦¾à¦° করা হচà§à¦›à§‡à¥¤\n" -#: ../src/utils/pacat.c:187 +#: ../src/utils/pacat.c:320 #, c-format msgid "Connected to device %s (%u, %ssuspended).\n" msgstr "ডিà¦à¦¾à¦‡à¦¸ %s-র সাথে সংযোগ করা হয়েছে (%u, %ssuspended)।\n" -#: ../src/utils/pacat.c:197 +#: ../src/utils/pacat.c:330 #, c-format msgid "Stream error: %s\n" msgstr "ষà§à¦Ÿà§à¦°à¦¿à¦® সংকà§à¦°à¦¾à¦¨à§à¦¤ তà§à¦°à§à¦Ÿà¦¿: %s\n" -#: ../src/utils/pacat.c:207 +#: ../src/utils/pacat.c:340 #, c-format msgid "Stream device suspended.%s \n" msgstr "সà§à¦Ÿà§à¦°à¦¿à¦® ডিà¦à¦¾à¦‡à¦¸ সà§à¦¥à¦—িত করা হয়েছে। %s \n" -#: ../src/utils/pacat.c:209 +#: ../src/utils/pacat.c:342 #, c-format msgid "Stream device resumed.%s \n" msgstr "সà§à¦Ÿà§à¦°à¦¿à¦® ডিà¦à¦¾à¦‡à¦¸ পà§à¦¨à¦°à¦¾à¦°à¦®à§à¦ করা হয়েছে। %s \n" # underrun = ধীর গতির সà§à¦Ÿà§à¦°à¦¿à¦® -#: ../src/utils/pacat.c:217 +#: ../src/utils/pacat.c:350 #, c-format msgid "Stream underrun.%s \n" msgstr "ধীর গতির সà§à¦Ÿà§à¦°à¦¿à¦®.%s \n" # overrun=the stream fills up the allocated buffer space and there is no more space for it -#: ../src/utils/pacat.c:224 +#: ../src/utils/pacat.c:357 #, c-format msgid "Stream overrun.%s \n" msgstr "সà§à¦Ÿà§à¦°à¦¿à¦® মাতà§à¦°à¦¾ অতিকà§à¦°à¦® করেছে।%s \n" -#: ../src/utils/pacat.c:231 +#: ../src/utils/pacat.c:364 #, c-format msgid "Stream started.%s \n" msgstr "সà§à¦Ÿà§à¦°à¦¿à¦® আরমà§à¦ করা হয়েছে। %s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 #, c-format msgid "Stream moved to device %s (%u, %ssuspended).%s \n" msgstr "%s ডিà¦à¦¾à¦‡à¦¸à§‡ সà§à¦Ÿà§à¦°à¦¿à¦® সà§à¦¥à¦¾à¦¨à¦¾à¦¨à§à¦¤à¦° করা হয়েছে (%u, %ssuspended)।%s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 msgid "not " msgstr "না " -#: ../src/utils/pacat.c:245 +#: ../src/utils/pacat.c:378 #, c-format msgid "Stream buffer attributes changed.%s \n" msgstr "সà§à¦Ÿà§à¦°à¦¿à¦® বাফারের অà§à¦¯à¦¾à¦Ÿà§à¦°à¦¿à¦¬à¦¿à¦‰à¦Ÿ পরিবরà§à¦¤à¦¿à¦¤ হয়েছে। %s \n" -#: ../src/utils/pacat.c:278 +#: ../src/utils/pacat.c:411 #, c-format msgid "Connection established.%s \n" msgstr "সংযোগ সà§à¦¥à¦¾à¦ªà¦¿à¦¤ হয়েছে।%s \n" -#: ../src/utils/pacat.c:281 +#: ../src/utils/pacat.c:414 #, c-format msgid "pa_stream_new() failed: %s\n" msgstr "pa_stream_new() বà§à¦¯à¦°à§à¦¥: %s\n" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:442 #, c-format msgid "pa_stream_connect_playback() failed: %s\n" msgstr "pa_stream_connect_playback() বà§à¦¯à¦°à§à¦¥: %s\n" -#: ../src/utils/pacat.c:315 +#: ../src/utils/pacat.c:448 #, c-format msgid "pa_stream_connect_record() failed: %s\n" msgstr "pa_stream_connect_record() বà§à¦¯à¦°à§à¦¥: %s\n" -#: ../src/utils/pacat.c:329 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:762 ../src/utils/paplay.c:183 +#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 #, c-format msgid "Connection failure: %s\n" msgstr "সংযোগ বিফল: %s\n" -# drain a stream = যখন সà§à¦Ÿà§à¦°à¦¿à¦®à§‡à¦° মধà§à¦¯à§‡ উপসà§à¦¥à¦¿à¦¤ সকল তথà§à¦¯ আহরণ করা হয় ও সà§à¦Ÿà§à¦°à¦¿à¦®à¦Ÿà¦¿ সমà§à¦ªà§‚রà§à¦£à¦°à§‚পে ফাà¦à¦•à¦¾ হয়ে যায়। -#: ../src/utils/pacat.c:349 ../src/utils/paplay.c:75 -#, c-format -msgid "Failed to drain stream: %s\n" -msgstr "সà§à¦Ÿà§à¦°à¦¿à¦® ডà§à¦°à§‡à¦‡à¦¨ (অরà§à¦¥à¦¾à§Ž ফাà¦à¦•à¦¾) করতে বà§à¦¯à¦°à§à¦¥: %s\n" - -#: ../src/utils/pacat.c:354 ../src/utils/paplay.c:80 -#, c-format -msgid "Playback stream drained.\n" -msgstr "পà§à¦²à§‡-বà§à¦¯à¦¾à¦• সà§à¦Ÿà§à¦°à¦¿à¦® ফাà¦à¦•à¦¾ করা হয়েছে।\n" - -#: ../src/utils/pacat.c:364 ../src/utils/paplay.c:92 -#, c-format -msgid "Draining connection to server.\n" -msgstr "সারà§à¦à¦¾à¦°à§‡à¦° সাথে সà§à¦¥à¦¾à¦ªà¦¿à¦¤ সংযোগ ফাà¦à¦•à¦¾ করা হচà§à¦›à§‡à¥¤\n" - -#: ../src/utils/pacat.c:390 -#, c-format +#: ../src/utils/pacat.c:495 msgid "Got EOF.\n" msgstr "ফাইলের সমাপà§à¦¤à¦¿ সনাকà§à¦¤ হয়েছে। \n" -#: ../src/utils/pacat.c:396 -#, c-format -msgid "pa_stream_drain(): %s\n" -msgstr "pa_stream_drain(): %s\n" - -#: ../src/utils/pacat.c:406 +#: ../src/utils/pacat.c:500 #, c-format msgid "read() failed: %s\n" msgstr "read() বà§à¦¯à¦°à§à¦¥: %s\n" -#: ../src/utils/pacat.c:438 +#: ../src/utils/pacat.c:532 #, c-format msgid "write() failed: %s\n" msgstr "write() বà§à¦¯à¦°à§à¦¥: %s\n" -#: ../src/utils/pacat.c:459 -#, c-format +#: ../src/utils/pacat.c:553 msgid "Got signal, exiting.\n" msgstr "সিগনà§à¦¯à¦¾à¦² পà§à¦°à¦¾à¦ªà§à¦¤ হয়েছে, পà§à¦°à¦¸à§à¦¥à¦¾à¦¨ করা হবে।\n" # latency here = delay (technical term -#: ../src/utils/pacat.c:473 +#: ../src/utils/pacat.c:567 #, c-format msgid "Failed to get latency: %s\n" msgstr "লেটেনà§à¦¸à¦¿à¦° পরিমাণ পà§à¦°à¦¾à¦ªà§à¦¤ করতে বà§à¦¯à¦°à§à¦¥: %s\n" -#: ../src/utils/pacat.c:478 +#: ../src/utils/pacat.c:572 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "সময়: %0.3f সেকেনà§à¦¡; লেটেনà§à¦¸à¦¿: %0.0f usec. \r" -#: ../src/utils/pacat.c:498 +#: ../src/utils/pacat.c:592 #, c-format msgid "pa_stream_update_timing_info() failed: %s\n" msgstr "pa_stream_update_timing_info() বà§à¦¯à¦°à§à¦¥: %s\n" -#: ../src/utils/pacat.c:511 -#, c-format +#: ../src/utils/pacat.c:605 +#, fuzzy, c-format msgid "" "%s [options]\n" "\n" @@ -1482,8 +1461,10 @@ msgid "" "44100)\n" " --format=SAMPLEFORMAT The sample type, one of s16le, " "s16be, u8, float32le,\n" -" float32be, ulaw, alaw, s32le, s32be " -"(defaults to s16ne)\n" +" float32be, ulaw, alaw, s32le, s32be, " +"s24le, s24be,\n" +" s24-32le, s24-32be (defaults to " +"s16ne)\n" " --channels=CHANNELS The number of channels, 1 for mono, " "2 for stereo\n" " (defaults to 2)\n" @@ -1506,6 +1487,11 @@ msgid "" "bytes.\n" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" +" --property=PROPERTY=VALUE Set the specified property to the " +"specified value.\n" +" --raw Record/play raw PCM data.\n" +" --file-format=FFORMAT Record/play formatted PCM data.\n" +" --list-file-formats List available file formats.\n" msgstr "" "%s [options]\n" "\n" @@ -1553,7 +1539,7 @@ msgstr "" " --process-time=BYTES বাইট অনà§à¦¯à¦¾à§Ÿà§€, পà§à¦°à¦¤à¦¿à¦Ÿà¦¿ অনà§à¦°à§‹à¦§à§‡à¦° জনà§à¦¯ " "নিরà§à¦§à¦¾à¦°à¦¿à¦¤ পà§à¦°à¦¸à§‡à¦¸ সময় অনà§à¦°à§‹à¦§ জানিয়ে দিন।\n" -#: ../src/utils/pacat.c:612 +#: ../src/utils/pacat.c:727 #, c-format msgid "" "pacat %s\n" @@ -1564,88 +1550,133 @@ msgstr "" "libpulse সহযোগে কমà§à¦ªà¦¾à¦‡à¦² করা হয়েছে %s\n" "libpulse-র সাথে যà§à¦•à§à¦¤ %s\n" -#: ../src/utils/pacat.c:669 +#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "চà§à¦¯à¦¾à¦¨à§‡à¦² মà§à¦¯à¦¾à¦ª '%s' বৈধ নয়\n" + +#: ../src/utils/pacat.c:776 +#, fuzzy, c-format +msgid "Invalid stream name '%s'\n" +msgstr "রি-সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦² পদà§à¦§à¦¤à¦¿ '%s' বৈধ নয়।" + +#: ../src/utils/pacat.c:813 #, c-format msgid "Invalid channel map '%s'\n" msgstr "চà§à¦¯à¦¾à¦¨à§‡à¦² মà§à¦¯à¦¾à¦ª '%s' বৈধ নয়\n" -#: ../src/utils/pacat.c:698 +#: ../src/utils/pacat.c:842 #, c-format msgid "Invalid latency specification '%s'\n" msgstr "লেটেনà§à¦¸à¦¿à¦° জনà§à¦¯ নিরà§à¦§à¦¾à¦°à¦¿à¦¤ বৈশিষà§à¦Ÿà§à¦¯ '%s' বৈধ নয়\n" -#: ../src/utils/pacat.c:705 +#: ../src/utils/pacat.c:849 #, c-format msgid "Invalid process time specification '%s'\n" msgstr "পà§à¦°à¦¸à§‡à¦¸à§‡à¦° সময়ের বৈশিষà§à¦Ÿà§à¦¯ '%s' বৈধ নয়\n" -#: ../src/utils/pacat.c:716 +#: ../src/utils/pacat.c:861 +#, fuzzy, c-format +msgid "Invalid property '%s'\n" +msgstr "রি-সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦² পদà§à¦§à¦¤à¦¿ '%s' বৈধ নয়।" + +#: ../src/utils/pacat.c:878 #, c-format +msgid "Unknown file format %s." +msgstr "" + +#: ../src/utils/pacat.c:897 msgid "Invalid sample specification\n" msgstr "অবৈধ সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦² নিরà§à¦§à¦¾à¦°à¦¿à¦¤\n" -#: ../src/utils/pacat.c:721 +#: ../src/utils/pacat.c:907 #, c-format +msgid "open(): %s\n" +msgstr "open(): %s\n" + +#: ../src/utils/pacat.c:912 +#, c-format +msgid "dup2(): %s\n" +msgstr "dup2(): %s\n" + +#: ../src/utils/pacat.c:919 +msgid "Too many arguments.\n" +msgstr "অতà§à¦¯à¦¾à¦§à¦¿à¦• আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿà¥¤\n" + +#: ../src/utils/pacat.c:930 +#, fuzzy +msgid "Failed to generate sample specification for file.\n" +msgstr "সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦² সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à¦°à¦¾à¦ªà§à¦¤ করতে বà§à¦¯à¦°à§à¦¥: %s\n" + +#: ../src/utils/pacat.c:950 +#, fuzzy +msgid "Failed to open audio file.\n" +msgstr "শবà§à¦¦à§‡à¦° ফাইল খà§à¦²à¦¤à§‡ বà§à¦¯à¦°à§à¦¥à¥¤\n" + +#: ../src/utils/pacat.c:956 +msgid "" +"Warning: specified sample specification will be overwritten with " +"specification from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦² সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à¦°à¦¾à¦ªà§à¦¤ করতে বà§à¦¯à¦°à§à¦¥: %s\n" + +#: ../src/utils/pacat.c:968 +msgid "Warning: Failed to determine channel map from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:979 msgid "Channel map doesn't match sample specification\n" msgstr "চà§à¦¯à¦¾à¦¨à§‡à¦²à§‡à¦° মà§à¦¯à¦¾à¦ª ও সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦²à§‡à¦° মাপে গরমিল\n" -#: ../src/utils/pacat.c:728 -#, c-format -msgid "Opening a %s stream with sample specification '%s'.\n" +#: ../src/utils/pacat.c:990 +msgid "Warning: failed to write channel map to file.\n" +msgstr "" + +#: ../src/utils/pacat.c:1005 +#, fuzzy, c-format +msgid "" +"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" msgstr "à¦à¦•à¦Ÿà¦¿ %s সà§à¦Ÿà§à¦°à¦¿à¦® '%s' সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦² বৈশিষà§à¦Ÿà§à¦¯ সহ খোলা হচà§à¦›à§‡à¥¤\n" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "recording" msgstr "রেকরà§à¦¡ করা হচà§à¦›à§‡" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "playback" msgstr "পà§à¦²à§‡-বà§à¦¯à¦¾à¦•" -#: ../src/utils/pacat.c:736 -#, c-format -msgid "open(): %s\n" -msgstr "open(): %s\n" - -#: ../src/utils/pacat.c:741 -#, c-format -msgid "dup2(): %s\n" -msgstr "dup2(): %s\n" - -#: ../src/utils/pacat.c:751 -#, c-format -msgid "Too many arguments.\n" -msgstr "অতà§à¦¯à¦¾à¦§à¦¿à¦• আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿà¥¤\n" - -#: ../src/utils/pacat.c:764 ../src/utils/pasuspender.c:280 -#: ../src/utils/pactl.c:1017 ../src/utils/paplay.c:381 +#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 +#: ../src/utils/pactl.c:1104 #, c-format msgid "pa_mainloop_new() failed.\n" msgstr "pa_mainloop_new() বà§à¦¯à¦°à§à¦¥à¥¤\n" -#: ../src/utils/pacat.c:785 -#, c-format +#: ../src/utils/pacat.c:1051 msgid "io_new() failed.\n" msgstr "io_new() বà§à¦¯à¦°à§à¦¥à¥¤\n" -#: ../src/utils/pacat.c:791 ../src/utils/pasuspender.c:293 -#: ../src/utils/pactl.c:1031 ../src/utils/paplay.c:396 +#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 +#: ../src/utils/pactl.c:1116 #, c-format msgid "pa_context_new() failed.\n" msgstr "pa_context_new() বà§à¦¯à¦°à§à¦¥à¥¤\n" -#: ../src/utils/pacat.c:799 +#: ../src/utils/pacat.c:1066 #, fuzzy, c-format msgid "pa_context_connect() failed: %s\n" msgstr "pa_context_connect() বà§à¦¯à¦°à§à¦¥: %s" -#: ../src/utils/pacat.c:810 -#, c-format +#: ../src/utils/pacat.c:1077 msgid "time_new() failed.\n" msgstr "time_new() বà§à¦¯à¦°à§à¦¥à¥¤\n" -#: ../src/utils/pacat.c:817 ../src/utils/pasuspender.c:301 -#: ../src/utils/pactl.c:1042 ../src/utils/paplay.c:410 +#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 +#: ../src/utils/pactl.c:1127 #, c-format msgid "pa_mainloop_run() failed.\n" msgstr "pa_mainloop_run() বà§à¦¯à¦°à§à¦¥à¥¤\n" @@ -1675,8 +1706,7 @@ msgstr "পà§à¦¨à¦°à¦¾à¦°à¦®à§à¦ করতে বà§à¦¯à¦°à§à¦¥: %s\n" msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "সতরà§à¦•à¦¬à¦¾à¦°à§à¦¤à¦¾: শবà§à¦¦à§‡à¦° সারà§à¦à¦¾à¦°à¦Ÿà¦¿ সà§à¦¥à¦¾à¦¨à§€à§Ÿ নয় ও সà§à¦¥à¦—িত করা হচà§à¦›à§‡ না।\n" -#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:768 -#: ../src/utils/paplay.c:191 +#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" msgstr "SIGINT পà§à¦°à¦¾à¦ªà§à¦¤ হয়েছে, পà§à¦°à¦¸à§à¦¥à¦¾à¦¨ করা হয়েছে।\n" @@ -1705,7 +1735,7 @@ msgstr "" "নাম\n" "\n" -#: ../src/utils/pasuspender.c:251 +#: ../src/utils/pasuspender.c:248 #, c-format msgid "" "pasuspender %s\n" @@ -1716,33 +1746,33 @@ msgstr "" "libpulse সহযোগে কমà§à¦ªà¦¾à¦‡à¦² করা হয়েছে %s\n" "libpulse-র সাথে যà§à¦•à§à¦¤ %s\n" -#: ../src/utils/pactl.c:108 +#: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" msgstr "পরিসংখà§à¦¯à¦¾à¦¨: %s\n" -#: ../src/utils/pactl.c:114 +#: ../src/utils/pactl.c:134 #, c-format msgid "Currently in use: %u blocks containing %s bytes total.\n" msgstr "বরà§à¦¤à¦®à¦¾à¦¨à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤: %u বà§à¦²à¦•à§‡à¦° মধà§à¦¯à§‡ উপসà§à¦¥à¦¿à¦¤ সরà§à¦¬à¦®à§‹à¦Ÿ %s বাইট।\n" -#: ../src/utils/pactl.c:117 +#: ../src/utils/pactl.c:137 #, c-format msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n" msgstr "" "সমà§à¦ªà§‚রà§à¦£ করà§à¦®à¦•à¦¾à¦²à§‡à¦° জনà§à¦¯ বরাদà§à¦¦ করা হয়েছে: %u বà§à¦²à¦•à§‡à¦° মধà§à¦¯à§‡ উপসà§à¦¥à¦¿à¦¤ সরà§à¦¬à¦®à§‹à¦Ÿ %s বাইট।\n" -#: ../src/utils/pactl.c:120 +#: ../src/utils/pactl.c:140 #, c-format msgid "Sample cache size: %s\n" msgstr "সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦² কà§à¦¯à¦¾à¦¶à§‡à¦° মাপ: %s\n" -#: ../src/utils/pactl.c:129 +#: ../src/utils/pactl.c:149 #, c-format msgid "Failed to get server information: %s\n" msgstr "সারà§à¦à¦¾à¦° সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à¦°à¦¾à¦ªà§à¦¤ করতে বà§à¦¯à¦°à§à¦¥: %s\n" -#: ../src/utils/pactl.c:137 +#: ../src/utils/pactl.c:157 #, c-format msgid "" "User name: %s\n" @@ -1765,12 +1795,12 @@ msgstr "" "ডিফলà§à¦Ÿ সোরà§à¦¸: %s\n" "কà§à¦•à¦¿: %08x\n" -#: ../src/utils/pactl.c:178 +#: ../src/utils/pactl.c:198 #, c-format msgid "Failed to get sink information: %s\n" msgstr "সিংক সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à¦°à¦¾à¦ªà§à¦¤ করতে বà§à¦¯à¦°à§à¦¥: %s\n" -#: ../src/utils/pactl.c:194 +#: ../src/utils/pactl.c:214 #, c-format msgid "" "Sink #%u\n" @@ -1809,12 +1839,22 @@ msgstr "" "\tবিবিধ বৈশিষà§à¦Ÿà§à¦¯:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:258 +#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 +#, fuzzy, c-format +msgid "\tPorts:\n" +msgstr "\tপà§à¦°à§‹à¦«à¦¾à¦‡à¦²:\n" + +#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 +#, fuzzy, c-format +msgid "\tActive Port: %s\n" +msgstr "\tসকà§à¦°à¦¿à§Ÿ পà§à¦°à§‹à¦«à¦¾à¦‡à¦²: %s\n" + +#: ../src/utils/pactl.c:290 #, c-format msgid "Failed to get source information: %s\n" msgstr "সোরà§à¦¸ সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à¦°à¦¾à¦ªà§à¦¤ করতে বà§à¦¯à¦°à§à¦¥: %s\n" -#: ../src/utils/pactl.c:274 +#: ../src/utils/pactl.c:306 #, c-format msgid "" "Source #%u\n" @@ -1853,20 +1893,20 @@ msgstr "" "\tবিবিধ বৈশিষà§à¦Ÿà§à¦¯:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:306 ../src/utils/pactl.c:350 ../src/utils/pactl.c:385 -#: ../src/utils/pactl.c:422 ../src/utils/pactl.c:481 ../src/utils/pactl.c:482 -#: ../src/utils/pactl.c:492 ../src/utils/pactl.c:536 ../src/utils/pactl.c:537 -#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:586 ../src/utils/pactl.c:587 -#: ../src/utils/pactl.c:594 +#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429 +#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526 +#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581 +#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631 +#: ../src/utils/pactl.c:638 msgid "n/a" msgstr "n/a" -#: ../src/utils/pactl.c:324 +#: ../src/utils/pactl.c:368 #, c-format msgid "Failed to get module information: %s\n" msgstr "মডিউল সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à¦°à¦¾à¦ªà§à¦¤ করতে বà§à¦¯à¦°à§à¦¥: %s\n" -#: ../src/utils/pactl.c:342 +#: ../src/utils/pactl.c:386 #, c-format msgid "" "Module #%u\n" @@ -1883,12 +1923,12 @@ msgstr "" "\tবিবিধ বৈশিষà§à¦Ÿà§à¦¯:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:361 +#: ../src/utils/pactl.c:405 #, c-format msgid "Failed to get client information: %s\n" msgstr "কà§à¦²à¦¾à§Ÿà§‡à¦¨à§à¦Ÿ সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à¦°à¦¾à¦ªà§à¦¤ করতে বà§à¦¯à¦°à§à¦¥: %s\n" -#: ../src/utils/pactl.c:379 +#: ../src/utils/pactl.c:423 #, c-format msgid "" "Client #%u\n" @@ -1903,12 +1943,12 @@ msgstr "" "\tবিবিধ বৈশিষà§à¦Ÿà§à¦¯:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:396 +#: ../src/utils/pactl.c:440 #, c-format msgid "Failed to get card information: %s\n" msgstr "কারà§à¦¡ সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à¦°à¦¾à¦ªà§à¦¤ করতে বà§à¦¯à¦°à§à¦¥: %s\n" -#: ../src/utils/pactl.c:414 +#: ../src/utils/pactl.c:458 #, c-format msgid "" "Card #%u\n" @@ -1925,22 +1965,22 @@ msgstr "" "\tবিবিধ বৈশিষà§à¦Ÿà§à¦¯:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:428 +#: ../src/utils/pactl.c:472 #, c-format msgid "\tProfiles:\n" msgstr "\tপà§à¦°à§‹à¦«à¦¾à¦‡à¦²:\n" -#: ../src/utils/pactl.c:434 +#: ../src/utils/pactl.c:478 #, c-format msgid "\tActive Profile: %s\n" msgstr "\tসকà§à¦°à¦¿à§Ÿ পà§à¦°à§‹à¦«à¦¾à¦‡à¦²: %s\n" -#: ../src/utils/pactl.c:445 +#: ../src/utils/pactl.c:489 #, c-format msgid "Failed to get sink input information: %s\n" msgstr "সিংক ইনপà§à¦Ÿ সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à¦°à¦¾à¦ªà§à¦¤ করতে বà§à¦¯à¦°à§à¦¥: %s\n" -#: ../src/utils/pactl.c:464 +#: ../src/utils/pactl.c:508 #, c-format msgid "" "Sink Input #%u\n" @@ -1977,12 +2017,12 @@ msgstr "" "\tবিবিধ বৈশিষà§à¦Ÿà§à¦¯:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:503 +#: ../src/utils/pactl.c:547 #, c-format msgid "Failed to get source output information: %s\n" msgstr "সোরà§à¦¸ আউটপà§à¦Ÿ সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à¦°à¦¾à¦ªà§à¦¤ করতে বà§à¦¯à¦°à§à¦¥: %s\n" -#: ../src/utils/pactl.c:523 +#: ../src/utils/pactl.c:567 #, c-format msgid "" "Source Output #%u\n" @@ -2011,13 +2051,13 @@ msgstr "" "\tবিবিধ বৈশিষà§à¦Ÿà§à¦¯:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:554 +#: ../src/utils/pactl.c:598 #, c-format msgid "Failed to get sample information: %s\n" msgstr "সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦² সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à¦°à¦¾à¦ªà§à¦¤ করতে বà§à¦¯à¦°à§à¦¥: %s\n" # Lazy = low quality sample -#: ../src/utils/pactl.c:572 +#: ../src/utils/pactl.c:616 #, c-format msgid "" "Sample #%u\n" @@ -2048,23 +2088,22 @@ msgstr "" "\tবিবিধ বৈশিষà§à¦Ÿà§à¦¯:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:602 ../src/utils/pactl.c:612 +#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 #, c-format msgid "Failure: %s\n" msgstr "বà§à¦¯à¦°à§à¦¥à¦¤à¦¾: %s\n" -#: ../src/utils/pactl.c:636 +#: ../src/utils/pactl.c:680 #, c-format msgid "Failed to upload sample: %s\n" msgstr "সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦² আপলোড করতে বà§à¦¯à¦°à§à¦¥: %s\n" -#: ../src/utils/pactl.c:653 -#, c-format +#: ../src/utils/pactl.c:697 msgid "Premature end of file\n" msgstr "সমà§à¦ªà§‚রà§à¦£ হওয়ার পূরà§à¦¬à§‡ ফাইল সমাপà§à¦¤ হয়েছে\n" -#: ../src/utils/pactl.c:774 -#, c-format +#: ../src/utils/pactl.c:826 +#, fuzzy, c-format msgid "" "%s [options] stat\n" "%s [options] list\n" @@ -2079,6 +2118,8 @@ msgid "" "%s [options] suspend-sink [SINK] 1|0\n" "%s [options] suspend-source [SOURCE] 1|0\n" "%s [options] set-card-profile [CARD] [PROFILE] \n" +"%s [options] set-sink-port [SINK] [PORT] \n" +"%s [options] set-source-port [SOURCE] [PORT] \n" "\n" " -h, --help Show this help\n" " --version Show version\n" @@ -2108,7 +2149,7 @@ msgstr "" " -s, --server=SERVER সংযোগ করার উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ চিহà§à¦¨à¦¿à¦¤ সারà§à¦à¦¾à¦°\n" " -n, --client-name=NAME সারà§à¦à¦¾à¦°à§‡à¦° মধà§à¦¯à§‡ à¦à¦‡ কà§à¦²à¦¾à§Ÿà§‡à¦¨à§à¦Ÿà§‡à¦° পরিচয়\n" -#: ../src/utils/pactl.c:826 +#: ../src/utils/pactl.c:880 #, c-format msgid "" "pactl %s\n" @@ -2119,71 +2160,74 @@ msgstr "" "libpulse সহযোগে কমà§à¦ªà¦¾à¦‡à¦² করা %s\n" "libpulse-র সাথে যà§à¦•à§à¦¤ %s\n" -#: ../src/utils/pactl.c:865 -#, c-format +#: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "লোড করার উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ অনà§à¦—à§à¦°à¦¹ করে à¦à¦•à¦Ÿà¦¿ সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦² ফাইল উলà§à¦²à§‡à¦– করà§à¦¨\n" -#: ../src/utils/pactl.c:887 -#, c-format +#: ../src/utils/pactl.c:939 msgid "Failed to open sound file.\n" msgstr "শবà§à¦¦à§‡à¦° ফাইল খà§à¦²à¦¤à§‡ বà§à¦¯à¦°à§à¦¥à¥¤\n" -#: ../src/utils/pactl.c:899 -#, c-format +#: ../src/utils/pactl.c:951 +#, fuzzy +msgid "Warning: Failed to determine sample specification from file.\n" +msgstr "à¦à¦•à¦Ÿà¦¿ %s সà§à¦Ÿà§à¦°à¦¿à¦® '%s' সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦² বৈশিষà§à¦Ÿà§à¦¯ সহ খোলা হচà§à¦›à§‡à¥¤\n" + +#: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" msgstr "বাজানোর উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ à¦à¦•à¦Ÿà¦¿ সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦² ফাইল উলà§à¦²à§‡à¦– করা আবশà§à¦¯à¦•\n" -#: ../src/utils/pactl.c:911 -#, c-format +#: ../src/utils/pactl.c:973 msgid "You have to specify a sample name to remove\n" msgstr "অপসারণের উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ à¦à¦•à¦Ÿà¦¿ সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦² ফাইল উলà§à¦²à§‡à¦– করা আবশà§à¦¯à¦•\n" -#: ../src/utils/pactl.c:919 -#, c-format +#: ../src/utils/pactl.c:982 msgid "You have to specify a sink input index and a sink\n" msgstr "সিংক ইনপà§à¦Ÿ ইনà§à¦¡à§‡à¦•à§à¦¸ ও à¦à¦•à¦Ÿà¦¿ সিংক নিরà§à¦§à¦¾à¦°à¦£ করা আবশà§à¦¯à¦•\n" -#: ../src/utils/pactl.c:928 -#, c-format +#: ../src/utils/pactl.c:992 msgid "You have to specify a source output index and a source\n" msgstr "সোরà§à¦¸ আউটপà§à¦Ÿ ইনà§à¦¡à§‡à¦•à§à¦¸ ও à¦à¦•à¦Ÿà¦¿ সোরà§à¦¸ নিরà§à¦§à¦¾à¦°à¦£ করা আবশà§à¦¯à¦•\n" -#: ../src/utils/pactl.c:942 -#, c-format +#: ../src/utils/pactl.c:1007 msgid "You have to specify a module name and arguments.\n" msgstr "মডিউলের নাম ও আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ নিরà§à¦§à¦¾à¦°à¦£ করা আবশà§à¦¯à¦•\n" -#: ../src/utils/pactl.c:962 -#, c-format +#: ../src/utils/pactl.c:1027 msgid "You have to specify a module index\n" msgstr "মডিউল ইনà§à¦¡à§‡à¦•à§à¦¸ নিরà§à¦§à¦¾à¦°à¦£ করা আবশà§à¦¯à¦•\n" -#: ../src/utils/pactl.c:972 -#, c-format +#: ../src/utils/pactl.c:1037 msgid "" "You may not specify more than one sink. You have to specify a boolean " "value.\n" msgstr "à¦à¦•à¦¾à¦§à¦¿à¦• সিংক নিরà§à¦§à¦¾à¦°à¦£ করা যাবে না। বà§à¦²à¦¿à§Ÿà§‡à¦¨ মান নিরà§à¦§à¦¾à¦°à¦£ করা আবশà§à¦¯à¦•à¥¤\n" -#: ../src/utils/pactl.c:985 -#, c-format +#: ../src/utils/pactl.c:1050 msgid "" "You may not specify more than one source. You have to specify a boolean " "value.\n" msgstr "à¦à¦•à¦¾à¦§à¦¿à¦• সোরà§à¦¸ নিরà§à¦§à¦¾à¦°à¦£ করা যাবে না। বà§à¦²à¦¿à§Ÿà§‡à¦¨ মান নিরà§à¦§à¦¾à¦°à¦£ করা আবশà§à¦¯à¦•à¥¤\n" -#: ../src/utils/pactl.c:997 -#, c-format +#: ../src/utils/pactl.c:1062 msgid "You have to specify a card name/index and a profile name\n" msgstr "কারà§à¦¡à§‡à¦° নাম/ইনà§à¦¡à§‡à¦•à§à¦¸ ও à¦à¦•à¦Ÿà¦¿ পà§à¦°à§‹à¦«à¦¾à¦‡à¦²à§‡à¦° নাম উলà§à¦²à§‡à¦– করা আবশà§à¦¯à¦•\n" -#: ../src/utils/pactl.c:1012 -#, c-format +#: ../src/utils/pactl.c:1073 +#, fuzzy +msgid "You have to specify a sink name/index and a port name\n" +msgstr "কারà§à¦¡à§‡à¦° নাম/ইনà§à¦¡à§‡à¦•à§à¦¸ ও à¦à¦•à¦Ÿà¦¿ পà§à¦°à§‹à¦«à¦¾à¦‡à¦²à§‡à¦° নাম উলà§à¦²à§‡à¦– করা আবশà§à¦¯à¦•\n" + +#: ../src/utils/pactl.c:1084 +#, fuzzy +msgid "You have to specify a source name/index and a port name\n" +msgstr "কারà§à¦¡à§‡à¦° নাম/ইনà§à¦¡à§‡à¦•à§à¦¸ ও à¦à¦•à¦Ÿà¦¿ পà§à¦°à§‹à¦«à¦¾à¦‡à¦²à§‡à¦° নাম উলà§à¦²à§‡à¦– করা আবশà§à¦¯à¦•\n" + +#: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "কোনো কমানà§à¦¡ নিরà§à¦§à¦¾à¦°à¦¿à¦¤ হয়নি।\n" -#: ../src/utils/pactl.c:1037 ../src/utils/paplay.c:404 +#: ../src/utils/pactl.c:1122 #, c-format msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect() বà§à¦¯à¦°à§à¦¥: %s" @@ -2267,128 +2311,48 @@ msgstr "কà§à¦•à¦¿ সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯ লোড করঠmsgid "Not yet implemented.\n" msgstr "à¦à¦–নো বাসà§à¦¤à¦¬à¦¾à§Ÿà¦¿à¦¤ হয়নি।\n" -#: ../src/utils/pacmd.c:64 +#: ../src/utils/pacmd.c:61 +msgid "No PulseAudio daemon running, or not running as session daemon." +msgstr "" + +#: ../src/utils/pacmd.c:66 #, c-format msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s" msgstr "socket(PF_UNIX, SOCK_STREAM, 0): %s" -#: ../src/utils/pacmd.c:81 +#: ../src/utils/pacmd.c:83 #, c-format msgid "connect(): %s" msgstr "connect(): %s" -#: ../src/utils/pacmd.c:89 +#: ../src/utils/pacmd.c:91 msgid "Failed to kill PulseAudio daemon." msgstr "PulseAudio ডেমন kill করতে বà§à¦¯à¦°à§à¦¥à¥¤" -#: ../src/utils/pacmd.c:97 +#: ../src/utils/pacmd.c:99 msgid "Daemon not responding." msgstr "ডেমন থেকে কোনো পà§à¦°à¦¤à¦¿à¦•à§à¦°à¦¿à§Ÿà¦¾ পাওয়া যাচà§à¦›à§‡ না।" -#: ../src/utils/pacmd.c:144 +#: ../src/utils/pacmd.c:146 #, c-format msgid "select(): %s" msgstr "select(): %s" -#: ../src/utils/pacmd.c:154 ../src/utils/pacmd.c:171 +#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173 #, c-format msgid "read(): %s" msgstr "read(): %s" -#: ../src/utils/pacmd.c:187 ../src/utils/pacmd.c:201 +#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203 #, c-format msgid "write(): %s" msgstr "write(): %s" -#: ../src/utils/paplay.c:139 -#, c-format -msgid "Stream successfully created\n" -msgstr "সাফলà§à¦¯à§‡à¦° সাথে সà§à¦Ÿà§à¦°à¦¿à¦® নিরà§à¦®à¦¿à¦¤ হয়েছে\n" - -#: ../src/utils/paplay.c:144 -#, c-format -msgid "Stream errror: %s\n" -msgstr "সà§à¦Ÿà§à¦°à¦¿à¦® সংকà§à¦°à¦¾à¦¨à§à¦¤ তà§à¦°à§à¦Ÿà¦¿: %s\n" - -#: ../src/utils/paplay.c:165 -#, c-format -msgid "Connection established.\n" -msgstr "সংযোগ সà§à¦¥à¦¾à¦ªà¦¿à¦¤à¥¤\n" - -#: ../src/utils/paplay.c:198 -#, c-format -msgid "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" -msgstr "" -"%s [options] [FILE]\n" -"\n" -" -h, --help à¦à¦‡ সাহাযà§à¦¯ বারà§à¦¤à¦¾ পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করা হবে\n" -" --version সংসà§à¦•à¦°à¦£ সংখà§à¦¯à¦¾ পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করা হবে\n" -"\n" -" -v, --verbose à¦à¦¾à¦°à§à¦¬à§‹à¦¸ করà§à¦® সকà§à¦°à¦¿à§Ÿ করা হবে\n" -"\n" -" -s, --server=SERVER সংযোগ করার উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ চিহà§à¦¨à¦¿à¦¤ সারà§à¦à¦¾à¦°à§‡à¦° " -"নাম\n" -" -d, --device=DEVICE সংযোগ করার উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ চিহà§à¦¨à¦¿à¦¤ সিংকের " -"নাম\n" -" -n, --client-name=NAME সারà§à¦à¦¾à¦°à§‡à¦° মধà§à¦¯à§‡ à¦à¦‡ কà§à¦²à¦¾à§Ÿà§‡à¦¨à§à¦Ÿà§‡à¦° নাম\n" -" --stream-name=NAME সারà§à¦à¦¾à¦°à§‡à¦° মধà§à¦¯à§‡ à¦à¦‡ সà§à¦Ÿà§à¦°à¦¿à¦®à§‡à¦° নাম\n" -" --volume=VOLUME 0...65536 সীমার মধà§à¦¯à§‡ পà§à¦°à¦¾à¦°à¦®à§à¦à¦¿à¦• " -"(লিনিয়ার) আওয়াজ নিরà§à¦§à¦¾à¦°à¦£ করà§à¦¨\n" -" --channel-map=CHANNELMAP বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ চà§à¦¯à¦¾à¦¨à§‡à¦² মà§à¦¯à¦¾à¦ª নিরà§à¦§à¦¾à¦°à¦£\n" - -#: ../src/utils/paplay.c:255 -#, c-format -msgid "" -"paplay %s\n" -"Compiled with libpulse %s\n" -"Linked with libpulse %s\n" -msgstr "" -"paplay %s\n" -"libpulse সহযোগে কমà§à¦ªà¦¾à¦‡à¦² করা হয়েছে %s\n" -"libpulse-র সাথে যà§à¦•à§à¦¤ %s\n" - -#: ../src/utils/paplay.c:292 -#, c-format -msgid "Invalid channel map\n" -msgstr "অবৈধ চà§à¦¯à¦¾à¦¨à§‡à¦² মà§à¦¯à¦¾à¦ª\n" - -#: ../src/utils/paplay.c:314 -#, c-format -msgid "Failed to open file '%s'\n" -msgstr "ফাইল '%s' খà§à¦²à¦¤à§‡ বà§à¦¯à¦°à§à¦¥\n" - -#: ../src/utils/paplay.c:350 -#, c-format -msgid "Channel map doesn't match file.\n" -msgstr "চà§à¦¯à¦¾à¦¨à§‡à¦² মà§à¦¯à¦¾à¦ª ও ফাইলে গরমিল।\n" - -#: ../src/utils/paplay.c:376 -#, c-format -msgid "Using sample spec '%s'\n" -msgstr "সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦² spec '%s' পà§à¦°à§Ÿà§‹à¦— করা হচà§à¦›à§‡\n" - #: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 msgid "Cannot access autospawn lock." msgstr "autospawn লক পà§à¦°à§Ÿà§‹à¦— করতে বà§à¦¯à¦°à§à¦¥à¥¤" -#: ../src/modules/alsa/alsa-sink.c:393 ../src/modules/alsa/alsa-sink.c:541 +#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2405,7 +2369,7 @@ msgstr "" "POLLOUT set দà§à¦¬à¦¾à¦°à¦¾ চেতাবনী সৃষà§à¦Ÿà¦¿ হয়েছে -- পরবরà§à¦¤à§€ snd_pcm_avail() থেকে 0 অথবা < " "min_avail-র থেকে কম অনà§à¦¯ à¦à¦•à¦Ÿà¦¿ মান পà§à¦°à¦¾à¦ªà§à¦¤ হয়েছে।" -#: ../src/modules/alsa/alsa-source.c:377 ../src/modules/alsa/alsa-source.c:516 +#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2422,34 +2386,128 @@ msgstr "" "POLLIN set দà§à¦¬à¦¾à¦°à¦¾ চেতাবনী সৃষà§à¦Ÿà¦¿ হয়েছে -- পরবরà§à¦¤à§€ snd_pcm_avail() থেকে 0 অথবা < " "min_avail-র থেকে কম অনà§à¦¯ à¦à¦•à¦Ÿà¦¿ মান পà§à¦°à¦¾à¦ªà§à¦¤ হয়েছে।" -#: ../src/modules/alsa/module-alsa-card.c:114 -#, c-format -msgid "Output %s + Input %s" -msgstr "আউটপà§à¦Ÿ %s + ইনপà§à¦Ÿ %s" - -#: ../src/modules/alsa/module-alsa-card.c:117 -#, c-format -msgid "Output %s" -msgstr "আউটপà§à¦Ÿ %s" - -#: ../src/modules/alsa/module-alsa-card.c:121 -#, c-format -msgid "Input %s" -msgstr "ইনপà§à¦Ÿ %s" - -#: ../src/modules/alsa/module-alsa-card.c:170 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2006 +#: ../src/modules/alsa/module-alsa-card.c:152 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 msgid "Off" msgstr "বনà§à¦§" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1976 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 msgid "High Fidelity Playback (A2DP)" msgstr "হাই-ফিডেলিটি পà§à¦²à§‡-বà§à¦¯à¦¾à¦• (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1991 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 msgid "Telephony Duplex (HSP/HFP)" msgstr "টেলিফোনি ডà§à¦ªà§à¦²à§‡ (HSP/HFP)" -#: ../src/modules/reserve-wrap.c:139 +#: ../src/modules/reserve-wrap.c:151 msgid "PulseAudio Sound Server" msgstr "PulseAudio শবà§à¦¦à§‡à¦° সারà§à¦à¦¾à¦°" + +#~ msgid "Analog Mono" +#~ msgstr "অà§à¦¯à¦¾à¦¨à¦¾à¦²à¦— মোনো" + +#~ msgid "Analog Stereo" +#~ msgstr "অà§à¦¯à¦¾à¦¨à¦¾à¦²à¦— সà§à¦Ÿà¦¿à¦°à¦¿à¦“" + +#~ msgid "Digital Stereo (IEC958)" +#~ msgstr "ডিজিটà§à¦¯à¦¾à¦² সà§à¦Ÿà¦¿à¦°à¦¿à¦“ (IEC958)" + +#~ msgid "Digital Stereo (HDMI)" +#~ msgstr "ডিজিটà§à¦¯à¦¾à¦² সà§à¦Ÿà¦¿à¦°à¦¿à¦“ (HDMI)" + +#~ msgid "Analog Surround 4.0" +#~ msgstr "অà§à¦¯à¦¾à¦¨à¦¾à¦²à¦— সà§à¦Ÿà¦¿à¦°à¦¿à¦“ ৪.০" + +#~ msgid "Digital Surround 4.0 (IEC958/AC3)" +#~ msgstr "ডিজিটà§à¦¯à¦¾à¦² সারাউনà§à¦¡ ৪.০ (IEC958/AC3)" + +#~ msgid "Analog Surround 4.1" +#~ msgstr "অà§à¦¯à¦¾à¦¨à¦¾à¦²à¦— সারাউনà§à¦¡ ৪.১" + +#~ msgid "Analog Surround 5.0" +#~ msgstr "অà§à¦¯à¦¾à¦¨à¦¾à¦²à¦— সারাউনà§à¦¡ ৫.০" + +#~ msgid "Analog Surround 5.1" +#~ msgstr "অà§à¦¯à¦¾à¦¨à¦¾à¦²à¦— সারাউনà§à¦¡ ৫.১" + +#~ msgid "Digital Surround 5.1 (IEC958/AC3)" +#~ msgstr "ডিজিটà§à¦¯à¦¾à¦² সারাউনà§à¦¡ ৫.১ (IEC958/AC3)" + +#~ msgid "Analog Surround 7.1" +#~ msgstr "অà§à¦¯à¦¾à¦¨à¦¾à¦²à¦— সারাউনà§à¦¡ à§.১" + +#~ msgid "Output %s + Input %s" +#~ msgstr "আউটপà§à¦Ÿ %s + ইনপà§à¦Ÿ %s" + +#~ msgid "Output %s" +#~ msgstr "আউটপà§à¦Ÿ %s" + +#~ msgid "Input %s" +#~ msgstr "ইনপà§à¦Ÿ %s" + +#~ msgid "Stream successfully created\n" +#~ msgstr "সাফলà§à¦¯à§‡à¦° সাথে সà§à¦Ÿà§à¦°à¦¿à¦® নিরà§à¦®à¦¿à¦¤ হয়েছে\n" + +#~ msgid "Stream errror: %s\n" +#~ msgstr "সà§à¦Ÿà§à¦°à¦¿à¦® সংকà§à¦°à¦¾à¦¨à§à¦¤ তà§à¦°à§à¦Ÿà¦¿: %s\n" + +#~ msgid "Connection established.\n" +#~ msgstr "সংযোগ সà§à¦¥à¦¾à¦ªà¦¿à¦¤à¥¤\n" + +#~ msgid "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Show this help\n" +#~ " --version Show version\n" +#~ "\n" +#~ " -v, --verbose Enable verbose operation\n" +#~ "\n" +#~ " -s, --server=SERVER The name of the server to connect " +#~ "to\n" +#~ " -d, --device=DEVICE The name of the sink to connect " +#~ "to\n" +#~ " -n, --client-name=NAME How to call this client on the " +#~ "server\n" +#~ " --stream-name=NAME How to call this stream on the " +#~ "server\n" +#~ " --volume=VOLUME Specify the initial (linear) " +#~ "volume in range 0...65536\n" +#~ " --channel-map=CHANNELMAP Set the channel map to the use\n" +#~ msgstr "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help à¦à¦‡ সাহাযà§à¦¯ বারà§à¦¤à¦¾ পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করা হবে\n" +#~ " --version সংসà§à¦•à¦°à¦£ সংখà§à¦¯à¦¾ পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করা হবে\n" +#~ "\n" +#~ " -v, --verbose à¦à¦¾à¦°à§à¦¬à§‹à¦¸ করà§à¦® সকà§à¦°à¦¿à§Ÿ করা হবে\n" +#~ "\n" +#~ " -s, --server=SERVER সংযোগ করার উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ চিহà§à¦¨à¦¿à¦¤ " +#~ "সারà§à¦à¦¾à¦°à§‡à¦° নাম\n" +#~ " -d, --device=DEVICE সংযোগ করার উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ চিহà§à¦¨à¦¿à¦¤ সিংকের " +#~ "নাম\n" +#~ " -n, --client-name=NAME সারà§à¦à¦¾à¦°à§‡à¦° মধà§à¦¯à§‡ à¦à¦‡ কà§à¦²à¦¾à§Ÿà§‡à¦¨à§à¦Ÿà§‡à¦° নাম\n" +#~ " --stream-name=NAME সারà§à¦à¦¾à¦°à§‡à¦° মধà§à¦¯à§‡ à¦à¦‡ সà§à¦Ÿà§à¦°à¦¿à¦®à§‡à¦° নাম\n" +#~ " --volume=VOLUME 0...65536 সীমার মধà§à¦¯à§‡ পà§à¦°à¦¾à¦°à¦®à§à¦à¦¿à¦• " +#~ "(লিনিয়ার) আওয়াজ নিরà§à¦§à¦¾à¦°à¦£ করà§à¦¨\n" +#~ " --channel-map=CHANNELMAP বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ চà§à¦¯à¦¾à¦¨à§‡à¦² মà§à¦¯à¦¾à¦ª নিরà§à¦§à¦¾à¦°à¦£\n" + +#~ msgid "" +#~ "paplay %s\n" +#~ "Compiled with libpulse %s\n" +#~ "Linked with libpulse %s\n" +#~ msgstr "" +#~ "paplay %s\n" +#~ "libpulse সহযোগে কমà§à¦ªà¦¾à¦‡à¦² করা হয়েছে %s\n" +#~ "libpulse-র সাথে যà§à¦•à§à¦¤ %s\n" + +#~ msgid "Invalid channel map\n" +#~ msgstr "অবৈধ চà§à¦¯à¦¾à¦¨à§‡à¦² মà§à¦¯à¦¾à¦ª\n" + +#~ msgid "Failed to open file '%s'\n" +#~ msgstr "ফাইল '%s' খà§à¦²à¦¤à§‡ বà§à¦¯à¦°à§à¦¥\n" + +#~ msgid "Channel map doesn't match file.\n" +#~ msgstr "চà§à¦¯à¦¾à¦¨à§‡à¦² মà§à¦¯à¦¾à¦ª ও ফাইলে গরমিল।\n" + +#~ msgid "Using sample spec '%s'\n" +#~ msgstr "সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦² spec '%s' পà§à¦°à§Ÿà§‹à¦— করা হচà§à¦›à§‡\n" @@ -1,77 +1,37 @@ # Catalan translation of pulseaudio by Softcatalà # Copyright (C) 2008 Free Software Foundation # This file is distributed under the same license as the pulseaudio package. +# # Xavier Conde Rueda <xavi.conde@gmail.com>, 2008. +# Agustà Grau <fletxa@gmail.com>, 2009. +# Judith Pintó Subirada <judithp@gmail.com> # # This file is translated according to the glossary and style guide of -# Softcatalà . If you plan to modify this file, please read first the page -# of the Catalan translation team for the Fedora project at: -# http://www.softcatala.org/projectes/fedora/ -# and contact the previous translator. +# Softcatalà . If you plan to modify this file, please read first the page +# of the Catalan translation team for the Fedora project at: +# http://www.softcatala.org/projectes/fedora/ +# and contact the previous translator. # # Aquest fitxer s'ha de traduir d'acord amb el recull de termes i la guia -# d'estil de Softcatalà . Si voleu modificar aquest fitxer, llegiu si -# us plau la pà gina de catalanització del projecte Fedora a: -# http://www.softcatala.org/projectes/fedora/ -# i contacteu l'anterior traductor/a. +# d'estil de Softcatalà . Si voleu modificar aquest fitxer, llegiu si +# us plau la pà gina de catalanització del projecte Fedora a: +# http://www.softcatala.org/projectes/fedora/ +# i contacteu l'anterior traductor/a. +# # msgid "" msgstr "" "Project-Id-Version: pulseaudio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-21 23:02+0200\n" -"PO-Revision-Date: 2009-03-18 21:47+0100\n" -"Last-Translator: Agustà Grau <fletxa@gmail.com>\n" -"Language-Team: Catalan <fedora@softcatala.net>\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 <judithp@gmail.com>\n" +"Language-Team: \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:532 -msgid "Analog Mono" -msgstr "Mono analògic" - -#: ../src/modules/alsa/alsa-util.c:540 -msgid "Analog Stereo" -msgstr "Estèreo analògic" - -#: ../src/modules/alsa/alsa-util.c:548 -msgid "Digital Stereo (IEC958)" -msgstr "Estèreo digital (IEC958)" - -#: ../src/modules/alsa/alsa-util.c:556 -msgid "Digital Stereo (HDMI)" -msgstr "Estèreo digital (HDMI)" - -#: ../src/modules/alsa/alsa-util.c:565 -msgid "Analog Surround 4.0" -msgstr "Envolvent 4.0 analògic" - -#: ../src/modules/alsa/alsa-util.c:574 -msgid "Digital Surround 4.0 (IEC958/AC3)" -msgstr "Envolvent 4.0 digital (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:584 -msgid "Analog Surround 4.1" -msgstr "Envolvent 4.1 analògic" - -#: ../src/modules/alsa/alsa-util.c:594 -msgid "Analog Surround 5.0" -msgstr "Envolvent 5.0 analògic" - -#: ../src/modules/alsa/alsa-util.c:604 -msgid "Analog Surround 5.1" -msgstr "Envolvent 5.1 analògic" - -#: ../src/modules/alsa/alsa-util.c:614 -msgid "Digital Surround 5.1 (IEC958/AC3)" -msgstr "Envolvent 5.1 digital (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:625 -msgid "Analog Surround 7.1" -msgstr "Envolvent analògic 7.1" - -#: ../src/modules/alsa/alsa-util.c:1646 +#: ../src/modules/alsa/alsa-util.c:1015 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -79,13 +39,12 @@ msgid "" "Most likely this is a bug in the ALSA driver '%s'. Please report this issue " "to the ALSA developers." msgstr "" -"snd_pcm_avail() ha retornat un valor que és excepcionalment gran: %lu bytes " -"(%lu ms).\n" -"En la majoria dels casos és un error del controlador ALSA '%s'. Siusplau, " -"informeu d'aquest\n" -"incident als desenvolupadors d'ALSA." +"snd_pcm_avail() ha retornat un valor excepcionalment gran: %lu bytes (%lu " +"ms).\n" +"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:1687 +#: ../src/modules/alsa/alsa-util.c:1056 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -95,11 +54,10 @@ msgid "" msgstr "" "snd_pcm_delay() ha retornat un valor excepcionalment gran: %li bytes (%s%lu " "ms).\n" -"En la majoria dels casos és un error del controlador ALSA '%s'. Siusplau, " -"informeu d'aquest\n" -"incident als desenvolupadors d'ALSA." +"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:1734 +#: ../src/modules/alsa/alsa-util.c:1103 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -109,18 +67,29 @@ msgid "" msgstr "" "snd_pcm_mmap_begin() ha retornat un valor excepcionalment gran: %lu bytes (%" "lu ms).\n" -"En la majoria dels casos és un error del controlador ALSA '%s'. Siusplau, " -"informeu d'aquest\n" -"incident als desenvolupadors d'ALSA." +"Probablement es tracta d'un error del controlador de l'ALSA '%s'. Informeu " +"d'aquest incident als desenvolupadors de l'ALSA." -#: ../src/pulsecore/sink.c:2141 -#, fuzzy +#: ../src/modules/module-ladspa-sink.c:49 +msgid "Virtual LADSPA sink" +msgstr "" + +#: ../src/modules/module-ladspa-sink.c:53 +msgid "" +"sink_name=<name for the sink> sink_properties=<properties for the sink> " +"master=<name of sink to filter> format=<sample format> rate=<sample rate> " +"channels=<number of channels> channel_map=<channel map> plugin=<ladspa " +"plugin name> label=<ladspa plugin label> control=<comma seperated list of " +"input control values>" +msgstr "" + +#: ../src/pulsecore/sink.c:2394 msgid "Internal Audio" -msgstr "S'ha produït un error intern" +msgstr "Audio intern" -#: ../src/pulsecore/sink.c:2147 +#: ../src/pulsecore/sink.c:2400 msgid "Modem" -msgstr "" +msgstr "Mòdem" #: ../src/daemon/ltdl-bind-now.c:124 msgid "Failed to find original lt_dlopen loader." @@ -128,11 +97,11 @@ msgstr "No s'ha trobat el carregador lt_dlopen original." #: ../src/daemon/ltdl-bind-now.c:129 msgid "Failed to allocate new dl loader." -msgstr "S'ha produït un error en allotjar el nou carregador dl." +msgstr "No s'ha pogut allotjar el nou carregador dl." #: ../src/daemon/ltdl-bind-now.c:142 msgid "Failed to add bind-now-loader." -msgstr "S'ha produït un error en afegir bind-now-loader." +msgstr "No s'ha pogut afegir bind-now-loader." #: ../src/daemon/polkit.c:55 #, c-format @@ -146,27 +115,27 @@ 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 UID en l'objecte crida." +msgstr "No s'ha pogut especificar l'UID en l'objecte crida." #: ../src/daemon/polkit.c:82 msgid "Failed to get CK session." -msgstr "S'ha produït un error en obtenir la sessió CK" +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 especificar UID en l'objecte sessió" +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 introduïr PolKitAction" +msgstr "No s'ha pogut assignar PolKitAction." #: ../src/daemon/polkit.c:100 msgid "Cannot set action_id" -msgstr "No s'ha pogut especificar action_id" +msgstr "No s'ha pogut definir action_id" #: ../src/daemon/polkit.c:105 msgid "Cannot allocate PolKitContext." -msgstr "No s'ha pogut introduïr PolKitContext" +msgstr "No s'ha pogut assignar PolKitContext." #: ../src/daemon/polkit.c:110 #, c-format @@ -176,119 +145,119 @@ 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 "S'ha produït un error en determinar si la crida està autoritzada: %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 autorització: %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:138 +#: ../src/daemon/main.c:142 #, c-format msgid "Got signal %s." msgstr "S'ha obtingut la senyal %s." -#: ../src/daemon/main.c:165 +#: ../src/daemon/main.c:169 msgid "Exiting." msgstr "S'està sortint." -#: ../src/daemon/main.c:183 +#: ../src/daemon/main.c:187 #, c-format msgid "Failed to find user '%s'." -msgstr "S'ha produït un error en trobar l'usuari '%s'." +msgstr "No s'ha trobat l'usuari '%s'." -#: ../src/daemon/main.c:188 +#: ../src/daemon/main.c:192 #, c-format msgid "Failed to find group '%s'." -msgstr "S'ha produït un error en trobar el grup '%s'." +msgstr "No s'ha trobat el grup '%s'." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:196 #, 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:197 +#: ../src/daemon/main.c:201 #, 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" +msgstr "El GID de l'usuari '%s' i del grup '%s' no coincideixen." -#: ../src/daemon/main.c:202 +#: ../src/daemon/main.c:206 #, 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:205 ../src/daemon/main.c:210 +#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 #, c-format msgid "Failed to create '%s': %s" -msgstr "S'ha produït un error durant la creació '%s': %s" +msgstr "No s'ha pogut crear '%s': %s" -#: ../src/daemon/main.c:217 +#: ../src/daemon/main.c:221 #, c-format msgid "Failed to change group list: %s" -msgstr "S'ha produït un error en canviar la llista del grup :%s" +msgstr "No s'ha pogut canviar la llista del grup :%s" -#: ../src/daemon/main.c:233 +#: ../src/daemon/main.c:237 #, c-format msgid "Failed to change GID: %s" -msgstr "S'ha produït un error en canviar la GID: %s" +msgstr "No s'ha pogut canviar el GID: %s" -#: ../src/daemon/main.c:249 +#: ../src/daemon/main.c:253 #, c-format msgid "Failed to change UID: %s" -msgstr "S'ha produït un error en canviar la UID: %s" +msgstr "No s'ha pogut canviar l'UID: %s" -#: ../src/daemon/main.c:263 +#: ../src/daemon/main.c:267 msgid "Successfully dropped root privileges." -msgstr "S'han lliberat els permissos de root amb éxit." +msgstr "S'han alliberat els permisos de root." -#: ../src/daemon/main.c:271 +#: ../src/daemon/main.c:275 msgid "System wide mode unsupported on this platform." -msgstr "El mode de sistema ampli no està suportat en aquesta plataforma." +msgstr "El mode de sistema global no és compatible amb aquesta plataforma." -#: ../src/daemon/main.c:289 +#: ../src/daemon/main.c:293 #, 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:477 +#: ../src/daemon/main.c:481 msgid "Failed to parse command line." -msgstr "S'ha produït un error en interpretar la lÃnia de comandes." +msgstr "No s'ha pogut interpretar la lÃnia d'ordres." -#: ../src/daemon/main.c:501 +#: ../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:508 +#: ../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:516 +#: ../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:519 +#: ../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:524 +#: ../src/daemon/main.c:528 msgid "PolicyKit grants us acquire-real-time privilege." -msgstr "PolicyKit h permés el privilegi acquire-real-time." +msgstr "PolicyKit ha permés el privilegi acquire-real-time." -#: ../src/daemon/main.c:527 +#: ../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:556 +#: ../src/daemon/main.c:560 #, c-format msgid "" "Called SUID root and real-time and/or high-priority scheduling was requested " @@ -309,48 +278,48 @@ msgstr "" "incrementar els lÃmits de recursos de RLIMIT_NICE/RLIMIT_RTPRIO per a aquest " "usuari." -#: ../src/daemon/main.c:581 +#: ../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:610 +#: ../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:613 +#: ../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:620 +#: ../src/daemon/main.c:624 msgid "Giving up CAP_NICE" msgstr "S'abandona CAP_NICE" -#: ../src/daemon/main.c:627 +#: ../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:688 +#: ../src/daemon/main.c:692 msgid "Daemon not running" msgstr "El dimoni no s'està executant" -#: ../src/daemon/main.c:690 +#: ../src/daemon/main.c:694 #, c-format msgid "Daemon running as PID %u" msgstr "El dimoni s'està executant amb PID %u" -#: ../src/daemon/main.c:700 +#: ../src/daemon/main.c:704 #, c-format msgid "Failed to kill daemon: %s" msgstr "S'ha produït un error en matar el dimoni: %s" -#: ../src/daemon/main.c:718 +#: ../src/daemon/main.c:722 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -358,165 +327,176 @@ msgstr "" "No és necessari executar aquesta aplicació com a root (excepte si " "s'especifica --system)" -#: ../src/daemon/main.c:720 +#: ../src/daemon/main.c:724 msgid "Root privileges required." msgstr "Es requereixen privilegis de root." -#: ../src/daemon/main.c:725 +#: ../src/daemon/main.c:729 msgid "--start not supported for system instances." msgstr "La opció --start no està suportada per a instà ncies de sistema." -#: ../src/daemon/main.c:730 +#: ../src/daemon/main.c:734 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:733 +#: ../src/daemon/main.c:737 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:736 +#: ../src/daemon/main.c:740 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:741 +#: ../src/daemon/main.c:745 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:768 +#: ../src/daemon/main.c:772 msgid "Failed to acquire stdio." msgstr "S'ha produït un error en adquirir stdio." -#: ../src/daemon/main.c:774 +#: ../src/daemon/main.c:778 #, c-format msgid "pipe failed: %s" msgstr "Ha fallat la canonada: %s" -#: ../src/daemon/main.c:779 +#: ../src/daemon/main.c:783 #, c-format msgid "fork() failed: %s" msgstr "Ha fallat fork(): %s" -#: ../src/daemon/main.c:793 +#: ../src/daemon/main.c:797 #, c-format msgid "read() failed: %s" msgstr "Ha fallat read(): %s" -#: ../src/daemon/main.c:799 +#: ../src/daemon/main.c:803 msgid "Daemon startup failed." msgstr "S'ha produït un error en iniciar el dimoni." -#: ../src/daemon/main.c:801 +#: ../src/daemon/main.c:805 msgid "Daemon startup successful." msgstr "S'ha iniciat el dimoni." -#: ../src/daemon/main.c:871 +#: ../src/daemon/main.c:875 #, c-format msgid "This is PulseAudio %s" msgstr "Aquest és el PulseAudio %s" -#: ../src/daemon/main.c:872 +#: ../src/daemon/main.c:876 #, c-format msgid "Compilation host: %s" msgstr "Host de compilació: %s" -#: ../src/daemon/main.c:873 +#: ../src/daemon/main.c:877 #, c-format msgid "Compilation CFLAGS: %s" msgstr "CFLAGS de compilació: %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:880 #, c-format msgid "Running on host: %s" msgstr "S'està executant en el host: %s" -#: ../src/daemon/main.c:879 +#: ../src/daemon/main.c:883 #, c-format msgid "Found %u CPUs." msgstr "S'han trobat %u CPU's" -#: ../src/daemon/main.c:881 +#: ../src/daemon/main.c:885 #, c-format msgid "Page size is %lu bytes" msgstr "La mida de pà gina és de %lu bytes." -#: ../src/daemon/main.c:884 +#: ../src/daemon/main.c:888 msgid "Compiled with Valgrind support: yes" msgstr "Compilat amb suport per a Valgrind: sÃ" -#: ../src/daemon/main.c:886 +#: ../src/daemon/main.c:890 msgid "Compiled with Valgrind support: no" msgstr "Compilat amb suport per a Valgrind: no" -#: ../src/daemon/main.c:889 +#: ../src/daemon/main.c:893 #, c-format msgid "Running in valgrind mode: %s" msgstr "S'està executant amb el mode valgrind: %s" -#: ../src/daemon/main.c:892 +#: ../src/daemon/main.c:896 msgid "Optimized build: yes" msgstr "Construcció optimitzada: sÃ" -#: ../src/daemon/main.c:894 +#: ../src/daemon/main.c:898 msgid "Optimized build: no" msgstr "Construcció optmitzada: no" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:902 msgid "NDEBUG defined, all asserts disabled." -msgstr "" +msgstr "NDEBUG està definit, s'han desactivat totes les assercions." -#: ../src/daemon/main.c:900 +#: ../src/daemon/main.c:904 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:902 +#: ../src/daemon/main.c:906 msgid "All asserts enabled." -msgstr "" +msgstr "S'han habilitat totes les assercions." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:910 msgid "Failed to get machine ID" -msgstr "S'ha produït un error en obtenir l'ID de la mà quina" +msgstr "No s'ha pogut obtenir l'ID de la mà quina" -#: ../src/daemon/main.c:909 +#: ../src/daemon/main.c:913 #, c-format msgid "Machine ID is %s." msgstr "L'ID de la mà quina és %s." -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:917 #, fuzzy, c-format msgid "Session ID is %s." msgstr "L'ID de la mà quina és %s." -#: ../src/daemon/main.c:919 +#: ../src/daemon/main.c:923 #, c-format msgid "Using runtime directory %s." msgstr "S'està utilitzant el directori d'execució %s." -#: ../src/daemon/main.c:924 +#: ../src/daemon/main.c:928 #, c-format msgid "Using state directory %s." msgstr "S'està utilitzant el directori d'estat %s." -#: ../src/daemon/main.c:927 +#: ../src/daemon/main.c:931 #, c-format msgid "Running in system mode: %s" msgstr "S'està executant en mode sistema: %s" -#: ../src/daemon/main.c:942 +#: ../src/daemon/main.c:934 +msgid "" +"OK, so you are running PA in system mode. Please note that you most likely " +"shouldn't be doing that.\n" +"If you do it nonetheless then it's your own fault if things don't work as " +"expected.\n" +"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " +"explanation why system mode is usually a bad idea." +msgstr "" + +#: ../src/daemon/main.c:951 msgid "pa_pid_file_create() failed." msgstr "S'ha produït un error en pa_pid_file_create()." -#: ../src/daemon/main.c:954 +#: ../src/daemon/main.c:961 msgid "Fresh high-resolution timers available! Bon appetit!" -msgstr "Estan disponibles els temporitzadors frescos de alta resolució." +msgstr "Estan disponibles els temporitzadors frescos d'alta resolució." -#: ../src/daemon/main.c:956 +#: ../src/daemon/main.c:963 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -524,31 +504,31 @@ msgstr "" "Es recomana la utilització d'un nucli amb els temporitzadors d'alta " "resolució habilitats." -#: ../src/daemon/main.c:970 +#: ../src/daemon/main.c:988 msgid "pa_core_new() failed." msgstr "S'ha produït un error en pa_core_new()." -#: ../src/daemon/main.c:1032 +#: ../src/daemon/main.c:1050 msgid "Failed to initialize daemon." msgstr "S'ha produït un error en inicialitzar el dimoni." -#: ../src/daemon/main.c:1037 +#: ../src/daemon/main.c:1055 msgid "Daemon startup without any loaded modules, refusing to work." -msgstr "Com el dimoni s'ha iniciat sense cap mòdul carregat, no funciona." +msgstr "El dimoni s'ha iniciat sense cap mòdul carregat, no funcionarà ." -#: ../src/daemon/main.c:1054 +#: ../src/daemon/main.c:1072 msgid "Daemon startup complete." msgstr "S'ha completat la inicialització del dimoni." -#: ../src/daemon/main.c:1060 +#: ../src/daemon/main.c:1078 msgid "Daemon shutdown initiated." msgstr "S'ha iniciat l'aturada del dimoni." -#: ../src/daemon/main.c:1082 +#: ../src/daemon/main.c:1100 msgid "Daemon terminated." msgstr "S'ha aturat el dimoni." -#: ../src/daemon/cmdline.c:121 +#: ../src/daemon/cmdline.c:115 #, c-format msgid "" "%s [options]\n" @@ -632,8 +612,8 @@ msgstr "" "remostratge\n" " --cleanup-shm Neteja els segments de memòria " "compartida sense emprar\n" -" --start Inicia el dimoni si aquest no està " -"corrent\n" +" --start Inicia el dimoni si aquest no s'està " +"executant\n" " -k --kill Mata el dimoni en execució\n" " --check Comprova l'execució del dimoni\n" "\n" @@ -704,15 +684,15 @@ msgstr "" " -n No carreguis el fitxer de " "configuració per omissió\n" -#: ../src/daemon/cmdline.c:252 +#: ../src/daemon/cmdline.c:247 msgid "--daemonize expects boolean argument" msgstr "--daemonize necessita un argument booleà " -#: ../src/daemon/cmdline.c:259 +#: ../src/daemon/cmdline.c:254 msgid "--fail expects boolean argument" msgstr "--fail necessita un argument booleà " -#: ../src/daemon/cmdline.c:269 +#: ../src/daemon/cmdline.c:264 msgid "" "--log-level expects log level argument (either numeric in range 0..4 or one " "of debug, info, notice, warn, error)." @@ -720,52 +700,52 @@ msgstr "" "--log-level necessita un argument de nivell de log (valor númeric 0..4 o " "debug, info, notice, warn, error)." -#: ../src/daemon/cmdline.c:281 +#: ../src/daemon/cmdline.c:276 msgid "--high-priority expects boolean argument" msgstr "--high-priority necessita un argument booleà " -#: ../src/daemon/cmdline.c:288 +#: ../src/daemon/cmdline.c:283 msgid "--realtime expects boolean argument" msgstr "--realtime necessita un argument booleà " -#: ../src/daemon/cmdline.c:295 +#: ../src/daemon/cmdline.c:290 msgid "--disallow-module-loading expects boolean argument" msgstr "--disallow-module-loading necessita un argument booleà " -#: ../src/daemon/cmdline.c:302 +#: ../src/daemon/cmdline.c:297 msgid "--disallow-exit expects boolean argument" -msgstr "--disallow-exit necessita d'un argument booleà " +msgstr "--disallow-exit necessita un argument booleà " -#: ../src/daemon/cmdline.c:309 +#: ../src/daemon/cmdline.c:304 msgid "--use-pid-file expects boolean argument" msgstr "--use-pid-file necessita un argument booleà " -#: ../src/daemon/cmdline.c:326 +#: ../src/daemon/cmdline.c:321 msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgstr "Objectiu de log invà lid: utilitzeu 'syslog', 'stderr' o 'auto'." -#: ../src/daemon/cmdline.c:333 +#: ../src/daemon/cmdline.c:328 msgid "--log-time expects boolean argument" msgstr "--logtime necessita un argument booleà " -#: ../src/daemon/cmdline.c:340 +#: ../src/daemon/cmdline.c:335 msgid "--log-meta expects boolean argument" msgstr "--log-meta necessita un argument booleà " -#: ../src/daemon/cmdline.c:359 +#: ../src/daemon/cmdline.c:354 #, c-format msgid "Invalid resample method '%s'." msgstr "Mètode de remostratge invà lid '%s'." -#: ../src/daemon/cmdline.c:366 +#: ../src/daemon/cmdline.c:361 msgid "--system expects boolean argument" msgstr "--system necessita un argument booleà " -#: ../src/daemon/cmdline.c:373 +#: ../src/daemon/cmdline.c:368 msgid "--no-cpu-limit expects boolean argument" msgstr "--no-cpu-limit necessita un argument booleà " -#: ../src/daemon/cmdline.c:380 +#: ../src/daemon/cmdline.c:375 msgid "--disable-shm expects boolean argument" msgstr "--disable-shm necessita un argument booleà " @@ -804,77 +784,82 @@ msgstr "Utilització: %s\n" msgid "Load Once: %s\n" msgstr "Cà rrega: %s\n" -#: ../src/daemon/dumpmodules.c:77 +#: ../src/daemon/dumpmodules.c:75 +#, c-format +msgid "DEPRECATION WARNING: %s\n" +msgstr "" + +#: ../src/daemon/dumpmodules.c:79 #, c-format msgid "Path: %s\n" msgstr "Ruta: %s\n" -#: ../src/daemon/daemon-conf.c:215 +#: ../src/daemon/daemon-conf.c:216 #, c-format msgid "[%s:%u] Invalid log target '%s'." msgstr "[%s:%u] Destà de registre incorrecte '%s'" -#: ../src/daemon/daemon-conf.c:231 +#: ../src/daemon/daemon-conf.c:232 #, c-format msgid "[%s:%u] Invalid log level '%s'." msgstr "[%s:%u] Nivell de registre incorrecte '%s'." -#: ../src/daemon/daemon-conf.c:247 +#: ../src/daemon/daemon-conf.c:248 #, c-format msgid "[%s:%u] Invalid resample method '%s'." msgstr "[%s:%u] Mètode de remostreig incorrecte '%s'." -#: ../src/daemon/daemon-conf.c:270 +#: ../src/daemon/daemon-conf.c:271 #, c-format msgid "[%s:%u] Invalid rlimit '%s'." msgstr "[%s:%u] rlimit incorrecte '%s'." -#: ../src/daemon/daemon-conf.c:277 +#: ../src/daemon/daemon-conf.c:278 #, c-format msgid "[%s:%u] rlimit not supported on this platform." msgstr "[%s:%u] rlimit no disponible en aquesta plataforma." -#: ../src/daemon/daemon-conf.c:293 +#: ../src/daemon/daemon-conf.c:294 #, c-format msgid "[%s:%u] Invalid sample format '%s'." msgstr "[%s:%u] Format de mostra incorrecte '%s'." -#: ../src/daemon/daemon-conf.c:311 +#: ../src/daemon/daemon-conf.c:312 #, c-format msgid "[%s:%u] Invalid sample rate '%s'." msgstr "[%s:%u] Velocitat de mostreig '%s'." -#: ../src/daemon/daemon-conf.c:335 +#: ../src/daemon/daemon-conf.c:336 #, c-format msgid "[%s:%u] Invalid sample channels '%s'." msgstr "[%s:%u] Canals de mostreig incorrectes '%s'." -#: ../src/daemon/daemon-conf.c:353 +#: ../src/daemon/daemon-conf.c:354 #, c-format msgid "[%s:%u] Invalid channel map '%s'." msgstr "[%s:%u] Mapa de canals incorrecte '%s'." -#: ../src/daemon/daemon-conf.c:371 +#: ../src/daemon/daemon-conf.c:372 #, c-format msgid "[%s:%u] Invalid number of fragments '%s'." msgstr "[%s:%u] Nombre de fragments incorrecte '%s'." -#: ../src/daemon/daemon-conf.c:389 +#: ../src/daemon/daemon-conf.c:390 #, c-format msgid "[%s:%u] Invalid fragment size '%s'." msgstr "[%s:%u] Mida de fragment incorrecta '%s'." -#: ../src/daemon/daemon-conf.c:407 +#: ../src/daemon/daemon-conf.c:408 #, c-format msgid "[%s:%u] Invalid nice level '%s'." msgstr "[%s:%u] Nivell de prioritat incorrecte '%s'." -#: ../src/daemon/daemon-conf.c:522 +#: ../src/daemon/daemon-conf.c:524 #, c-format msgid "Failed to open configuration file: %s" msgstr "Error en obrir el fitxer de configuració: %s" -#: ../src/daemon/daemon-conf.c:538 +#: ../src/daemon/daemon-conf.c:540 msgid "" "The specified default channel map has a different number of channels than " "the specified default number of channels." @@ -907,254 +892,257 @@ msgstr "Inicialitza el sistema de so PulseAudio" 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 -#, fuzzy msgid "Real-time scheduling for the PulseAudio daemon" -msgstr "Ha fallat en matar el dimoni PulseAudio." +msgstr "Programació en temps real per al dimoni PulseAudio" #: ../src/daemon/org.pulseaudio.policy.in.h:3 -#, fuzzy msgid "" "System policy prevents PulseAudio from acquiring high-priority scheduling." msgstr "" -"Aquesta aplicació està en el grup '%s', s'està establint la prioritat alta." +"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:103 ../src/pulse/channelmap.c:804 +#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Mono" -#: ../src/pulse/channelmap.c:105 +#: ../src/pulse/channelmap.c:107 msgid "Front Center" msgstr "Frontal central" -#: ../src/pulse/channelmap.c:106 +#: ../src/pulse/channelmap.c:108 msgid "Front Left" msgstr "Frontal esquerra" -#: ../src/pulse/channelmap.c:107 +#: ../src/pulse/channelmap.c:109 msgid "Front Right" msgstr "Frontal dreta" -#: ../src/pulse/channelmap.c:109 +#: ../src/pulse/channelmap.c:111 msgid "Rear Center" msgstr "Posterior central" -#: ../src/pulse/channelmap.c:110 +#: ../src/pulse/channelmap.c:112 msgid "Rear Left" msgstr "Posterior esquerra" -#: ../src/pulse/channelmap.c:111 +#: ../src/pulse/channelmap.c:113 msgid "Rear Right" msgstr "Posterior dreta" -#: ../src/pulse/channelmap.c:113 +#: ../src/pulse/channelmap.c:115 msgid "Low Frequency Emmiter" msgstr "Emissor de baixa freqüència" -#: ../src/pulse/channelmap.c:115 +#: ../src/pulse/channelmap.c:117 msgid "Front Left-of-center" msgstr "Frontal central part esquerra" -#: ../src/pulse/channelmap.c:116 +#: ../src/pulse/channelmap.c:118 msgid "Front Right-of-center" msgstr "Frontal central part dreta" -#: ../src/pulse/channelmap.c:118 +#: ../src/pulse/channelmap.c:120 msgid "Side Left" msgstr "Lateral esquerra" -#: ../src/pulse/channelmap.c:119 +#: ../src/pulse/channelmap.c:121 msgid "Side Right" msgstr "Lateral dreta" -#: ../src/pulse/channelmap.c:121 +#: ../src/pulse/channelmap.c:123 msgid "Auxiliary 0" msgstr "Auxiliar 0" -#: ../src/pulse/channelmap.c:122 +#: ../src/pulse/channelmap.c:124 msgid "Auxiliary 1" msgstr "Auxiliar 1" -#: ../src/pulse/channelmap.c:123 +#: ../src/pulse/channelmap.c:125 msgid "Auxiliary 2" msgstr "Auxiliar 2" -#: ../src/pulse/channelmap.c:124 +#: ../src/pulse/channelmap.c:126 msgid "Auxiliary 3" msgstr "Auxiliar 3" -#: ../src/pulse/channelmap.c:125 +#: ../src/pulse/channelmap.c:127 msgid "Auxiliary 4" msgstr "Auxiliar 4" -#: ../src/pulse/channelmap.c:126 +#: ../src/pulse/channelmap.c:128 msgid "Auxiliary 5" msgstr "Auxiliar 5" -#: ../src/pulse/channelmap.c:127 +#: ../src/pulse/channelmap.c:129 msgid "Auxiliary 6" msgstr "Auxiliar 6" -#: ../src/pulse/channelmap.c:128 +#: ../src/pulse/channelmap.c:130 msgid "Auxiliary 7" msgstr "Auxiliar 7" -#: ../src/pulse/channelmap.c:129 +#: ../src/pulse/channelmap.c:131 msgid "Auxiliary 8" msgstr "Auxiliar 8" -#: ../src/pulse/channelmap.c:130 +#: ../src/pulse/channelmap.c:132 msgid "Auxiliary 9" msgstr "Auxiliar 9" -#: ../src/pulse/channelmap.c:131 +#: ../src/pulse/channelmap.c:133 msgid "Auxiliary 10" msgstr "Auxiliar 10" -#: ../src/pulse/channelmap.c:132 +#: ../src/pulse/channelmap.c:134 msgid "Auxiliary 11" msgstr "Auxiliar 11" -#: ../src/pulse/channelmap.c:133 +#: ../src/pulse/channelmap.c:135 msgid "Auxiliary 12" msgstr "Auxiliar 12" -#: ../src/pulse/channelmap.c:134 +#: ../src/pulse/channelmap.c:136 msgid "Auxiliary 13" msgstr "Auxiliar 13" -#: ../src/pulse/channelmap.c:135 +#: ../src/pulse/channelmap.c:137 msgid "Auxiliary 14" msgstr "Auxiliar 14" -#: ../src/pulse/channelmap.c:136 +#: ../src/pulse/channelmap.c:138 msgid "Auxiliary 15" msgstr "Auxiliar 15" -#: ../src/pulse/channelmap.c:137 +#: ../src/pulse/channelmap.c:139 msgid "Auxiliary 16" msgstr "Auxiliar 16" -#: ../src/pulse/channelmap.c:138 +#: ../src/pulse/channelmap.c:140 msgid "Auxiliary 17" msgstr "Auxiliar 17" -#: ../src/pulse/channelmap.c:139 +#: ../src/pulse/channelmap.c:141 msgid "Auxiliary 18" msgstr "Auxiliar 18" -#: ../src/pulse/channelmap.c:140 +#: ../src/pulse/channelmap.c:142 msgid "Auxiliary 19" msgstr "Auxiliar 19" -#: ../src/pulse/channelmap.c:141 +#: ../src/pulse/channelmap.c:143 msgid "Auxiliary 20" msgstr "Auxiliar 20" -#: ../src/pulse/channelmap.c:142 +#: ../src/pulse/channelmap.c:144 msgid "Auxiliary 21" msgstr "Auxiliar 21" -#: ../src/pulse/channelmap.c:143 +#: ../src/pulse/channelmap.c:145 msgid "Auxiliary 22" msgstr "Auxiliar 22" -#: ../src/pulse/channelmap.c:144 +#: ../src/pulse/channelmap.c:146 msgid "Auxiliary 23" msgstr "Auxiliar 23" -#: ../src/pulse/channelmap.c:145 +#: ../src/pulse/channelmap.c:147 msgid "Auxiliary 24" msgstr "Auxiliar 24" -#: ../src/pulse/channelmap.c:146 +#: ../src/pulse/channelmap.c:148 msgid "Auxiliary 25" msgstr "Auxiliar 25" -#: ../src/pulse/channelmap.c:147 +#: ../src/pulse/channelmap.c:149 msgid "Auxiliary 26" msgstr "Auxiliar 26" -#: ../src/pulse/channelmap.c:148 +#: ../src/pulse/channelmap.c:150 msgid "Auxiliary 27" msgstr "Auxiliar 27" -#: ../src/pulse/channelmap.c:149 +#: ../src/pulse/channelmap.c:151 msgid "Auxiliary 28" msgstr "Auxiliar 28" -#: ../src/pulse/channelmap.c:150 +#: ../src/pulse/channelmap.c:152 msgid "Auxiliary 29" msgstr "Auxiliar 31" -#: ../src/pulse/channelmap.c:151 +#: ../src/pulse/channelmap.c:153 msgid "Auxiliary 30" msgstr "Auxiliar 30" -#: ../src/pulse/channelmap.c:152 +#: ../src/pulse/channelmap.c:154 msgid "Auxiliary 31" msgstr "Auxiliar 31" -#: ../src/pulse/channelmap.c:154 +#: ../src/pulse/channelmap.c:156 msgid "Top Center" msgstr "Superior central" -#: ../src/pulse/channelmap.c:156 +#: ../src/pulse/channelmap.c:158 msgid "Top Front Center" msgstr "Superior frontal central" -#: ../src/pulse/channelmap.c:157 +#: ../src/pulse/channelmap.c:159 msgid "Top Front Left" -msgstr "Superior frontal central" +msgstr "Superior frontal esquerra" -#: ../src/pulse/channelmap.c:158 +#: ../src/pulse/channelmap.c:160 msgid "Top Front Right" msgstr "Superior frontal dreta" -#: ../src/pulse/channelmap.c:160 +#: ../src/pulse/channelmap.c:162 msgid "Top Rear Center" msgstr "Superior posterior central" -#: ../src/pulse/channelmap.c:161 +#: ../src/pulse/channelmap.c:163 msgid "Top Rear Left" msgstr "Superior posterior esquerra" -#: ../src/pulse/channelmap.c:162 +#: ../src/pulse/channelmap.c:164 msgid "Top Rear Right" msgstr "Superior posterior dreta" -#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167 -#: ../src/pulse/volume.c:170 ../src/pulse/volume.c:196 -#: ../src/pulse/volume.c:216 ../src/pulse/volume.c:246 +#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167 +#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265 +#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315 msgid "(invalid)" msgstr "(incorrecte)" -#: ../src/pulse/channelmap.c:808 +#: ../src/pulse/channelmap.c:751 msgid "Stereo" msgstr "Estèreo" -#: ../src/pulse/channelmap.c:813 +#: ../src/pulse/channelmap.c:756 msgid "Surround 4.0" msgstr "Envolvent 4.0" -#: ../src/pulse/channelmap.c:819 +#: ../src/pulse/channelmap.c:762 msgid "Surround 4.1" msgstr "Envolvent 4.1" -#: ../src/pulse/channelmap.c:825 +#: ../src/pulse/channelmap.c:768 msgid "Surround 5.0" msgstr "Envolvent 5.0" -#: ../src/pulse/channelmap.c:831 +#: ../src/pulse/channelmap.c:774 msgid "Surround 5.1" msgstr "Envolvent 5.1" -#: ../src/pulse/channelmap.c:838 +#: ../src/pulse/channelmap.c:781 msgid "Surround 7.1" msgstr "Envolvent 7.1" @@ -1256,7 +1244,7 @@ msgstr "Manca la implementació" #: ../src/pulse/error.c:67 msgid "Client forked" -msgstr "" +msgstr "Client bifurcat" #: ../src/pulse/sample.c:169 #, c-format @@ -1313,177 +1301,172 @@ msgstr "waitpid(): %s" #: ../src/pulse/context.c:1403 #, c-format msgid "Received message for unknown extension '%s'" -msgstr "S'ha rebut un missatge per a l'extensió desconeguda '%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" +msgstr "S'ha produït un error en drenar el fluxe: %s\n" + +#: ../src/utils/pacat.c:112 +msgid "Playback stream drained.\n" +msgstr "Flux de reproducció drenat.\n" + +#: ../src/utils/pacat.c:122 +msgid "Draining connection to server.\n" +msgstr "S'està drenant la connexió amb el servidor.\n" + +#: ../src/utils/pacat.c:135 +#, c-format +msgid "pa_stream_drain(): %s\n" +msgstr "pa_stream_drain(): %s\n" -#: ../src/utils/pacat.c:94 +#: ../src/utils/pacat.c:158 #, c-format msgid "pa_stream_write() failed: %s\n" msgstr "Ha fallat pa_stream_write(): %s\n" -#: ../src/utils/pacat.c:133 +#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 #, c-format msgid "pa_stream_peek() failed: %s\n" msgstr "Ha fallat pa_stream_peek(): %s\n" -#: ../src/utils/pacat.c:169 -#, c-format +#: ../src/utils/pacat.c:302 msgid "Stream successfully created.\n" msgstr "Flux creat correctament.\n" -#: ../src/utils/pacat.c:172 +#: ../src/utils/pacat.c:305 #, c-format msgid "pa_stream_get_buffer_attr() failed: %s\n" msgstr "Ha fallat pa_stream_get_buffer_attr(): %s\n" -#: ../src/utils/pacat.c:176 +#: ../src/utils/pacat.c:309 #, c-format msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgstr "Mètriques del búffer: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:179 +#: ../src/utils/pacat.c:312 #, c-format msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgstr "Mètriques del búffer: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:183 +#: ../src/utils/pacat.c:316 #, c-format msgid "Using sample spec '%s', channel map '%s'.\n" msgstr "" "S'estan utilitzant les especificacions de mostreig '%s', mapejat del canal '%" "s'.\n" -#: ../src/utils/pacat.c:187 +#: ../src/utils/pacat.c:320 #, c-format msgid "Connected to device %s (%u, %ssuspended).\n" -msgstr "S'ha connectat al dispositiu %s (%u, %s suspés).\n" +msgstr "S'ha connectat al dispositiu %s (%u, %ssuspés).\n" -#: ../src/utils/pacat.c:197 +#: ../src/utils/pacat.c:330 #, c-format msgid "Stream error: %s\n" msgstr "S'ha produït un error en l'stream: %s\n" -#: ../src/utils/pacat.c:207 +#: ../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:209 +#: ../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:217 +#: ../src/utils/pacat.c:350 #, c-format msgid "Stream underrun.%s \n" msgstr "Dades insuficients al flux .%s\n" -#: ../src/utils/pacat.c:224 +#: ../src/utils/pacat.c:357 #, c-format msgid "Stream overrun.%s \n" msgstr "Desbordament de flux.%s\n" -#: ../src/utils/pacat.c:231 +#: ../src/utils/pacat.c:364 #, c-format msgid "Stream started.%s \n" msgstr "S'ha iniciat el flux.%s\n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 #, c-format msgid "Stream moved to device %s (%u, %ssuspended).%s \n" -msgstr "S'ha mogut el flux al dispositiu %s (%u, %s suspés).%s\n" +msgstr "S'ha mogut el flux al dispositiu %s (%u, %ssuspés).%s\n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 msgid "not " msgstr "no" -#: ../src/utils/pacat.c:245 -#, fuzzy, c-format +#: ../src/utils/pacat.c:378 +#, c-format msgid "Stream buffer attributes changed.%s \n" -msgstr "Dades insuficients al flux .%s\n" +msgstr "Atributs del fluxe de la memòria intermèdia canviats.%s \n" -#: ../src/utils/pacat.c:278 +#: ../src/utils/pacat.c:411 #, c-format msgid "Connection established.%s \n" msgstr "S'ha establert la connexió.%s\n" -#: ../src/utils/pacat.c:281 +#: ../src/utils/pacat.c:414 #, c-format msgid "pa_stream_new() failed: %s\n" msgstr "Ha fallat pa_stream_new(): %s\n" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:442 #, c-format msgid "pa_stream_connect_playback() failed: %s\n" msgstr "Ha fallat pa_stream_connect_playback(): %s\n" -#: ../src/utils/pacat.c:315 +#: ../src/utils/pacat.c:448 #, c-format msgid "pa_stream_connect_record() failed: %s\n" msgstr "Ha fallat pa_stream_connect_record(): %s\n" -#: ../src/utils/pacat.c:329 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:762 ../src/utils/paplay.c:183 +#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 #, c-format msgid "Connection failure: %s\n" msgstr "Ha fallat la connexió: %s\n" -#: ../src/utils/pacat.c:349 ../src/utils/paplay.c:75 -#, c-format -msgid "Failed to drain stream: %s\n" -msgstr "S'ha produït un error en drenar el fluxe: %s\n" - -#: ../src/utils/pacat.c:354 ../src/utils/paplay.c:80 -#, c-format -msgid "Playback stream drained.\n" -msgstr "Stream de reproducció drenat.\n" - -#: ../src/utils/pacat.c:364 ../src/utils/paplay.c:92 -#, c-format -msgid "Draining connection to server.\n" -msgstr "S'està drenant la connexió amb el servidor.\n" - -#: ../src/utils/pacat.c:390 -#, c-format +#: ../src/utils/pacat.c:495 msgid "Got EOF.\n" msgstr "S'ha llegit EOF.\n" -#: ../src/utils/pacat.c:396 -#, c-format -msgid "pa_stream_drain(): %s\n" -msgstr "pa_stream_drain(): %s\n" - -#: ../src/utils/pacat.c:406 +#: ../src/utils/pacat.c:500 #, c-format msgid "read() failed: %s\n" msgstr "Ha fallat read(): %s\n" -#: ../src/utils/pacat.c:438 +#: ../src/utils/pacat.c:532 #, c-format msgid "write() failed: %s\n" msgstr "Ha fallat write(): %s\n" -#: ../src/utils/pacat.c:459 -#, c-format +#: ../src/utils/pacat.c:553 msgid "Got signal, exiting.\n" msgstr "S'ha rebut un senyal, s'està sortint.\n" -#: ../src/utils/pacat.c:473 +#: ../src/utils/pacat.c:567 #, c-format msgid "Failed to get latency: %s\n" -msgstr "Ha fallat en obtenir la latència: %s\n" +msgstr "No s'ha pogut obtenir la latència: %s\n" -#: ../src/utils/pacat.c:478 +#: ../src/utils/pacat.c:572 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "Temps: %0.3f segs; Latència: %0.0f microsegs.\r" -#: ../src/utils/pacat.c:498 +#: ../src/utils/pacat.c:592 #, c-format msgid "pa_stream_update_timing_info() failed: %s\n" msgstr "Ha fallat pa_stream_update_timing_info(): %s\n" -#: ../src/utils/pacat.c:511 -#, c-format +#: ../src/utils/pacat.c:605 +#, fuzzy, c-format msgid "" "%s [options]\n" "\n" @@ -1509,8 +1492,10 @@ msgid "" "44100)\n" " --format=SAMPLEFORMAT The sample type, one of s16le, " "s16be, u8, float32le,\n" -" float32be, ulaw, alaw, s32le, s32be " -"(defaults to s16ne)\n" +" float32be, ulaw, alaw, s32le, s32be, " +"s24le, s24be,\n" +" s24-32le, s24-32be (defaults to " +"s16ne)\n" " --channels=CHANNELS The number of channels, 1 for mono, " "2 for stereo\n" " (defaults to 2)\n" @@ -1533,6 +1518,11 @@ msgid "" "bytes.\n" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" +" --property=PROPERTY=VALUE Set the specified property to the " +"specified value.\n" +" --raw Record/play raw PCM data.\n" +" --file-format=FFORMAT Record/play formatted PCM data.\n" +" --list-file-formats List available file formats.\n" msgstr "" "%s [opcions]\n" "\n" @@ -1575,14 +1565,14 @@ msgstr "" "de canals del\n" " conducte al qual s'està connectant " "el flux.\n" -" --no-remix No mesclar els canals.\n" -" --no-remap Mapeja els canals per Ãndex enlloc " -"de per nom .\n" -" --latency=BYTES Especifica la latència en bytes.\n" -" --process-time=BYTES Especifica el temps de procés per " +" --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" +" --process-time=BYTES Sol·licita el temps de procés per " "petició en bytes.\n" -#: ../src/utils/pacat.c:612 +#: ../src/utils/pacat.c:727 #, c-format msgid "" "pacat %s\n" @@ -1590,91 +1580,136 @@ msgid "" "Linked with libpulse %s\n" msgstr "" "pacat %s\n" -"Compil·lat amb libpulse %s\n" +"Compilat amb libpulse %s\n" "Enllaçat amb libpulse %s\n" -#: ../src/utils/pacat.c:669 +#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "Mapa de canals 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'." + +#: ../src/utils/pacat.c:813 #, c-format msgid "Invalid channel map '%s'\n" msgstr "Mapa de canals invà lid '%s'\n" -#: ../src/utils/pacat.c:698 +#: ../src/utils/pacat.c:842 #, c-format msgid "Invalid latency specification '%s'\n" msgstr "Especificació de latència invà lida '%s'\n" -#: ../src/utils/pacat.c:705 +#: ../src/utils/pacat.c:849 #, c-format msgid "Invalid process time specification '%s'\n" msgstr "Especificació de temps de procés invà lida '%s'\n" -#: ../src/utils/pacat.c:716 +#: ../src/utils/pacat.c:861 +#, fuzzy, c-format +msgid "Invalid property '%s'\n" +msgstr "Mètode de remostratge invà lid '%s'." + +#: ../src/utils/pacat.c:878 #, c-format +msgid "Unknown file format %s." +msgstr "" + +#: ../src/utils/pacat.c:897 msgid "Invalid sample specification\n" msgstr "Especificació de mostra invà lida\n" -#: ../src/utils/pacat.c:721 +#: ../src/utils/pacat.c:907 #, c-format +msgid "open(): %s\n" +msgstr "open(): %s\n" + +#: ../src/utils/pacat.c:912 +#, c-format +msgid "dup2(): %s\n" +msgstr "dup2(): %s\n" + +#: ../src/utils/pacat.c:919 +msgid "Too many arguments.\n" +msgstr "Hi han 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" + +#: ../src/utils/pacat.c:950 +#, fuzzy +msgid "Failed to open audio file.\n" +msgstr "No s'ha pogut obrir el fitxer de so.\n" + +#: ../src/utils/pacat.c:956 +msgid "" +"Warning: specified sample specification will be overwritten with " +"specification from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "No s'ha pogut obtenir informació de la mostra: %s\n" + +#: ../src/utils/pacat.c:968 +msgid "Warning: Failed to determine channel map from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:979 msgid "Channel map doesn't match sample specification\n" msgstr "El mapa de canals no coincideix amb l'especificació de mostra\n" -#: ../src/utils/pacat.c:728 -#, c-format -msgid "Opening a %s stream with sample specification '%s'.\n" +#: ../src/utils/pacat.c:990 +msgid "Warning: failed to write channel map to file.\n" +msgstr "" + +#: ../src/utils/pacat.c:1005 +#, fuzzy, c-format +msgid "" +"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" msgstr "S'està obrint un flux %s amb especificació de mostra '%s'.\n" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "recording" msgstr "enregistrant" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "playback" msgstr "reproducció" -#: ../src/utils/pacat.c:736 -#, c-format -msgid "open(): %s\n" -msgstr "open(): %s\n" - -#: ../src/utils/pacat.c:741 -#, c-format -msgid "dup2(): %s\n" -msgstr "dup2(): %s\n" - -#: ../src/utils/pacat.c:751 -#, c-format -msgid "Too many arguments.\n" -msgstr "Hi han massa arguments.\n" - -#: ../src/utils/pacat.c:764 ../src/utils/pasuspender.c:280 -#: ../src/utils/pactl.c:1017 ../src/utils/paplay.c:381 +#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 +#: ../src/utils/pactl.c:1104 #, c-format msgid "pa_mainloop_new() failed.\n" msgstr "Ha fallat pa_mainloop_new().\n" -#: ../src/utils/pacat.c:785 -#, c-format +#: ../src/utils/pacat.c:1051 msgid "io_new() failed.\n" msgstr "Ha fallat io_new().\n" -#: ../src/utils/pacat.c:791 ../src/utils/pasuspender.c:293 -#: ../src/utils/pactl.c:1031 ../src/utils/paplay.c:396 +#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 +#: ../src/utils/pactl.c:1116 #, c-format msgid "pa_context_new() failed.\n" msgstr "Ha fallat pa_context_new().\n" -#: ../src/utils/pacat.c:799 +#: ../src/utils/pacat.c:1066 #, fuzzy, c-format msgid "pa_context_connect() failed: %s\n" msgstr "Ha fallat pa_context_connect(): %s" -#: ../src/utils/pacat.c:810 -#, c-format +#: ../src/utils/pacat.c:1077 msgid "time_new() failed.\n" msgstr "Ha fallat time_new().\n" -#: ../src/utils/pacat.c:817 ../src/utils/pasuspender.c:301 -#: ../src/utils/pactl.c:1042 ../src/utils/paplay.c:410 +#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 +#: ../src/utils/pactl.c:1127 #, c-format msgid "pa_mainloop_run() failed.\n" msgstr "Ha fallat pa_mainloop_run().\n" @@ -1692,20 +1727,19 @@ msgstr "execvp(): %s\n" #: ../src/utils/pasuspender.c:109 #, c-format msgid "Failure to suspend: %s\n" -msgstr "Ha fallat en susprendre: %s\n" +msgstr "No s'ha pogut suspendre: %s\n" #: ../src/utils/pasuspender.c:124 #, c-format msgid "Failure to resume: %s\n" -msgstr "Ha fallat en reprendre: %s\n" +msgstr "No s'ha pogut en rependre: %s\n" #: ../src/utils/pasuspender.c:147 #, c-format 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:176 ../src/utils/pactl.c:768 -#: ../src/utils/paplay.c:191 +#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" msgstr "S'ha rebut SIGINT, s'està sortint.\n" @@ -1713,7 +1747,7 @@ msgstr "S'ha rebut SIGINT, s'està sortint.\n" #: ../src/utils/pasuspender.c:194 #, c-format msgid "WARNING: Child process terminated by signal %u\n" -msgstr "ADVERTÈNCIA: Procés fill acabat per senyal %u\n" +msgstr "ADVERTÈNCIA: procés fill acabat pel senyal %u\n" #: ../src/utils/pasuspender.c:212 #, c-format @@ -1734,7 +1768,7 @@ msgstr "" "se\n" "\n" -#: ../src/utils/pasuspender.c:251 +#: ../src/utils/pasuspender.c:248 #, c-format msgid "" "pasuspender %s\n" @@ -1742,36 +1776,37 @@ msgid "" "Linked with libpulse %s\n" msgstr "" "pasuspender %s\n" -"Compil·lat amb libpulse %s\n" +"Compilat amb libpulse %s\n" "Enllaçat amb libpulse %s\n" -#: ../src/utils/pactl.c:108 +#: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" -msgstr "Ha fallat en obtenir les estadÃstiques: %s\n" +msgstr "No s'han pogut obtenir les estadÃstiques: %s\n" -#: ../src/utils/pactl.c:114 +#: ../src/utils/pactl.c:134 #, c-format msgid "Currently in use: %u blocks containing %s bytes total.\n" -msgstr "Actualment s'estan utilitzant: %u blocs contenent %s bytes en total.\n" +msgstr "" +"Actualment s'estan utilitzant: %u blocs que contenen %s bytes en total.\n" -#: ../src/utils/pactl.c:117 +#: ../src/utils/pactl.c:137 #, c-format msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n" msgstr "" -"Allotjats durant el temps de vida: %u blocs contenent %s bytes en total.\n" +"Allotjats durant el temps de vida: %u blocs que contenen %s bytes en total.\n" -#: ../src/utils/pactl.c:120 +#: ../src/utils/pactl.c:140 #, c-format msgid "Sample cache size: %s\n" -msgstr "Mida de memòria cau de mostra: %s\n" +msgstr "Mida de la memòria cau de mostres: %s\n" -#: ../src/utils/pactl.c:129 +#: ../src/utils/pactl.c:149 #, c-format msgid "Failed to get server information: %s\n" -msgstr "Ha fallat en obtenir la informació del servidor: %s\n" +msgstr "No s'ha pogut obtenir la informació del servidor: %s\n" -#: ../src/utils/pactl.c:137 +#: ../src/utils/pactl.c:157 #, c-format msgid "" "User name: %s\n" @@ -1792,14 +1827,14 @@ msgstr "" "Mapa de canals per omissió: %s\n" "Conducte per omissió: %s\n" "Font per omissió: %s\n" -"Cookie: %08x\n" +"Galeta: %08x\n" -#: ../src/utils/pactl.c:178 +#: ../src/utils/pactl.c:198 #, c-format msgid "Failed to get sink information: %s\n" -msgstr "Ha fallat en obtenir la informació del conducte: %s\n" +msgstr "No s'ha pogut obtenir la informació del conducte: %s\n" -#: ../src/utils/pactl.c:194 +#: ../src/utils/pactl.c:214 #, c-format msgid "" "Sink #%u\n" @@ -1838,12 +1873,22 @@ msgstr "" "\tPropietats:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:258 +#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 +#, fuzzy, c-format +msgid "\tPorts:\n" +msgstr "\tPerfils:\n" + +#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 +#, fuzzy, c-format +msgid "\tActive Port: %s\n" +msgstr "\tPerfil actiu: %s\n" + +#: ../src/utils/pactl.c:290 #, c-format msgid "Failed to get source information: %s\n" -msgstr "Ha fallat en obtenir la informació de la font: %s\n" +msgstr "No s'ha pogut obtenir la informació de la font: %s\n" -#: ../src/utils/pactl.c:274 +#: ../src/utils/pactl.c:306 #, c-format msgid "" "Source #%u\n" @@ -1882,20 +1927,20 @@ msgstr "" "\tPropietats:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:306 ../src/utils/pactl.c:350 ../src/utils/pactl.c:385 -#: ../src/utils/pactl.c:422 ../src/utils/pactl.c:481 ../src/utils/pactl.c:482 -#: ../src/utils/pactl.c:492 ../src/utils/pactl.c:536 ../src/utils/pactl.c:537 -#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:586 ../src/utils/pactl.c:587 -#: ../src/utils/pactl.c:594 +#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429 +#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526 +#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581 +#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631 +#: ../src/utils/pactl.c:638 msgid "n/a" msgstr "n/d" -#: ../src/utils/pactl.c:324 +#: ../src/utils/pactl.c:368 #, c-format msgid "Failed to get module information: %s\n" -msgstr "Ha fallat en obtenir informació del mòdul: %s\n" +msgstr "No s'ha pogut obtenir informació del mòdul: %s\n" -#: ../src/utils/pactl.c:342 +#: ../src/utils/pactl.c:386 #, c-format msgid "" "Module #%u\n" @@ -1912,12 +1957,12 @@ msgstr "" "\tPropietats:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:361 +#: ../src/utils/pactl.c:405 #, c-format msgid "Failed to get client information: %s\n" -msgstr "Ha fallat en obtenir informació: %s\n" +msgstr "No s'ha pogut obtenir informació del client: %s\n" -#: ../src/utils/pactl.c:379 +#: ../src/utils/pactl.c:423 #, c-format msgid "" "Client #%u\n" @@ -1932,12 +1977,12 @@ msgstr "" "\tPropietats:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:396 +#: ../src/utils/pactl.c:440 #, c-format msgid "Failed to get card information: %s\n" -msgstr "Ha fallat en obtenir la informació de la targeta: %s\n" +msgstr "No s'ha pogut obtenir la informació de la targeta: %s\n" -#: ../src/utils/pactl.c:414 +#: ../src/utils/pactl.c:458 #, c-format msgid "" "Card #%u\n" @@ -1954,22 +1999,22 @@ msgstr "" "\tPropietats:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:428 +#: ../src/utils/pactl.c:472 #, c-format msgid "\tProfiles:\n" msgstr "\tPerfils:\n" -#: ../src/utils/pactl.c:434 +#: ../src/utils/pactl.c:478 #, c-format msgid "\tActive Profile: %s\n" msgstr "\tPerfil actiu: %s\n" -#: ../src/utils/pactl.c:445 +#: ../src/utils/pactl.c:489 #, c-format msgid "Failed to get sink input information: %s\n" -msgstr "Ha fallat en obtenir informació del conducte d'entrada: %s\n" +msgstr "No s'ha pogut obtenir informació del conducte d'entrada: %s\n" -#: ../src/utils/pactl.c:464 +#: ../src/utils/pactl.c:508 #, c-format msgid "" "Sink Input #%u\n" @@ -1999,19 +2044,19 @@ msgstr "" "\tSilenciat: %s\n" "\tVolum: %s\n" "\t %s\n" -"\t balacenig %0.2f\n" +"\t balanç %0.2f\n" "\tLatència de búffer: %0.0f microsegs.\n" "\tLatència del conducte: %0.0f microsegs.\n" "\tMètode de remostreig: %s\n" "\tPropietats:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:503 +#: ../src/utils/pactl.c:547 #, c-format msgid "Failed to get source output information: %s\n" -msgstr "Ha fallat en obtenir la informació del conducte de sortida: %s\n" +msgstr "No s'ha pogut obtenir la informació del conducte de sortida: %s\n" -#: ../src/utils/pactl.c:523 +#: ../src/utils/pactl.c:567 #, c-format msgid "" "Source Output #%u\n" @@ -2040,12 +2085,12 @@ msgstr "" "\tPropietats:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:554 +#: ../src/utils/pactl.c:598 #, c-format msgid "Failed to get sample information: %s\n" -msgstr "Ha fallat en obtenir informació de la mostra: %s\n" +msgstr "No s'ha pogut obtenir informació de la mostra: %s\n" -#: ../src/utils/pactl.c:572 +#: ../src/utils/pactl.c:616 #, c-format msgid "" "Sample #%u\n" @@ -2076,23 +2121,22 @@ msgstr "" "\tPropietats:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:602 ../src/utils/pactl.c:612 +#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 #, c-format msgid "Failure: %s\n" msgstr "Ha fallat: %s\n" -#: ../src/utils/pactl.c:636 +#: ../src/utils/pactl.c:680 #, c-format msgid "Failed to upload sample: %s\n" -msgstr "Ha fallat en pujar la mostra: %s\n" +msgstr "No s'ha pogut pujar la mostra: %s\n" -#: ../src/utils/pactl.c:653 -#, c-format +#: ../src/utils/pactl.c:697 msgid "Premature end of file\n" msgstr "S'ha trobat un fi de fitxer prematurament\n" -#: ../src/utils/pactl.c:774 -#, c-format +#: ../src/utils/pactl.c:826 +#, fuzzy, c-format msgid "" "%s [options] stat\n" "%s [options] list\n" @@ -2107,6 +2151,8 @@ msgid "" "%s [options] suspend-sink [SINK] 1|0\n" "%s [options] suspend-source [SOURCE] 1|0\n" "%s [options] set-card-profile [CARD] [PROFILE] \n" +"%s [options] set-sink-port [SINK] [PORT] \n" +"%s [options] set-source-port [SOURCE] [PORT] \n" "\n" " -h, --help Show this help\n" " --version Show version\n" @@ -2138,7 +2184,7 @@ msgstr "" " -n, --client-name=NOM Com cridar aquest client al " "servidor\n" -#: ../src/utils/pactl.c:826 +#: ../src/utils/pactl.c:880 #, c-format msgid "" "pactl %s\n" @@ -2149,48 +2195,44 @@ msgstr "" "Compilat amb libpulse %s\n" "Enllaçat amb libpulse %s\n" -#: ../src/utils/pactl.c:865 -#, c-format +#: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "Especifiqueu un fitxer de mostra per a carregar\n" -#: ../src/utils/pactl.c:887 -#, c-format +#: ../src/utils/pactl.c:939 msgid "Failed to open sound file.\n" -msgstr "Ha fallat en obrir el fitxer de so.\n" +msgstr "No s'ha pogut obrir el fitxer de so.\n" -#: ../src/utils/pactl.c:899 -#, c-format +#: ../src/utils/pactl.c:951 +#, fuzzy +msgid "Warning: Failed to determine sample specification from file.\n" +msgstr "S'està obrint un flux %s amb especificació de mostra '%s'.\n" + +#: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" msgstr "Heu d'especificar un nom de mostra a reproduir\n" -#: ../src/utils/pactl.c:911 -#, c-format +#: ../src/utils/pactl.c:973 msgid "You have to specify a sample name to remove\n" msgstr "Heu d'especificar un nom de mostra a esborrar\n" -#: ../src/utils/pactl.c:919 -#, c-format +#: ../src/utils/pactl.c:982 msgid "You have to specify a sink input index and a sink\n" msgstr "Heu d'especificar una entrada del conducte i un conducte\n" -#: ../src/utils/pactl.c:928 -#, c-format +#: ../src/utils/pactl.c:992 msgid "You have to specify a source output index and a source\n" -msgstr "Heu d'especificar una font de sortida i una font\n" +msgstr "Heu d'especificar un Ãndex de la font de sortida i una font\n" -#: ../src/utils/pactl.c:942 -#, c-format +#: ../src/utils/pactl.c:1007 msgid "You have to specify a module name and arguments.\n" msgstr "Heu d'especificar un nom de mòdul i els seus arguments.\n" -#: ../src/utils/pactl.c:962 -#, c-format +#: ../src/utils/pactl.c:1027 msgid "You have to specify a module index\n" msgstr "Heu d'especificar un Ãndex de mòdul\n" -#: ../src/utils/pactl.c:972 -#, c-format +#: ../src/utils/pactl.c:1037 msgid "" "You may not specify more than one sink. You have to specify a boolean " "value.\n" @@ -2198,25 +2240,32 @@ msgstr "" "No harÃeu d'especificar més d'un conducte. Heu d'especifcar un valor " "booleà .\n" -#: ../src/utils/pactl.c:985 -#, c-format +#: ../src/utils/pactl.c:1050 msgid "" "You may not specify more than one source. You have to specify a boolean " "value.\n" msgstr "" "No harÃeu d'especificar més d'una font. Heu d'especificar un valor booleà .\n" -#: ../src/utils/pactl.c:997 -#, c-format +#: ../src/utils/pactl.c:1062 msgid "You have to specify a card name/index and a profile name\n" msgstr "Heu d'especificar un nom o un Ãndex de targeta i un nom de perfil\n" -#: ../src/utils/pactl.c:1012 -#, c-format +#: ../src/utils/pactl.c:1073 +#, fuzzy +msgid "You have to specify a sink name/index and a port name\n" +msgstr "Heu d'especificar un nom o un Ãndex de targeta i un nom de perfil\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" + +#: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "S'ha especificat una ordre invà lida.\n" -#: ../src/utils/pactl.c:1037 ../src/utils/paplay.c:404 +#: ../src/utils/pactl.c:1122 #, c-format msgid "pa_context_connect() failed: %s" msgstr "Ha fallat pa_context_connect(): %s" @@ -2245,7 +2294,7 @@ msgstr "" #: ../src/utils/pax11publish.c:94 #, c-format msgid "Failed to parse command line.\n" -msgstr "Ha fallat en parsejar la lÃnia de comandes.\n" +msgstr "No s'ha pogut parsejar la lÃnia d'ordres.\n" #: ../src/utils/pax11publish.c:108 #, c-format @@ -2265,191 +2314,85 @@ msgstr "Conducte: %s\n" #: ../src/utils/pax11publish.c:114 #, c-format msgid "Cookie: %s\n" -msgstr "Cookie: %s\n" +msgstr "Galeta: %s\n" #: ../src/utils/pax11publish.c:132 #, c-format msgid "Failed to parse cookie data\n" -msgstr "Ha fallat en parsejar les dades de la cookie\n" +msgstr "No s'han pogut parsejar les dades de la galeta\n" #: ../src/utils/pax11publish.c:137 #, c-format msgid "Failed to save cookie data\n" -msgstr "Ha fallat en desar les dades de la cookie\n" +msgstr "No s'han pogut desar les dades de la galeta\n" #: ../src/utils/pax11publish.c:152 #, c-format msgid "Failed to load client configuration file.\n" -msgstr "Ha fallat en carregar el fitxer de configuració del client.\n" +msgstr "No s'ha pogut carregar el fitxer de configuració del client.\n" #: ../src/utils/pax11publish.c:157 #, c-format msgid "Failed to read environment configuration data.\n" -msgstr "Ha fallat en llegir les dades de configuració de l'entorn.\n" +msgstr "No s'han pogut llegir les dades de configuració de l'entorn.\n" #: ../src/utils/pax11publish.c:174 #, c-format msgid "Failed to get FQDN.\n" -msgstr "Ha fallat en obtenir FQDN.\n" +msgstr "No s'ha pogut obtenir el nom de domini qualificat complet.\n" #: ../src/utils/pax11publish.c:194 #, c-format msgid "Failed to load cookie data\n" -msgstr "Ha fallat en carregar les dades de la cookie\n" +msgstr "No s'han pogut carregar les dades de la galeta\n" #: ../src/utils/pax11publish.c:211 #, c-format msgid "Not yet implemented.\n" -msgstr "No s'ha implementat encara.\n" +msgstr "Encara no s'ha implementat.\n" -#: ../src/utils/pacmd.c:64 +#: ../src/utils/pacmd.c:61 +msgid "No PulseAudio daemon running, or not running as session daemon." +msgstr "" + +#: ../src/utils/pacmd.c:66 #, c-format msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s" msgstr "socket(PF_UNIX, SOCK_STREAM, 0): %s" -#: ../src/utils/pacmd.c:81 +#: ../src/utils/pacmd.c:83 #, c-format msgid "connect(): %s" msgstr "connect(): %s" -#: ../src/utils/pacmd.c:89 +#: ../src/utils/pacmd.c:91 msgid "Failed to kill PulseAudio daemon." -msgstr "Ha fallat en matar el dimoni PulseAudio." +msgstr "No s'ha pogut matar el dimoni PulseAudio." -#: ../src/utils/pacmd.c:97 +#: ../src/utils/pacmd.c:99 msgid "Daemon not responding." msgstr "El dimoni no respon." -#: ../src/utils/pacmd.c:144 +#: ../src/utils/pacmd.c:146 #, c-format msgid "select(): %s" msgstr "select(): %s" -#: ../src/utils/pacmd.c:154 ../src/utils/pacmd.c:171 +#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173 #, c-format msgid "read(): %s" msgstr "read(): %s" -#: ../src/utils/pacmd.c:187 ../src/utils/pacmd.c:201 +#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203 #, c-format msgid "write(): %s" msgstr "write(): %s" -#: ../src/utils/paplay.c:139 -#, c-format -msgid "Stream successfully created\n" -msgstr "Flux creat amb èxit\n" - -#: ../src/utils/paplay.c:144 -#, c-format -msgid "Stream errror: %s\n" -msgstr "S'ha produït un error en el flux: %s\n" - -#: ../src/utils/paplay.c:165 -#, c-format -msgid "Connection established.\n" -msgstr "S'ha establert la connexió.\n" - -#: ../src/utils/paplay.c:198 -#, c-format -msgid "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" -msgstr "" -"%s [opcions] [FITXER]\n" -"\n" -" -h, --help Mostra aquesta ajuda\n" -" --version Mostra la versió\n" -"\n" -" -v, --verbose Habilita les operacions detallades\n" -"\n" -" -s, --server=SERVIDOR Nom del servidor al qual connectar-" -"se\n" -" -d, --device=DISPOSITIU Nom del conducte/font al qual " -"connectar-se\n" -" -n, --client-name=NOM Com cridar aquest client al " -"servidor\n" -" --stream-name=NOM Com cridar aquest flux 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 " -"omissió, 44100)\n" -" --format=FORMATMOSTRA El tipus de mostra, una de s16le, " -"s16be, u8, float32le,\n" -" float32be, ulaw, alaw, s32le, s32be " -"(per omissió, s16ne)\n" -" --channels=CANALS Número de canals, 1 per a mono, 2 " -"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 " -"conducte al qual s'està connectant\n" -" el flux.\n" -" --fix-rate Pren la velocitat de mostreig del " -"conducte al qual\n" -" s'està connectant el flux.\n" -" --fix-channels Pren el número de canals i el mapa " -"de canals del\n" -" conducte al qual s'està connectant " -"el flux.\n" -" --no-remix No mesclar els canals.\n" -" --no-remap Mapeja els canals per Ãndex enlloc " -"de per nom .\n" -" --latency=BYTES Especifica la latència en bytes.\n" -" --process-time=BYTES Especifica el temps de procés per " -"petició en bytes.\n" - -#: ../src/utils/paplay.c:255 -#, c-format -msgid "" -"paplay %s\n" -"Compiled with libpulse %s\n" -"Linked with libpulse %s\n" -msgstr "" -"paplay %s\n" -"Compil·lat amb libpulse %s\n" -"Enllaçat amb libpulse %s\n" - -#: ../src/utils/paplay.c:292 -#, c-format -msgid "Invalid channel map\n" -msgstr "Mapa de canals invà lid\n" - -#: ../src/utils/paplay.c:314 -#, c-format -msgid "Failed to open file '%s'\n" -msgstr "Ha fallat en obrir el fitxer '%s'\n" - -#: ../src/utils/paplay.c:350 -#, c-format -msgid "Channel map doesn't match file.\n" -msgstr "El mapa de canals no coincideix amb el fitxer.\n" - -#: ../src/utils/paplay.c:376 -#, c-format -msgid "Using sample spec '%s'\n" -msgstr "S'estan utilitzant les especificacions de mostra '%s'\n" - #: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 msgid "Cannot access autospawn lock." msgstr "No s'ha pogut accedir al bloqueig d'autospawn." -#: ../src/modules/alsa/alsa-sink.c:393 ../src/modules/alsa/alsa-sink.c:541 +#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2459,8 +2402,14 @@ msgid "" "We were woken up with POLLOUT set -- however a subsequent snd_pcm_avail() " "returned 0 or another value < min_avail." msgstr "" +"ALSA ens ha despertat per a escriure dades noves al dispositiu però no hi " +"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 " +"snd_pcm_avail() ha retornat 0 o un altre valor < min_avail." -#: ../src/modules/alsa/alsa-source.c:377 ../src/modules/alsa/alsa-source.c:516 +#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2470,39 +2419,166 @@ msgid "" "We were woken up with POLLIN set -- however a subsequent snd_pcm_avail() " "returned 0 or another value < min_avail." msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:114 -#, c-format -msgid "Output %s + Input %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:117 -#, c-format -msgid "Output %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:121 -#, c-format -msgid "Input %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:170 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2006 +"Alsa ens ha cridat per a llegir dades noves del dispositiu, però no hi ha " +"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 " +"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 msgid "Off" -msgstr "" +msgstr "Inactiu" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1976 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 msgid "High Fidelity Playback (A2DP)" -msgstr "" +msgstr "Reproducció d'alta fidelitat (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1991 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 msgid "Telephony Duplex (HSP/HFP)" -msgstr "" +msgstr "Dúplex de telefonia (HSP/HFP)" -#: ../src/modules/reserve-wrap.c:139 -#, fuzzy +#: ../src/modules/reserve-wrap.c:151 msgid "PulseAudio Sound Server" -msgstr "Sistema de so PulseAudio" +msgstr "Servidor de so PulseAudio" + +#~ msgid "Analog Mono" +#~ msgstr "Mono analògic" + +#~ msgid "Analog Stereo" +#~ msgstr "Estèreo analògic" + +#~ msgid "Digital Stereo (IEC958)" +#~ msgstr "Estèreo digital (IEC958)" + +#~ msgid "Digital Stereo (HDMI)" +#~ msgstr "Estèreo digital (HDMI)" + +#~ msgid "Analog Surround 4.0" +#~ msgstr "Envolvent analògic 4.0 " + +#~ msgid "Digital Surround 4.0 (IEC958/AC3)" +#~ msgstr "Envolvent digital 4.0 (IEC958/AC3)" + +#~ msgid "Analog Surround 4.1" +#~ msgstr "Envolvent analògic 4.1 " + +#~ msgid "Analog Surround 5.0" +#~ msgstr "Envolvent analògic 5.0" + +#~ msgid "Analog Surround 5.1" +#~ msgstr "Envolvent analògic 5.1" + +#~ msgid "Digital Surround 5.1 (IEC958/AC3)" +#~ msgstr "Envolvent digital 5.1 (IEC958/AC3)" + +#~ msgid "Analog Surround 7.1" +#~ msgstr "Envolvent analògic 7.1" + +#~ msgid "Stream successfully created\n" +#~ msgstr "Flux creat amb èxit\n" + +#~ msgid "Stream errror: %s\n" +#~ msgstr "S'ha produït un error en el flux: %s\n" + +#~ msgid "Connection established.\n" +#~ msgstr "S'ha establert la connexió.\n" + +#~ msgid "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Show this help\n" +#~ " --version Show version\n" +#~ "\n" +#~ " -v, --verbose Enable verbose operation\n" +#~ "\n" +#~ " -s, --server=SERVER The name of the server to connect " +#~ "to\n" +#~ " -d, --device=DEVICE The name of the sink to connect " +#~ "to\n" +#~ " -n, --client-name=NAME How to call this client on the " +#~ "server\n" +#~ " --stream-name=NAME How to call this stream on the " +#~ "server\n" +#~ " --volume=VOLUME Specify the initial (linear) " +#~ "volume in range 0...65536\n" +#~ " --channel-map=CHANNELMAP Set the channel map to the use\n" +#~ msgstr "" +#~ "%s [opcions] [FITXER]\n" +#~ "\n" +#~ " -h, --help Mostra aquesta ajuda\n" +#~ " --version Mostra la versió\n" +#~ "\n" +#~ " -v, --verbose Habilita les operacions " +#~ "detallades\n" +#~ "\n" +#~ " -s, --server=SERVIDOR Nom del servidor al qual " +#~ "connectar-se\n" +#~ " -d, --device=DISPOSITIU Nom del conducte al qual " +#~ "connectar-se\n" +#~ " -n, --client-name=NOM Com cridar aquest client al " +#~ "servidor\n" +#~ " --stream-name=NOM Com cridar aquest flux 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 omissió, 44100)\n" +#~ " --format=FORMATMOSTRA El tipus de mostra, una de s16le, " +#~ "s16be, u8, float32le,\n" +#~ " float32be, ulaw, alaw, s32le, " +#~ "s32be (per omissió, s16ne)\n" +#~ " --channels=CANALS Número de canals, 1 per a mono, 2 " +#~ "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 " +#~ "conducte al qual s'està connectant\n" +#~ " el flux.\n" +#~ " --fix-rate Pren la velocitat de mostreig del " +#~ "conducte al qual\n" +#~ " s'està connectant el flux.\n" +#~ " --fix-channels Pren el número de canals i el " +#~ "mapa de canals del\n" +#~ " conducte al qual s'està " +#~ "connectant el flux.\n" +#~ " --no-remix No mesclar els canals.\n" +#~ " --no-remap Mapeja els canals per Ãndex " +#~ "enlloc de per nom .\n" +#~ " --latency=BYTES Especifica la latència en bytes.\n" +#~ " --process-time=BYTES Especifica el temps de procés per " +#~ "petició en bytes.\n" + +#~ msgid "" +#~ "paplay %s\n" +#~ "Compiled with libpulse %s\n" +#~ "Linked with libpulse %s\n" +#~ msgstr "" +#~ "paplay %s\n" +#~ "Compilat amb libpulse %s\n" +#~ "Enllaçat amb libpulse %s\n" + +#~ msgid "Invalid channel map\n" +#~ msgstr "Mapa de canals invà lid\n" + +#~ msgid "Failed to open file '%s'\n" +#~ msgstr "No s'ha pogut obrir el fitxer '%s'\n" + +#~ msgid "Channel map doesn't match file.\n" +#~ msgstr "El mapa de canals no coincideix amb el fitxer.\n" + +#~ msgid "Using sample spec '%s'\n" +#~ msgstr "S'estan utilitzant les especificacions de mostra '%s'\n" + +#~ msgid "Output %s + Input %s" +#~ msgstr "Sortida %s + Entrada %s" + +#~ msgid "Output %s" +#~ msgstr "Sortida %s" + +#~ msgid "Input %s" +#~ msgstr "Entrada %s" #~ msgid "" #~ "Called SUID root and real-time/high-priority scheduling was requested in " @@ -1,14 +1,14 @@ # Czech translation of pulseaudio. -# Copyright (C) 2008 the author(s) of pulseaudio. +# Copyright (C) 2008, 2009 the author(s) of pulseaudio. # This file is distributed under the same license as the pulseaudio package. -# Petr Kovar <pknbe@volny.cz>, 2008. +# Petr Kovar <pknbe@volny.cz>, 2008, 2009. # msgid "" msgstr "" -"Project-Id-Version: pulseaudio\n" +"Project-Id-Version: pulseaudio.master-tx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-21 23:02+0200\n" -"PO-Revision-Date: 2008-10-19 22:31+0200\n" +"POT-Creation-Date: 2009-06-17 23:42+0200\n" +"PO-Revision-Date: 2009-05-03 23:57+0200\n" "Last-Translator: Petr Kovar <pknbe@volny.cz>\n" "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n" "MIME-Version: 1.0\n" @@ -17,51 +17,7 @@ msgstr "" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -#: ../src/modules/alsa/alsa-util.c:532 -msgid "Analog Mono" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:540 -msgid "Analog Stereo" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:548 -msgid "Digital Stereo (IEC958)" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:556 -msgid "Digital Stereo (HDMI)" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:565 -msgid "Analog Surround 4.0" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:574 -msgid "Digital Surround 4.0 (IEC958/AC3)" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:584 -msgid "Analog Surround 4.1" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:594 -msgid "Analog Surround 5.0" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:604 -msgid "Analog Surround 5.1" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:614 -msgid "Digital Surround 5.1 (IEC958/AC3)" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:625 -msgid "Analog Surround 7.1" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:1646 +#: ../src/modules/alsa/alsa-util.c:1015 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -69,8 +25,12 @@ msgid "" "Most likely this is a bug in the ALSA driver '%s'. Please report this issue " "to the ALSA developers." msgstr "" +"snd_pcm_avail() navrátil hodnotu, která je nezvykle vysoká: %lu bajtů (%lu " +"ms).\n" +"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:1687 +#: ../src/modules/alsa/alsa-util.c:1056 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -78,8 +38,12 @@ msgid "" "Most likely this is a bug in the ALSA driver '%s'. Please report this issue " "to the ALSA developers." msgstr "" +"snd_pcm_delay() navrátil hodnotu, která je nezvykle vysoká: %li bajtů (%s%lu " +"ms).\n" +"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:1734 +#: ../src/modules/alsa/alsa-util.c:1103 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -87,25 +51,39 @@ msgid "" "Most likely this is a bug in the ALSA driver '%s'. Please report this issue " "to the ALSA developers." msgstr "" +"snd_pcm_mmap_begin() navrátil hodnotu, která je nezvykle vysoká: %lu bajtů (%" +"lu ms).\n" +"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/pulsecore/sink.c:2141 -#, fuzzy +#: ../src/modules/module-ladspa-sink.c:49 +msgid "Virtual LADSPA sink" +msgstr "" + +#: ../src/modules/module-ladspa-sink.c:53 +msgid "" +"sink_name=<name for the sink> sink_properties=<properties for the sink> " +"master=<name of sink to filter> format=<sample format> rate=<sample rate> " +"channels=<number of channels> channel_map=<channel map> plugin=<ladspa " +"plugin name> label=<ladspa plugin label> control=<comma seperated list of " +"input control values>" +msgstr "" + +#: ../src/pulsecore/sink.c:2394 msgid "Internal Audio" -msgstr "VnitÅ™nà chyba" +msgstr "VnitÅ™nà zvukový systém" -#: ../src/pulsecore/sink.c:2147 +#: ../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 "NezdaÅ™ilo se nalezenà původnÃho nahrávacÃho programu dlopen." +msgstr "NezdaÅ™ilo se nalézt původnà nahrávacà program lt_dlopen." #: ../src/daemon/ltdl-bind-now.c:129 -#, fuzzy msgid "Failed to allocate new dl loader." -msgstr "NezdaÅ™ilo se nalezenà původnÃho nahrávacÃho programu dlopen." +msgstr "NezdaÅ™ilo se pÅ™idÄ›lenà nového nahrávacÃho programu dl." #: ../src/daemon/ltdl-bind-now.c:142 msgid "Failed to add bind-now-loader." @@ -165,105 +143,105 @@ msgstr "NezdaÅ™ilo se zÃskat oprávnÄ›nÃ: %s" msgid "PolicyKit responded with '%s'" msgstr "PolicyKit odpovÄ›dÄ›l s \"%s\"" -#: ../src/daemon/main.c:138 +#: ../src/daemon/main.c:142 #, c-format msgid "Got signal %s." msgstr "ZÃskán signál %s." -#: ../src/daemon/main.c:165 +#: ../src/daemon/main.c:169 msgid "Exiting." msgstr "UkonÄovánÃ." -#: ../src/daemon/main.c:183 +#: ../src/daemon/main.c:187 #, c-format msgid "Failed to find user '%s'." msgstr "NezdaÅ™ilo se nalézt uživatele \"%s\"." -#: ../src/daemon/main.c:188 +#: ../src/daemon/main.c:192 #, c-format msgid "Failed to find group '%s'." msgstr "NezdaÅ™ilo se nalézt skupinu \"%s\"." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:196 #, 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:197 +#: ../src/daemon/main.c:201 #, 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:202 +#: ../src/daemon/main.c:206 #, 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:205 ../src/daemon/main.c:210 +#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 #, c-format msgid "Failed to create '%s': %s" msgstr "NezdaÅ™ilo se vytvoÅ™it \"%s\": %s" -#: ../src/daemon/main.c:217 +#: ../src/daemon/main.c:221 #, c-format msgid "Failed to change group list: %s" msgstr "NezdaÅ™ilo se zmÄ›nit seznam skupin: %s" -#: ../src/daemon/main.c:233 +#: ../src/daemon/main.c:237 #, c-format msgid "Failed to change GID: %s" msgstr "NezdaÅ™ilo se zmÄ›nit GID: %s" -#: ../src/daemon/main.c:249 +#: ../src/daemon/main.c:253 #, c-format msgid "Failed to change UID: %s" msgstr "NezdaÅ™ilo se zmÄ›nit UID: %s" -#: ../src/daemon/main.c:263 +#: ../src/daemon/main.c:267 msgid "Successfully dropped root privileges." msgstr "OprávnÄ›nà superuživatele úspěšnÄ› zruÅ¡ena." -#: ../src/daemon/main.c:271 +#: ../src/daemon/main.c:275 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:289 +#: ../src/daemon/main.c:293 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) selhalo: %s" -#: ../src/daemon/main.c:477 +#: ../src/daemon/main.c:481 msgid "Failed to parse command line." msgstr "NezdaÅ™ila se analýza pÅ™Ãkazového řádku." -#: ../src/daemon/main.c:501 +#: ../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:508 +#: ../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:516 +#: ../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:519 +#: ../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:524 +#: ../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:527 +#: ../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:556 +#: ../src/daemon/main.c:560 #, c-format msgid "" "Called SUID root and real-time and/or high-priority scheduling was requested " @@ -275,47 +253,54 @@ msgid "" "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:581 +#: ../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:610 +#: ../src/daemon/main.c:614 msgid "Successfully increased RLIMIT_RTPRIO" msgstr "ÚspěšnÄ› zvýšeno RLIMIT_RTPRIO" -#: ../src/daemon/main.c:613 +#: ../src/daemon/main.c:617 #, c-format msgid "RLIMIT_RTPRIO failed: %s" msgstr "RLIMIT_RTPRIO selhalo: %s" -#: ../src/daemon/main.c:620 +#: ../src/daemon/main.c:624 msgid "Giving up CAP_NICE" msgstr "Vzdávánà se CAP_NICE" -#: ../src/daemon/main.c:627 +#: ../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:688 +#: ../src/daemon/main.c:692 msgid "Daemon not running" msgstr "Démon neběžÃ" -#: ../src/daemon/main.c:690 +#: ../src/daemon/main.c:694 #, c-format msgid "Daemon running as PID %u" msgstr "Démon běžà jako PID %u" -#: ../src/daemon/main.c:700 +#: ../src/daemon/main.c:704 #, c-format msgid "Failed to kill daemon: %s" msgstr "Zabità démona se nezdaÅ™ilo: %s" -#: ../src/daemon/main.c:718 +#: ../src/daemon/main.c:722 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -323,160 +308,169 @@ msgstr "" "Tento program nenà urÄen ke spuÅ¡tÄ›nà pod superuživatelem (nenÃ-li zadáno --" "system)." -#: ../src/daemon/main.c:720 -#, fuzzy +#: ../src/daemon/main.c:724 msgid "Root privileges required." msgstr "Jsou vyžadována oprávnÄ›nà superuživatele." -#: ../src/daemon/main.c:725 +#: ../src/daemon/main.c:729 msgid "--start not supported for system instances." msgstr "--start nepodporováno u systémových instancÃ." -#: ../src/daemon/main.c:730 +#: ../src/daemon/main.c:734 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:733 +#: ../src/daemon/main.c:737 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:736 +#: ../src/daemon/main.c:740 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:741 +#: ../src/daemon/main.c:745 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:768 +#: ../src/daemon/main.c:772 msgid "Failed to acquire stdio." msgstr "NezdaÅ™ilo se zÃskánà stdio." -#: ../src/daemon/main.c:774 +#: ../src/daemon/main.c:778 #, c-format msgid "pipe failed: %s" msgstr "pipe selhalo: %s" -#: ../src/daemon/main.c:779 +#: ../src/daemon/main.c:783 #, c-format msgid "fork() failed: %s" msgstr "fork() selhalo: %s" -#: ../src/daemon/main.c:793 +#: ../src/daemon/main.c:797 #, c-format msgid "read() failed: %s" msgstr "read() selhalo: %s" -#: ../src/daemon/main.c:799 +#: ../src/daemon/main.c:803 msgid "Daemon startup failed." msgstr "SpuÅ¡tÄ›nà démona selhalo." -#: ../src/daemon/main.c:801 +#: ../src/daemon/main.c:805 msgid "Daemon startup successful." msgstr "SpuÅ¡tÄ›nà démona bylo úspěšné." -#: ../src/daemon/main.c:871 +#: ../src/daemon/main.c:875 #, c-format msgid "This is PulseAudio %s" msgstr "Toto je PulseAudio %s" -#: ../src/daemon/main.c:872 +#: ../src/daemon/main.c:876 #, c-format msgid "Compilation host: %s" msgstr "PÅ™ekladový poÄÃtaÄ: %s" -#: ../src/daemon/main.c:873 +#: ../src/daemon/main.c:877 #, c-format msgid "Compilation CFLAGS: %s" msgstr "PÅ™ekladové CFLAGS: %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:880 #, c-format msgid "Running on host: %s" msgstr "Běžà na poÄÃtaÄi: %s" -#: ../src/daemon/main.c:879 +#: ../src/daemon/main.c:883 #, c-format msgid "Found %u CPUs." -msgstr "" +msgstr "Nalezen následujÃcà poÄet CPU: %u." -#: ../src/daemon/main.c:881 +#: ../src/daemon/main.c:885 #, c-format msgid "Page size is %lu bytes" msgstr "Velikost stránky je %lu bajtů" -#: ../src/daemon/main.c:884 +#: ../src/daemon/main.c:888 msgid "Compiled with Valgrind support: yes" msgstr "PÅ™eloženo s podporou Valgrind: ano" -#: ../src/daemon/main.c:886 +#: ../src/daemon/main.c:890 msgid "Compiled with Valgrind support: no" msgstr "PÅ™eloženo s podporou Valgrind: ne" -#: ../src/daemon/main.c:889 +#: ../src/daemon/main.c:893 #, c-format msgid "Running in valgrind mode: %s" msgstr "Běžà v režimu valgrind: %s" -#: ../src/daemon/main.c:892 +#: ../src/daemon/main.c:896 msgid "Optimized build: yes" msgstr "Optimalizované sestavenÃ: ano" -#: ../src/daemon/main.c:894 +#: ../src/daemon/main.c:898 msgid "Optimized build: no" msgstr "Optimalizované sestavenÃ: ne" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:902 msgid "NDEBUG defined, all asserts disabled." -msgstr "" +msgstr "NDEBUG definováno, vÅ¡echny výrazy zakázány." -#: ../src/daemon/main.c:900 +#: ../src/daemon/main.c:904 msgid "FASTPATH defined, only fast path asserts disabled." -msgstr "" +msgstr "FASTPATH definováno, zakázány pouze výrazy rychlých cest." -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:906 msgid "All asserts enabled." -msgstr "" +msgstr "VÅ¡echny výrazy povoleny." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:910 msgid "Failed to get machine ID" msgstr "NezdaÅ™ilo se zÃskánà ID poÄÃtaÄe" -#: ../src/daemon/main.c:909 +#: ../src/daemon/main.c:913 #, c-format msgid "Machine ID is %s." msgstr "ID poÄÃtaÄe je %s." -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:917 #, fuzzy, c-format msgid "Session ID is %s." msgstr "ID poÄÃtaÄe je %s." -#: ../src/daemon/main.c:919 +#: ../src/daemon/main.c:923 #, c-format msgid "Using runtime directory %s." msgstr "PoužÃván bÄ›hový adresář %s." -#: ../src/daemon/main.c:924 +#: ../src/daemon/main.c:928 #, c-format msgid "Using state directory %s." msgstr "PoužÃván stavový adresář %s." -#: ../src/daemon/main.c:927 +#: ../src/daemon/main.c:931 #, c-format msgid "Running in system mode: %s" msgstr "Běžà v systémovém režimu: %s" -#: ../src/daemon/main.c:942 +#: ../src/daemon/main.c:934 +msgid "" +"OK, so you are running PA in system mode. Please note that you most likely " +"shouldn't be doing that.\n" +"If you do it nonetheless then it's your own fault if things don't work as " +"expected.\n" +"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " +"explanation why system mode is usually a bad idea." +msgstr "" + +#: ../src/daemon/main.c:951 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() selhalo." -#: ../src/daemon/main.c:954 +#: ../src/daemon/main.c:961 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:956 +#: ../src/daemon/main.c:963 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -484,32 +478,32 @@ 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:970 +#: ../src/daemon/main.c:988 msgid "pa_core_new() failed." msgstr "pa_core_new() selhalo." -#: ../src/daemon/main.c:1032 +#: ../src/daemon/main.c:1050 msgid "Failed to initialize daemon." msgstr "Selhalo spuÅ¡tÄ›nà démona." -#: ../src/daemon/main.c:1037 +#: ../src/daemon/main.c:1055 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:1054 +#: ../src/daemon/main.c:1072 msgid "Daemon startup complete." msgstr "SpuÅ¡tÄ›nà démona dokonÄeno." -#: ../src/daemon/main.c:1060 +#: ../src/daemon/main.c:1078 msgid "Daemon shutdown initiated." msgstr "VypÃnánà démona spuÅ¡tÄ›no." -#: ../src/daemon/main.c:1082 +#: ../src/daemon/main.c:1100 msgid "Daemon terminated." msgstr "Démon ukonÄen." -#: ../src/daemon/cmdline.c:121 -#, fuzzy, c-format +#: ../src/daemon/cmdline.c:115 +#, c-format msgid "" "%s [options]\n" "\n" @@ -581,62 +575,88 @@ msgid "" "\n" " -n Don't load default script file\n" msgstr "" -"s n\n" -" h nápovÄ›da Zob_razit nápovÄ›da\n" -" verze Zobrazit verze\n" -" implicitnÃ\n" -" seznam z k dispozici\n" -" k dispozici\n" -" Úklid\n" -" ZaÄátek je ne\n" -" ZabÃt a\n" -" Zjistit pro a n\n" -" Spustit\n" -" D po\n" -" UkonÄit\n" -" vysoká priorita až set vysoká úroveň\n" -" k dispozici SUID nebo\n" -" s\n" -" až povolit\n" -" k dispozici SUID nebo\n" -" s\n" -" modul naÄÃtám modul uživatel modul\n" -" naÄÃtám po\n" -" uživatel\n" -" Äas SEKUNDY a\n" -" Äas\n" -" modul Äas SEKUNDY a\n" -" Äas\n" -" Äas SEKUNDY a\n" -" Äas\n" -" úroveň ÚROVEŇ Zvýšit nebo set úroveň\n" -" Zvýšit úroveň\n" -" auto\n" -" p cesta CESTA Nastavit cesta pro\n" -"\n" +"%s [pÅ™epÃnaÄe]\n" "\n" -" Viz pro\n" +"PŘÃKAZY:\n" +" -h, --help Zobrazà tuto nápovÄ›du\n" +" --version Zobrazà verzi\n" +" --dump-conf VypÃÅ¡e výchozà nastavenÃ\n" +" --dump-modules VypÃÅ¡e seznam dostupných modulů\n" +" --dump-resample-methods VypÃÅ¡e dostupné metody " +"pÅ™evzorkovánÃ\n" +" --cleanup-shm Vyprázdnà zastaralé Äásti sdÃlené " +"pamÄ›ti\n" +" --start Spustà démona, pokud neběžÃ\n" +" -k --kill Zabije běžÃcÃho démona\n" +" --check ZjistÃ, zda démon běžà (vracà pouze " +"ukonÄovacà kód)\n" "\n" -" soubor VytvoÅ™it a PID soubor\n" -" ne ne CPU zapnuto\n" +"PŘEPÃNAÄŒE:\n" +" --system[=BOOLEOVSKÃ] Poběžà jako celosystémová instance\n" +" -D, --daemonize[=BOOLEOVSKÃ] Stane se démonem po spuÅ¡tÄ›nÃ\n" +" --fail[=BOOLEOVSKÃ] UkonÄà se v pÅ™ÃpadÄ› selhánà " +"spuÅ¡tÄ›nÃ\n" +" --high-priority[=BOOLEOVSKÃ] Pokusà se nastavit vysokou úroveň " +"nice\n" +" (dostupné pouze u superuživatele, v " +"pÅ™ÃpadÄ› SUID nebo\n" +" se zvýšeným RLIMIT_NICE)\n" +" --realtime[=BOOLEOVSKÃ] Pokusà se zapnout plánovánà v " +"reálném Äase\n" +" (dostupné pouze u superuživatele, v " +"pÅ™ÃpadÄ› SUID nebo\n" +" se zvýšeným RLIMIT_RTPRIO)\n" +" --disallow-module-loading[=BOOLEOVSKÃ] Nepovolà nahránà Äi zruÅ¡enà " +"nahránà modulu po spuÅ¡tÄ›nÃ\n" +" vyžádané uživatelem modulu\n" +" --disallow-exit[=BOOLEOVSKÃ] Nepovolà ukonÄenà vyžádané " +"uživatelem\n" +" --exit-idle-time=SEKUNDY UkonÄà démona v pÅ™ÃpadÄ› neÄinnosti a " +"po\n" +" této dobÄ›\n" +" --module-idle-time=SEKUNDY ZruÅ¡Ã nahránà automaticky nahraných " +"modulů v pÅ™ÃpadÄ› neÄinnosti\n" +" a po této dobÄ›\n" +" --scache-idle-time=SEKUNDY ZruÅ¡Ã nahránà automaticky nahraných " +"vzorků v pÅ™ÃpadÄ› neÄinnosti a\n" +" po této dobÄ›\n" +" --log-level[=ÚROVEŇ] Zvýšà nebo nastavà úroveň " +"podrobnostÃ\n" +" -v Zvýšà úroveň podrobnostÃ\n" +" --log-target={auto,syslog,stderr} UrÄà cÃl záznamů\n" +" --log-meta[=BOOLEOVSKÃ] Do záznamů zahrne umÃstÄ›nà kódu\n" +" --log-time[=BOOLEOVSKÃ] Do záznamů zahrne urÄenà Äasu\n" +" --log-backtrace=RÃMCE Do záznamů zahrne backtrace\n" +" -p, --dl-search-path=CESTA Nastavà cestu hledánà z důvodu " +"dynamického sdÃlenÃ\n" +" objektů (zásuvných modulů)\n" +" --resample-method=METODA Použije zadanou metodu " +"pÅ™evzorkovánÃ\n" +" (Možné hodnoty viz\n" +" --dump-resample-methods)\n" +" --use-pid-file[=BOOLEOVSKÃ] Vytvořà soubor PID\n" +" --no-cpu-limit[=BOOLEOVSKÃ] Nenainstaluje omezovaÄ zátěže CPU\n" +" na platformách, které ho podporujÃ.\n" +" --disable-shm[=BOOLEOVSKÃ] Vypne podporu sdÃlené pamÄ›ti.\n" "\n" -" Vypnout n\n" -" L MODUL NaÄÃst modul s\n" +"SPOUÅ TÄšCà SKRIPT:\n" +" -L, --load=\"ARGUMENTY MODULU\" Nahraje zadaný zásuvný modul\n" +" s urÄeným argumentem\n" +" -F, --file=NÃZEVSOUBORU Spustà zadaný skript\n" +" -C Po spuÅ¡tÄ›nà otevÅ™e pÅ™Ãkazový řádek\n" +" na běžÃcÃm TTY\n" "\n" -" F soubor NÃZEVSOUBORU Spustit skript\n" -" C OtevÅ™Ãt a zapnuto TTY\n" -" po n\n" -" n implicitnà skript soubor n" +" -n Nenahraje výchozà soubor skriptu\n" -#: ../src/daemon/cmdline.c:252 +#: ../src/daemon/cmdline.c:247 msgid "--daemonize expects boolean argument" msgstr "--daemonize pÅ™edpokládá booleovský argument" -#: ../src/daemon/cmdline.c:259 +#: ../src/daemon/cmdline.c:254 msgid "--fail expects boolean argument" msgstr "--fail pÅ™edpokládá booleovský argument" -#: ../src/daemon/cmdline.c:269 +#: ../src/daemon/cmdline.c:264 msgid "" "--log-level expects log level argument (either numeric in range 0..4 or one " "of debug, info, notice, warn, error)." @@ -644,56 +664,53 @@ msgstr "" "--log-level pÅ™edpokládá argument protokolovacà úrovnÄ› (buÄ ÄÃselný v rozmezà " "0..4, nebo jeden z debug, info, notice, warn, error)." -#: ../src/daemon/cmdline.c:281 +#: ../src/daemon/cmdline.c:276 msgid "--high-priority expects boolean argument" msgstr "--high-priority pÅ™edpokládá booleovský argument" -#: ../src/daemon/cmdline.c:288 +#: ../src/daemon/cmdline.c:283 msgid "--realtime expects boolean argument" msgstr "--realtime pÅ™edpokládá booleovský argument" -#: ../src/daemon/cmdline.c:295 +#: ../src/daemon/cmdline.c:290 msgid "--disallow-module-loading expects boolean argument" msgstr "--disallow-module-loading pÅ™edpokládá booleovský argument" -#: ../src/daemon/cmdline.c:302 -#, fuzzy +#: ../src/daemon/cmdline.c:297 msgid "--disallow-exit expects boolean argument" -msgstr "--disallow-exit booleovský argument" +msgstr "--disallow-exit pÅ™edpokládá booleovský argument" -#: ../src/daemon/cmdline.c:309 +#: ../src/daemon/cmdline.c:304 msgid "--use-pid-file expects boolean argument" msgstr "--use-pid-file pÅ™edpokládá booleovský argument" -#: ../src/daemon/cmdline.c:326 +#: ../src/daemon/cmdline.c:321 msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgstr "" "Neplatný cÃl protokolu: použijte buÄto \"syslog\", \"stderr\" nebo \"auto\"." -#: ../src/daemon/cmdline.c:333 -#, fuzzy +#: ../src/daemon/cmdline.c:328 msgid "--log-time expects boolean argument" -msgstr "--realtime pÅ™edpokládá booleovský argument" +msgstr "--log-time pÅ™edpokládá booleovský argument" -#: ../src/daemon/cmdline.c:340 -#, fuzzy +#: ../src/daemon/cmdline.c:335 msgid "--log-meta expects boolean argument" -msgstr "--disallow-exit booleovský argument" +msgstr "--log-meta pÅ™edpokládá booleovský argument" -#: ../src/daemon/cmdline.c:359 +#: ../src/daemon/cmdline.c:354 #, c-format msgid "Invalid resample method '%s'." msgstr "Neplatná metoda pÅ™evzorkovánà \"%s\"." -#: ../src/daemon/cmdline.c:366 +#: ../src/daemon/cmdline.c:361 msgid "--system expects boolean argument" msgstr "--system pÅ™edpokládá booleovský argument" -#: ../src/daemon/cmdline.c:373 +#: ../src/daemon/cmdline.c:368 msgid "--no-cpu-limit expects boolean argument" msgstr "--no-cpu-limit pÅ™edpokládá booleovský argument" -#: ../src/daemon/cmdline.c:380 +#: ../src/daemon/cmdline.c:375 msgid "--disable-shm expects boolean argument" msgstr "--disable-shm pÅ™edpokládá booleovský argument" @@ -728,85 +745,92 @@ msgid "Usage: %s\n" msgstr "PoužitÃ: %s\n" #: ../src/daemon/dumpmodules.c:73 -#, fuzzy, c-format +#, c-format msgid "Load Once: %s\n" -msgstr "NaÄÃst Jednou s n" +msgstr "NaÄÃst jednou: %s\n" -#: ../src/daemon/dumpmodules.c:77 +#: ../src/daemon/dumpmodules.c:75 +#, c-format +msgid "DEPRECATION WARNING: %s\n" +msgstr "" + +#: ../src/daemon/dumpmodules.c:79 #, c-format msgid "Path: %s\n" msgstr "Cesta: %s\n" -#: ../src/daemon/daemon-conf.c:215 +#: ../src/daemon/daemon-conf.c:216 #, c-format msgid "[%s:%u] Invalid log target '%s'." msgstr "[%s:%u] Neplatný protokolovacà cÃl \"%s\"." -#: ../src/daemon/daemon-conf.c:231 +#: ../src/daemon/daemon-conf.c:232 #, c-format msgid "[%s:%u] Invalid log level '%s'." msgstr "[%s:%u] Neplatná protokolovacà úroveň \"%s\"." -#: ../src/daemon/daemon-conf.c:247 +#: ../src/daemon/daemon-conf.c:248 #, c-format msgid "[%s:%u] Invalid resample method '%s'." msgstr "[%s:%u] Neplatná metoda pÅ™evzorkovánà \"%s\"." -#: ../src/daemon/daemon-conf.c:270 +#: ../src/daemon/daemon-conf.c:271 #, c-format msgid "[%s:%u] Invalid rlimit '%s'." msgstr "[%s:%u] Neplatné rlimit \"%s\"." -#: ../src/daemon/daemon-conf.c:277 +#: ../src/daemon/daemon-conf.c:278 #, c-format msgid "[%s:%u] rlimit not supported on this platform." msgstr "[%s:%u] rlimit na této platformÄ› nenà podporováno." -#: ../src/daemon/daemon-conf.c:293 +#: ../src/daemon/daemon-conf.c:294 #, c-format msgid "[%s:%u] Invalid sample format '%s'." msgstr "[%s:%u] Neplatný vzorkovacà formát \"%s\"." -#: ../src/daemon/daemon-conf.c:311 +#: ../src/daemon/daemon-conf.c:312 #, c-format msgid "[%s:%u] Invalid sample rate '%s'." msgstr "[%s:%u] Neplatná vzorkovacà frekvence \"%s\"." -#: ../src/daemon/daemon-conf.c:335 +#: ../src/daemon/daemon-conf.c:336 #, c-format msgid "[%s:%u] Invalid sample channels '%s'." msgstr "[%s:%u] Neplatné vzorkovacà kanály \"%s\"." -#: ../src/daemon/daemon-conf.c:353 -#, fuzzy, c-format +#: ../src/daemon/daemon-conf.c:354 +#, c-format msgid "[%s:%u] Invalid channel map '%s'." -msgstr "[%s:%u] Neplatné vzorkovacà kanály \"%s\"." +msgstr "[%s:%u] Neplatná mapa kanálů \"%s\"." -#: ../src/daemon/daemon-conf.c:371 +#: ../src/daemon/daemon-conf.c:372 #, c-format msgid "[%s:%u] Invalid number of fragments '%s'." msgstr "[%s:%u] Neplatný poÄet fragmentů \"%s\"." -#: ../src/daemon/daemon-conf.c:389 +#: ../src/daemon/daemon-conf.c:390 #, c-format msgid "[%s:%u] Invalid fragment size '%s'." msgstr "[%s:%u] Neplatná velikost fragmentu \"%s\"." -#: ../src/daemon/daemon-conf.c:407 +#: ../src/daemon/daemon-conf.c:408 #, c-format msgid "[%s:%u] Invalid nice level '%s'." msgstr "[%s:%u] Neplatná úroveň nice \"%s\"." -#: ../src/daemon/daemon-conf.c:522 +#: ../src/daemon/daemon-conf.c:524 #, c-format msgid "Failed to open configuration file: %s" msgstr "NezdaÅ™ilo se otevÅ™Ãt konfiguraÄnà soubor: %s" -#: ../src/daemon/daemon-conf.c:538 +#: ../src/daemon/daemon-conf.c:540 msgid "" "The specified default channel map has a different number of channels than " "the specified default number of channels." msgstr "" +"Zadaná výchozà mapa kanálů obsahuje odliÅ¡ný poÄet kanálů než je zadaný " +"výchozà poÄet kanálů." #: ../src/daemon/daemon-conf.c:616 #, c-format @@ -814,7 +838,6 @@ msgid "### Read from configuration file: %s ###\n" msgstr "### ÄŒtenà z konfiguraÄnÃho souboru: %s ###\n" #: ../src/daemon/caps.c:63 -#, fuzzy msgid "Dropping root privileges." msgstr "RuÅ¡enà superuživatelských oprávnÄ›nÃ." @@ -824,267 +847,268 @@ msgstr "Schopnosti úspěšnÄ› omezeny na CAP_SYS_NICE." #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" -msgstr "" +msgstr "Zvukový systém PulseAudio" #: ../src/daemon/pulseaudio.desktop.in.h:2 msgid "Start the PulseAudio Sound System" -msgstr "" +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 -#, fuzzy msgid "Real-time scheduling for the PulseAudio daemon" -msgstr "NezdaÅ™ilo se zabÃt démona PulseAudio." +msgstr "Plánovánà v reálném Äase démona PulseAudio" #: ../src/daemon/org.pulseaudio.policy.in.h:3 -#, fuzzy msgid "" "System policy prevents PulseAudio from acquiring high-priority scheduling." msgstr "" -"NacházÃme se ve skupinÄ› \"%s\", což umožňuje plánovánà o vysoké prioritÄ›." +"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:103 ../src/pulse/channelmap.c:804 +#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Mono" -#: ../src/pulse/channelmap.c:105 +#: ../src/pulse/channelmap.c:107 msgid "Front Center" msgstr "PÅ™ednà stÅ™edový" -#: ../src/pulse/channelmap.c:106 +#: ../src/pulse/channelmap.c:108 msgid "Front Left" msgstr "PÅ™ednà levý" -#: ../src/pulse/channelmap.c:107 +#: ../src/pulse/channelmap.c:109 msgid "Front Right" msgstr "PÅ™ednà pravý" -#: ../src/pulse/channelmap.c:109 +#: ../src/pulse/channelmap.c:111 msgid "Rear Center" msgstr "Zadnà stÅ™edový" -#: ../src/pulse/channelmap.c:110 +#: ../src/pulse/channelmap.c:112 msgid "Rear Left" msgstr "Zadnà levý" -#: ../src/pulse/channelmap.c:111 +#: ../src/pulse/channelmap.c:113 msgid "Rear Right" msgstr "Zadnà pravý" -#: ../src/pulse/channelmap.c:113 +#: ../src/pulse/channelmap.c:115 msgid "Low Frequency Emmiter" msgstr "NÃzkofrekvenÄnà zářiÄ" -#: ../src/pulse/channelmap.c:115 +#: ../src/pulse/channelmap.c:117 msgid "Front Left-of-center" msgstr "PÅ™ednà levý stÅ™edový" -#: ../src/pulse/channelmap.c:116 +#: ../src/pulse/channelmap.c:118 msgid "Front Right-of-center" msgstr "PÅ™ednà pravý stÅ™edový" -#: ../src/pulse/channelmap.c:118 +#: ../src/pulse/channelmap.c:120 msgid "Side Left" msgstr "BoÄnà levý" -#: ../src/pulse/channelmap.c:119 +#: ../src/pulse/channelmap.c:121 msgid "Side Right" msgstr "BoÄnà pravý" -#: ../src/pulse/channelmap.c:121 +#: ../src/pulse/channelmap.c:123 msgid "Auxiliary 0" msgstr "Aux 0" -#: ../src/pulse/channelmap.c:122 +#: ../src/pulse/channelmap.c:124 msgid "Auxiliary 1" msgstr "Aux 1" -#: ../src/pulse/channelmap.c:123 +#: ../src/pulse/channelmap.c:125 msgid "Auxiliary 2" msgstr "Aux 2" -#: ../src/pulse/channelmap.c:124 +#: ../src/pulse/channelmap.c:126 msgid "Auxiliary 3" msgstr "Aux 3" -#: ../src/pulse/channelmap.c:125 +#: ../src/pulse/channelmap.c:127 msgid "Auxiliary 4" msgstr "Aux 4" -#: ../src/pulse/channelmap.c:126 +#: ../src/pulse/channelmap.c:128 msgid "Auxiliary 5" msgstr "Aux 5" -#: ../src/pulse/channelmap.c:127 +#: ../src/pulse/channelmap.c:129 msgid "Auxiliary 6" msgstr "Aux 6" -#: ../src/pulse/channelmap.c:128 +#: ../src/pulse/channelmap.c:130 msgid "Auxiliary 7" msgstr "Aux 7" -#: ../src/pulse/channelmap.c:129 +#: ../src/pulse/channelmap.c:131 msgid "Auxiliary 8" msgstr "Aux 8" -#: ../src/pulse/channelmap.c:130 +#: ../src/pulse/channelmap.c:132 msgid "Auxiliary 9" msgstr "Aux 9" -#: ../src/pulse/channelmap.c:131 +#: ../src/pulse/channelmap.c:133 msgid "Auxiliary 10" msgstr "Aux 10" -#: ../src/pulse/channelmap.c:132 +#: ../src/pulse/channelmap.c:134 msgid "Auxiliary 11" msgstr "Aux 11" -#: ../src/pulse/channelmap.c:133 +#: ../src/pulse/channelmap.c:135 msgid "Auxiliary 12" msgstr "Aux 12" -#: ../src/pulse/channelmap.c:134 +#: ../src/pulse/channelmap.c:136 msgid "Auxiliary 13" msgstr "Aux 13" -#: ../src/pulse/channelmap.c:135 +#: ../src/pulse/channelmap.c:137 msgid "Auxiliary 14" msgstr "Aux 14" -#: ../src/pulse/channelmap.c:136 +#: ../src/pulse/channelmap.c:138 msgid "Auxiliary 15" msgstr "Aux 15" -#: ../src/pulse/channelmap.c:137 +#: ../src/pulse/channelmap.c:139 msgid "Auxiliary 16" msgstr "Aux 16" -#: ../src/pulse/channelmap.c:138 +#: ../src/pulse/channelmap.c:140 msgid "Auxiliary 17" msgstr "Aux 17" -#: ../src/pulse/channelmap.c:139 +#: ../src/pulse/channelmap.c:141 msgid "Auxiliary 18" msgstr "Aux 18" -#: ../src/pulse/channelmap.c:140 +#: ../src/pulse/channelmap.c:142 msgid "Auxiliary 19" msgstr "Aux 19" -#: ../src/pulse/channelmap.c:141 +#: ../src/pulse/channelmap.c:143 msgid "Auxiliary 20" msgstr "Aux 20" -#: ../src/pulse/channelmap.c:142 +#: ../src/pulse/channelmap.c:144 msgid "Auxiliary 21" msgstr "Aux 21" -#: ../src/pulse/channelmap.c:143 +#: ../src/pulse/channelmap.c:145 msgid "Auxiliary 22" msgstr "Aux 22" -#: ../src/pulse/channelmap.c:144 +#: ../src/pulse/channelmap.c:146 msgid "Auxiliary 23" msgstr "Aux 23" -#: ../src/pulse/channelmap.c:145 +#: ../src/pulse/channelmap.c:147 msgid "Auxiliary 24" msgstr "Aux 24" -#: ../src/pulse/channelmap.c:146 +#: ../src/pulse/channelmap.c:148 msgid "Auxiliary 25" msgstr "Aux 25" -#: ../src/pulse/channelmap.c:147 +#: ../src/pulse/channelmap.c:149 msgid "Auxiliary 26" msgstr "Aux 26" -#: ../src/pulse/channelmap.c:148 +#: ../src/pulse/channelmap.c:150 msgid "Auxiliary 27" msgstr "Aux 27" -#: ../src/pulse/channelmap.c:149 +#: ../src/pulse/channelmap.c:151 msgid "Auxiliary 28" msgstr "Aux 28" -#: ../src/pulse/channelmap.c:150 +#: ../src/pulse/channelmap.c:152 msgid "Auxiliary 29" msgstr "Aux 29" -#: ../src/pulse/channelmap.c:151 +#: ../src/pulse/channelmap.c:153 msgid "Auxiliary 30" msgstr "Aux 30" -#: ../src/pulse/channelmap.c:152 +#: ../src/pulse/channelmap.c:154 msgid "Auxiliary 31" msgstr "Aux 31" -#: ../src/pulse/channelmap.c:154 +#: ../src/pulse/channelmap.c:156 msgid "Top Center" msgstr "Hornà stÅ™edový" -#: ../src/pulse/channelmap.c:156 +#: ../src/pulse/channelmap.c:158 msgid "Top Front Center" msgstr "Hornà pÅ™ednà stÅ™edový" -#: ../src/pulse/channelmap.c:157 +#: ../src/pulse/channelmap.c:159 msgid "Top Front Left" msgstr "Hornà pÅ™ednà levý" -#: ../src/pulse/channelmap.c:158 +#: ../src/pulse/channelmap.c:160 msgid "Top Front Right" msgstr "Hornà pÅ™ednà pravý" -#: ../src/pulse/channelmap.c:160 +#: ../src/pulse/channelmap.c:162 msgid "Top Rear Center" msgstr "Hornà zadnà stÅ™edový" -#: ../src/pulse/channelmap.c:161 +#: ../src/pulse/channelmap.c:163 msgid "Top Rear Left" msgstr "Hornà zadnà levý" -#: ../src/pulse/channelmap.c:162 +#: ../src/pulse/channelmap.c:164 msgid "Top Rear Right" msgstr "Hornà zadnà pravý" -#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167 -#: ../src/pulse/volume.c:170 ../src/pulse/volume.c:196 -#: ../src/pulse/volume.c:216 ../src/pulse/volume.c:246 -#, fuzzy +#: ../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 "Neplatné" +msgstr "(neplatné)" -#: ../src/pulse/channelmap.c:808 +#: ../src/pulse/channelmap.c:751 msgid "Stereo" -msgstr "" +msgstr "Stereo" -#: ../src/pulse/channelmap.c:813 +#: ../src/pulse/channelmap.c:756 msgid "Surround 4.0" -msgstr "" +msgstr "Surround 4.0" -#: ../src/pulse/channelmap.c:819 +#: ../src/pulse/channelmap.c:762 msgid "Surround 4.1" -msgstr "" +msgstr "Surround 4.1" -#: ../src/pulse/channelmap.c:825 +#: ../src/pulse/channelmap.c:768 msgid "Surround 5.0" -msgstr "" +msgstr "Surround 5.0" -#: ../src/pulse/channelmap.c:831 +#: ../src/pulse/channelmap.c:774 msgid "Surround 5.1" -msgstr "" +msgstr "Surround 5.1" -#: ../src/pulse/channelmap.c:838 +#: ../src/pulse/channelmap.c:781 msgid "Surround 7.1" -msgstr "" +msgstr "Surround 7.1" #: ../src/pulse/error.c:43 msgid "OK" @@ -1176,40 +1200,40 @@ msgstr "Takové rozÅ¡ÃÅ™enà neexistuje" #: ../src/pulse/error.c:65 msgid "Obsolete functionality" -msgstr "" +msgstr "Zastaralá vlastnost" #: ../src/pulse/error.c:66 msgid "Missing implementation" -msgstr "" +msgstr "ScházejÃcà implementace" #: ../src/pulse/error.c:67 msgid "Client forked" -msgstr "" +msgstr "Klient rozvÄ›tven" #: ../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 msgid "XOpenDisplay() failed" @@ -1243,173 +1267,168 @@ msgstr "waitpid(): %s" msgid "Received message for unknown extension '%s'" msgstr "PÅ™ijata zpráva pro neznámé rozÅ¡ÃÅ™enà \"%s\"" -#: ../src/utils/pacat.c:94 +#: ../src/utils/pacat.c:107 +#, c-format +msgid "Failed to drain stream: %s\n" +msgstr "NezdaÅ™ilo se vyprázdnit proud: %s\n" + +#: ../src/utils/pacat.c:112 +msgid "Playback stream drained.\n" +msgstr "Proud pÅ™ehrávánà vyprázdnÄ›n.\n" + +#: ../src/utils/pacat.c:122 +msgid "Draining connection to server.\n" +msgstr "Vyprazdňovánà spojenà se serverem.\n" + +#: ../src/utils/pacat.c:135 +#, c-format +msgid "pa_stream_drain(): %s\n" +msgstr "pa_stream_drain(): %s\n" + +#: ../src/utils/pacat.c:158 #, c-format msgid "pa_stream_write() failed: %s\n" msgstr "pa_stream_write() selhalo: %s\n" -#: ../src/utils/pacat.c:133 +#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 #, c-format msgid "pa_stream_peek() failed: %s\n" msgstr "pa_stream_peek() selhalo: %s\n" -#: ../src/utils/pacat.c:169 -#, c-format +#: ../src/utils/pacat.c:302 msgid "Stream successfully created.\n" msgstr "Proud úspěšnÄ› vytvoÅ™en.\n" -#: ../src/utils/pacat.c:172 +#: ../src/utils/pacat.c:305 #, c-format msgid "pa_stream_get_buffer_attr() failed: %s\n" msgstr "pa_stream_get_buffer_attr() selhalo: %s\n" -#: ../src/utils/pacat.c:176 +#: ../src/utils/pacat.c:309 #, c-format msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgstr "" "Metrika vyrovnávacà pamÄ›ti: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:179 +#: ../src/utils/pacat.c:312 #, c-format msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgstr "Metrika vyrovnávacà pamÄ›ti: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:183 +#: ../src/utils/pacat.c:316 #, c-format msgid "Using sample spec '%s', channel map '%s'.\n" msgstr "PoužÃvána vzorkovacà specifikace \"%s\", mapa kanálů \"%s\".\n" -#: ../src/utils/pacat.c:187 +#: ../src/utils/pacat.c:320 #, c-format msgid "Connected to device %s (%u, %ssuspended).\n" msgstr "PÅ™ipojeno k zaÅ™Ãzenà %s (%u, %ssuspended).\n" -#: ../src/utils/pacat.c:197 +#: ../src/utils/pacat.c:330 #, c-format msgid "Stream error: %s\n" msgstr "Chyba proudu: %s\n" -#: ../src/utils/pacat.c:207 +#: ../src/utils/pacat.c:340 #, c-format msgid "Stream device suspended.%s \n" msgstr "Proudové zaÅ™Ãzenà pozastaveno.%s \n" -#: ../src/utils/pacat.c:209 +#: ../src/utils/pacat.c:342 #, c-format msgid "Stream device resumed.%s \n" msgstr "Proudové zaÅ™Ãzenà obnoveno.%s \n" -#: ../src/utils/pacat.c:217 +#: ../src/utils/pacat.c:350 #, c-format msgid "Stream underrun.%s \n" msgstr "PodbÄ›hnutà proudu.%s \n" -#: ../src/utils/pacat.c:224 +#: ../src/utils/pacat.c:357 #, c-format msgid "Stream overrun.%s \n" msgstr "PÅ™ebÄ›hnutà proudu.%s \n" -#: ../src/utils/pacat.c:231 +#: ../src/utils/pacat.c:364 #, c-format msgid "Stream started.%s \n" msgstr "Proud spuÅ¡tÄ›n.%s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 #, c-format msgid "Stream moved to device %s (%u, %ssuspended).%s \n" msgstr "Proud pÅ™esunut na zaÅ™Ãzenà %s (%u, %ssuspended).%s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 msgid "not " msgstr "nikoliv " -#: ../src/utils/pacat.c:245 -#, fuzzy, c-format +#: ../src/utils/pacat.c:378 +#, c-format msgid "Stream buffer attributes changed.%s \n" -msgstr "PodbÄ›hnutà proudu.%s \n" +msgstr "ZmÄ›nÄ›ny atributy vyrovnávacà pamÄ›ti proudu.%s \n" -#: ../src/utils/pacat.c:278 +#: ../src/utils/pacat.c:411 #, c-format msgid "Connection established.%s \n" msgstr "Spojenà navázáno.%s \n" -#: ../src/utils/pacat.c:281 +#: ../src/utils/pacat.c:414 #, c-format msgid "pa_stream_new() failed: %s\n" msgstr "pa_stream_new() selhalo: %s\n" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:442 #, c-format msgid "pa_stream_connect_playback() failed: %s\n" msgstr "pa_stream_connect_playback() selhalo: %s\n" -#: ../src/utils/pacat.c:315 +#: ../src/utils/pacat.c:448 #, c-format msgid "pa_stream_connect_record() failed: %s\n" msgstr "pa_stream_connect_record() selhalo: %s\n" -#: ../src/utils/pacat.c:329 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:762 ../src/utils/paplay.c:183 +#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 #, c-format msgid "Connection failure: %s\n" msgstr "Spojenà selhalo: %s\n" -#: ../src/utils/pacat.c:349 ../src/utils/paplay.c:75 -#, c-format -msgid "Failed to drain stream: %s\n" -msgstr "NezdaÅ™ilo se vyprázdnit proud: %s\n" - -#: ../src/utils/pacat.c:354 ../src/utils/paplay.c:80 -#, c-format -msgid "Playback stream drained.\n" -msgstr "Proud pÅ™ehrávánà vyprázdnÄ›n.\n" - -#: ../src/utils/pacat.c:364 ../src/utils/paplay.c:92 -#, c-format -msgid "Draining connection to server.\n" -msgstr "Vyprazdňovánà spojenà se serverem.\n" - -#: ../src/utils/pacat.c:390 -#, c-format +#: ../src/utils/pacat.c:495 msgid "Got EOF.\n" msgstr "ZÃskáno EOF.\n" -#: ../src/utils/pacat.c:396 -#, c-format -msgid "pa_stream_drain(): %s\n" -msgstr "pa_stream_drain(): %s\n" - -#: ../src/utils/pacat.c:406 +#: ../src/utils/pacat.c:500 #, c-format msgid "read() failed: %s\n" msgstr "read() selhalo: %s\n" -#: ../src/utils/pacat.c:438 +#: ../src/utils/pacat.c:532 #, c-format msgid "write() failed: %s\n" msgstr "write() selhalo: %s\n" -#: ../src/utils/pacat.c:459 -#, c-format +#: ../src/utils/pacat.c:553 msgid "Got signal, exiting.\n" msgstr "ZÃskán signál, ukonÄovánÃ.\n" -#: ../src/utils/pacat.c:473 +#: ../src/utils/pacat.c:567 #, c-format msgid "Failed to get latency: %s\n" msgstr "NezdaÅ™ilo se zÃskat latenci: %s\n" -#: ../src/utils/pacat.c:478 +#: ../src/utils/pacat.c:572 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "ÄŒas: %0.3f sekund; latence: %0.0f μs. \r" -#: ../src/utils/pacat.c:498 +#: ../src/utils/pacat.c:592 #, c-format msgid "pa_stream_update_timing_info() failed: %s\n" msgstr "pa_stream_update_timing_info() selhalo: %s\n" -#: ../src/utils/pacat.c:511 +#: ../src/utils/pacat.c:605 #, fuzzy, c-format msgid "" "%s [options]\n" @@ -1436,8 +1455,10 @@ msgid "" "44100)\n" " --format=SAMPLEFORMAT The sample type, one of s16le, " "s16be, u8, float32le,\n" -" float32be, ulaw, alaw, s32le, s32be " -"(defaults to s16ne)\n" +" float32be, ulaw, alaw, s32le, s32be, " +"s24le, s24be,\n" +" s24-32le, s24-32be (defaults to " +"s16ne)\n" " --channels=CHANNELS The number of channels, 1 for mono, " "2 for stereo\n" " (defaults to 2)\n" @@ -1460,36 +1481,58 @@ msgid "" "bytes.\n" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" +" --property=PROPERTY=VALUE Set the specified property to the " +"specified value.\n" +" --raw Record/play raw PCM data.\n" +" --file-format=FFORMAT Record/play formatted PCM data.\n" +" --list-file-formats List available file formats.\n" msgstr "" -"s n\n" -" h nápovÄ›da Zobrazit nápovÄ›da\n" -" verze Zobrazit verze n\n" -" VytvoÅ™it a pro nahrávánÃ\n" -" p pÅ™ehrávánà VytvoÅ™it a pro pÅ™ehrávánà n\n" -" Povolit n\n" -" s SERVER název z až až\n" -" d zaÅ™Ãzenà ZAŘÃZENà název z cÃl zdroj až až\n" -" n název NÃZEV Jak až zapnuto\n" -" název NÃZEV Jak až zapnuto\n" -" svazek svazek in oblast\n" -" in Hz až\n" -" typ z\n" -" až\n" -" ÄÃslo z pro mono pro stereo\n" -" až\n" -" kanál mapa Kanál mapa až z implicitnÃ\n" -" z alba cÃl je\n" -" až\n" -" z alba cÃl je\n" -" až\n" -" ÄÃslo z a kanál mapa\n" -" z alba cÃl je až\n" -" ne nebo\n" -" ne od rejstÅ™Ãk z název\n" -" Požadavek in bajty\n" -" Äas Požadavek Äas in bajty n" - -#: ../src/utils/pacat.c:612 +"%s [pÅ™epÃnaÄe]\n" +"\n" +" -h, --help Zobrazà tuto nápovÄ›du\n" +" --version Zobrazà verzi\n" +"\n" +" -r, --record Vytvořà spojenà z důvodu nahrávánÃ\n" +" -p, --playback Vytvořà spojenà z důvodu pÅ™ehrávánÃ\n" +"\n" +" -v, --verbose Zapne nakládánà s úrovnà " +"podrobnostÃ\n" +"\n" +" -s, --server=SERVER Název pÅ™ipojovaného serveru\n" +" -d, --device=ZAŘÃZENà Název pÅ™ipojovaného cÃle Äi zdroje\n" +" -n, --client-name=NÃZEV Způsob volánà tohoto klienta na " +"serveru\n" +" --stream-name=NÃZEV Způsob volánà tohoto proudu na " +"serveru\n" +" --volume=HLASITOST UrÄà poÄáteÄnà (lineárnÃ) hlasitost " +"v rozmezà 0...65536\n" +" --rate=VZORKOVACÃFREKVENCE Vzorkovacà frekvence v Hz (výchozà " +"je 44100)\n" +" --format=FORMÃTVZORKU Typ vzorku, jeden z s16le, s16be, " +"u8, float32le,\n" +" float32be, ulaw, alaw, s32le, s32be " +"(výchozà je s16ne)\n" +" --channels=KANÃLY PoÄet kanálů, u mono 1, u sterea 2\n" +" (výchozà je 2)\n" +" --channel-map=MAPAKANÃLÅ® Mapa kanálů urÄená k použità namÃsto " +"výchozÃ\n" +" --fix-format ZÃská formát vzorku z cÃle, ke " +"kterému se\n" +" pÅ™ipojuje proud.\n" +" --fix-rate ZÃská vzorkovacà frekvenci z cÃle, " +"ke kterému se\n" +" pÅ™ipojuje proud.\n" +" --fix-channels ZÃská poÄet kanálů a mapu kanálů z " +"cÃle, ke kterému se\n" +" pÅ™ipojuje proud.\n" +" --no-remix Nesměšuje kanály.\n" +" --no-remap Mapuje kanály dle indexu namÃsto " +"názvu.\n" +" --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" + +#: ../src/utils/pacat.c:727 #, c-format msgid "" "pacat %s\n" @@ -1500,88 +1543,133 @@ msgstr "" "PÅ™eloženo s libpulse %s\n" "Propojeno s libpulse %s\n" -#: ../src/utils/pacat.c:669 +#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "Neplatná mapa kanálů \"%s\"\n" + +#: ../src/utils/pacat.c:776 +#, fuzzy, c-format +msgid "Invalid stream name '%s'\n" +msgstr "Neplatná metoda pÅ™evzorkovánà \"%s\"." + +#: ../src/utils/pacat.c:813 #, c-format msgid "Invalid channel map '%s'\n" msgstr "Neplatná mapa kanálů \"%s\"\n" -#: ../src/utils/pacat.c:698 +#: ../src/utils/pacat.c:842 #, c-format msgid "Invalid latency specification '%s'\n" msgstr "Neplatné upÅ™esnÄ›nà latence \"%s\"\n" -#: ../src/utils/pacat.c:705 +#: ../src/utils/pacat.c:849 #, c-format msgid "Invalid process time specification '%s'\n" msgstr "Neplatné upÅ™esnÄ›nà Äasu zpracovánà \"%s\"\n" -#: ../src/utils/pacat.c:716 +#: ../src/utils/pacat.c:861 +#, fuzzy, c-format +msgid "Invalid property '%s'\n" +msgstr "Neplatná metoda pÅ™evzorkovánà \"%s\"." + +#: ../src/utils/pacat.c:878 #, c-format +msgid "Unknown file format %s." +msgstr "" + +#: ../src/utils/pacat.c:897 msgid "Invalid sample specification\n" msgstr "Neplatné upÅ™esnÄ›nà vzorkovánÃ\n" -#: ../src/utils/pacat.c:721 +#: ../src/utils/pacat.c:907 #, c-format +msgid "open(): %s\n" +msgstr "open(): %s\n" + +#: ../src/utils/pacat.c:912 +#, c-format +msgid "dup2(): %s\n" +msgstr "dup2(): %s\n" + +#: ../src/utils/pacat.c:919 +msgid "Too many arguments.\n" +msgstr "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" + +#: ../src/utils/pacat.c:950 +#, fuzzy +msgid "Failed to open audio file.\n" +msgstr "Selhalo otevÅ™enà zvukového souboru.\n" + +#: ../src/utils/pacat.c:956 +msgid "" +"Warning: specified sample specification will be overwritten with " +"specification from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "Selhalo zÃskánà informace o vzorku: %s\n" + +#: ../src/utils/pacat.c:968 +msgid "Warning: Failed to determine channel map from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:979 msgid "Channel map doesn't match sample specification\n" msgstr "Mapa kanálů se neshoduje s upÅ™esnÄ›nÃm vzorkovánÃ\n" -#: ../src/utils/pacat.c:728 -#, c-format -msgid "Opening a %s stream with sample specification '%s'.\n" +#: ../src/utils/pacat.c:990 +msgid "Warning: failed to write channel map to file.\n" +msgstr "" + +#: ../src/utils/pacat.c:1005 +#, fuzzy, c-format +msgid "" +"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" msgstr "OtevÃránà proudu %s s upÅ™esnÄ›nÃm vzorkovánà \"%s\".\n" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "recording" msgstr "nahrávánÃ" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "playback" msgstr "pÅ™ehrávánÃ" -#: ../src/utils/pacat.c:736 -#, c-format -msgid "open(): %s\n" -msgstr "open(): %s\n" - -#: ../src/utils/pacat.c:741 -#, c-format -msgid "dup2(): %s\n" -msgstr "dup2(): %s\n" - -#: ../src/utils/pacat.c:751 -#, c-format -msgid "Too many arguments.\n" -msgstr "PÅ™ÃliÅ¡ mnoho argumentů.\n" - -#: ../src/utils/pacat.c:764 ../src/utils/pasuspender.c:280 -#: ../src/utils/pactl.c:1017 ../src/utils/paplay.c:381 +#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 +#: ../src/utils/pactl.c:1104 #, c-format msgid "pa_mainloop_new() failed.\n" msgstr "pa_mainloop_new() selhalo.\n" -#: ../src/utils/pacat.c:785 -#, c-format +#: ../src/utils/pacat.c:1051 msgid "io_new() failed.\n" msgstr "io_new() selhalo.\n" -#: ../src/utils/pacat.c:791 ../src/utils/pasuspender.c:293 -#: ../src/utils/pactl.c:1031 ../src/utils/paplay.c:396 +#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 +#: ../src/utils/pactl.c:1116 #, c-format msgid "pa_context_new() failed.\n" msgstr "pa_context_new() selhalo.\n" -#: ../src/utils/pacat.c:799 +#: ../src/utils/pacat.c:1066 #, fuzzy, c-format msgid "pa_context_connect() failed: %s\n" msgstr "pa_context_connect() selhalo: %s" -#: ../src/utils/pacat.c:810 -#, c-format +#: ../src/utils/pacat.c:1077 msgid "time_new() failed.\n" msgstr "time_new() selhalo.\n" -#: ../src/utils/pacat.c:817 ../src/utils/pasuspender.c:301 -#: ../src/utils/pactl.c:1042 ../src/utils/paplay.c:410 +#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 +#: ../src/utils/pactl.c:1127 #, c-format msgid "pa_mainloop_run() failed.\n" msgstr "pa_mainloop_run() selhalo.\n" @@ -1611,8 +1699,7 @@ 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:176 ../src/utils/pactl.c:768 -#: ../src/utils/paplay.c:191 +#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" msgstr "ZÃskáno SIGINT, ukonÄovánÃ.\n" @@ -1623,7 +1710,7 @@ msgid "WARNING: Child process terminated by signal %u\n" msgstr "VAROVÃNÃ: Proces potomka ukonÄen signálem %u\n" #: ../src/utils/pasuspender.c:212 -#, fuzzy, c-format +#, c-format msgid "" "%s [options] ... \n" "\n" @@ -1633,12 +1720,14 @@ msgid "" "to\n" "\n" msgstr "" -"s n\n" -" h nápovÄ›da Zobrazit nápovÄ›da\n" -" verze Zobrazit verze\n" -" s SERVER název z až až n n" +"%s [pÅ™epÃnaÄe] ... \n" +"\n" +" -h, --help Zobrazà tuto nápovÄ›du\n" +" --version Zobrazà verzi\n" +" -s, --server=SERVER Název pÅ™ipojovaného serveru\n" +"\n" -#: ../src/utils/pasuspender.c:251 +#: ../src/utils/pasuspender.c:248 #, c-format msgid "" "pasuspender %s\n" @@ -1649,33 +1738,33 @@ msgstr "" "PÅ™eloženo s libpulse %s\n" "Propojeno s libpulse %s\n" -#: ../src/utils/pactl.c:108 +#: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" msgstr "Selhalo zÃskánà statistik: %s\n" -#: ../src/utils/pactl.c:114 +#: ../src/utils/pactl.c:134 #, c-format msgid "Currently in use: %u blocks containing %s bytes total.\n" msgstr "PrávÄ› použÃváno: %u bloků obsahujÃcÃch celkem %s bajtů.\n" -#: ../src/utils/pactl.c:117 +#: ../src/utils/pactl.c:137 #, c-format msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n" msgstr "Alokováno bÄ›hem celého bÄ›hu: %u bloků obsahujÃcÃch celkem %s bajtů.\n" -#: ../src/utils/pactl.c:120 +#: ../src/utils/pactl.c:140 #, c-format msgid "Sample cache size: %s\n" msgstr "Velikost vzorkovacà vyrovnávacà pamÄ›ti: %s\n" -#: ../src/utils/pactl.c:129 +#: ../src/utils/pactl.c:149 #, c-format msgid "Failed to get server information: %s\n" msgstr "NezdaÅ™ilo se zÃskánà informacà o serveru: %s\n" -#: ../src/utils/pactl.c:137 -#, fuzzy, c-format +#: ../src/utils/pactl.c:157 +#, c-format msgid "" "User name: %s\n" "Host Name: %s\n" @@ -1692,17 +1781,18 @@ msgstr "" "Název serveru: %s\n" "Verze serveru: %s\n" "Výchozà upÅ™esnÄ›nà vzorkovánÃ: %s\n" +"Výchozà mapa kanálů: %s\n" "Výchozà cÃl: %s\n" "Výchozà zdroj: %s\n" "Cookie: %08x\n" -#: ../src/utils/pactl.c:178 +#: ../src/utils/pactl.c:198 #, c-format msgid "Failed to get sink information: %s\n" msgstr "NezdaÅ™ilo se zÃskánà informacà o cÃli: %s\n" -#: ../src/utils/pactl.c:194 -#, fuzzy, c-format +#: ../src/utils/pactl.c:214 +#, c-format msgid "" "Sink #%u\n" "\tState: %s\n" @@ -1722,26 +1812,41 @@ msgid "" "\tProperties:\n" "\t\t%s\n" msgstr "" -"*** CÃl Ä. %u ***\n" -"Název: %s\n" -"OvladaÄ: %s\n" -"UpÅ™esnÄ›nà vzorkovánÃ: %s\n" -"Mapa kanálů: %s\n" -"Modul vlastnÃka: %u\n" -"Hlasitost %s\n" -"Zdroj monitoru: %s\n" -"Latence: %0.0f μs, konfigurováno %0.0f μs\n" -"PÅ™Ãznaky: %s%s%s%s%s%s\n" -"Vlastnosti:\n" -"%s" - -#: ../src/utils/pactl.c:258 +"CÃl Ä. %u\n" +"\tStav: %s\n" +"\tNázev: %s\n" +"\tPopis: %s\n" +"\tOvladaÄ: %s\n" +"\tUpÅ™esnÄ›nà vzorkovánÃ: %s\n" +"\tMapa kanálů: %s\n" +"\tModul vlastnÃka: %u\n" +"\tZtlumenÃ: %s\n" +"\tHlasitost: %s%s%s\n" +"\t vyváženà %0.2f\n" +"\tZákladnà hlasitost %s%s%s\n" +"\tZdroj monitoru: %s\n" +"\tLatence: %0.0f μs, konfigurováno %0.0f μs\n" +"\tPÅ™Ãznaky: %s%s%s%s%s%s\n" +"\tVlastnosti:\n" +"\t\t%s\n" + +#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 +#, fuzzy, c-format +msgid "\tPorts:\n" +msgstr "\tProfily:\n" + +#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 +#, fuzzy, c-format +msgid "\tActive Port: %s\n" +msgstr "\tAktivnà profil: %s\n" + +#: ../src/utils/pactl.c:290 #, c-format msgid "Failed to get source information: %s\n" msgstr "NezdaÅ™ilo se zÃskánà informacà o zdroji: %s\n" -#: ../src/utils/pactl.c:274 -#, fuzzy, c-format +#: ../src/utils/pactl.c:306 +#, c-format msgid "" "Source #%u\n" "\tState: %s\n" @@ -1761,34 +1866,39 @@ msgid "" "\tProperties:\n" "\t\t%s\n" msgstr "" -"*** Zdroj Ä. %u ***\n" -"Název: %s\n" -"OvladaÄ: %s\n" -"UpÅ™esnÄ›nà vzorkovánÃ: %s\n" -"Mapa kanálů: %s\n" -"Modul vlastnÃka: %u\n" -"Hlasitost %s\n" -"Monitor zdroje: %s\n" -"Latence: %0.0f μs, konfigurováno %0.0f μs\n" -"PÅ™Ãznaky: %s%s%s%s%s%s\n" -"Vlastnosti:\n" -"%s" - -#: ../src/utils/pactl.c:306 ../src/utils/pactl.c:350 ../src/utils/pactl.c:385 -#: ../src/utils/pactl.c:422 ../src/utils/pactl.c:481 ../src/utils/pactl.c:482 -#: ../src/utils/pactl.c:492 ../src/utils/pactl.c:536 ../src/utils/pactl.c:537 -#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:586 ../src/utils/pactl.c:587 -#: ../src/utils/pactl.c:594 +"Zdroj Ä. %u\n" +"\tStav: %s\n" +"\tNázev: %s\n" +"\tPopis: %s\n" +"\tOvladaÄ: %s\n" +"\tUpÅ™esnÄ›nà vzorkovánÃ: %s\n" +"\tMapa kanálů: %s\n" +"\tModul vlastnÃka: %u\n" +"\tZtlumenÃ: %s\n" +"\tHlasitost: %s%s%s\n" +"\t vyváženà %0.2f\n" +"\tZákladnà hlasitost %s%s%s\n" +"\tMonitor zdroje: %s\n" +"\tLatence: %0.0f μs, konfigurováno %0.0f μs\n" +"\tPÅ™Ãznaky: %s%s%s%s%s%s\n" +"\tVlastnosti:\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 "nic" -#: ../src/utils/pactl.c:324 +#: ../src/utils/pactl.c:368 #, c-format msgid "Failed to get module information: %s\n" msgstr "Selhalo zÃskánà informacà o modulu: %s\n" -#: ../src/utils/pactl.c:342 -#, fuzzy, c-format +#: ../src/utils/pactl.c:386 +#, c-format msgid "" "Module #%u\n" "\tName: %s\n" @@ -1797,19 +1907,20 @@ msgid "" "\tProperties:\n" "\t\t%s\n" msgstr "" -"*** Modul Ä. %u ***\n" -"Název: %s\n" -"Argument: %s\n" -"PoÄet použità %s\n" -"Automatické uvolnÄ›nÃ: %s\n" +"Modul Ä. %u\n" +"\tNázev: %s\n" +"\tArgument: %s\n" +"\tPoÄet použità %s\n" +"\tVlastnosti:\n" +"\t\t%s\n" -#: ../src/utils/pactl.c:361 +#: ../src/utils/pactl.c:405 #, c-format msgid "Failed to get client information: %s\n" msgstr "Selhalo zÃskánà informacà o klientu: %s\n" -#: ../src/utils/pactl.c:379 -#, fuzzy, c-format +#: ../src/utils/pactl.c:423 +#, c-format msgid "" "Client #%u\n" "\tDriver: %s\n" @@ -1817,19 +1928,19 @@ msgid "" "\tProperties:\n" "\t\t%s\n" msgstr "" -"*** Klient Ä. %u ***\n" -"OvladaÄ: %s\n" -"Modul vlastnÃka: %s\n" -"Vlastnosti:\n" -"%s" +"Klient Ä. %u\n" +"\tOvladaÄ: %s\n" +"\tModul vlastnÃka: %s\n" +"\tVlastnosti:\n" +"\t\t%s\n" -#: ../src/utils/pactl.c:396 -#, fuzzy, c-format +#: ../src/utils/pactl.c:440 +#, c-format msgid "Failed to get card information: %s\n" -msgstr "Selhalo až get s n" +msgstr "Selhalo zÃskánà informacà o kartÄ›: %s\n" -#: ../src/utils/pactl.c:414 -#, fuzzy, c-format +#: ../src/utils/pactl.c:458 +#, c-format msgid "" "Card #%u\n" "\tName: %s\n" @@ -1838,29 +1949,30 @@ msgid "" "\tProperties:\n" "\t\t%s\n" msgstr "" -"*** Klient Ä. %u ***\n" -"OvladaÄ: %s\n" -"Modul vlastnÃka: %s\n" -"Vlastnosti:\n" -"%s" +"Karta Ä. %u\n" +"\tNázev: %s\n" +"\tOvladaÄ: %s\n" +"\tModul vlastnÃka: %s\n" +"\tVlastnosti:\n" +"\t\t%s\n" -#: ../src/utils/pactl.c:428 +#: ../src/utils/pactl.c:472 #, c-format msgid "\tProfiles:\n" -msgstr "" +msgstr "\tProfily:\n" -#: ../src/utils/pactl.c:434 -#, fuzzy, c-format +#: ../src/utils/pactl.c:478 +#, c-format msgid "\tActive Profile: %s\n" -msgstr "pipe selhalo: %s" +msgstr "\tAktivnà profil: %s\n" -#: ../src/utils/pactl.c:445 +#: ../src/utils/pactl.c:489 #, c-format msgid "Failed to get sink input information: %s\n" msgstr "NezdaÅ™ilo se zÃskánà cÃlových vstupnÃch informacÃ: %s\n" -#: ../src/utils/pactl.c:464 -#, fuzzy, c-format +#: ../src/utils/pactl.c:508 +#, c-format msgid "" "Sink Input #%u\n" "\tDriver: %s\n" @@ -1878,15 +1990,31 @@ msgid "" "\tResample method: %s\n" "\tProperties:\n" "\t\t%s\n" -msgstr "Vstup s Modul s s s s s s n s" +msgstr "" +"Vstup cÃle Ä. %u\n" +"\tOvladaÄ: %s\n" +"\tModul vlastnÃka: %s\n" +"\tKlient: %s\n" +"\tCÃl: %u\n" +"\tUpÅ™esnÄ›nà vzorkovánÃ: %s\n" +"\tMapa kanálů: %s\n" +"\tZtlumenÃ: %s\n" +"\tHlasitost: %s\n" +"\t %s\n" +"\t vyváženà %0.2f\n" +"\tLatence vyrovnávacà pamÄ›ti: %0.0f μs\n" +"\tLatence cÃle: %0.0f μs\n" +"\tMetoda pÅ™evzorkovánÃ: %s\n" +"\tVlastnosti:\n" +"\t\t%s\n" -#: ../src/utils/pactl.c:503 -#, fuzzy, c-format +#: ../src/utils/pactl.c:547 +#, c-format msgid "Failed to get source output information: %s\n" -msgstr "Selhalo až get zdroj s n" +msgstr "Selhalo zÃskánà informace o výstupu zdroje: %s\n" -#: ../src/utils/pactl.c:523 -#, fuzzy, c-format +#: ../src/utils/pactl.c:567 +#, c-format msgid "" "Source Output #%u\n" "\tDriver: %s\n" @@ -1900,15 +2028,27 @@ msgid "" "\tResample method: %s\n" "\tProperties:\n" "\t\t%s\n" -msgstr "Zdroj Výstup s Modul s s s s s n s" +msgstr "" +"Výstup zdroje Ä. %u\n" +"\tOvladaÄ: %s\n" +"\tModul vlastnÃka: %s\n" +"\tKlient: %s\n" +"\tZdroj: %u\n" +"\tUpÅ™esnÄ›nà vzorkovánÃ: %s\n" +"\tMapa kanálů: %s\n" +"\tLatence vyrovnávacà pamÄ›ti: %0.0f μs\n" +"\tLatence zdroje: %0.0f μs\n" +"\tMetoda pÅ™evzorkovánÃ: %s\n" +"\tVlastnosti:\n" +"\t\t%s\n" -#: ../src/utils/pactl.c:554 -#, fuzzy, c-format +#: ../src/utils/pactl.c:598 +#, c-format msgid "Failed to get sample information: %s\n" -msgstr "Selhalo až get s n" +msgstr "Selhalo zÃskánà informace o vzorku: %s\n" -#: ../src/utils/pactl.c:572 -#, fuzzy, c-format +#: ../src/utils/pactl.c:616 +#, c-format msgid "" "Sample #%u\n" "\tName: %s\n" @@ -1923,24 +2063,36 @@ msgid "" "\tFilename: %s\n" "\tProperties:\n" "\t\t%s\n" -msgstr "Ukázka s s s s s s s n s" +msgstr "" +"Vzorek Ä. %u\n" +"\tNázev: %s\n" +"\tUpÅ™esnÄ›nà vzorkovánÃ: %s\n" +"\tMapa kanálů: %s\n" +"\tHlasitost: %s\n" +"\t %s\n" +"\t vyváženà %0.2f\n" +"\tDélka: %0.1fs\n" +"\tVelikost: %s\n" +"\tOpoždÄ›nÃ: %s\n" +"\tNázev souboru: %s\n" +"\tVlastnosti:\n" +"\t\t%s\n" -#: ../src/utils/pactl.c:602 ../src/utils/pactl.c:612 +#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 #, c-format msgid "Failure: %s\n" msgstr "SelhánÃ: %s\n" -#: ../src/utils/pactl.c:636 -#, fuzzy, c-format +#: ../src/utils/pactl.c:680 +#, c-format msgid "Failed to upload sample: %s\n" -msgstr "Selhalo až s n" +msgstr "Selhalo nahránà vzorku: %s\n" -#: ../src/utils/pactl.c:653 -#, c-format +#: ../src/utils/pactl.c:697 msgid "Premature end of file\n" msgstr "PÅ™edÄasný konec souboru\n" -#: ../src/utils/pactl.c:774 +#: ../src/utils/pactl.c:826 #, fuzzy, c-format msgid "" "%s [options] stat\n" @@ -1956,6 +2108,8 @@ msgid "" "%s [options] suspend-sink [SINK] 1|0\n" "%s [options] suspend-source [SOURCE] 1|0\n" "%s [options] set-card-profile [CARD] [PROFILE] \n" +"%s [options] set-sink-port [SINK] [PORT] \n" +"%s [options] set-source-port [SOURCE] [PORT] \n" "\n" " -h, --help Show this help\n" " --version Show version\n" @@ -1965,15 +2119,28 @@ msgid "" " -n, --client-name=NAME How to call this client on the " "server\n" msgstr "" -"s n s seznam n s n s NÃZEVSOUBORU NÃZEV n s NÃZEV n s odstranit NÃZEV n s " -"pÅ™esunout cÃl ID n s pÅ™esunout zdroj ID ZDROJ n s modul NÃZEV n s modul ID n " -"s cÃl n s zdroj ZDROJ n\n" -" h nápovÄ›da Zobrazit nápovÄ›da\n" -" verze Zobrazit verze n\n" -" s SERVER název z až až\n" -" n název NÃZEV Jak až zapnuto n" +"%s [pÅ™epÃnaÄe] stat\n" +"%s [pÅ™epÃnaÄe] list\n" +"%s [pÅ™epÃnaÄe] exit\n" +"%s [pÅ™epÃnaÄe] upload-sample NÃZEVSOUBORU [NÃZEV]\n" +"%s [pÅ™epÃnaÄe] play-sample NÃZEV [CÃL]\n" +"%s [pÅ™epÃnaÄe] remove-sample NÃZEV\n" +"%s [pÅ™epÃnaÄe] move-sink-input ID CÃL\n" +"%s [pÅ™epÃnaÄe] move-source-output ID ZDROJ\n" +"%s [pÅ™epÃnaÄe] load-module NÃZEV [ARG ...]\n" +"%s [pÅ™epÃnaÄe] unload-module ID\n" +"%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" +"\n" +" -h, --help Zobrazà tuto nápovÄ›du\n" +" --version Zobrazà verzi\n" +"\n" +" -s, --server=SERVER Název pÅ™ipojovaného serveru\n" +" -n, --client-name=NÃZEV Způsob volánà tohoto klienta na " +"serveru\n" -#: ../src/utils/pactl.c:826 +#: ../src/utils/pactl.c:880 #, c-format msgid "" "pactl %s\n" @@ -1984,77 +2151,81 @@ msgstr "" "PÅ™eloženo s libpulse %s\n" "Propojeno s libpulse %s\n" -#: ../src/utils/pactl.c:865 -#, fuzzy, c-format +#: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" -msgstr "ProsÃm a soubor až n" +msgstr "Zadejte prosÃm soubor se vzorkem urÄeným k nahránÃ\n" -#: ../src/utils/pactl.c:887 -#, c-format +#: ../src/utils/pactl.c:939 msgid "Failed to open sound file.\n" msgstr "Selhalo otevÅ™enà zvukového souboru.\n" -#: ../src/utils/pactl.c:899 -#, fuzzy, c-format +#: ../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" + +#: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" -msgstr "Vy až a název až n" +msgstr "Je nutné zadat název vzorku urÄeného k pÅ™ehránÃ\n" -#: ../src/utils/pactl.c:911 -#, fuzzy, c-format +#: ../src/utils/pactl.c:973 msgid "You have to specify a sample name to remove\n" -msgstr "Vy až a název až odstranit n" +msgstr "Je nutné zadat název vzorku urÄeného k odstranÄ›nÃ\n" -#: ../src/utils/pactl.c:919 -#, fuzzy, c-format +#: ../src/utils/pactl.c:982 msgid "You have to specify a sink input index and a sink\n" -msgstr "Vy až a cÃl rejstÅ™Ãk a a cÃl n" +msgstr "Je nutné zadat vstup cÃle a cÃl\n" -#: ../src/utils/pactl.c:928 -#, fuzzy, c-format +#: ../src/utils/pactl.c:992 msgid "You have to specify a source output index and a source\n" -msgstr "Vy až a zdroj rejstÅ™Ãk a a zdroj n" +msgstr "Je nutné zadat index výstupu zdroje a zdroj\n" -#: ../src/utils/pactl.c:942 -#, fuzzy, c-format +#: ../src/utils/pactl.c:1007 msgid "You have to specify a module name and arguments.\n" -msgstr "Vy až a modul název a n" +msgstr "Je nutné zadat název modulu a argumenty.\n" -#: ../src/utils/pactl.c:962 -#, fuzzy, c-format +#: ../src/utils/pactl.c:1027 msgid "You have to specify a module index\n" -msgstr "Vy až a modul rejstÅ™Ãk n" +msgstr "Je nutné zadat index modulu\n" -#: ../src/utils/pactl.c:972 -#, fuzzy, c-format +#: ../src/utils/pactl.c:1037 msgid "" "You may not specify more than one sink. You have to specify a boolean " "value.\n" -msgstr "Vy ne cÃl Vy až pÅ™i booleovská hodnota hodnota n" +msgstr "Nelze zadat vÃce než jeden cÃl. Je nutné zadat booleovskou hodnotu.\n" -#: ../src/utils/pactl.c:985 -#, fuzzy, c-format +#: ../src/utils/pactl.c:1050 msgid "" "You may not specify more than one source. You have to specify a boolean " "value.\n" -msgstr "Vy ne zdroj Vy až pÅ™i booleovská hodnota hodnota n" +msgstr "" +"Nelze zadat vÃce než jeden zdroj. Je nutné zadat booleovskou hodnotu.\n" -#: ../src/utils/pactl.c:997 -#, fuzzy, c-format +#: ../src/utils/pactl.c:1062 msgid "You have to specify a card name/index and a profile name\n" -msgstr "Vy až a cÃl rejstÅ™Ãk a a cÃl n" +msgstr "Je nutné upÅ™esnit název karty/indexu a název profilu\n" -#: ../src/utils/pactl.c:1012 -#, c-format +#: ../src/utils/pactl.c:1073 +#, fuzzy +msgid "You have to specify a sink name/index and a port name\n" +msgstr "Je nutné upÅ™esnit název karty/indexu a název profilu\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" + +#: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "Nezadán žádný platný pÅ™Ãkaz.\n" -#: ../src/utils/pactl.c:1037 ../src/utils/paplay.c:404 +#: ../src/utils/pactl.c:1122 #, c-format msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect() selhalo: %s" #: ../src/utils/pax11publish.c:61 -#, fuzzy, c-format +#, c-format msgid "" "%s [-D display] [-S server] [-O sink] [-I source] [-c file] [-d|-e|-i|-r]\n" "\n" @@ -2064,11 +2235,13 @@ msgid "" "variables and cookie file.\n" " -r Remove PulseAudio data from X11 display\n" msgstr "" -"s D S O cÃl I zdroj c soubor d e n\n" -" d Zobrazit až implicitnÃ\n" -" e Exportovat mÃstnà až\n" -" Importovat z alba až mÃstnà a soubor\n" -" Odstranit z alba n" +"%s [-D displej] [-S server] [-O cÃl] [-I zdroj] [-c soubor] [-d|-e|-i|-r]\n" +"\n" +" -d Zobrazà aktuálnà data PulseAudio pÅ™iÅ™azená k displeji X11 (výchozÃ)\n" +" -e Exportuje mÃstnà data PulseAudio na displej X11\n" +" -i Importuje data PulseAudio z displeje X11 mezi mÃstnà promÄ›nné " +"prostÅ™edà a soubor cookie.\n" +" -r Odstranà data PulseAudio z displeje X11\n" #: ../src/utils/pax11publish.c:94 #, c-format @@ -2130,123 +2303,48 @@ msgstr "NezdaÅ™ilo se nahrát data cookie\n" msgid "Not yet implemented.\n" msgstr "Doposud neimplementováno.\n" -#: ../src/utils/pacmd.c:64 +#: ../src/utils/pacmd.c:61 +msgid "No PulseAudio daemon running, or not running as session daemon." +msgstr "" + +#: ../src/utils/pacmd.c:66 #, c-format msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s" msgstr "socket(PF_UNIX, SOCK_STREAM, 0): %s" -#: ../src/utils/pacmd.c:81 +#: ../src/utils/pacmd.c:83 #, c-format msgid "connect(): %s" msgstr "connect(): %s" -#: ../src/utils/pacmd.c:89 +#: ../src/utils/pacmd.c:91 msgid "Failed to kill PulseAudio daemon." msgstr "NezdaÅ™ilo se zabÃt démona PulseAudio." -#: ../src/utils/pacmd.c:97 +#: ../src/utils/pacmd.c:99 msgid "Daemon not responding." msgstr "Démon neodpovÃdá." -#: ../src/utils/pacmd.c:144 +#: ../src/utils/pacmd.c:146 #, c-format msgid "select(): %s" msgstr "select(): %s" -#: ../src/utils/pacmd.c:154 ../src/utils/pacmd.c:171 +#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173 #, c-format msgid "read(): %s" msgstr "read(): %s" -#: ../src/utils/pacmd.c:187 ../src/utils/pacmd.c:201 +#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203 #, c-format msgid "write(): %s" msgstr "write(): %s" -#: ../src/utils/paplay.c:139 -#, c-format -msgid "Stream successfully created\n" -msgstr "Proud úspěšnÄ› vytvoÅ™en\n" - -#: ../src/utils/paplay.c:144 -#, c-format -msgid "Stream errror: %s\n" -msgstr "Chyba proudu: %s\n" - -#: ../src/utils/paplay.c:165 -#, c-format -msgid "Connection established.\n" -msgstr "Spojenà navázáno.\n" - -#: ../src/utils/paplay.c:198 -#, fuzzy, c-format -msgid "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" -msgstr "" -"s SOUBOR n\n" -" h nápovÄ›da Zobrazit nápovÄ›da\n" -" verze Zobrazit verze n\n" -" Povolit n\n" -" s SERVER název z až až\n" -" d zaÅ™Ãzenà ZAŘÃZENà název z cÃl až až\n" -" n název NÃZEV Jak až zapnuto\n" -" název NÃZEV Jak až zapnuto\n" -" svazek svazek in oblast\n" -" kanál mapa Nastavit kanál mapa až n" - -#: ../src/utils/paplay.c:255 -#, c-format -msgid "" -"paplay %s\n" -"Compiled with libpulse %s\n" -"Linked with libpulse %s\n" -msgstr "" -"paplay %s\n" -"PÅ™eloženo s libpulse %s\n" -"Propojeno s libpulse %s\n" - -#: ../src/utils/paplay.c:292 -#, fuzzy, c-format -msgid "Invalid channel map\n" -msgstr "Neplatné kanál mapa n" - -#: ../src/utils/paplay.c:314 -#, c-format -msgid "Failed to open file '%s'\n" -msgstr "Selhalo otevÅ™enà souboru \"%s\"\n" - -#: ../src/utils/paplay.c:350 -#, fuzzy, c-format -msgid "Channel map doesn't match file.\n" -msgstr "Kanál mapa soubor n" - -#: ../src/utils/paplay.c:376 -#, fuzzy, c-format -msgid "Using sample spec '%s'\n" -msgstr "s n" - #: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 -#, fuzzy msgid "Cannot access autospawn lock." -msgstr "pÅ™Ãstup." +msgstr "Nelze pÅ™istoupit k zámku automatického spouÅ¡tÄ›nÃ." -#: ../src/modules/alsa/alsa-sink.c:393 ../src/modules/alsa/alsa-sink.c:541 +#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2256,8 +2354,14 @@ msgid "" "We were woken up with POLLOUT set -- however a subsequent snd_pcm_avail() " "returned 0 or another value < min_avail." msgstr "" +"ALSA nás probudila z důvodu zápisu nových dat na zaÅ™ÃzenÃ, ale ve " +"skuteÄnosti nebylo co zapisovat.\n" +"S nejvÄ›tÅ¡Ã pravdÄ›podobnostà se jedná o chybu v ovladaÄi ALSA \"%s\". " +"Nahlaste prosÃm tento problém vývojářům ALSA.\n" +"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:377 ../src/modules/alsa/alsa-source.c:516 +#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2267,92 +2371,137 @@ msgid "" "We were woken up with POLLIN set -- however a subsequent snd_pcm_avail() " "returned 0 or another value < min_avail." msgstr "" +"ALSA nás probudila z důvodu Ätenà nových dat ze zaÅ™ÃzenÃ, ale ve skuteÄnosti " +"nebylo co ÄÃst.\n" +"S nejvÄ›tÅ¡Ã pravdÄ›podobnostà se jedná o chybu v ovladaÄi ALSA \"%s\". " +"Nahlaste prosÃm tento problém vývojářům ALSA.\n" +"Probudilo nás nastavenà POLLIN - nicménÄ› následné snd_pcm_avail() vrátilo 0 " +"Äi jinou hodnotu < min_avail." -#: ../src/modules/alsa/module-alsa-card.c:114 -#, c-format -msgid "Output %s + Input %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:117 -#, c-format -msgid "Output %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:121 -#, c-format -msgid "Input %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:170 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2006 +#: ../src/modules/alsa/module-alsa-card.c:152 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 msgid "Off" -msgstr "" +msgstr "Vypnuto" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1976 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 msgid "High Fidelity Playback (A2DP)" -msgstr "" +msgstr "PÅ™ehrávánà s velmi vÄ›rnou reprodukcà (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1991 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 msgid "Telephony Duplex (HSP/HFP)" -msgstr "" +msgstr "Duplexnà telefonie (HSP/HFP)" -#: ../src/modules/reserve-wrap.c:139 +#: ../src/modules/reserve-wrap.c:151 msgid "PulseAudio Sound Server" -msgstr "" +msgstr "Zvukový server PulseAudio" -#, 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 '" -#~ msgstr "" -#~ "Volaný SUID root a plánovánà v reálném Äase / o vysoké prioritÄ› bylo " -#~ "zažádáno v konfiguraci. Nedisponujeme ovÅ¡em potÅ™ebnými oprávnÄ›nÃmi:\n" -#~ "Nejsme ve skupinÄ› \"" +#~ msgid "Analog Mono" +#~ msgstr "Analogové mono" -#, fuzzy -#~ msgid "--log-time boolean argument" -#~ msgstr "--disallow-exit booleovský argument" +#~ msgid "Analog Stereo" +#~ msgstr "Analogové stereo" -#~ msgid "Default sink name (%s) does not exist in name register." -#~ msgstr "Výchozà jméno cÃle (%s) ve jmenném registru neexistuje." +#~ msgid "Digital Stereo (IEC958)" +#~ msgstr "Digitálnà stereo (IEC958)" -#~ msgid "Buffer overrun, dropping incoming data\n" -#~ msgstr "PÅ™ebÄ›h vyrovnávacà pamÄ›ti, zahazujà se pÅ™Ãchozà data\n" +#~ msgid "Digital Stereo (HDMI)" +#~ msgstr "Digitálnà stereo (HDMI)" -#~ msgid "pa_stream_drop() failed: %s\n" -#~ msgstr "pa_stream_drop() selhalo: %s\n" +#~ msgid "Analog Surround 4.0" +#~ msgstr "Analogový Surround 4.0" -#~ msgid "muted" -#~ msgstr "ztlumeno" +#~ msgid "Digital Surround 4.0 (IEC958/AC3)" +#~ msgstr "Digitálnà Surround 4.0 (IEC958/AC3)" -#, fuzzy -#~ msgid "" -#~ "*** Autoload Entry #%u ***\n" -#~ "Name: %s\n" -#~ "Type: %s\n" -#~ "Module: %s\n" -#~ "Argument: %s\n" -#~ msgstr "s s s s n" +#~ msgid "Analog Surround 4.1" +#~ msgstr "Analogový Surround 4.1" + +#~ msgid "Analog Surround 5.0" +#~ msgstr "Analogový Surround 5.0" + +#~ msgid "Analog Surround 5.1" +#~ msgstr "Analogový Surround 5.1" + +#~ msgid "Digital Surround 5.1 (IEC958/AC3)" +#~ msgstr "Digitálnà Surround 5.1 (IEC958/AC3)" + +#~ msgid "Analog Surround 7.1" +#~ msgstr "Analogový Surround 7.1" + +#~ msgid "Output %s + Input %s" +#~ msgstr "Výstup %s + vstup %s" + +#~ msgid "Output %s" +#~ msgstr "Výstup %s" -#~ msgid "sink" -#~ msgstr "cÃl" +#~ msgid "Input %s" +#~ msgstr "Vstup %s" -#~ msgid "source" -#~ msgstr "zdroj" +#~ msgid "Stream successfully created\n" +#~ msgstr "Proud úspěšnÄ› vytvoÅ™en\n" + +#~ msgid "Stream errror: %s\n" +#~ msgstr "Chyba proudu: %s\n" + +#~ msgid "Connection established.\n" +#~ msgstr "Spojenà navázáno.\n" #~ msgid "" -#~ "' and PolicyKit refuse to grant us priviliges. Dropping SUID again.\n" -#~ "For enabling real-time scheduling please acquire the appropriate " -#~ "PolicyKit priviliges, or become a member of '" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Show this help\n" +#~ " --version Show version\n" +#~ "\n" +#~ " -v, --verbose Enable verbose operation\n" +#~ "\n" +#~ " -s, --server=SERVER The name of the server to connect " +#~ "to\n" +#~ " -d, --device=DEVICE The name of the sink to connect " +#~ "to\n" +#~ " -n, --client-name=NAME How to call this client on the " +#~ "server\n" +#~ " --stream-name=NAME How to call this stream on the " +#~ "server\n" +#~ " --volume=VOLUME Specify the initial (linear) " +#~ "volume in range 0...65536\n" +#~ " --channel-map=CHANNELMAP Set the channel map to the use\n" #~ msgstr "" -#~ "\" a PolicyKit odmÃtl udÄ›lit oprávnÄ›nÃ. OpÄ›tovné zahazovánà SUID.\n" -#~ "Chcete-li zapnout plánovánà v reálném Äase, obstarejte prosÃm pÅ™ÃsluÅ¡ná " -#~ "oprávnÄ›nà PolicyKit, nebo se staňte Älenem \"" +#~ "%s [pÅ™epÃnaÄe] [SOUBOR]\n" +#~ "\n" +#~ " -h, --help Zobrazà tuto nápovÄ›du\n" +#~ " --version Zobrazà verzi\n" +#~ "\n" +#~ " -v, --verbose Zapne nakládánà s úrovnà " +#~ "podrobnostÃ\n" +#~ "\n" +#~ " -s, --server=SERVER Název pÅ™ipojovaného serveru\n" +#~ " -d, --device=ZAŘÃZENà Název pÅ™ipojovaného cÃle\n" +#~ " -n, --client-name=NÃZEV Způsob volánà tohoto klienta na " +#~ "serveru\n" +#~ " --stream-name=NÃZEV Způsob volánà tohoto proudu na " +#~ "serveru\n" +#~ " --volume=HLASITOST UrÄà poÄáteÄnà (lineárnÃ) " +#~ "hlasitost v rozmezà 0...65536\n" +#~ " --channel-map=MAPAKANÃLÅ® Nastavà mapu kanálů urÄenou k " +#~ "použitÃ\n" #~ msgid "" -#~ "', or increase the RLIMIT_NICE/RLIMIT_RTPRIO resource limits for this " -#~ "user." +#~ "paplay %s\n" +#~ "Compiled with libpulse %s\n" +#~ "Linked with libpulse %s\n" #~ msgstr "" -#~ "\", Äi zvyÅ¡te zdrojové limity RLIMIT_NICE/RLIMIT_RTPRIO tohoto uživatele." +#~ "paplay %s\n" +#~ "PÅ™eloženo s libpulse %s\n" +#~ "Propojeno s libpulse %s\n" + +#~ msgid "Invalid channel map\n" +#~ msgstr "Neplatná mapa kanálů\n" + +#~ msgid "Failed to open file '%s'\n" +#~ msgstr "Selhalo otevÅ™enà souboru \"%s\"\n" + +#~ msgid "Channel map doesn't match file.\n" +#~ msgstr "Mapa kanálů neodpovÃdá souboru.\n" + +#~ msgid "Using sample spec '%s'\n" +#~ msgstr "PoužÃvá se vzorkovacà specifikace \"%s\"\n" @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-21 23:02+0200\n" +"POT-Creation-Date: 2009-06-17 23:42+0200\n" "PO-Revision-Date: 2009-04-18 12:43+0100\n" "Last-Translator: Fabian Affolter <fab@fedoraproject.org>\n" "Language-Team: German <fedora-trans-de@redhat.com>\n" @@ -19,51 +19,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-Language: German\n" -#: ../src/modules/alsa/alsa-util.c:532 -msgid "Analog Mono" -msgstr "Analog Mono" - -#: ../src/modules/alsa/alsa-util.c:540 -msgid "Analog Stereo" -msgstr "Analog Stereo" - -#: ../src/modules/alsa/alsa-util.c:548 -msgid "Digital Stereo (IEC958)" -msgstr "Digital Stereo (IEC958)" - -#: ../src/modules/alsa/alsa-util.c:556 -msgid "Digital Stereo (HDMI)" -msgstr "Digital Stereo (HDMI)" - -#: ../src/modules/alsa/alsa-util.c:565 -msgid "Analog Surround 4.0" -msgstr "Analog Surround 4.0" - -#: ../src/modules/alsa/alsa-util.c:574 -msgid "Digital Surround 4.0 (IEC958/AC3)" -msgstr "Digital Surround 4.0 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:584 -msgid "Analog Surround 4.1" -msgstr "Analog Surround 4.1" - -#: ../src/modules/alsa/alsa-util.c:594 -msgid "Analog Surround 5.0" -msgstr "Analog Surround 5.0" - -#: ../src/modules/alsa/alsa-util.c:604 -msgid "Analog Surround 5.1" -msgstr "Analog Surround 5.1" - -#: ../src/modules/alsa/alsa-util.c:614 -msgid "Digital Surround 5.1 (IEC958/AC3)" -msgstr "Digital Surround 5.1 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:625 -msgid "Analog Surround 7.1" -msgstr "Analog Surround 7.1" - -#: ../src/modules/alsa/alsa-util.c:1646 +#: ../src/modules/alsa/alsa-util.c:1015 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -76,7 +32,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:1687 +#: ../src/modules/alsa/alsa-util.c:1056 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -89,7 +45,7 @@ msgstr "" "Dies ist wahrscheinlich ein Fehler im ALSA-Treiber '%s'. Bitte melden Sie " "diesen Punkt den ALSA-Entwicklern." -#: ../src/modules/alsa/alsa-util.c:1734 +#: ../src/modules/alsa/alsa-util.c:1103 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -102,11 +58,24 @@ msgstr "" "Dies ist wahrscheinlich ein Fehler im ALSA-Treiber '%s'. Bitte melden Sie " "diesen Punkt den ALSA-Entwicklern." -#: ../src/pulsecore/sink.c:2141 +#: ../src/modules/module-ladspa-sink.c:49 +msgid "Virtual LADSPA sink" +msgstr "" + +#: ../src/modules/module-ladspa-sink.c:53 +msgid "" +"sink_name=<name for the sink> sink_properties=<properties for the sink> " +"master=<name of sink to filter> format=<sample format> rate=<sample rate> " +"channels=<number of channels> channel_map=<channel map> plugin=<ladspa " +"plugin name> label=<ladspa plugin label> control=<comma seperated list of " +"input control values>" +msgstr "" + +#: ../src/pulsecore/sink.c:2394 msgid "Internal Audio" msgstr "Internes Audio" -#: ../src/pulsecore/sink.c:2147 +#: ../src/pulsecore/sink.c:2400 msgid "Modem" msgstr "Modem" @@ -176,107 +145,107 @@ msgstr "Keine Authorisierung erhalten: %s" msgid "PolicyKit responded with '%s'" msgstr "PolicyKit antwortete mit '%s'" -#: ../src/daemon/main.c:138 +#: ../src/daemon/main.c:142 #, c-format msgid "Got signal %s." msgstr "Signal %s empfangen." -#: ../src/daemon/main.c:165 +#: ../src/daemon/main.c:169 msgid "Exiting." msgstr "Wird beendet." -#: ../src/daemon/main.c:183 +#: ../src/daemon/main.c:187 #, c-format msgid "Failed to find user '%s'." msgstr "Benutzer '%s' nicht gefunden." -#: ../src/daemon/main.c:188 +#: ../src/daemon/main.c:192 #, c-format msgid "Failed to find group '%s'." msgstr "Gruppe '%s' nicht gefunden." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:196 #, 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:197 +#: ../src/daemon/main.c:201 #, 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:202 +#: ../src/daemon/main.c:206 #, 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:205 ../src/daemon/main.c:210 +#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 #, c-format msgid "Failed to create '%s': %s" msgstr "Konnte '%s' nciht erzeugen: %s" -#: ../src/daemon/main.c:217 +#: ../src/daemon/main.c:221 #, c-format msgid "Failed to change group list: %s" msgstr "Wechseln der Gruppen-Liste fehlgeschlagen: %s" -#: ../src/daemon/main.c:233 +#: ../src/daemon/main.c:237 #, c-format msgid "Failed to change GID: %s" msgstr "Wechseln der GID fehlgeschlagen: %s" -#: ../src/daemon/main.c:249 +#: ../src/daemon/main.c:253 #, c-format msgid "Failed to change UID: %s" msgstr "Wechseln der UID fehlgeschlagen: %s" -#: ../src/daemon/main.c:263 +#: ../src/daemon/main.c:267 msgid "Successfully dropped root privileges." msgstr "Root-Berechtigungen erfolgreich zurückgesetzt." -#: ../src/daemon/main.c:271 +#: ../src/daemon/main.c:275 msgid "System wide mode unsupported on this platform." msgstr "System-Modus auf dieser Plattform nicht unterstützt." -#: ../src/daemon/main.c:289 +#: ../src/daemon/main.c:293 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) fehlgeschlagen: %s" -#: ../src/daemon/main.c:477 +#: ../src/daemon/main.c:481 msgid "Failed to parse command line." msgstr "Parsen der Kommandzeile fehlgeschlagen." -#: ../src/daemon/main.c:501 +#: ../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:508 +#: ../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:516 +#: ../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:519 +#: ../src/daemon/main.c:523 msgid "PolicyKit refuses acquire-high-priority privilege." msgstr "Richtlinien verweigern das Recht acquire-high-priority." -#: ../src/daemon/main.c:524 +#: ../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:527 +#: ../src/daemon/main.c:531 msgid "PolicyKit refuses acquire-real-time privilege." msgstr "Richtlinien verweigern das Recht acquire-real-time." -#: ../src/daemon/main.c:556 +#: ../src/daemon/main.c:560 #, fuzzy, c-format msgid "" "Called SUID root and real-time and/or high-priority scheduling was requested " @@ -292,44 +261,44 @@ msgstr "" "Erlangen Sie die den Richtlinien entsprechenden Rechte, um Echtzeit-" "Scheduling zu aktivieren oder werden Sie Mitglied der Gruppe '" -#: ../src/daemon/main.c:581 +#: ../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:610 +#: ../src/daemon/main.c:614 msgid "Successfully increased RLIMIT_RTPRIO" msgstr "RLIMIT_RTPRIO erfolgreich erhöht" -#: ../src/daemon/main.c:613 +#: ../src/daemon/main.c:617 #, c-format msgid "RLIMIT_RTPRIO failed: %s" msgstr "RLIMIT_RTPRIO fehlgeschlagen: %s" -#: ../src/daemon/main.c:620 +#: ../src/daemon/main.c:624 msgid "Giving up CAP_NICE" msgstr "Verwerfe CAP_NICE" -#: ../src/daemon/main.c:627 +#: ../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:688 +#: ../src/daemon/main.c:692 msgid "Daemon not running" msgstr "Daemon läuft nicht" -#: ../src/daemon/main.c:690 +#: ../src/daemon/main.c:694 #, c-format msgid "Daemon running as PID %u" msgstr "Daemon läuft als PID %u" -#: ../src/daemon/main.c:700 +#: ../src/daemon/main.c:704 #, c-format msgid "Failed to kill daemon: %s" msgstr "Konnte Prozess nicht abbrechen: %s" -#: ../src/daemon/main.c:718 +#: ../src/daemon/main.c:722 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -337,191 +306,201 @@ msgstr "" "Dieses Programm sollte ohne die Option --system nicht als Administrator " "ausgeführt werden." -#: ../src/daemon/main.c:720 +#: ../src/daemon/main.c:724 msgid "Root privileges required." msgstr "Root-Berechtigungen benötigt." -#: ../src/daemon/main.c:725 +#: ../src/daemon/main.c:729 msgid "--start not supported for system instances." msgstr "--start nicht unterstützt für System-Instanzen." -#: ../src/daemon/main.c:730 +#: ../src/daemon/main.c:734 msgid "Running in system mode, but --disallow-exit not set!" msgstr "System-Modus aktiv, jeodch --disallow-exit nicht gesetzt!" -#: ../src/daemon/main.c:733 +#: ../src/daemon/main.c:737 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:736 +#: ../src/daemon/main.c:740 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "System-Modus aktiv, SHM-Modus gezwungenermaßen deaktiviert!" -#: ../src/daemon/main.c:741 +#: ../src/daemon/main.c:745 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "System-Modus aktiv, Exit-Idle-Time gezwungenermaßen deaktiviert!" -#: ../src/daemon/main.c:768 +#: ../src/daemon/main.c:772 msgid "Failed to acquire stdio." msgstr "Reservieren von STDIO fehlgeschlagen." -#: ../src/daemon/main.c:774 +#: ../src/daemon/main.c:778 #, c-format msgid "pipe failed: %s" msgstr "pipe fehlgeschlagen: %s" -#: ../src/daemon/main.c:779 +#: ../src/daemon/main.c:783 #, c-format msgid "fork() failed: %s" msgstr "fork() fehlgeschlagen: %s" -#: ../src/daemon/main.c:793 +#: ../src/daemon/main.c:797 #, c-format msgid "read() failed: %s" msgstr "read() fehlgeschlagen: %s" -#: ../src/daemon/main.c:799 +#: ../src/daemon/main.c:803 msgid "Daemon startup failed." msgstr "Start des Daemons fehlgeschlagen." -#: ../src/daemon/main.c:801 +#: ../src/daemon/main.c:805 msgid "Daemon startup successful." msgstr "Start des Daemons erfolgreich." -#: ../src/daemon/main.c:871 +#: ../src/daemon/main.c:875 #, c-format msgid "This is PulseAudio %s" msgstr "Dies ist PulseAudio %s" -#: ../src/daemon/main.c:872 +#: ../src/daemon/main.c:876 #, c-format msgid "Compilation host: %s" msgstr "Kompilier-Host: %s" -#: ../src/daemon/main.c:873 +#: ../src/daemon/main.c:877 #, c-format msgid "Compilation CFLAGS: %s" msgstr "Kompilier-CFLAGS: %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:880 #, c-format msgid "Running on host: %s" msgstr "Laufe auf Host: %s" -#: ../src/daemon/main.c:879 +#: ../src/daemon/main.c:883 #, c-format msgid "Found %u CPUs." msgstr "%u CPUs gefunden." -#: ../src/daemon/main.c:881 +#: ../src/daemon/main.c:885 #, c-format msgid "Page size is %lu bytes" msgstr "Seitengröße ist %lu Bytes." -#: ../src/daemon/main.c:884 +#: ../src/daemon/main.c:888 msgid "Compiled with Valgrind support: yes" msgstr "Kompiliere mit Valgrind-Unterstützung: ja" -#: ../src/daemon/main.c:886 +#: ../src/daemon/main.c:890 msgid "Compiled with Valgrind support: no" msgstr "Kompiliere mit Valgrind-Unterstützung: nein" -#: ../src/daemon/main.c:889 +#: ../src/daemon/main.c:893 #, c-format msgid "Running in valgrind mode: %s" msgstr "Läuft im Valgrind-Modus: %s" -#: ../src/daemon/main.c:892 +#: ../src/daemon/main.c:896 msgid "Optimized build: yes" msgstr "Optimiertes Build: ja" -#: ../src/daemon/main.c:894 +#: ../src/daemon/main.c:898 msgid "Optimized build: no" msgstr "Optimiertes Build: nein" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:902 #, fuzzy msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG definiert, alle Ansprüche deaktiviert." -#: ../src/daemon/main.c:900 +#: ../src/daemon/main.c:904 #, fuzzy msgid "FASTPATH defined, only fast path asserts disabled." msgstr "FASTPATH definiert, nur fast-path-Ansprüche deaktiviert." -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:906 #, fuzzy msgid "All asserts enabled." msgstr "Alle Ansprüche aktiviert." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:910 msgid "Failed to get machine ID" msgstr "Beziehen der Maschinen-ID fehlgeschlagen" -#: ../src/daemon/main.c:909 +#: ../src/daemon/main.c:913 #, c-format msgid "Machine ID is %s." msgstr "System- ID ist %s." -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:917 #, fuzzy, c-format msgid "Session ID is %s." msgstr "System- ID ist %s." -#: ../src/daemon/main.c:919 +#: ../src/daemon/main.c:923 #, c-format msgid "Using runtime directory %s." msgstr "Nutze Laufzeit-Verzeichnis %s." -#: ../src/daemon/main.c:924 +#: ../src/daemon/main.c:928 #, c-format msgid "Using state directory %s." msgstr "Nutze Zustands-Verzeichnis %s." -#: ../src/daemon/main.c:927 +#: ../src/daemon/main.c:931 #, c-format msgid "Running in system mode: %s" msgstr "Laufe im System-Modus: %s" -#: ../src/daemon/main.c:942 +#: ../src/daemon/main.c:934 +msgid "" +"OK, so you are running PA in system mode. Please note that you most likely " +"shouldn't be doing that.\n" +"If you do it nonetheless then it's your own fault if things don't work as " +"expected.\n" +"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " +"explanation why system mode is usually a bad idea." +msgstr "" + +#: ../src/daemon/main.c:951 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() fehlgeschlagen." -#: ../src/daemon/main.c:954 +#: ../src/daemon/main.c:961 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "Neue hochauslösende Timer verfügbar! Guten Appetit!" -#: ../src/daemon/main.c:956 +#: ../src/daemon/main.c:963 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" msgstr "Der Chefkoch empfiehlt: Linux mit aktivierten hochauslösenden Timern!" -#: ../src/daemon/main.c:970 +#: ../src/daemon/main.c:988 msgid "pa_core_new() failed." msgstr "pa_core_new() fehlgeschlagen." -#: ../src/daemon/main.c:1032 +#: ../src/daemon/main.c:1050 msgid "Failed to initialize daemon." msgstr "Konnte Daemon nicht initialisieren." -#: ../src/daemon/main.c:1037 +#: ../src/daemon/main.c:1055 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "Daemon verweigert Ausführung, da keine Module geladen." -#: ../src/daemon/main.c:1054 +#: ../src/daemon/main.c:1072 msgid "Daemon startup complete." msgstr "Start des Daemons abgeschlossen." -#: ../src/daemon/main.c:1060 +#: ../src/daemon/main.c:1078 msgid "Daemon shutdown initiated." msgstr "Herunterfahren des Daemon gestartet." -#: ../src/daemon/main.c:1082 +#: ../src/daemon/main.c:1100 msgid "Daemon terminated." msgstr "Daemon beendet." -#: ../src/daemon/cmdline.c:121 +#: ../src/daemon/cmdline.c:115 #, fuzzy, c-format msgid "" "%s [options]\n" @@ -660,15 +639,15 @@ msgstr "" "\n" " -n Standardskript nicht laden\n" -#: ../src/daemon/cmdline.c:252 +#: ../src/daemon/cmdline.c:247 msgid "--daemonize expects boolean argument" msgstr "Option --daemonize erfordert bool'schen Wert" -#: ../src/daemon/cmdline.c:259 +#: ../src/daemon/cmdline.c:254 msgid "--fail expects boolean argument" msgstr "Option --fail erfordert bool'schen Wert" -#: ../src/daemon/cmdline.c:269 +#: ../src/daemon/cmdline.c:264 msgid "" "--log-level expects log level argument (either numeric in range 0..4 or one " "of debug, info, notice, warn, error)." @@ -676,53 +655,53 @@ msgstr "" "--log-level erfordert Wert für Grad der Protokollierung (entweder numerisch " "im Bereich 0..4 or einen dieser: debug, info, notice, warn, error)." -#: ../src/daemon/cmdline.c:281 +#: ../src/daemon/cmdline.c:276 msgid "--high-priority expects boolean argument" msgstr "Option --high-priority erfordert bool'schen Wert" -#: ../src/daemon/cmdline.c:288 +#: ../src/daemon/cmdline.c:283 msgid "--realtime expects boolean argument" msgstr "Option --realtime erfordert bool'schen Wert" -#: ../src/daemon/cmdline.c:295 +#: ../src/daemon/cmdline.c:290 msgid "--disallow-module-loading expects boolean argument" msgstr "Option --disallow-module-loading erfordert bool'schen Wert" -#: ../src/daemon/cmdline.c:302 +#: ../src/daemon/cmdline.c:297 msgid "--disallow-exit expects boolean argument" msgstr "--disallow-exit erfordert boolsches Argument" -#: ../src/daemon/cmdline.c:309 +#: ../src/daemon/cmdline.c:304 msgid "--use-pid-file expects boolean argument" msgstr "Option --use-pid-file erfordert bool'schen Wert" -#: ../src/daemon/cmdline.c:326 +#: ../src/daemon/cmdline.c:321 msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgstr "" "Ungültiges Log-Ziel: Benutzen Sie entweder 'syslog', 'stderr' oder 'auto'." -#: ../src/daemon/cmdline.c:333 +#: ../src/daemon/cmdline.c:328 msgid "--log-time expects boolean argument" msgstr "--realtime erfordert boolsches Argument" -#: ../src/daemon/cmdline.c:340 +#: ../src/daemon/cmdline.c:335 msgid "--log-meta expects boolean argument" msgstr "--log-meta erfordert boolschen Wert" -#: ../src/daemon/cmdline.c:359 +#: ../src/daemon/cmdline.c:354 #, c-format msgid "Invalid resample method '%s'." msgstr "Ungültige Resample-Methode '%s'." -#: ../src/daemon/cmdline.c:366 +#: ../src/daemon/cmdline.c:361 msgid "--system expects boolean argument" msgstr "--System erwartet Boolean-Argument" -#: ../src/daemon/cmdline.c:373 +#: ../src/daemon/cmdline.c:368 msgid "--no-cpu-limit expects boolean argument" msgstr "Option --no-cpu-limit erfordert bool'schen Wert" -#: ../src/daemon/cmdline.c:380 +#: ../src/daemon/cmdline.c:375 msgid "--disable-shm expects boolean argument" msgstr "Option --disable-shm erfordert bool'schen Wert" @@ -761,77 +740,82 @@ msgstr "Verwendung: %s\n" msgid "Load Once: %s\n" msgstr "Lade einmalig: %s\n" -#: ../src/daemon/dumpmodules.c:77 +#: ../src/daemon/dumpmodules.c:75 +#, c-format +msgid "DEPRECATION WARNING: %s\n" +msgstr "" + +#: ../src/daemon/dumpmodules.c:79 #, c-format msgid "Path: %s\n" msgstr "Pfad: %s\n" -#: ../src/daemon/daemon-conf.c:215 +#: ../src/daemon/daemon-conf.c:216 #, c-format msgid "[%s:%u] Invalid log target '%s'." msgstr "[%s:%u] Ungültiges Log-Ziel '%s'." -#: ../src/daemon/daemon-conf.c:231 +#: ../src/daemon/daemon-conf.c:232 #, c-format msgid "[%s:%u] Invalid log level '%s'." msgstr "[%s:%u] Ungültige Log-Stufe '%s'." -#: ../src/daemon/daemon-conf.c:247 +#: ../src/daemon/daemon-conf.c:248 #, c-format msgid "[%s:%u] Invalid resample method '%s'." msgstr "[%s:%u] Ungültige Resample-Methode '%s'." -#: ../src/daemon/daemon-conf.c:270 +#: ../src/daemon/daemon-conf.c:271 #, c-format msgid "[%s:%u] Invalid rlimit '%s'." msgstr "[%s:%u] Ungültiges rlimit '%s'." -#: ../src/daemon/daemon-conf.c:277 +#: ../src/daemon/daemon-conf.c:278 #, c-format msgid "[%s:%u] rlimit not supported on this platform." msgstr "[%s:%u] rlimit auf dieser Plattform nicht unterstützt." -#: ../src/daemon/daemon-conf.c:293 +#: ../src/daemon/daemon-conf.c:294 #, c-format msgid "[%s:%u] Invalid sample format '%s'." msgstr "[%s:%u] Ungültiges Sample-Format '%s'." -#: ../src/daemon/daemon-conf.c:311 +#: ../src/daemon/daemon-conf.c:312 #, c-format msgid "[%s:%u] Invalid sample rate '%s'." msgstr "[%s:%u] Ungültige Sample-Rate '%s'." -#: ../src/daemon/daemon-conf.c:335 +#: ../src/daemon/daemon-conf.c:336 #, c-format msgid "[%s:%u] Invalid sample channels '%s'." msgstr "[%s:%u] Ungültige Sample-Kanäle '%s'." -#: ../src/daemon/daemon-conf.c:353 +#: ../src/daemon/daemon-conf.c:354 #, c-format msgid "[%s:%u] Invalid channel map '%s'." msgstr "[%s:%u] Ungültige Kanal-Zuordnung '%s'." -#: ../src/daemon/daemon-conf.c:371 +#: ../src/daemon/daemon-conf.c:372 #, c-format msgid "[%s:%u] Invalid number of fragments '%s'." msgstr "[%s:%u] Ungültige Anzahl von Fragmenten '%s'." -#: ../src/daemon/daemon-conf.c:389 +#: ../src/daemon/daemon-conf.c:390 #, c-format msgid "[%s:%u] Invalid fragment size '%s'." msgstr "[%s:%u] Ungültige Fragmentgröße '%s'." -#: ../src/daemon/daemon-conf.c:407 +#: ../src/daemon/daemon-conf.c:408 #, c-format msgid "[%s:%u] Invalid nice level '%s'." msgstr "[%s:%u] Ungültige Nice-Stufe '%s'." -#: ../src/daemon/daemon-conf.c:522 +#: ../src/daemon/daemon-conf.c:524 #, c-format msgid "Failed to open configuration file: %s" msgstr "Öffnen der Konfigurationsdatei fehlgeschlagen : %s" -#: ../src/daemon/daemon-conf.c:538 +#: ../src/daemon/daemon-conf.c:540 #, fuzzy msgid "" "The specified default channel map has a different number of channels than " @@ -886,237 +870,237 @@ msgstr "" "System-Richtlinien verhindert PulseAudio beim Erlangen der Echtzeit-" "Terminierung.." -#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804 +#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Mono" -#: ../src/pulse/channelmap.c:105 +#: ../src/pulse/channelmap.c:107 msgid "Front Center" msgstr "Vorne Mitte" -#: ../src/pulse/channelmap.c:106 +#: ../src/pulse/channelmap.c:108 msgid "Front Left" msgstr "Vorne Links" -#: ../src/pulse/channelmap.c:107 +#: ../src/pulse/channelmap.c:109 msgid "Front Right" msgstr "Vorne Rechts" -#: ../src/pulse/channelmap.c:109 +#: ../src/pulse/channelmap.c:111 msgid "Rear Center" msgstr "Hinten Mitte" -#: ../src/pulse/channelmap.c:110 +#: ../src/pulse/channelmap.c:112 msgid "Rear Left" msgstr "Hinten Links" -#: ../src/pulse/channelmap.c:111 +#: ../src/pulse/channelmap.c:113 msgid "Rear Right" msgstr "Hinten Rechts" -#: ../src/pulse/channelmap.c:113 +#: ../src/pulse/channelmap.c:115 msgid "Low Frequency Emmiter" msgstr "Niedrigfrequenzemitter" -#: ../src/pulse/channelmap.c:115 +#: ../src/pulse/channelmap.c:117 msgid "Front Left-of-center" msgstr "Vorne Links der Mitte" -#: ../src/pulse/channelmap.c:116 +#: ../src/pulse/channelmap.c:118 msgid "Front Right-of-center" msgstr "Vorne Rechts der Mitte" -#: ../src/pulse/channelmap.c:118 +#: ../src/pulse/channelmap.c:120 msgid "Side Left" msgstr "Seite Links" -#: ../src/pulse/channelmap.c:119 +#: ../src/pulse/channelmap.c:121 msgid "Side Right" msgstr "Seite Rechts" -#: ../src/pulse/channelmap.c:121 +#: ../src/pulse/channelmap.c:123 msgid "Auxiliary 0" msgstr "Zusatz 0" -#: ../src/pulse/channelmap.c:122 +#: ../src/pulse/channelmap.c:124 msgid "Auxiliary 1" msgstr "Zusatz 1" -#: ../src/pulse/channelmap.c:123 +#: ../src/pulse/channelmap.c:125 msgid "Auxiliary 2" msgstr "Zusatz 2" -#: ../src/pulse/channelmap.c:124 +#: ../src/pulse/channelmap.c:126 msgid "Auxiliary 3" msgstr "Zusatz 3" -#: ../src/pulse/channelmap.c:125 +#: ../src/pulse/channelmap.c:127 msgid "Auxiliary 4" msgstr "Zusatz 4" -#: ../src/pulse/channelmap.c:126 +#: ../src/pulse/channelmap.c:128 msgid "Auxiliary 5" msgstr "Zusatz 5" -#: ../src/pulse/channelmap.c:127 +#: ../src/pulse/channelmap.c:129 msgid "Auxiliary 6" msgstr "Zusatz 6" -#: ../src/pulse/channelmap.c:128 +#: ../src/pulse/channelmap.c:130 msgid "Auxiliary 7" msgstr "Zusatz 7" -#: ../src/pulse/channelmap.c:129 +#: ../src/pulse/channelmap.c:131 msgid "Auxiliary 8" msgstr "Zusatz 8" -#: ../src/pulse/channelmap.c:130 +#: ../src/pulse/channelmap.c:132 msgid "Auxiliary 9" msgstr "Zusatz 9" -#: ../src/pulse/channelmap.c:131 +#: ../src/pulse/channelmap.c:133 msgid "Auxiliary 10" msgstr "Zusatz 10" -#: ../src/pulse/channelmap.c:132 +#: ../src/pulse/channelmap.c:134 msgid "Auxiliary 11" msgstr "Zusatz 11" -#: ../src/pulse/channelmap.c:133 +#: ../src/pulse/channelmap.c:135 msgid "Auxiliary 12" msgstr "Zusatz 12" -#: ../src/pulse/channelmap.c:134 +#: ../src/pulse/channelmap.c:136 msgid "Auxiliary 13" msgstr "Zusatz 13" -#: ../src/pulse/channelmap.c:135 +#: ../src/pulse/channelmap.c:137 msgid "Auxiliary 14" msgstr "Zusatz 14" -#: ../src/pulse/channelmap.c:136 +#: ../src/pulse/channelmap.c:138 msgid "Auxiliary 15" msgstr "Zusatz 15" -#: ../src/pulse/channelmap.c:137 +#: ../src/pulse/channelmap.c:139 msgid "Auxiliary 16" msgstr "Zusatz 16" -#: ../src/pulse/channelmap.c:138 +#: ../src/pulse/channelmap.c:140 msgid "Auxiliary 17" msgstr "Zusatz 17" -#: ../src/pulse/channelmap.c:139 +#: ../src/pulse/channelmap.c:141 msgid "Auxiliary 18" msgstr "Zusatz 18" -#: ../src/pulse/channelmap.c:140 +#: ../src/pulse/channelmap.c:142 msgid "Auxiliary 19" msgstr "Zusatz 19" -#: ../src/pulse/channelmap.c:141 +#: ../src/pulse/channelmap.c:143 msgid "Auxiliary 20" msgstr "Zusatz 20" -#: ../src/pulse/channelmap.c:142 +#: ../src/pulse/channelmap.c:144 msgid "Auxiliary 21" msgstr "Zusatz 21" -#: ../src/pulse/channelmap.c:143 +#: ../src/pulse/channelmap.c:145 msgid "Auxiliary 22" msgstr "Zusatz 22" -#: ../src/pulse/channelmap.c:144 +#: ../src/pulse/channelmap.c:146 msgid "Auxiliary 23" msgstr "Zusatz 23" -#: ../src/pulse/channelmap.c:145 +#: ../src/pulse/channelmap.c:147 msgid "Auxiliary 24" msgstr "Zusatz 24" -#: ../src/pulse/channelmap.c:146 +#: ../src/pulse/channelmap.c:148 msgid "Auxiliary 25" msgstr "Zusatz 25" -#: ../src/pulse/channelmap.c:147 +#: ../src/pulse/channelmap.c:149 msgid "Auxiliary 26" msgstr "Zusatz 26" -#: ../src/pulse/channelmap.c:148 +#: ../src/pulse/channelmap.c:150 msgid "Auxiliary 27" msgstr "Zusatz 26" -#: ../src/pulse/channelmap.c:149 +#: ../src/pulse/channelmap.c:151 msgid "Auxiliary 28" msgstr "Zusatz 28" -#: ../src/pulse/channelmap.c:150 +#: ../src/pulse/channelmap.c:152 msgid "Auxiliary 29" msgstr "Zusatz 29" -#: ../src/pulse/channelmap.c:151 +#: ../src/pulse/channelmap.c:153 msgid "Auxiliary 30" msgstr "Zusatz 30" -#: ../src/pulse/channelmap.c:152 +#: ../src/pulse/channelmap.c:154 msgid "Auxiliary 31" msgstr "Zusatz 31" -#: ../src/pulse/channelmap.c:154 +#: ../src/pulse/channelmap.c:156 msgid "Top Center" msgstr "Oben Mitte" -#: ../src/pulse/channelmap.c:156 +#: ../src/pulse/channelmap.c:158 msgid "Top Front Center" msgstr "Oben Vorne Mitte" -#: ../src/pulse/channelmap.c:157 +#: ../src/pulse/channelmap.c:159 msgid "Top Front Left" msgstr "Oben Vorne Links" -#: ../src/pulse/channelmap.c:158 +#: ../src/pulse/channelmap.c:160 msgid "Top Front Right" msgstr "Oben Vorne Rechts" -#: ../src/pulse/channelmap.c:160 +#: ../src/pulse/channelmap.c:162 msgid "Top Rear Center" msgstr "Oben Hinten Mitte" -#: ../src/pulse/channelmap.c:161 +#: ../src/pulse/channelmap.c:163 msgid "Top Rear Left" msgstr "Oben Hinten Links" -#: ../src/pulse/channelmap.c:162 +#: ../src/pulse/channelmap.c:164 msgid "Top Rear Right" msgstr "Oben Hinten Rechts" -#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167 -#: ../src/pulse/volume.c:170 ../src/pulse/volume.c:196 -#: ../src/pulse/volume.c:216 ../src/pulse/volume.c:246 +#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167 +#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265 +#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315 msgid "(invalid)" msgstr "(ungültig)" -#: ../src/pulse/channelmap.c:808 +#: ../src/pulse/channelmap.c:751 msgid "Stereo" msgstr "Stereo" -#: ../src/pulse/channelmap.c:813 +#: ../src/pulse/channelmap.c:756 msgid "Surround 4.0" msgstr "Surround 4.0" -#: ../src/pulse/channelmap.c:819 +#: ../src/pulse/channelmap.c:762 msgid "Surround 4.1" msgstr "Surround 4.1" -#: ../src/pulse/channelmap.c:825 +#: ../src/pulse/channelmap.c:768 msgid "Surround 5.0" msgstr "Surround 5.0" -#: ../src/pulse/channelmap.c:831 +#: ../src/pulse/channelmap.c:774 msgid "Surround 5.1" msgstr "Surround 5.1" -#: ../src/pulse/channelmap.c:838 +#: ../src/pulse/channelmap.c:781 msgid "Surround 7.1" msgstr "Surround 7.1" @@ -1277,173 +1261,168 @@ msgstr "waitpid(): %s" msgid "Received message for unknown extension '%s'" msgstr "Nachricht für unbekannte Erweiterung '%s' erhalten" -#: ../src/utils/pacat.c:94 +#: ../src/utils/pacat.c:107 +#, c-format +msgid "Failed to drain stream: %s\n" +msgstr "Entleeren des Streams fehlgeschlagen: %s\n" + +#: ../src/utils/pacat.c:112 +msgid "Playback stream drained.\n" +msgstr "Wiedergabe-Stream entleert.\n" + +#: ../src/utils/pacat.c:122 +msgid "Draining connection to server.\n" +msgstr "Draining connection to server.\n" + +#: ../src/utils/pacat.c:135 +#, c-format +msgid "pa_stream_drain(): %s\n" +msgstr "pa_stream_drain(): %s\n" + +#: ../src/utils/pacat.c:158 #, c-format msgid "pa_stream_write() failed: %s\n" msgstr "pa_stream_write() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:133 +#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 #, c-format msgid "pa_stream_peek() failed: %s\n" msgstr "pa_stream_peek() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:169 -#, c-format +#: ../src/utils/pacat.c:302 msgid "Stream successfully created.\n" msgstr "Stream wurde erfolgreich erstellt.\n" -#: ../src/utils/pacat.c:172 +#: ../src/utils/pacat.c:305 #, c-format msgid "pa_stream_get_buffer_attr() failed: %s\n" msgstr "pa_stream_get_buffer_attr() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:176 +#: ../src/utils/pacat.c:309 #, c-format msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgstr "Pufferdaten: maxlenght=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:179 +#: ../src/utils/pacat.c:312 #, c-format msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgstr "Pufferdaten: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:183 +#: ../src/utils/pacat.c:316 #, c-format msgid "Using sample spec '%s', channel map '%s'.\n" msgstr "Benutze Sample-Angabe '%s', Kanalzuordnung '%s'.\n" -#: ../src/utils/pacat.c:187 +#: ../src/utils/pacat.c:320 #, c-format msgid "Connected to device %s (%u, %ssuspended).\n" msgstr "Verbunden mit Gerät %s (%u, %sausgesetzt).\n" -#: ../src/utils/pacat.c:197 +#: ../src/utils/pacat.c:330 #, c-format msgid "Stream error: %s\n" msgstr "Stream-Fehler: %s\n" -#: ../src/utils/pacat.c:207 +#: ../src/utils/pacat.c:340 #, c-format msgid "Stream device suspended.%s \n" msgstr "Stream-Gerät ausgesetzt.%s\n" -#: ../src/utils/pacat.c:209 +#: ../src/utils/pacat.c:342 #, c-format msgid "Stream device resumed.%s \n" msgstr "Stream-Gerät reaktiviert.%s\n" -#: ../src/utils/pacat.c:217 +#: ../src/utils/pacat.c:350 #, c-format msgid "Stream underrun.%s \n" msgstr "Stream unterlaufen.%s \n" -#: ../src/utils/pacat.c:224 +#: ../src/utils/pacat.c:357 #, c-format msgid "Stream overrun.%s \n" msgstr "Stream überlief.%s \n" -#: ../src/utils/pacat.c:231 +#: ../src/utils/pacat.c:364 #, c-format msgid "Stream started.%s \n" msgstr "Stream gestartet: %s\n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 #, c-format msgid "Stream moved to device %s (%u, %ssuspended).%s \n" msgstr "Stream an Gerät %s übergeben (%u, %sausgesetzt).%s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 msgid "not " msgstr "nicht " -#: ../src/utils/pacat.c:245 +#: ../src/utils/pacat.c:378 #, c-format msgid "Stream buffer attributes changed.%s \n" msgstr "Stream-Zwischenspeicher-Attribute geändert.%s \n" -#: ../src/utils/pacat.c:278 +#: ../src/utils/pacat.c:411 #, c-format msgid "Connection established.%s \n" msgstr "Verbindung hergestellt.%s \n" -#: ../src/utils/pacat.c:281 +#: ../src/utils/pacat.c:414 #, c-format msgid "pa_stream_new() failed: %s\n" msgstr "pa_stream_new() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:442 #, c-format msgid "pa_stream_connect_playback() failed: %s\n" msgstr "pa_stream_connect_playback() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:315 +#: ../src/utils/pacat.c:448 #, c-format msgid "pa_stream_connect_record() failed: %s\n" msgstr "pa_stream_connect_record() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:329 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:762 ../src/utils/paplay.c:183 +#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 #, c-format msgid "Connection failure: %s\n" msgstr "Verbindungsfehler: %s\n" -#: ../src/utils/pacat.c:349 ../src/utils/paplay.c:75 -#, c-format -msgid "Failed to drain stream: %s\n" -msgstr "Entleeren des Streams fehlgeschlagen: %s\n" - -#: ../src/utils/pacat.c:354 ../src/utils/paplay.c:80 -#, c-format -msgid "Playback stream drained.\n" -msgstr "Wiedergabe-Stream entleert.\n" - -#: ../src/utils/pacat.c:364 ../src/utils/paplay.c:92 -#, c-format -msgid "Draining connection to server.\n" -msgstr "Draining connection to server.\n" - -#: ../src/utils/pacat.c:390 -#, c-format +#: ../src/utils/pacat.c:495 msgid "Got EOF.\n" msgstr "EOF empfangen.\n" -#: ../src/utils/pacat.c:396 -#, c-format -msgid "pa_stream_drain(): %s\n" -msgstr "pa_stream_drain(): %s\n" - -#: ../src/utils/pacat.c:406 +#: ../src/utils/pacat.c:500 #, c-format msgid "read() failed: %s\n" msgstr "read() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:438 +#: ../src/utils/pacat.c:532 #, c-format msgid "write() failed: %s\n" msgstr "write() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:459 -#, c-format +#: ../src/utils/pacat.c:553 msgid "Got signal, exiting.\n" msgstr "Signal empfangen, beende.\n" -#: ../src/utils/pacat.c:473 +#: ../src/utils/pacat.c:567 #, c-format msgid "Failed to get latency: %s\n" msgstr "Erhalten der Latenz fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:478 +#: ../src/utils/pacat.c:572 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "Zeit: %0.3f sec; Latenz: %0.0f usec. \r" -#: ../src/utils/pacat.c:498 +#: ../src/utils/pacat.c:592 #, c-format msgid "pa_stream_update_timing_info() failed: %s\n" msgstr "pa_stream_update_timing_info() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:511 -#, c-format +#: ../src/utils/pacat.c:605 +#, fuzzy, c-format msgid "" "%s [options]\n" "\n" @@ -1469,8 +1448,10 @@ msgid "" "44100)\n" " --format=SAMPLEFORMAT The sample type, one of s16le, " "s16be, u8, float32le,\n" -" float32be, ulaw, alaw, s32le, s32be " -"(defaults to s16ne)\n" +" float32be, ulaw, alaw, s32le, s32be, " +"s24le, s24be,\n" +" s24-32le, s24-32be (defaults to " +"s16ne)\n" " --channels=CHANNELS The number of channels, 1 for mono, " "2 for stereo\n" " (defaults to 2)\n" @@ -1493,6 +1474,11 @@ msgid "" "bytes.\n" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" +" --property=PROPERTY=VALUE Set the specified property to the " +"specified value.\n" +" --raw Record/play raw PCM data.\n" +" --file-format=FFORMAT Record/play formatted PCM data.\n" +" --list-file-formats List available file formats.\n" msgstr "" "%s [options]\n" "\n" @@ -1534,7 +1520,7 @@ msgstr "" " --process-time=BYTES Diese Prozesszeit pro Anfrage " "verwenden.\n" -#: ../src/utils/pacat.c:612 +#: ../src/utils/pacat.c:727 #, c-format msgid "" "pacat %s\n" @@ -1545,88 +1531,133 @@ msgstr "" "Kompiliert mit libpulse %s\n" "Gelinkt mit libpulse %s\n" -#: ../src/utils/pacat.c:669 +#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "Ungültige Kanal-Zuweisung '%s'\n" + +#: ../src/utils/pacat.c:776 +#, fuzzy, c-format +msgid "Invalid stream name '%s'\n" +msgstr "Ungültige Resample-Methode '%s'." + +#: ../src/utils/pacat.c:813 #, c-format msgid "Invalid channel map '%s'\n" msgstr "Ungültige Kanal-Zuweisung '%s'\n" -#: ../src/utils/pacat.c:698 +#: ../src/utils/pacat.c:842 #, c-format msgid "Invalid latency specification '%s'\n" msgstr "Ungültige Latenz-Angaben '%s'\n" -#: ../src/utils/pacat.c:705 +#: ../src/utils/pacat.c:849 #, c-format msgid "Invalid process time specification '%s'\n" msgstr "Ungültige Prozesszeit-Angaben '%s'\n" -#: ../src/utils/pacat.c:716 +#: ../src/utils/pacat.c:861 +#, fuzzy, c-format +msgid "Invalid property '%s'\n" +msgstr "Ungültige Resample-Methode '%s'." + +#: ../src/utils/pacat.c:878 #, c-format +msgid "Unknown file format %s." +msgstr "" + +#: ../src/utils/pacat.c:897 msgid "Invalid sample specification\n" msgstr "Ungültige Sample-Angaben\n" -#: ../src/utils/pacat.c:721 +#: ../src/utils/pacat.c:907 #, c-format +msgid "open(): %s\n" +msgstr "open(): %s\n" + +#: ../src/utils/pacat.c:912 +#, c-format +msgid "dup2(): %s\n" +msgstr "dup2(): %s\n" + +#: ../src/utils/pacat.c:919 +msgid "Too many arguments.\n" +msgstr "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" + +#: ../src/utils/pacat.c:950 +#, fuzzy +msgid "Failed to open audio file.\n" +msgstr "Öffnen der Audio-Datei fehlgeschlagen.\n" + +#: ../src/utils/pacat.c:956 +msgid "" +"Warning: specified sample specification will be overwritten with " +"specification from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "Beziehen der Sample-Informationen fehlgeschlagen: %s\n" + +#: ../src/utils/pacat.c:968 +msgid "Warning: Failed to determine channel map from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:979 msgid "Channel map doesn't match sample specification\n" msgstr "Kanalzuordnung entspricht nicht Einstellungen des Samples\n" -#: ../src/utils/pacat.c:728 -#, c-format -msgid "Opening a %s stream with sample specification '%s'.\n" +#: ../src/utils/pacat.c:990 +msgid "Warning: failed to write channel map to file.\n" +msgstr "" + +#: ../src/utils/pacat.c:1005 +#, fuzzy, c-format +msgid "" +"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" msgstr "Öffne eine %s-Stream mit Sample-Angabe '%s'.\n" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "recording" msgstr "aufnehmen" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "playback" msgstr "abspielen" -#: ../src/utils/pacat.c:736 -#, c-format -msgid "open(): %s\n" -msgstr "open(): %s\n" - -#: ../src/utils/pacat.c:741 -#, c-format -msgid "dup2(): %s\n" -msgstr "dup2(): %s\n" - -#: ../src/utils/pacat.c:751 -#, c-format -msgid "Too many arguments.\n" -msgstr "Zu viele Argumente.\n" - -#: ../src/utils/pacat.c:764 ../src/utils/pasuspender.c:280 -#: ../src/utils/pactl.c:1017 ../src/utils/paplay.c:381 +#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 +#: ../src/utils/pactl.c:1104 #, c-format msgid "pa_mainloop_new() failed.\n" msgstr "pa_mainloop_new() fehlgeschlagen.\n" -#: ../src/utils/pacat.c:785 -#, c-format +#: ../src/utils/pacat.c:1051 msgid "io_new() failed.\n" msgstr "io_new() fehlgeschlagen.\n" -#: ../src/utils/pacat.c:791 ../src/utils/pasuspender.c:293 -#: ../src/utils/pactl.c:1031 ../src/utils/paplay.c:396 +#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 +#: ../src/utils/pactl.c:1116 #, c-format msgid "pa_context_new() failed.\n" msgstr "pa_context_new() fehlgeschlagen.\n" -#: ../src/utils/pacat.c:799 +#: ../src/utils/pacat.c:1066 #, fuzzy, c-format msgid "pa_context_connect() failed: %s\n" msgstr "pa_context_new() fehlgeschlagen: %s" -#: ../src/utils/pacat.c:810 -#, c-format +#: ../src/utils/pacat.c:1077 msgid "time_new() failed.\n" msgstr "time_new() fehlgeschlagen.\n" -#: ../src/utils/pacat.c:817 ../src/utils/pasuspender.c:301 -#: ../src/utils/pactl.c:1042 ../src/utils/paplay.c:410 +#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 +#: ../src/utils/pactl.c:1127 #, c-format msgid "pa_mainloop_run() failed.\n" msgstr "pa_mainloop_run() fehlgeschlagen.\n" @@ -1656,8 +1687,7 @@ msgstr "Resume fehlgeschlagen: %s\n" msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "WARNUNG: Sound-Server läuft nicht lokal, nicht ausgesetzt.\n" -#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:768 -#: ../src/utils/paplay.c:191 +#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" msgstr "SIGINT empfangen, beende.\n" @@ -1685,7 +1715,7 @@ msgstr "" " -s, --server=SERVER Name des Zielservers\n" "\n" -#: ../src/utils/pasuspender.c:251 +#: ../src/utils/pasuspender.c:248 #, c-format msgid "" "pasuspender %s\n" @@ -1696,32 +1726,32 @@ msgstr "" "kompiliert mit libpulse %s\n" "Gelinkt mit libpulse %s\n" -#: ../src/utils/pactl.c:108 +#: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" msgstr "Beziehen der Statistik fehlgeschlagen: %s\n" -#: ../src/utils/pactl.c:114 +#: ../src/utils/pactl.c:134 #, c-format msgid "Currently in use: %u blocks containing %s bytes total.\n" msgstr "Momentane Nutzung: %u Blöcke mit insgesamt %s Bytes.\n" -#: ../src/utils/pactl.c:117 +#: ../src/utils/pactl.c:137 #, c-format msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n" msgstr "Während gesamter Laufzeit: %u Blöcke mit insgesamt %s Bytes.\n" -#: ../src/utils/pactl.c:120 +#: ../src/utils/pactl.c:140 #, c-format msgid "Sample cache size: %s\n" msgstr "Sample-Pufferspeichergrösse: %s\n" -#: ../src/utils/pactl.c:129 +#: ../src/utils/pactl.c:149 #, c-format msgid "Failed to get server information: %s\n" msgstr "Beziehen der Server-Information fehlgeschlagen: %s\n" -#: ../src/utils/pactl.c:137 +#: ../src/utils/pactl.c:157 #, c-format msgid "" "User name: %s\n" @@ -1744,12 +1774,12 @@ msgstr "" "-Standard-Quelle: %s\n" "Cookie: %08x\n" -#: ../src/utils/pactl.c:178 +#: ../src/utils/pactl.c:198 #, c-format msgid "Failed to get sink information: %s\n" msgstr "Erhalten der Sink-Informationen fehlgeschlagen: %s\n" -#: ../src/utils/pactl.c:194 +#: ../src/utils/pactl.c:214 #, c-format msgid "" "Sink #%u\n" @@ -1788,12 +1818,22 @@ msgstr "" "\tEigenschaften:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:258 +#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 +#, fuzzy, c-format +msgid "\tPorts:\n" +msgstr "\tProfile:\n" + +#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 +#, fuzzy, c-format +msgid "\tActive Port: %s\n" +msgstr "\tAktive Profile: %s\n" + +#: ../src/utils/pactl.c:290 #, c-format msgid "Failed to get source information: %s\n" msgstr "Beziehen der Quellen-Informationen fehlgeschlagen: %s\n" -#: ../src/utils/pactl.c:274 +#: ../src/utils/pactl.c:306 #, c-format msgid "" "Source #%u\n" @@ -1832,20 +1872,20 @@ msgstr "" "\tEigenschaften:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:306 ../src/utils/pactl.c:350 ../src/utils/pactl.c:385 -#: ../src/utils/pactl.c:422 ../src/utils/pactl.c:481 ../src/utils/pactl.c:482 -#: ../src/utils/pactl.c:492 ../src/utils/pactl.c:536 ../src/utils/pactl.c:537 -#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:586 ../src/utils/pactl.c:587 -#: ../src/utils/pactl.c:594 +#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429 +#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526 +#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581 +#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631 +#: ../src/utils/pactl.c:638 msgid "n/a" msgstr "k. A." -#: ../src/utils/pactl.c:324 +#: ../src/utils/pactl.c:368 #, c-format msgid "Failed to get module information: %s\n" msgstr "Beziehen der Modul-Information fehlgeschlagen: %s\n" -#: ../src/utils/pactl.c:342 +#: ../src/utils/pactl.c:386 #, c-format msgid "" "Module #%u\n" @@ -1862,12 +1902,12 @@ msgstr "" "\tEigenschaften:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:361 +#: ../src/utils/pactl.c:405 #, c-format msgid "Failed to get client information: %s\n" msgstr "Beziehen der Client-Information fehlgeschlagen: %s\n" -#: ../src/utils/pactl.c:379 +#: ../src/utils/pactl.c:423 #, c-format msgid "" "Client #%u\n" @@ -1882,12 +1922,12 @@ msgstr "" "\tEigenschaften:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:396 +#: ../src/utils/pactl.c:440 #, c-format msgid "Failed to get card information: %s\n" msgstr "Beziehen der Karten-Information fehlgeschlagen: %s\n" -#: ../src/utils/pactl.c:414 +#: ../src/utils/pactl.c:458 #, c-format msgid "" "Card #%u\n" @@ -1904,22 +1944,22 @@ msgstr "" "\tEigenschaften:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:428 +#: ../src/utils/pactl.c:472 #, c-format msgid "\tProfiles:\n" msgstr "\tProfile:\n" -#: ../src/utils/pactl.c:434 +#: ../src/utils/pactl.c:478 #, c-format msgid "\tActive Profile: %s\n" msgstr "\tAktive Profile: %s\n" -#: ../src/utils/pactl.c:445 +#: ../src/utils/pactl.c:489 #, c-format msgid "Failed to get sink input information: %s\n" msgstr "Konnte Sink-Eingabe-Informationen nicht holen: %s\n" -#: ../src/utils/pactl.c:464 +#: ../src/utils/pactl.c:508 #, c-format msgid "" "Sink Input #%u\n" @@ -1956,12 +1996,12 @@ msgstr "" "\tEigenschaften:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:503 +#: ../src/utils/pactl.c:547 #, c-format msgid "Failed to get source output information: %s\n" msgstr "Konnte Informationen über Quell-Ausgabe nicht holen: %s\n" -#: ../src/utils/pactl.c:523 +#: ../src/utils/pactl.c:567 #, c-format msgid "" "Source Output #%u\n" @@ -1990,12 +2030,12 @@ msgstr "" "\tEigenschaften:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:554 +#: ../src/utils/pactl.c:598 #, c-format msgid "Failed to get sample information: %s\n" msgstr "Beziehen der Sample-Informationen fehlgeschlagen: %s\n" -#: ../src/utils/pactl.c:572 +#: ../src/utils/pactl.c:616 #, c-format msgid "" "Sample #%u\n" @@ -2026,23 +2066,22 @@ msgstr "" "\tEigenschaften:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:602 ../src/utils/pactl.c:612 +#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 #, c-format msgid "Failure: %s\n" msgstr "Fehlgeschlagen: %s\n" -#: ../src/utils/pactl.c:636 +#: ../src/utils/pactl.c:680 #, c-format msgid "Failed to upload sample: %s\n" msgstr "Hochladen des Sample fehlgeschlagen: %s\n" -#: ../src/utils/pactl.c:653 -#, c-format +#: ../src/utils/pactl.c:697 msgid "Premature end of file\n" msgstr "Dateiende ist zu früh aufgetreten\n" -#: ../src/utils/pactl.c:774 -#, c-format +#: ../src/utils/pactl.c:826 +#, fuzzy, c-format msgid "" "%s [options] stat\n" "%s [options] list\n" @@ -2057,6 +2096,8 @@ msgid "" "%s [options] suspend-sink [SINK] 1|0\n" "%s [options] suspend-source [SOURCE] 1|0\n" "%s [options] set-card-profile [CARD] [PROFILE] \n" +"%s [options] set-sink-port [SINK] [PORT] \n" +"%s [options] set-source-port [SOURCE] [PORT] \n" "\n" " -h, --help Show this help\n" " --version Show version\n" @@ -2086,7 +2127,7 @@ msgstr "" " -s, --server=SERVER Name des Zielservers\n" " -n, --client-name=NAME Rufname des Clients auf dem Server\n" -#: ../src/utils/pactl.c:826 +#: ../src/utils/pactl.c:880 #, c-format msgid "" "pactl %s\n" @@ -2097,49 +2138,45 @@ msgstr "" "Kompiliert mit libpulse %s\n" "Gelinkt mit libpulse %s\n" -#: ../src/utils/pactl.c:865 -#, c-format +#: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "Geben Sie eine zu öffnende Sample-Datei an\n" -#: ../src/utils/pactl.c:887 -#, c-format +#: ../src/utils/pactl.c:939 msgid "Failed to open sound file.\n" msgstr "Öffnen der Audio-Datei fehlgeschlagen.\n" -#: ../src/utils/pactl.c:899 -#, c-format +#: ../src/utils/pactl.c:951 +#, fuzzy +msgid "Warning: Failed to determine sample specification from file.\n" +msgstr "Öffne eine %s-Stream mit Sample-Angabe '%s'.\n" + +#: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" msgstr "Sie müssen eine abzuspielende Sample-Datei angeben\n" -#: ../src/utils/pactl.c:911 -#, c-format +#: ../src/utils/pactl.c:973 msgid "You have to specify a sample name to remove\n" msgstr "Sie müssen eine zu löschende Sample-Datei angeben\n" -#: ../src/utils/pactl.c:919 -#, c-format +#: ../src/utils/pactl.c:982 msgid "You have to specify a sink input index and a sink\n" msgstr "Sie müssen einen Sink-Eingabe-Indexwert und einen Sink angeben\n" -#: ../src/utils/pactl.c:928 -#, c-format +#: ../src/utils/pactl.c:992 msgid "You have to specify a source output index and a source\n" msgstr "" "Sie müssen eine Indexwert für die Quell-Ausgabe und eine Quelle angeben\n" -#: ../src/utils/pactl.c:942 -#, c-format +#: ../src/utils/pactl.c:1007 msgid "You have to specify a module name and arguments.\n" msgstr "Sie müssen einen Modulnamen angeben und Argumente übergeben.\n" -#: ../src/utils/pactl.c:962 -#, c-format +#: ../src/utils/pactl.c:1027 msgid "You have to specify a module index\n" msgstr "Sie müssen einen Indexwert für ein Modul angeben\n" -#: ../src/utils/pactl.c:972 -#, c-format +#: ../src/utils/pactl.c:1037 msgid "" "You may not specify more than one sink. You have to specify a boolean " "value.\n" @@ -2147,8 +2184,7 @@ msgstr "" "Sie sollten nur eine Senke angeben. Sie müssen zumindest einen bool'schen " "Wert übergeben.\n" -#: ../src/utils/pactl.c:985 -#, c-format +#: ../src/utils/pactl.c:1050 msgid "" "You may not specify more than one source. You have to specify a boolean " "value.\n" @@ -2156,17 +2192,25 @@ msgstr "" "Sie sollten nur eine Quelle angeben. Sie müssen zumindest einen bool'schen " "Wert übergeben.\n" -#: ../src/utils/pactl.c:997 -#, c-format +#: ../src/utils/pactl.c:1062 msgid "You have to specify a card name/index and a profile name\n" msgstr "Sie müssen einen Karten-Name/Indexwert und einen Profilnamen angeben\n" -#: ../src/utils/pactl.c:1012 -#, c-format +#: ../src/utils/pactl.c:1073 +#, fuzzy +msgid "You have to specify a sink name/index and a port name\n" +msgstr "Sie müssen einen Karten-Name/Indexwert und einen Profilnamen angeben\n" + +#: ../src/utils/pactl.c:1084 +#, fuzzy +msgid "You have to specify a source name/index and a port name\n" +msgstr "Sie müssen einen Karten-Name/Indexwert und einen Profilnamen angeben\n" + +#: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "Kein gültiger Befehl angegeben.\n" -#: ../src/utils/pactl.c:1037 ../src/utils/paplay.c:404 +#: ../src/utils/pactl.c:1122 #, c-format msgid "pa_context_connect() failed: %s" msgstr "pa_context_new() fehlgeschlagen: %s" @@ -2250,126 +2294,48 @@ msgstr "Laden der Cookie-Daten fehlgeschlagen\n" msgid "Not yet implemented.\n" msgstr "Noch nicht implementiert.\n" -#: ../src/utils/pacmd.c:64 +#: ../src/utils/pacmd.c:61 +msgid "No PulseAudio daemon running, or not running as session daemon." +msgstr "" + +#: ../src/utils/pacmd.c:66 #, c-format msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s" msgstr "socket(PF_UNIX, SOCK_STREAM, 0): %s" -#: ../src/utils/pacmd.c:81 +#: ../src/utils/pacmd.c:83 #, c-format msgid "connect(): %s" msgstr "connect(): %s" -#: ../src/utils/pacmd.c:89 +#: ../src/utils/pacmd.c:91 msgid "Failed to kill PulseAudio daemon." msgstr "Terminieren des PulseAudio-Daemon fehlgeschlagen." -#: ../src/utils/pacmd.c:97 +#: ../src/utils/pacmd.c:99 msgid "Daemon not responding." msgstr "Daemon antwortet nicht." -#: ../src/utils/pacmd.c:144 +#: ../src/utils/pacmd.c:146 #, c-format msgid "select(): %s" msgstr "select(): %s" -#: ../src/utils/pacmd.c:154 ../src/utils/pacmd.c:171 +#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173 #, c-format msgid "read(): %s" msgstr "read(): %s" -#: ../src/utils/pacmd.c:187 ../src/utils/pacmd.c:201 +#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203 #, c-format msgid "write(): %s" msgstr "write(): %s" -#: ../src/utils/paplay.c:139 -#, c-format -msgid "Stream successfully created\n" -msgstr "Stream erfolgreich erzeugt\n" - -#: ../src/utils/paplay.c:144 -#, c-format -msgid "Stream errror: %s\n" -msgstr "Stream-Fehler: %s\n" - -#: ../src/utils/paplay.c:165 -#, c-format -msgid "Connection established.\n" -msgstr "Verbindung hergestellt.\n" - -#: ../src/utils/paplay.c:198 -#, c-format -msgid "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" -msgstr "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Zeige diese Hilfe\n" -" --version Zeige Version\n" -"\n" -" -v, --verbose Ausführliche Meldungen\n" -"\n" -" -s, --server=SERVER Name des Zielservers\n" -" -d, --device=DEVICE Name des Ziel-Sink\n" -" -n, --client-name=NAME Rufname des Clients auf dem Server\n" -" --stream-name=NAME Rufname des Streams auf dem Server\n" -" --volume=VOLUME Initiale (lineare) Lautstärke " -"zwischen 0...65536\n" -" --channel-map=CHANNELMAP Diese Kanalzuordnung nutzen\n" - -#: ../src/utils/paplay.c:255 -#, c-format -msgid "" -"paplay %s\n" -"Compiled with libpulse %s\n" -"Linked with libpulse %s\n" -msgstr "" -"paplay %s\n" -"Kompliert mit libpulse %s\n" -"Gelinkt mit libpulse %s\n" - -#: ../src/utils/paplay.c:292 -#, c-format -msgid "Invalid channel map\n" -msgstr "Ungültige Kanal-Zuweisung\n" - -#: ../src/utils/paplay.c:314 -#, c-format -msgid "Failed to open file '%s'\n" -msgstr "Öffnen der Datei '%s' fehlgeschlagen\n" - -#: ../src/utils/paplay.c:350 -#, c-format -msgid "Channel map doesn't match file.\n" -msgstr "Kanal-Zuweisung stimmt mit Datei nicht überein.\n" - -#: ../src/utils/paplay.c:376 -#, c-format -msgid "Using sample spec '%s'\n" -msgstr "Sampling-Angabe '%s' wird benutzt\n" - #: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 msgid "Cannot access autospawn lock." msgstr "Fehler beim Zugriff auf Autostart -Sperre." -#: ../src/modules/alsa/alsa-sink.c:393 ../src/modules/alsa/alsa-sink.c:541 +#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2380,7 +2346,7 @@ msgid "" "returned 0 or another value < min_avail." msgstr "" -#: ../src/modules/alsa/alsa-source.c:377 ../src/modules/alsa/alsa-source.c:516 +#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2391,38 +2357,132 @@ msgid "" "returned 0 or another value < min_avail." msgstr "" -#: ../src/modules/alsa/module-alsa-card.c:114 -#, c-format -msgid "Output %s + Input %s" -msgstr "Ausgabe %s + Eingabe %s" - -#: ../src/modules/alsa/module-alsa-card.c:117 -#, c-format -msgid "Output %s" -msgstr "Ausgang %s" - -#: ../src/modules/alsa/module-alsa-card.c:121 -#, c-format -msgid "Input %s" -msgstr "Eingang %s" - -#: ../src/modules/alsa/module-alsa-card.c:170 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2006 +#: ../src/modules/alsa/module-alsa-card.c:152 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 msgid "Off" msgstr "Aus" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1976 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 msgid "High Fidelity Playback (A2DP)" msgstr "High Fidelity Playback (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1991 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 msgid "Telephony Duplex (HSP/HFP)" msgstr "Telephony Duplex (HSP/HFP)" -#: ../src/modules/reserve-wrap.c:139 +#: ../src/modules/reserve-wrap.c:151 msgid "PulseAudio Sound Server" msgstr "PulseAudio Sound Server" +#~ msgid "Analog Mono" +#~ msgstr "Analog Mono" + +#~ msgid "Analog Stereo" +#~ msgstr "Analog Stereo" + +#~ msgid "Digital Stereo (IEC958)" +#~ msgstr "Digital Stereo (IEC958)" + +#~ msgid "Digital Stereo (HDMI)" +#~ msgstr "Digital Stereo (HDMI)" + +#~ msgid "Analog Surround 4.0" +#~ msgstr "Analog Surround 4.0" + +#~ msgid "Digital Surround 4.0 (IEC958/AC3)" +#~ msgstr "Digital Surround 4.0 (IEC958/AC3)" + +#~ msgid "Analog Surround 4.1" +#~ msgstr "Analog Surround 4.1" + +#~ msgid "Analog Surround 5.0" +#~ msgstr "Analog Surround 5.0" + +#~ msgid "Analog Surround 5.1" +#~ msgstr "Analog Surround 5.1" + +#~ msgid "Digital Surround 5.1 (IEC958/AC3)" +#~ msgstr "Digital Surround 5.1 (IEC958/AC3)" + +#~ msgid "Analog Surround 7.1" +#~ msgstr "Analog Surround 7.1" + +#~ msgid "Output %s + Input %s" +#~ msgstr "Ausgabe %s + Eingabe %s" + +#~ msgid "Output %s" +#~ msgstr "Ausgang %s" + +#~ msgid "Input %s" +#~ msgstr "Eingang %s" + +#~ msgid "Stream successfully created\n" +#~ msgstr "Stream erfolgreich erzeugt\n" + +#~ msgid "Stream errror: %s\n" +#~ msgstr "Stream-Fehler: %s\n" + +#~ msgid "Connection established.\n" +#~ msgstr "Verbindung hergestellt.\n" + +#~ msgid "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Show this help\n" +#~ " --version Show version\n" +#~ "\n" +#~ " -v, --verbose Enable verbose operation\n" +#~ "\n" +#~ " -s, --server=SERVER The name of the server to connect " +#~ "to\n" +#~ " -d, --device=DEVICE The name of the sink to connect " +#~ "to\n" +#~ " -n, --client-name=NAME How to call this client on the " +#~ "server\n" +#~ " --stream-name=NAME How to call this stream on the " +#~ "server\n" +#~ " --volume=VOLUME Specify the initial (linear) " +#~ "volume in range 0...65536\n" +#~ " --channel-map=CHANNELMAP Set the channel map to the use\n" +#~ msgstr "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Zeige diese Hilfe\n" +#~ " --version Zeige Version\n" +#~ "\n" +#~ " -v, --verbose Ausführliche Meldungen\n" +#~ "\n" +#~ " -s, --server=SERVER Name des Zielservers\n" +#~ " -d, --device=DEVICE Name des Ziel-Sink\n" +#~ " -n, --client-name=NAME Rufname des Clients auf dem " +#~ "Server\n" +#~ " --stream-name=NAME Rufname des Streams auf dem " +#~ "Server\n" +#~ " --volume=VOLUME Initiale (lineare) Lautstärke " +#~ "zwischen 0...65536\n" +#~ " --channel-map=CHANNELMAP Diese Kanalzuordnung nutzen\n" + +#~ msgid "" +#~ "paplay %s\n" +#~ "Compiled with libpulse %s\n" +#~ "Linked with libpulse %s\n" +#~ msgstr "" +#~ "paplay %s\n" +#~ "Kompliert mit libpulse %s\n" +#~ "Gelinkt mit libpulse %s\n" + +#~ msgid "Invalid channel map\n" +#~ msgstr "Ungültige Kanal-Zuweisung\n" + +#~ msgid "Failed to open file '%s'\n" +#~ msgstr "Öffnen der Datei '%s' fehlgeschlagen\n" + +#~ msgid "Channel map doesn't match file.\n" +#~ msgstr "Kanal-Zuweisung stimmt mit Datei nicht überein.\n" + +#~ msgid "Using sample spec '%s'\n" +#~ msgstr "Sampling-Angabe '%s' wird benutzt\n" + #, fuzzy #~ msgid "" #~ "Called SUID root and real-time and/or high-priority scheduling was " diff --git a/po/de_CH.po b/po/de_CH.po index 68076bd4..7c069efb 100644 --- a/po/de_CH.po +++ b/po/de_CH.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-21 23:02+0200\n" +"POT-Creation-Date: 2009-06-17 23:42+0200\n" "PO-Revision-Date: 2009-04-18 12:55+0100\n" "Last-Translator: Fabian Affolter <fab@fedoraproject.org>\n" "Language-Team: German <fedora-trans-de@redhat.com>\n" @@ -18,51 +18,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-Language: Swiss German\n" -#: ../src/modules/alsa/alsa-util.c:532 -msgid "Analog Mono" -msgstr "Analog Mono" - -#: ../src/modules/alsa/alsa-util.c:540 -msgid "Analog Stereo" -msgstr "Analog Stereo" - -#: ../src/modules/alsa/alsa-util.c:548 -msgid "Digital Stereo (IEC958)" -msgstr "Digital Stereo (IEC958)" - -#: ../src/modules/alsa/alsa-util.c:556 -msgid "Digital Stereo (HDMI)" -msgstr "Digital Stereo (HDMI)" - -#: ../src/modules/alsa/alsa-util.c:565 -msgid "Analog Surround 4.0" -msgstr "Analog Surround 4.0" - -#: ../src/modules/alsa/alsa-util.c:574 -msgid "Digital Surround 4.0 (IEC958/AC3)" -msgstr "Digital Surround 4.0 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:584 -msgid "Analog Surround 4.1" -msgstr "Analog Surround 4.1" - -#: ../src/modules/alsa/alsa-util.c:594 -msgid "Analog Surround 5.0" -msgstr "Analog Surround 5.0" - -#: ../src/modules/alsa/alsa-util.c:604 -msgid "Analog Surround 5.1" -msgstr "Analog Surround 5.1" - -#: ../src/modules/alsa/alsa-util.c:614 -msgid "Digital Surround 5.1 (IEC958/AC3)" -msgstr "Digital Surround 5.1 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:625 -msgid "Analog Surround 7.1" -msgstr "Analog Surround 7.1" - -#: ../src/modules/alsa/alsa-util.c:1646 +#: ../src/modules/alsa/alsa-util.c:1015 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -75,7 +31,7 @@ msgstr "" "Dies ist wahrscheinlich ein Fehler im ALSA-Treiber '%s'. Bitte melden Sie " "diesen Punkt den ALSA-Entwicklern." -#: ../src/modules/alsa/alsa-util.c:1687 +#: ../src/modules/alsa/alsa-util.c:1056 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -88,7 +44,7 @@ msgstr "" "Dies ist wahrscheinlich ein Fehler im ALSA-Treiber '%s'. Bitte melden Sie " "diesen Punkt den ALSA-Entwicklern." -#: ../src/modules/alsa/alsa-util.c:1734 +#: ../src/modules/alsa/alsa-util.c:1103 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -101,11 +57,24 @@ msgstr "" "Dies ist wahrscheinlich ein Fehler im ALSA-Treiber '%s'. Bitte melden Sie " "diesen Punkt den ALSA-Entwicklern." -#: ../src/pulsecore/sink.c:2141 +#: ../src/modules/module-ladspa-sink.c:49 +msgid "Virtual LADSPA sink" +msgstr "" + +#: ../src/modules/module-ladspa-sink.c:53 +msgid "" +"sink_name=<name for the sink> sink_properties=<properties for the sink> " +"master=<name of sink to filter> format=<sample format> rate=<sample rate> " +"channels=<number of channels> channel_map=<channel map> plugin=<ladspa " +"plugin name> label=<ladspa plugin label> control=<comma seperated list of " +"input control values>" +msgstr "" + +#: ../src/pulsecore/sink.c:2394 msgid "Internal Audio" msgstr "Internes Audio" -#: ../src/pulsecore/sink.c:2147 +#: ../src/pulsecore/sink.c:2400 msgid "Modem" msgstr "Modem" @@ -175,107 +144,107 @@ msgstr "Keine Authorisierung erhalten: %s" msgid "PolicyKit responded with '%s'" msgstr "PolicyKit antwortete mit '%s'" -#: ../src/daemon/main.c:138 +#: ../src/daemon/main.c:142 #, c-format msgid "Got signal %s." msgstr "Signal %s empfangen." -#: ../src/daemon/main.c:165 +#: ../src/daemon/main.c:169 msgid "Exiting." msgstr "Wird beendet." -#: ../src/daemon/main.c:183 +#: ../src/daemon/main.c:187 #, c-format msgid "Failed to find user '%s'." msgstr "Benutzer '%s' nicht gefunden." -#: ../src/daemon/main.c:188 +#: ../src/daemon/main.c:192 #, c-format msgid "Failed to find group '%s'." msgstr "Gruppe '%s' nicht gefunden." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:196 #, 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:197 +#: ../src/daemon/main.c:201 #, 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:202 +#: ../src/daemon/main.c:206 #, 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:205 ../src/daemon/main.c:210 +#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 #, c-format msgid "Failed to create '%s': %s" msgstr "Konnte '%s' nciht erzeugen: %s" -#: ../src/daemon/main.c:217 +#: ../src/daemon/main.c:221 #, c-format msgid "Failed to change group list: %s" msgstr "Wechseln der Gruppen-Liste fehlgeschlagen: %s" -#: ../src/daemon/main.c:233 +#: ../src/daemon/main.c:237 #, c-format msgid "Failed to change GID: %s" msgstr "Wechseln der GID fehlgeschlagen: %s" -#: ../src/daemon/main.c:249 +#: ../src/daemon/main.c:253 #, c-format msgid "Failed to change UID: %s" msgstr "Wechseln der UID fehlgeschlagen: %s" -#: ../src/daemon/main.c:263 +#: ../src/daemon/main.c:267 msgid "Successfully dropped root privileges." msgstr "Root-Berechtigungen erfolgreich zurückgesetzt." -#: ../src/daemon/main.c:271 +#: ../src/daemon/main.c:275 msgid "System wide mode unsupported on this platform." msgstr "System-Modus auf dieser Plattform nicht unterstützt." -#: ../src/daemon/main.c:289 +#: ../src/daemon/main.c:293 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) fehlgeschlagen: %s" -#: ../src/daemon/main.c:477 +#: ../src/daemon/main.c:481 msgid "Failed to parse command line." msgstr "Parsen der Kommandzeile fehlgeschlagen." -#: ../src/daemon/main.c:501 +#: ../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:508 +#: ../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:516 +#: ../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:519 +#: ../src/daemon/main.c:523 msgid "PolicyKit refuses acquire-high-priority privilege." msgstr "Richtlinien verweigern das Recht acquire-high-priority." -#: ../src/daemon/main.c:524 +#: ../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:527 +#: ../src/daemon/main.c:531 msgid "PolicyKit refuses acquire-real-time privilege." msgstr "Richtlinien verweigern das Recht acquire-real-time." -#: ../src/daemon/main.c:556 +#: ../src/daemon/main.c:560 #, fuzzy, c-format msgid "" "Called SUID root and real-time and/or high-priority scheduling was requested " @@ -291,44 +260,44 @@ msgstr "" "Erlangen Sie die den Richtlinien entsprechenden Rechte, um Echtzeit-" "Scheduling zu aktivieren oder werden Sie Mitglied der Gruppe '" -#: ../src/daemon/main.c:581 +#: ../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:610 +#: ../src/daemon/main.c:614 msgid "Successfully increased RLIMIT_RTPRIO" msgstr "RLIMIT_RTPRIO erfolgreich erhöht" -#: ../src/daemon/main.c:613 +#: ../src/daemon/main.c:617 #, c-format msgid "RLIMIT_RTPRIO failed: %s" msgstr "RLIMIT_RTPRIO fehlgeschlagen: %s" -#: ../src/daemon/main.c:620 +#: ../src/daemon/main.c:624 msgid "Giving up CAP_NICE" msgstr "Verwerfe CAP_NICE" -#: ../src/daemon/main.c:627 +#: ../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:688 +#: ../src/daemon/main.c:692 msgid "Daemon not running" msgstr "Daemon läuft nicht" -#: ../src/daemon/main.c:690 +#: ../src/daemon/main.c:694 #, c-format msgid "Daemon running as PID %u" msgstr "Daemon läuft als PID %u" -#: ../src/daemon/main.c:700 +#: ../src/daemon/main.c:704 #, c-format msgid "Failed to kill daemon: %s" msgstr "Konnte Prozess nicht abbrechen: %s" -#: ../src/daemon/main.c:718 +#: ../src/daemon/main.c:722 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -336,191 +305,201 @@ msgstr "" "Dieses Programm sollte ohne die Option --system nicht als Administrator " "ausgeführt werden." -#: ../src/daemon/main.c:720 +#: ../src/daemon/main.c:724 msgid "Root privileges required." msgstr "Root-Berechtigungen benötigt." -#: ../src/daemon/main.c:725 +#: ../src/daemon/main.c:729 msgid "--start not supported for system instances." msgstr "--start nicht unterstützt für System-Instanzen." -#: ../src/daemon/main.c:730 +#: ../src/daemon/main.c:734 msgid "Running in system mode, but --disallow-exit not set!" msgstr "System-Modus aktiv, jeodch --disallow-exit nicht gesetzt!" -#: ../src/daemon/main.c:733 +#: ../src/daemon/main.c:737 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:736 +#: ../src/daemon/main.c:740 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "System-Modus aktiv, SHM-Modus gezwungenermassen deaktiviert!" -#: ../src/daemon/main.c:741 +#: ../src/daemon/main.c:745 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "System-Modus aktiv, Exit-Idle-Time gezwungenermassen deaktiviert!" -#: ../src/daemon/main.c:768 +#: ../src/daemon/main.c:772 msgid "Failed to acquire stdio." msgstr "Reservieren von STDIO fehlgeschlagen." -#: ../src/daemon/main.c:774 +#: ../src/daemon/main.c:778 #, c-format msgid "pipe failed: %s" msgstr "pipe fehlgeschlagen: %s" -#: ../src/daemon/main.c:779 +#: ../src/daemon/main.c:783 #, c-format msgid "fork() failed: %s" msgstr "fork() fehlgeschlagen: %s" -#: ../src/daemon/main.c:793 +#: ../src/daemon/main.c:797 #, c-format msgid "read() failed: %s" msgstr "read() fehlgeschlagen: %s" -#: ../src/daemon/main.c:799 +#: ../src/daemon/main.c:803 msgid "Daemon startup failed." msgstr "Start des Daemons fehlgeschlagen." -#: ../src/daemon/main.c:801 +#: ../src/daemon/main.c:805 msgid "Daemon startup successful." msgstr "Start des Daemons erfolgreich." -#: ../src/daemon/main.c:871 +#: ../src/daemon/main.c:875 #, c-format msgid "This is PulseAudio %s" msgstr "Dies ist PulseAudio %s" -#: ../src/daemon/main.c:872 +#: ../src/daemon/main.c:876 #, c-format msgid "Compilation host: %s" msgstr "Kompilier-Host: %s" -#: ../src/daemon/main.c:873 +#: ../src/daemon/main.c:877 #, c-format msgid "Compilation CFLAGS: %s" msgstr "Kompilier-CFLAGS: %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:880 #, c-format msgid "Running on host: %s" msgstr "Laufe auf Host: %s" -#: ../src/daemon/main.c:879 +#: ../src/daemon/main.c:883 #, c-format msgid "Found %u CPUs." msgstr "%u CPUs gefunden." -#: ../src/daemon/main.c:881 +#: ../src/daemon/main.c:885 #, c-format msgid "Page size is %lu bytes" msgstr "Seitengrösse ist %lu Bytes." -#: ../src/daemon/main.c:884 +#: ../src/daemon/main.c:888 msgid "Compiled with Valgrind support: yes" msgstr "Kompiliere mit Valgrind-Unterstützung: ja" -#: ../src/daemon/main.c:886 +#: ../src/daemon/main.c:890 msgid "Compiled with Valgrind support: no" msgstr "Kompiliere mit Valgrind-Unterstützung: nein" -#: ../src/daemon/main.c:889 +#: ../src/daemon/main.c:893 #, c-format msgid "Running in valgrind mode: %s" msgstr "Läuft im Valgrind-Modus: %s" -#: ../src/daemon/main.c:892 +#: ../src/daemon/main.c:896 msgid "Optimized build: yes" msgstr "Optimiertes Build: ja" -#: ../src/daemon/main.c:894 +#: ../src/daemon/main.c:898 msgid "Optimized build: no" msgstr "Optimiertes Build: nein" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:902 #, fuzzy msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG definiert, alle Ansprüche deaktiviert." -#: ../src/daemon/main.c:900 +#: ../src/daemon/main.c:904 #, fuzzy msgid "FASTPATH defined, only fast path asserts disabled." msgstr "FASTPATH definiert, nur fast-path-Ansprüche deaktiviert." -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:906 #, fuzzy msgid "All asserts enabled." msgstr "Alle Ansprüche aktiviert." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:910 msgid "Failed to get machine ID" msgstr "Beziehen der Maschinen-ID fehlgeschlagen" -#: ../src/daemon/main.c:909 +#: ../src/daemon/main.c:913 #, c-format msgid "Machine ID is %s." msgstr "System- ID ist %s." -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:917 #, fuzzy, c-format msgid "Session ID is %s." msgstr "System- ID ist %s." -#: ../src/daemon/main.c:919 +#: ../src/daemon/main.c:923 #, c-format msgid "Using runtime directory %s." msgstr "Nutze Laufzeit-Verzeichnis %s." -#: ../src/daemon/main.c:924 +#: ../src/daemon/main.c:928 #, c-format msgid "Using state directory %s." msgstr "Nutze Zustands-Verzeichnis %s." -#: ../src/daemon/main.c:927 +#: ../src/daemon/main.c:931 #, c-format msgid "Running in system mode: %s" msgstr "Laufe im System-Modus: %s" -#: ../src/daemon/main.c:942 +#: ../src/daemon/main.c:934 +msgid "" +"OK, so you are running PA in system mode. Please note that you most likely " +"shouldn't be doing that.\n" +"If you do it nonetheless then it's your own fault if things don't work as " +"expected.\n" +"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " +"explanation why system mode is usually a bad idea." +msgstr "" + +#: ../src/daemon/main.c:951 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() fehlgeschlagen." -#: ../src/daemon/main.c:954 +#: ../src/daemon/main.c:961 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "Neue hochauslösende Timer verfügbar! Guten Appetit!" -#: ../src/daemon/main.c:956 +#: ../src/daemon/main.c:963 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" msgstr "Der Chefkoch empfiehlt: Linux mit aktivierten hochauslösenden Timern!" -#: ../src/daemon/main.c:970 +#: ../src/daemon/main.c:988 msgid "pa_core_new() failed." msgstr "pa_core_new() fehlgeschlagen." -#: ../src/daemon/main.c:1032 +#: ../src/daemon/main.c:1050 msgid "Failed to initialize daemon." msgstr "Konnte Daemon nicht initialisieren." -#: ../src/daemon/main.c:1037 +#: ../src/daemon/main.c:1055 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "Daemon verweigert Ausführung, da keine Module geladen." -#: ../src/daemon/main.c:1054 +#: ../src/daemon/main.c:1072 msgid "Daemon startup complete." msgstr "Start des Daemons abgeschlossen." -#: ../src/daemon/main.c:1060 +#: ../src/daemon/main.c:1078 msgid "Daemon shutdown initiated." msgstr "Herunterfahren des Daemon gestartet." -#: ../src/daemon/main.c:1082 +#: ../src/daemon/main.c:1100 msgid "Daemon terminated." msgstr "Daemon beendet." -#: ../src/daemon/cmdline.c:121 +#: ../src/daemon/cmdline.c:115 #, fuzzy, c-format msgid "" "%s [options]\n" @@ -659,15 +638,15 @@ msgstr "" "\n" " -n Standardskript nicht laden\n" -#: ../src/daemon/cmdline.c:252 +#: ../src/daemon/cmdline.c:247 msgid "--daemonize expects boolean argument" msgstr "Option --daemonize erfordert bool'schen Wert" -#: ../src/daemon/cmdline.c:259 +#: ../src/daemon/cmdline.c:254 msgid "--fail expects boolean argument" msgstr "Option --fail erfordert bool'schen Wert" -#: ../src/daemon/cmdline.c:269 +#: ../src/daemon/cmdline.c:264 msgid "" "--log-level expects log level argument (either numeric in range 0..4 or one " "of debug, info, notice, warn, error)." @@ -675,53 +654,53 @@ msgstr "" "--log-level erfordert Wert für Grad der Protokollierung (entweder numerisch " "im Bereich 0..4 or einen dieser: debug, info, notice, warn, error)." -#: ../src/daemon/cmdline.c:281 +#: ../src/daemon/cmdline.c:276 msgid "--high-priority expects boolean argument" msgstr "Option --high-priority erfordert bool'schen Wert" -#: ../src/daemon/cmdline.c:288 +#: ../src/daemon/cmdline.c:283 msgid "--realtime expects boolean argument" msgstr "Option --realtime erfordert bool'schen Wert" -#: ../src/daemon/cmdline.c:295 +#: ../src/daemon/cmdline.c:290 msgid "--disallow-module-loading expects boolean argument" msgstr "Option --disallow-module-loading erfordert bool'schen Wert" -#: ../src/daemon/cmdline.c:302 +#: ../src/daemon/cmdline.c:297 msgid "--disallow-exit expects boolean argument" msgstr "--disallow-exit erfordert boolsches Argument" -#: ../src/daemon/cmdline.c:309 +#: ../src/daemon/cmdline.c:304 msgid "--use-pid-file expects boolean argument" msgstr "Option --use-pid-file erfordert bool'schen Wert" -#: ../src/daemon/cmdline.c:326 +#: ../src/daemon/cmdline.c:321 msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgstr "" "Ungültiges Log-Ziel: Benutzen Sie entweder 'syslog', 'stderr' oder 'auto'." -#: ../src/daemon/cmdline.c:333 +#: ../src/daemon/cmdline.c:328 msgid "--log-time expects boolean argument" msgstr "--realtime erfordert boolsches Argument" -#: ../src/daemon/cmdline.c:340 +#: ../src/daemon/cmdline.c:335 msgid "--log-meta expects boolean argument" msgstr "--log-meta erfordert boolschen Wert" -#: ../src/daemon/cmdline.c:359 +#: ../src/daemon/cmdline.c:354 #, c-format msgid "Invalid resample method '%s'." msgstr "Ungültige Resample-Methode '%s'." -#: ../src/daemon/cmdline.c:366 +#: ../src/daemon/cmdline.c:361 msgid "--system expects boolean argument" msgstr "--System erwartet Boolean-Argument" -#: ../src/daemon/cmdline.c:373 +#: ../src/daemon/cmdline.c:368 msgid "--no-cpu-limit expects boolean argument" msgstr "Option --no-cpu-limit erfordert bool'schen Wert" -#: ../src/daemon/cmdline.c:380 +#: ../src/daemon/cmdline.c:375 msgid "--disable-shm expects boolean argument" msgstr "Option --disable-shm erfordert bool'schen Wert" @@ -760,77 +739,82 @@ msgstr "Verwendung: %s\n" msgid "Load Once: %s\n" msgstr "Lade einmalig: %s\n" -#: ../src/daemon/dumpmodules.c:77 +#: ../src/daemon/dumpmodules.c:75 +#, c-format +msgid "DEPRECATION WARNING: %s\n" +msgstr "" + +#: ../src/daemon/dumpmodules.c:79 #, c-format msgid "Path: %s\n" msgstr "Pfad: %s\n" -#: ../src/daemon/daemon-conf.c:215 +#: ../src/daemon/daemon-conf.c:216 #, c-format msgid "[%s:%u] Invalid log target '%s'." msgstr "[%s:%u] Ungültiges Log-Ziel '%s'." -#: ../src/daemon/daemon-conf.c:231 +#: ../src/daemon/daemon-conf.c:232 #, c-format msgid "[%s:%u] Invalid log level '%s'." msgstr "[%s:%u] Ungültige Log-Stufe '%s'." -#: ../src/daemon/daemon-conf.c:247 +#: ../src/daemon/daemon-conf.c:248 #, c-format msgid "[%s:%u] Invalid resample method '%s'." msgstr "[%s:%u] Ungültige Resample-Methode '%s'." -#: ../src/daemon/daemon-conf.c:270 +#: ../src/daemon/daemon-conf.c:271 #, c-format msgid "[%s:%u] Invalid rlimit '%s'." msgstr "[%s:%u] Ungültiges rlimit '%s'." -#: ../src/daemon/daemon-conf.c:277 +#: ../src/daemon/daemon-conf.c:278 #, c-format msgid "[%s:%u] rlimit not supported on this platform." msgstr "[%s:%u] rlimit auf dieser Plattform nicht unterstützt." -#: ../src/daemon/daemon-conf.c:293 +#: ../src/daemon/daemon-conf.c:294 #, c-format msgid "[%s:%u] Invalid sample format '%s'." msgstr "[%s:%u] Ungültiges Sample-Format '%s'." -#: ../src/daemon/daemon-conf.c:311 +#: ../src/daemon/daemon-conf.c:312 #, c-format msgid "[%s:%u] Invalid sample rate '%s'." msgstr "[%s:%u] Ungültige Sample-Rate '%s'." -#: ../src/daemon/daemon-conf.c:335 +#: ../src/daemon/daemon-conf.c:336 #, c-format msgid "[%s:%u] Invalid sample channels '%s'." msgstr "[%s:%u] Ungültige Sample-Kanäle '%s'." -#: ../src/daemon/daemon-conf.c:353 +#: ../src/daemon/daemon-conf.c:354 #, c-format msgid "[%s:%u] Invalid channel map '%s'." msgstr "[%s:%u] Ungültige Kanal-Zuordnung '%s'." -#: ../src/daemon/daemon-conf.c:371 +#: ../src/daemon/daemon-conf.c:372 #, c-format msgid "[%s:%u] Invalid number of fragments '%s'." msgstr "[%s:%u] Ungültige Anzahl von Fragmenten '%s'." -#: ../src/daemon/daemon-conf.c:389 +#: ../src/daemon/daemon-conf.c:390 #, c-format msgid "[%s:%u] Invalid fragment size '%s'." msgstr "[%s:%u] Ungültige Fragmentgrösse '%s'." -#: ../src/daemon/daemon-conf.c:407 +#: ../src/daemon/daemon-conf.c:408 #, c-format msgid "[%s:%u] Invalid nice level '%s'." msgstr "[%s:%u] Ungültige Nice-Stufe '%s'." -#: ../src/daemon/daemon-conf.c:522 +#: ../src/daemon/daemon-conf.c:524 #, c-format msgid "Failed to open configuration file: %s" msgstr "Öffnen der Konfigurationsdatei fehlgeschlagen : %s" -#: ../src/daemon/daemon-conf.c:538 +#: ../src/daemon/daemon-conf.c:540 #, fuzzy msgid "" "The specified default channel map has a different number of channels than " @@ -888,237 +872,237 @@ msgstr "" "System-Richtlinien verhindert PulseAudio beim Erlangen der Echtzeit-" "Terminierung.." -#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804 +#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Mono" -#: ../src/pulse/channelmap.c:105 +#: ../src/pulse/channelmap.c:107 msgid "Front Center" msgstr "Vorne Mitte" -#: ../src/pulse/channelmap.c:106 +#: ../src/pulse/channelmap.c:108 msgid "Front Left" msgstr "Vorne Links" -#: ../src/pulse/channelmap.c:107 +#: ../src/pulse/channelmap.c:109 msgid "Front Right" msgstr "Vorne Rechts" -#: ../src/pulse/channelmap.c:109 +#: ../src/pulse/channelmap.c:111 msgid "Rear Center" msgstr "Hinten Mitte" -#: ../src/pulse/channelmap.c:110 +#: ../src/pulse/channelmap.c:112 msgid "Rear Left" msgstr "Hinten Links" -#: ../src/pulse/channelmap.c:111 +#: ../src/pulse/channelmap.c:113 msgid "Rear Right" msgstr "Hinten Rechts" -#: ../src/pulse/channelmap.c:113 +#: ../src/pulse/channelmap.c:115 msgid "Low Frequency Emmiter" msgstr "Niedrigfrequenzemitter" -#: ../src/pulse/channelmap.c:115 +#: ../src/pulse/channelmap.c:117 msgid "Front Left-of-center" msgstr "Vorne Links der Mitte" -#: ../src/pulse/channelmap.c:116 +#: ../src/pulse/channelmap.c:118 msgid "Front Right-of-center" msgstr "Vorne Rechts der Mitte" -#: ../src/pulse/channelmap.c:118 +#: ../src/pulse/channelmap.c:120 msgid "Side Left" msgstr "Seite Links" -#: ../src/pulse/channelmap.c:119 +#: ../src/pulse/channelmap.c:121 msgid "Side Right" msgstr "Seite Rechts" -#: ../src/pulse/channelmap.c:121 +#: ../src/pulse/channelmap.c:123 msgid "Auxiliary 0" msgstr "Zusatz 0" -#: ../src/pulse/channelmap.c:122 +#: ../src/pulse/channelmap.c:124 msgid "Auxiliary 1" msgstr "Zusatz 1" -#: ../src/pulse/channelmap.c:123 +#: ../src/pulse/channelmap.c:125 msgid "Auxiliary 2" msgstr "Zusatz 2" -#: ../src/pulse/channelmap.c:124 +#: ../src/pulse/channelmap.c:126 msgid "Auxiliary 3" msgstr "Zusatz 3" -#: ../src/pulse/channelmap.c:125 +#: ../src/pulse/channelmap.c:127 msgid "Auxiliary 4" msgstr "Zusatz 4" -#: ../src/pulse/channelmap.c:126 +#: ../src/pulse/channelmap.c:128 msgid "Auxiliary 5" msgstr "Zusatz 5" -#: ../src/pulse/channelmap.c:127 +#: ../src/pulse/channelmap.c:129 msgid "Auxiliary 6" msgstr "Zusatz 6" -#: ../src/pulse/channelmap.c:128 +#: ../src/pulse/channelmap.c:130 msgid "Auxiliary 7" msgstr "Zusatz 7" -#: ../src/pulse/channelmap.c:129 +#: ../src/pulse/channelmap.c:131 msgid "Auxiliary 8" msgstr "Zusatz 8" -#: ../src/pulse/channelmap.c:130 +#: ../src/pulse/channelmap.c:132 msgid "Auxiliary 9" msgstr "Zusatz 9" -#: ../src/pulse/channelmap.c:131 +#: ../src/pulse/channelmap.c:133 msgid "Auxiliary 10" msgstr "Zusatz 10" -#: ../src/pulse/channelmap.c:132 +#: ../src/pulse/channelmap.c:134 msgid "Auxiliary 11" msgstr "Zusatz 11" -#: ../src/pulse/channelmap.c:133 +#: ../src/pulse/channelmap.c:135 msgid "Auxiliary 12" msgstr "Zusatz 12" -#: ../src/pulse/channelmap.c:134 +#: ../src/pulse/channelmap.c:136 msgid "Auxiliary 13" msgstr "Zusatz 13" -#: ../src/pulse/channelmap.c:135 +#: ../src/pulse/channelmap.c:137 msgid "Auxiliary 14" msgstr "Zusatz 14" -#: ../src/pulse/channelmap.c:136 +#: ../src/pulse/channelmap.c:138 msgid "Auxiliary 15" msgstr "Zusatz 15" -#: ../src/pulse/channelmap.c:137 +#: ../src/pulse/channelmap.c:139 msgid "Auxiliary 16" msgstr "Zusatz 16" -#: ../src/pulse/channelmap.c:138 +#: ../src/pulse/channelmap.c:140 msgid "Auxiliary 17" msgstr "Zusatz 17" -#: ../src/pulse/channelmap.c:139 +#: ../src/pulse/channelmap.c:141 msgid "Auxiliary 18" msgstr "Zusatz 18" -#: ../src/pulse/channelmap.c:140 +#: ../src/pulse/channelmap.c:142 msgid "Auxiliary 19" msgstr "Zusatz 19" -#: ../src/pulse/channelmap.c:141 +#: ../src/pulse/channelmap.c:143 msgid "Auxiliary 20" msgstr "Zusatz 20" -#: ../src/pulse/channelmap.c:142 +#: ../src/pulse/channelmap.c:144 msgid "Auxiliary 21" msgstr "Zusatz 21" -#: ../src/pulse/channelmap.c:143 +#: ../src/pulse/channelmap.c:145 msgid "Auxiliary 22" msgstr "Zusatz 22" -#: ../src/pulse/channelmap.c:144 +#: ../src/pulse/channelmap.c:146 msgid "Auxiliary 23" msgstr "Zusatz 23" -#: ../src/pulse/channelmap.c:145 +#: ../src/pulse/channelmap.c:147 msgid "Auxiliary 24" msgstr "Zusatz 24" -#: ../src/pulse/channelmap.c:146 +#: ../src/pulse/channelmap.c:148 msgid "Auxiliary 25" msgstr "Zusatz 25" -#: ../src/pulse/channelmap.c:147 +#: ../src/pulse/channelmap.c:149 msgid "Auxiliary 26" msgstr "Zusatz 26" -#: ../src/pulse/channelmap.c:148 +#: ../src/pulse/channelmap.c:150 msgid "Auxiliary 27" msgstr "Zusatz 26" -#: ../src/pulse/channelmap.c:149 +#: ../src/pulse/channelmap.c:151 msgid "Auxiliary 28" msgstr "Zusatz 28" -#: ../src/pulse/channelmap.c:150 +#: ../src/pulse/channelmap.c:152 msgid "Auxiliary 29" msgstr "Zusatz 29" -#: ../src/pulse/channelmap.c:151 +#: ../src/pulse/channelmap.c:153 msgid "Auxiliary 30" msgstr "Zusatz 30" -#: ../src/pulse/channelmap.c:152 +#: ../src/pulse/channelmap.c:154 msgid "Auxiliary 31" msgstr "Zusatz 31" -#: ../src/pulse/channelmap.c:154 +#: ../src/pulse/channelmap.c:156 msgid "Top Center" msgstr "Oben Mitte" -#: ../src/pulse/channelmap.c:156 +#: ../src/pulse/channelmap.c:158 msgid "Top Front Center" msgstr "Oben Vorne Mitte" -#: ../src/pulse/channelmap.c:157 +#: ../src/pulse/channelmap.c:159 msgid "Top Front Left" msgstr "Oben Vorne Links" -#: ../src/pulse/channelmap.c:158 +#: ../src/pulse/channelmap.c:160 msgid "Top Front Right" msgstr "Oben Vorne Rechts" -#: ../src/pulse/channelmap.c:160 +#: ../src/pulse/channelmap.c:162 msgid "Top Rear Center" msgstr "Oben Hinten Mitte" -#: ../src/pulse/channelmap.c:161 +#: ../src/pulse/channelmap.c:163 msgid "Top Rear Left" msgstr "Oben Hinten Links" -#: ../src/pulse/channelmap.c:162 +#: ../src/pulse/channelmap.c:164 msgid "Top Rear Right" msgstr "Oben Hinten Rechts" -#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167 -#: ../src/pulse/volume.c:170 ../src/pulse/volume.c:196 -#: ../src/pulse/volume.c:216 ../src/pulse/volume.c:246 +#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167 +#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265 +#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315 msgid "(invalid)" msgstr "(ungültig)" -#: ../src/pulse/channelmap.c:808 +#: ../src/pulse/channelmap.c:751 msgid "Stereo" msgstr "Stereo" -#: ../src/pulse/channelmap.c:813 +#: ../src/pulse/channelmap.c:756 msgid "Surround 4.0" msgstr "Surround 4.0" -#: ../src/pulse/channelmap.c:819 +#: ../src/pulse/channelmap.c:762 msgid "Surround 4.1" msgstr "Surround 4.1" -#: ../src/pulse/channelmap.c:825 +#: ../src/pulse/channelmap.c:768 msgid "Surround 5.0" msgstr "Surround 5.0" -#: ../src/pulse/channelmap.c:831 +#: ../src/pulse/channelmap.c:774 msgid "Surround 5.1" msgstr "Surround 5.1" -#: ../src/pulse/channelmap.c:838 +#: ../src/pulse/channelmap.c:781 msgid "Surround 7.1" msgstr "Surround 7.1" @@ -1280,173 +1264,168 @@ msgstr "waitpid(): %s" msgid "Received message for unknown extension '%s'" msgstr "Nachricht für unbekannte Erweiterung '%s' erhalten" -#: ../src/utils/pacat.c:94 +#: ../src/utils/pacat.c:107 +#, c-format +msgid "Failed to drain stream: %s\n" +msgstr "Entleeren des Streams fehlgeschlagen: %s\n" + +#: ../src/utils/pacat.c:112 +msgid "Playback stream drained.\n" +msgstr "Wiedergabe-Stream entleert.\n" + +#: ../src/utils/pacat.c:122 +msgid "Draining connection to server.\n" +msgstr "Draining connection to server.\n" + +#: ../src/utils/pacat.c:135 +#, c-format +msgid "pa_stream_drain(): %s\n" +msgstr "pa_stream_drain(): %s\n" + +#: ../src/utils/pacat.c:158 #, c-format msgid "pa_stream_write() failed: %s\n" msgstr "pa_stream_write() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:133 +#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 #, c-format msgid "pa_stream_peek() failed: %s\n" msgstr "pa_stream_peek() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:169 -#, c-format +#: ../src/utils/pacat.c:302 msgid "Stream successfully created.\n" msgstr "Stream wurde erfolgreich erstellt.\n" -#: ../src/utils/pacat.c:172 +#: ../src/utils/pacat.c:305 #, c-format msgid "pa_stream_get_buffer_attr() failed: %s\n" msgstr "pa_stream_get_buffer_attr() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:176 +#: ../src/utils/pacat.c:309 #, c-format msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgstr "Pufferdaten: maxlenght=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:179 +#: ../src/utils/pacat.c:312 #, c-format msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgstr "Pufferdaten: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:183 +#: ../src/utils/pacat.c:316 #, c-format msgid "Using sample spec '%s', channel map '%s'.\n" msgstr "Benutze Sample-Angabe '%s', Kanalzuordnung '%s'.\n" -#: ../src/utils/pacat.c:187 +#: ../src/utils/pacat.c:320 #, c-format msgid "Connected to device %s (%u, %ssuspended).\n" msgstr "Verbunden mit Gerät %s (%u, %sausgesetzt).\n" -#: ../src/utils/pacat.c:197 +#: ../src/utils/pacat.c:330 #, c-format msgid "Stream error: %s\n" msgstr "Stream-Fehler: %s\n" -#: ../src/utils/pacat.c:207 +#: ../src/utils/pacat.c:340 #, c-format msgid "Stream device suspended.%s \n" msgstr "Stream-Gerät ausgesetzt.%s\n" -#: ../src/utils/pacat.c:209 +#: ../src/utils/pacat.c:342 #, c-format msgid "Stream device resumed.%s \n" msgstr "Stream-Gerät reaktiviert.%s\n" -#: ../src/utils/pacat.c:217 +#: ../src/utils/pacat.c:350 #, c-format msgid "Stream underrun.%s \n" msgstr "Stream unterlaufen.%s \n" -#: ../src/utils/pacat.c:224 +#: ../src/utils/pacat.c:357 #, c-format msgid "Stream overrun.%s \n" msgstr "Stream überlief.%s \n" -#: ../src/utils/pacat.c:231 +#: ../src/utils/pacat.c:364 #, c-format msgid "Stream started.%s \n" msgstr "Stream gestartet: %s\n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 #, c-format msgid "Stream moved to device %s (%u, %ssuspended).%s \n" msgstr "Stream an Gerät %s übergeben (%u, %sausgesetzt).%s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 msgid "not " msgstr "nicht " -#: ../src/utils/pacat.c:245 +#: ../src/utils/pacat.c:378 #, c-format msgid "Stream buffer attributes changed.%s \n" msgstr "Stream-Zwischenspeicher-Attribute geändert.%s \n" -#: ../src/utils/pacat.c:278 +#: ../src/utils/pacat.c:411 #, c-format msgid "Connection established.%s \n" msgstr "Verbindung hergestellt.%s \n" -#: ../src/utils/pacat.c:281 +#: ../src/utils/pacat.c:414 #, c-format msgid "pa_stream_new() failed: %s\n" msgstr "pa_stream_new() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:442 #, c-format msgid "pa_stream_connect_playback() failed: %s\n" msgstr "pa_stream_connect_playback() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:315 +#: ../src/utils/pacat.c:448 #, c-format msgid "pa_stream_connect_record() failed: %s\n" msgstr "pa_stream_connect_record() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:329 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:762 ../src/utils/paplay.c:183 +#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 #, c-format msgid "Connection failure: %s\n" msgstr "Verbindungsfehler: %s\n" -#: ../src/utils/pacat.c:349 ../src/utils/paplay.c:75 -#, c-format -msgid "Failed to drain stream: %s\n" -msgstr "Entleeren des Streams fehlgeschlagen: %s\n" - -#: ../src/utils/pacat.c:354 ../src/utils/paplay.c:80 -#, c-format -msgid "Playback stream drained.\n" -msgstr "Wiedergabe-Stream entleert.\n" - -#: ../src/utils/pacat.c:364 ../src/utils/paplay.c:92 -#, c-format -msgid "Draining connection to server.\n" -msgstr "Draining connection to server.\n" - -#: ../src/utils/pacat.c:390 -#, c-format +#: ../src/utils/pacat.c:495 msgid "Got EOF.\n" msgstr "EOF empfangen.\n" -#: ../src/utils/pacat.c:396 -#, c-format -msgid "pa_stream_drain(): %s\n" -msgstr "pa_stream_drain(): %s\n" - -#: ../src/utils/pacat.c:406 +#: ../src/utils/pacat.c:500 #, c-format msgid "read() failed: %s\n" msgstr "read() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:438 +#: ../src/utils/pacat.c:532 #, c-format msgid "write() failed: %s\n" msgstr "write() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:459 -#, c-format +#: ../src/utils/pacat.c:553 msgid "Got signal, exiting.\n" msgstr "Signal empfangen, beende.\n" -#: ../src/utils/pacat.c:473 +#: ../src/utils/pacat.c:567 #, c-format msgid "Failed to get latency: %s\n" msgstr "Erhalten der Latenz fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:478 +#: ../src/utils/pacat.c:572 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "Zeit: %0.3f sec; Latenz: %0.0f usec. \r" -#: ../src/utils/pacat.c:498 +#: ../src/utils/pacat.c:592 #, c-format msgid "pa_stream_update_timing_info() failed: %s\n" msgstr "pa_stream_update_timing_info() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:511 -#, c-format +#: ../src/utils/pacat.c:605 +#, fuzzy, c-format msgid "" "%s [options]\n" "\n" @@ -1472,8 +1451,10 @@ msgid "" "44100)\n" " --format=SAMPLEFORMAT The sample type, one of s16le, " "s16be, u8, float32le,\n" -" float32be, ulaw, alaw, s32le, s32be " -"(defaults to s16ne)\n" +" float32be, ulaw, alaw, s32le, s32be, " +"s24le, s24be,\n" +" s24-32le, s24-32be (defaults to " +"s16ne)\n" " --channels=CHANNELS The number of channels, 1 for mono, " "2 for stereo\n" " (defaults to 2)\n" @@ -1496,6 +1477,11 @@ msgid "" "bytes.\n" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" +" --property=PROPERTY=VALUE Set the specified property to the " +"specified value.\n" +" --raw Record/play raw PCM data.\n" +" --file-format=FFORMAT Record/play formatted PCM data.\n" +" --list-file-formats List available file formats.\n" msgstr "" "%s [options]\n" "\n" @@ -1537,7 +1523,7 @@ msgstr "" " --process-time=BYTES Diese Prozesszeit pro Anfrage " "verwenden.\n" -#: ../src/utils/pacat.c:612 +#: ../src/utils/pacat.c:727 #, c-format msgid "" "pacat %s\n" @@ -1548,88 +1534,133 @@ msgstr "" "Kompiliert mit libpulse %s\n" "Gelinkt mit libpulse %s\n" -#: ../src/utils/pacat.c:669 +#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "Ungültige Kanal-Zuweisung '%s'\n" + +#: ../src/utils/pacat.c:776 +#, fuzzy, c-format +msgid "Invalid stream name '%s'\n" +msgstr "Ungültige Resample-Methode '%s'." + +#: ../src/utils/pacat.c:813 #, c-format msgid "Invalid channel map '%s'\n" msgstr "Ungültige Kanal-Zuweisung '%s'\n" -#: ../src/utils/pacat.c:698 +#: ../src/utils/pacat.c:842 #, c-format msgid "Invalid latency specification '%s'\n" msgstr "Ungültige Latenz-Angaben '%s'\n" -#: ../src/utils/pacat.c:705 +#: ../src/utils/pacat.c:849 #, c-format msgid "Invalid process time specification '%s'\n" msgstr "Ungültige Prozesszeit-Angaben '%s'\n" -#: ../src/utils/pacat.c:716 +#: ../src/utils/pacat.c:861 +#, fuzzy, c-format +msgid "Invalid property '%s'\n" +msgstr "Ungültige Resample-Methode '%s'." + +#: ../src/utils/pacat.c:878 #, c-format +msgid "Unknown file format %s." +msgstr "" + +#: ../src/utils/pacat.c:897 msgid "Invalid sample specification\n" msgstr "Ungültige Sample-Angaben\n" -#: ../src/utils/pacat.c:721 +#: ../src/utils/pacat.c:907 #, c-format +msgid "open(): %s\n" +msgstr "open(): %s\n" + +#: ../src/utils/pacat.c:912 +#, c-format +msgid "dup2(): %s\n" +msgstr "dup2(): %s\n" + +#: ../src/utils/pacat.c:919 +msgid "Too many arguments.\n" +msgstr "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" + +#: ../src/utils/pacat.c:950 +#, fuzzy +msgid "Failed to open audio file.\n" +msgstr "Öffnen der Audio-Datei fehlgeschlagen.\n" + +#: ../src/utils/pacat.c:956 +msgid "" +"Warning: specified sample specification will be overwritten with " +"specification from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "Beziehen der Sample-Informationen fehlgeschlagen: %s\n" + +#: ../src/utils/pacat.c:968 +msgid "Warning: Failed to determine channel map from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:979 msgid "Channel map doesn't match sample specification\n" msgstr "Kanalzuordnung entspricht nicht Einstellungen des Samples\n" -#: ../src/utils/pacat.c:728 -#, c-format -msgid "Opening a %s stream with sample specification '%s'.\n" +#: ../src/utils/pacat.c:990 +msgid "Warning: failed to write channel map to file.\n" +msgstr "" + +#: ../src/utils/pacat.c:1005 +#, fuzzy, c-format +msgid "" +"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" msgstr "Öffne eine %s-Stream mit Sample-Angabe '%s'.\n" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "recording" msgstr "aufnehmen" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "playback" msgstr "abspielen" -#: ../src/utils/pacat.c:736 -#, c-format -msgid "open(): %s\n" -msgstr "open(): %s\n" - -#: ../src/utils/pacat.c:741 -#, c-format -msgid "dup2(): %s\n" -msgstr "dup2(): %s\n" - -#: ../src/utils/pacat.c:751 -#, c-format -msgid "Too many arguments.\n" -msgstr "Zu viele Argumente.\n" - -#: ../src/utils/pacat.c:764 ../src/utils/pasuspender.c:280 -#: ../src/utils/pactl.c:1017 ../src/utils/paplay.c:381 +#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 +#: ../src/utils/pactl.c:1104 #, c-format msgid "pa_mainloop_new() failed.\n" msgstr "pa_mainloop_new() fehlgeschlagen.\n" -#: ../src/utils/pacat.c:785 -#, c-format +#: ../src/utils/pacat.c:1051 msgid "io_new() failed.\n" msgstr "io_new() fehlgeschlagen.\n" -#: ../src/utils/pacat.c:791 ../src/utils/pasuspender.c:293 -#: ../src/utils/pactl.c:1031 ../src/utils/paplay.c:396 +#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 +#: ../src/utils/pactl.c:1116 #, c-format msgid "pa_context_new() failed.\n" msgstr "pa_context_new() fehlgeschlagen.\n" -#: ../src/utils/pacat.c:799 +#: ../src/utils/pacat.c:1066 #, fuzzy, c-format msgid "pa_context_connect() failed: %s\n" msgstr "pa_context_new() fehlgeschlagen: %s" -#: ../src/utils/pacat.c:810 -#, c-format +#: ../src/utils/pacat.c:1077 msgid "time_new() failed.\n" msgstr "time_new() fehlgeschlagen.\n" -#: ../src/utils/pacat.c:817 ../src/utils/pasuspender.c:301 -#: ../src/utils/pactl.c:1042 ../src/utils/paplay.c:410 +#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 +#: ../src/utils/pactl.c:1127 #, c-format msgid "pa_mainloop_run() failed.\n" msgstr "pa_mainloop_run() fehlgeschlagen.\n" @@ -1659,8 +1690,7 @@ msgstr "Resume fehlgeschlagen: %s\n" msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "WARNUNG: Sound-Server läuft nicht lokal, nicht ausgesetzt.\n" -#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:768 -#: ../src/utils/paplay.c:191 +#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" msgstr "SIGINT empfangen, beende.\n" @@ -1688,7 +1718,7 @@ msgstr "" " -s, --server=SERVER Name des Zielservers\n" "\n" -#: ../src/utils/pasuspender.c:251 +#: ../src/utils/pasuspender.c:248 #, c-format msgid "" "pasuspender %s\n" @@ -1699,32 +1729,32 @@ msgstr "" "kompiliert mit libpulse %s\n" "Gelinkt mit libpulse %s\n" -#: ../src/utils/pactl.c:108 +#: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" msgstr "Beziehen der Statistik fehlgeschlagen: %s\n" -#: ../src/utils/pactl.c:114 +#: ../src/utils/pactl.c:134 #, c-format msgid "Currently in use: %u blocks containing %s bytes total.\n" msgstr "Momentane Nutzung: %u Blöcke mit insgesamt %s Bytes.\n" -#: ../src/utils/pactl.c:117 +#: ../src/utils/pactl.c:137 #, c-format msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n" msgstr "Während gesamter Laufzeit: %u Blöcke mit insgesamt %s Bytes.\n" -#: ../src/utils/pactl.c:120 +#: ../src/utils/pactl.c:140 #, c-format msgid "Sample cache size: %s\n" msgstr "Sample-Pufferspeichergrösse: %s\n" -#: ../src/utils/pactl.c:129 +#: ../src/utils/pactl.c:149 #, c-format msgid "Failed to get server information: %s\n" msgstr "Beziehen der Server-Information fehlgeschlagen: %s\n" -#: ../src/utils/pactl.c:137 +#: ../src/utils/pactl.c:157 #, c-format msgid "" "User name: %s\n" @@ -1747,12 +1777,12 @@ msgstr "" "-Standard-Quelle: %s\n" "Cookie: %08x\n" -#: ../src/utils/pactl.c:178 +#: ../src/utils/pactl.c:198 #, c-format msgid "Failed to get sink information: %s\n" msgstr "Erhalten der Sink-Informationen fehlgeschlagen: %s\n" -#: ../src/utils/pactl.c:194 +#: ../src/utils/pactl.c:214 #, c-format msgid "" "Sink #%u\n" @@ -1791,12 +1821,22 @@ msgstr "" "\tEigenschaften:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:258 +#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 +#, fuzzy, c-format +msgid "\tPorts:\n" +msgstr "\tProfile:\n" + +#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 +#, fuzzy, c-format +msgid "\tActive Port: %s\n" +msgstr "\tAktive Profile: %s\n" + +#: ../src/utils/pactl.c:290 #, c-format msgid "Failed to get source information: %s\n" msgstr "Beziehen der Quellen-Informationen fehlgeschlagen: %s\n" -#: ../src/utils/pactl.c:274 +#: ../src/utils/pactl.c:306 #, c-format msgid "" "Source #%u\n" @@ -1835,20 +1875,20 @@ msgstr "" "\tEigenschaften:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:306 ../src/utils/pactl.c:350 ../src/utils/pactl.c:385 -#: ../src/utils/pactl.c:422 ../src/utils/pactl.c:481 ../src/utils/pactl.c:482 -#: ../src/utils/pactl.c:492 ../src/utils/pactl.c:536 ../src/utils/pactl.c:537 -#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:586 ../src/utils/pactl.c:587 -#: ../src/utils/pactl.c:594 +#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429 +#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526 +#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581 +#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631 +#: ../src/utils/pactl.c:638 msgid "n/a" msgstr "k. A." -#: ../src/utils/pactl.c:324 +#: ../src/utils/pactl.c:368 #, c-format msgid "Failed to get module information: %s\n" msgstr "Beziehen der Modul-Information fehlgeschlagen: %s\n" -#: ../src/utils/pactl.c:342 +#: ../src/utils/pactl.c:386 #, c-format msgid "" "Module #%u\n" @@ -1865,12 +1905,12 @@ msgstr "" "\tEigenschaften:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:361 +#: ../src/utils/pactl.c:405 #, c-format msgid "Failed to get client information: %s\n" msgstr "Beziehen der Client-Information fehlgeschlagen: %s\n" -#: ../src/utils/pactl.c:379 +#: ../src/utils/pactl.c:423 #, c-format msgid "" "Client #%u\n" @@ -1885,12 +1925,12 @@ msgstr "" "\tEigenschaften:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:396 +#: ../src/utils/pactl.c:440 #, c-format msgid "Failed to get card information: %s\n" msgstr "Beziehen der Karten-Information fehlgeschlagen: %s\n" -#: ../src/utils/pactl.c:414 +#: ../src/utils/pactl.c:458 #, c-format msgid "" "Card #%u\n" @@ -1907,22 +1947,22 @@ msgstr "" "\tEigenschaften:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:428 +#: ../src/utils/pactl.c:472 #, c-format msgid "\tProfiles:\n" msgstr "\tProfile:\n" -#: ../src/utils/pactl.c:434 +#: ../src/utils/pactl.c:478 #, c-format msgid "\tActive Profile: %s\n" msgstr "\tAktive Profile: %s\n" -#: ../src/utils/pactl.c:445 +#: ../src/utils/pactl.c:489 #, c-format msgid "Failed to get sink input information: %s\n" msgstr "Konnte Sink-Eingabe-Informationen nicht holen: %s\n" -#: ../src/utils/pactl.c:464 +#: ../src/utils/pactl.c:508 #, c-format msgid "" "Sink Input #%u\n" @@ -1959,12 +1999,12 @@ msgstr "" "\tEigenschaften:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:503 +#: ../src/utils/pactl.c:547 #, c-format msgid "Failed to get source output information: %s\n" msgstr "Konnte Informationen über Quell-Ausgabe nicht holen: %s\n" -#: ../src/utils/pactl.c:523 +#: ../src/utils/pactl.c:567 #, c-format msgid "" "Source Output #%u\n" @@ -1993,12 +2033,12 @@ msgstr "" "\tEigenschaften:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:554 +#: ../src/utils/pactl.c:598 #, c-format msgid "Failed to get sample information: %s\n" msgstr "Beziehen der Sample-Informationen fehlgeschlagen: %s\n" -#: ../src/utils/pactl.c:572 +#: ../src/utils/pactl.c:616 #, c-format msgid "" "Sample #%u\n" @@ -2029,23 +2069,22 @@ msgstr "" "\tEigenschaften:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:602 ../src/utils/pactl.c:612 +#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 #, c-format msgid "Failure: %s\n" msgstr "Fehlgeschlagen: %s\n" -#: ../src/utils/pactl.c:636 +#: ../src/utils/pactl.c:680 #, c-format msgid "Failed to upload sample: %s\n" msgstr "Hochladen des Sample fehlgeschlagen: %s\n" -#: ../src/utils/pactl.c:653 -#, c-format +#: ../src/utils/pactl.c:697 msgid "Premature end of file\n" msgstr "Dateiende ist zu früh aufgetreten\n" -#: ../src/utils/pactl.c:774 -#, c-format +#: ../src/utils/pactl.c:826 +#, fuzzy, c-format msgid "" "%s [options] stat\n" "%s [options] list\n" @@ -2060,6 +2099,8 @@ msgid "" "%s [options] suspend-sink [SINK] 1|0\n" "%s [options] suspend-source [SOURCE] 1|0\n" "%s [options] set-card-profile [CARD] [PROFILE] \n" +"%s [options] set-sink-port [SINK] [PORT] \n" +"%s [options] set-source-port [SOURCE] [PORT] \n" "\n" " -h, --help Show this help\n" " --version Show version\n" @@ -2089,7 +2130,7 @@ msgstr "" " -s, --server=SERVER Name des Zielservers\n" " -n, --client-name=NAME Rufname des Clients auf dem Server\n" -#: ../src/utils/pactl.c:826 +#: ../src/utils/pactl.c:880 #, c-format msgid "" "pactl %s\n" @@ -2100,49 +2141,45 @@ msgstr "" "Kompiliert mit libpulse %s\n" "Gelinkt mit libpulse %s\n" -#: ../src/utils/pactl.c:865 -#, c-format +#: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "Geben Sie eine zu öffnende Sample-Datei an\n" -#: ../src/utils/pactl.c:887 -#, c-format +#: ../src/utils/pactl.c:939 msgid "Failed to open sound file.\n" msgstr "Öffnen der Audio-Datei fehlgeschlagen.\n" -#: ../src/utils/pactl.c:899 -#, c-format +#: ../src/utils/pactl.c:951 +#, fuzzy +msgid "Warning: Failed to determine sample specification from file.\n" +msgstr "Öffne eine %s-Stream mit Sample-Angabe '%s'.\n" + +#: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" msgstr "Sie müssen eine abzuspielende Sample-Datei angeben\n" -#: ../src/utils/pactl.c:911 -#, c-format +#: ../src/utils/pactl.c:973 msgid "You have to specify a sample name to remove\n" msgstr "Sie müssen eine zu löschende Sample-Datei angeben\n" -#: ../src/utils/pactl.c:919 -#, c-format +#: ../src/utils/pactl.c:982 msgid "You have to specify a sink input index and a sink\n" msgstr "Sie müssen einen Sink-Eingabe-Indexwert und einen Sink angeben\n" -#: ../src/utils/pactl.c:928 -#, c-format +#: ../src/utils/pactl.c:992 msgid "You have to specify a source output index and a source\n" msgstr "" "Sie müssen eine Indexwert für die Quell-Ausgabe und eine Quelle angeben\n" -#: ../src/utils/pactl.c:942 -#, c-format +#: ../src/utils/pactl.c:1007 msgid "You have to specify a module name and arguments.\n" msgstr "Sie müssen einen Modulnamen angeben und Argumente übergeben.\n" -#: ../src/utils/pactl.c:962 -#, c-format +#: ../src/utils/pactl.c:1027 msgid "You have to specify a module index\n" msgstr "Sie müssen einen Indexwert für ein Modul angeben\n" -#: ../src/utils/pactl.c:972 -#, c-format +#: ../src/utils/pactl.c:1037 msgid "" "You may not specify more than one sink. You have to specify a boolean " "value.\n" @@ -2150,8 +2187,7 @@ msgstr "" "Sie sollten nur eine Senke angeben. Sie müssen zumindest einen bool'schen " "Wert übergeben.\n" -#: ../src/utils/pactl.c:985 -#, c-format +#: ../src/utils/pactl.c:1050 msgid "" "You may not specify more than one source. You have to specify a boolean " "value.\n" @@ -2159,17 +2195,25 @@ msgstr "" "Sie sollten nur eine Quelle angeben. Sie müssen zumindest einen bool'schen " "Wert übergeben.\n" -#: ../src/utils/pactl.c:997 -#, c-format +#: ../src/utils/pactl.c:1062 msgid "You have to specify a card name/index and a profile name\n" msgstr "Sie müssen einen Karten-Name/Indexwert und einen Profilnamen angeben\n" -#: ../src/utils/pactl.c:1012 -#, c-format +#: ../src/utils/pactl.c:1073 +#, fuzzy +msgid "You have to specify a sink name/index and a port name\n" +msgstr "Sie müssen einen Karten-Name/Indexwert und einen Profilnamen angeben\n" + +#: ../src/utils/pactl.c:1084 +#, fuzzy +msgid "You have to specify a source name/index and a port name\n" +msgstr "Sie müssen einen Karten-Name/Indexwert und einen Profilnamen angeben\n" + +#: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "Kein gültiger Befehl angegeben.\n" -#: ../src/utils/pactl.c:1037 ../src/utils/paplay.c:404 +#: ../src/utils/pactl.c:1122 #, c-format msgid "pa_context_connect() failed: %s" msgstr "pa_context_new() fehlgeschlagen: %s" @@ -2253,126 +2297,48 @@ msgstr "Laden der Cookie-Daten fehlgeschlagen\n" msgid "Not yet implemented.\n" msgstr "Noch nicht implementiert.\n" -#: ../src/utils/pacmd.c:64 +#: ../src/utils/pacmd.c:61 +msgid "No PulseAudio daemon running, or not running as session daemon." +msgstr "" + +#: ../src/utils/pacmd.c:66 #, c-format msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s" msgstr "socket(PF_UNIX, SOCK_STREAM, 0): %s" -#: ../src/utils/pacmd.c:81 +#: ../src/utils/pacmd.c:83 #, c-format msgid "connect(): %s" msgstr "connect(): %s" -#: ../src/utils/pacmd.c:89 +#: ../src/utils/pacmd.c:91 msgid "Failed to kill PulseAudio daemon." msgstr "Terminieren des PulseAudio-Daemon fehlgeschlagen." -#: ../src/utils/pacmd.c:97 +#: ../src/utils/pacmd.c:99 msgid "Daemon not responding." msgstr "Daemon antwortet nicht." -#: ../src/utils/pacmd.c:144 +#: ../src/utils/pacmd.c:146 #, c-format msgid "select(): %s" msgstr "select(): %s" -#: ../src/utils/pacmd.c:154 ../src/utils/pacmd.c:171 +#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173 #, c-format msgid "read(): %s" msgstr "read(): %s" -#: ../src/utils/pacmd.c:187 ../src/utils/pacmd.c:201 +#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203 #, c-format msgid "write(): %s" msgstr "write(): %s" -#: ../src/utils/paplay.c:139 -#, c-format -msgid "Stream successfully created\n" -msgstr "Stream erfolgreich erzeugt\n" - -#: ../src/utils/paplay.c:144 -#, c-format -msgid "Stream errror: %s\n" -msgstr "Stream-Fehler: %s\n" - -#: ../src/utils/paplay.c:165 -#, c-format -msgid "Connection established.\n" -msgstr "Verbindung hergestellt.\n" - -#: ../src/utils/paplay.c:198 -#, c-format -msgid "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" -msgstr "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Zeige diese Hilfe\n" -" --version Zeige Version\n" -"\n" -" -v, --verbose Ausführliche Meldungen\n" -"\n" -" -s, --server=SERVER Name des Zielservers\n" -" -d, --device=DEVICE Name des Ziel-Sink\n" -" -n, --client-name=NAME Rufname des Clients auf dem Server\n" -" --stream-name=NAME Rufname des Streams auf dem Server\n" -" --volume=VOLUME Initiale (lineare) Lautstärke " -"zwischen 0...65536\n" -" --channel-map=CHANNELMAP Diese Kanalzuordnung nutzen\n" - -#: ../src/utils/paplay.c:255 -#, c-format -msgid "" -"paplay %s\n" -"Compiled with libpulse %s\n" -"Linked with libpulse %s\n" -msgstr "" -"paplay %s\n" -"Kompliert mit libpulse %s\n" -"Gelinkt mit libpulse %s\n" - -#: ../src/utils/paplay.c:292 -#, c-format -msgid "Invalid channel map\n" -msgstr "Ungültige Kanal-Zuweisung\n" - -#: ../src/utils/paplay.c:314 -#, c-format -msgid "Failed to open file '%s'\n" -msgstr "Öffnen der Datei '%s' fehlgeschlagen\n" - -#: ../src/utils/paplay.c:350 -#, c-format -msgid "Channel map doesn't match file.\n" -msgstr "Kanal-Zuweisung stimmt mit Datei nicht überein.\n" - -#: ../src/utils/paplay.c:376 -#, c-format -msgid "Using sample spec '%s'\n" -msgstr "Sampling-Angabe '%s' wird benutzt\n" - #: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 msgid "Cannot access autospawn lock." msgstr "Fehler beim Zugriff auf Autostart -Sperre." -#: ../src/modules/alsa/alsa-sink.c:393 ../src/modules/alsa/alsa-sink.c:541 +#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2390,7 +2356,7 @@ msgstr "" "von snd_pcm_avail() liefert 0 oder einen anderen Wert zurück, der < " "min_avail ist." -#: ../src/modules/alsa/alsa-source.c:377 ../src/modules/alsa/alsa-source.c:516 +#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2408,38 +2374,132 @@ msgstr "" "von snd_pcm_avail() liefert 0 oder einen anderen Wert zurück, der < " "min_avail ist." -#: ../src/modules/alsa/module-alsa-card.c:114 -#, c-format -msgid "Output %s + Input %s" -msgstr "Ausgabe %s + Eingabe %s" - -#: ../src/modules/alsa/module-alsa-card.c:117 -#, c-format -msgid "Output %s" -msgstr "Ausgang %s" - -#: ../src/modules/alsa/module-alsa-card.c:121 -#, c-format -msgid "Input %s" -msgstr "Eingang %s" - -#: ../src/modules/alsa/module-alsa-card.c:170 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2006 +#: ../src/modules/alsa/module-alsa-card.c:152 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 msgid "Off" msgstr "Aus" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1976 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 msgid "High Fidelity Playback (A2DP)" msgstr "High Fidelity Playback (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1991 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 msgid "Telephony Duplex (HSP/HFP)" msgstr "Telephony Duplex (HSP/HFP)" -#: ../src/modules/reserve-wrap.c:139 +#: ../src/modules/reserve-wrap.c:151 msgid "PulseAudio Sound Server" msgstr "PulseAudio Sound Server" +#~ msgid "Analog Mono" +#~ msgstr "Analog Mono" + +#~ msgid "Analog Stereo" +#~ msgstr "Analog Stereo" + +#~ msgid "Digital Stereo (IEC958)" +#~ msgstr "Digital Stereo (IEC958)" + +#~ msgid "Digital Stereo (HDMI)" +#~ msgstr "Digital Stereo (HDMI)" + +#~ msgid "Analog Surround 4.0" +#~ msgstr "Analog Surround 4.0" + +#~ msgid "Digital Surround 4.0 (IEC958/AC3)" +#~ msgstr "Digital Surround 4.0 (IEC958/AC3)" + +#~ msgid "Analog Surround 4.1" +#~ msgstr "Analog Surround 4.1" + +#~ msgid "Analog Surround 5.0" +#~ msgstr "Analog Surround 5.0" + +#~ msgid "Analog Surround 5.1" +#~ msgstr "Analog Surround 5.1" + +#~ msgid "Digital Surround 5.1 (IEC958/AC3)" +#~ msgstr "Digital Surround 5.1 (IEC958/AC3)" + +#~ msgid "Analog Surround 7.1" +#~ msgstr "Analog Surround 7.1" + +#~ msgid "Output %s + Input %s" +#~ msgstr "Ausgabe %s + Eingabe %s" + +#~ msgid "Output %s" +#~ msgstr "Ausgang %s" + +#~ msgid "Input %s" +#~ msgstr "Eingang %s" + +#~ msgid "Stream successfully created\n" +#~ msgstr "Stream erfolgreich erzeugt\n" + +#~ msgid "Stream errror: %s\n" +#~ msgstr "Stream-Fehler: %s\n" + +#~ msgid "Connection established.\n" +#~ msgstr "Verbindung hergestellt.\n" + +#~ msgid "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Show this help\n" +#~ " --version Show version\n" +#~ "\n" +#~ " -v, --verbose Enable verbose operation\n" +#~ "\n" +#~ " -s, --server=SERVER The name of the server to connect " +#~ "to\n" +#~ " -d, --device=DEVICE The name of the sink to connect " +#~ "to\n" +#~ " -n, --client-name=NAME How to call this client on the " +#~ "server\n" +#~ " --stream-name=NAME How to call this stream on the " +#~ "server\n" +#~ " --volume=VOLUME Specify the initial (linear) " +#~ "volume in range 0...65536\n" +#~ " --channel-map=CHANNELMAP Set the channel map to the use\n" +#~ msgstr "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Zeige diese Hilfe\n" +#~ " --version Zeige Version\n" +#~ "\n" +#~ " -v, --verbose Ausführliche Meldungen\n" +#~ "\n" +#~ " -s, --server=SERVER Name des Zielservers\n" +#~ " -d, --device=DEVICE Name des Ziel-Sink\n" +#~ " -n, --client-name=NAME Rufname des Clients auf dem " +#~ "Server\n" +#~ " --stream-name=NAME Rufname des Streams auf dem " +#~ "Server\n" +#~ " --volume=VOLUME Initiale (lineare) Lautstärke " +#~ "zwischen 0...65536\n" +#~ " --channel-map=CHANNELMAP Diese Kanalzuordnung nutzen\n" + +#~ msgid "" +#~ "paplay %s\n" +#~ "Compiled with libpulse %s\n" +#~ "Linked with libpulse %s\n" +#~ msgstr "" +#~ "paplay %s\n" +#~ "Kompliert mit libpulse %s\n" +#~ "Gelinkt mit libpulse %s\n" + +#~ msgid "Invalid channel map\n" +#~ msgstr "Ungültige Kanal-Zuweisung\n" + +#~ msgid "Failed to open file '%s'\n" +#~ msgstr "Öffnen der Datei '%s' fehlgeschlagen\n" + +#~ msgid "Channel map doesn't match file.\n" +#~ msgstr "Kanal-Zuweisung stimmt mit Datei nicht überein.\n" + +#~ msgid "Using sample spec '%s'\n" +#~ msgstr "Sampling-Angabe '%s' wird benutzt\n" + #, fuzzy #~ msgid "" #~ "Called SUID root and real-time and/or high-priority scheduling was " @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: el\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-21 23:02+0200\n" +"POT-Creation-Date: 2009-06-17 23:42+0200\n" "PO-Revision-Date: 2008-08-22 19:40+0300\n" "Last-Translator: Dimitris Glezos <dimitris@glezos.com>\n" "Language-Team: Greek <fedora-trans-el@redhat.com>\n" @@ -16,51 +16,7 @@ msgstr "" "X-Generator: KAider 0.1\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../src/modules/alsa/alsa-util.c:532 -msgid "Analog Mono" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:540 -msgid "Analog Stereo" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:548 -msgid "Digital Stereo (IEC958)" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:556 -msgid "Digital Stereo (HDMI)" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:565 -msgid "Analog Surround 4.0" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:574 -msgid "Digital Surround 4.0 (IEC958/AC3)" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:584 -msgid "Analog Surround 4.1" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:594 -msgid "Analog Surround 5.0" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:604 -msgid "Analog Surround 5.1" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:614 -msgid "Digital Surround 5.1 (IEC958/AC3)" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:625 -msgid "Analog Surround 7.1" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:1646 +#: ../src/modules/alsa/alsa-util.c:1015 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -69,7 +25,7 @@ msgid "" "to the ALSA developers." msgstr "" -#: ../src/modules/alsa/alsa-util.c:1687 +#: ../src/modules/alsa/alsa-util.c:1056 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -78,7 +34,7 @@ msgid "" "to the ALSA developers." msgstr "" -#: ../src/modules/alsa/alsa-util.c:1734 +#: ../src/modules/alsa/alsa-util.c:1103 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -87,11 +43,24 @@ msgid "" "to the ALSA developers." msgstr "" -#: ../src/pulsecore/sink.c:2141 +#: ../src/modules/module-ladspa-sink.c:49 +msgid "Virtual LADSPA sink" +msgstr "" + +#: ../src/modules/module-ladspa-sink.c:53 +msgid "" +"sink_name=<name for the sink> sink_properties=<properties for the sink> " +"master=<name of sink to filter> format=<sample format> rate=<sample rate> " +"channels=<number of channels> channel_map=<channel map> plugin=<ladspa " +"plugin name> label=<ladspa plugin label> control=<comma seperated list of " +"input control values>" +msgstr "" + +#: ../src/pulsecore/sink.c:2394 msgid "Internal Audio" msgstr "" -#: ../src/pulsecore/sink.c:2147 +#: ../src/pulsecore/sink.c:2400 msgid "Modem" msgstr "" @@ -161,104 +130,104 @@ msgstr "" msgid "PolicyKit responded with '%s'" msgstr "" -#: ../src/daemon/main.c:138 +#: ../src/daemon/main.c:142 #, c-format msgid "Got signal %s." msgstr "" -#: ../src/daemon/main.c:165 +#: ../src/daemon/main.c:169 msgid "Exiting." msgstr "Έξοδος." -#: ../src/daemon/main.c:183 +#: ../src/daemon/main.c:187 #, c-format msgid "Failed to find user '%s'." msgstr "Αποτυχία εÏÏεσης χÏήστη '%s'." -#: ../src/daemon/main.c:188 +#: ../src/daemon/main.c:192 #, c-format msgid "Failed to find group '%s'." msgstr "Αποτυχία εÏÏεσης ομάδας χÏηστών '%s'." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:196 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "" -#: ../src/daemon/main.c:197 +#: ../src/daemon/main.c:201 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "" -#: ../src/daemon/main.c:202 +#: ../src/daemon/main.c:206 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "" -#: ../src/daemon/main.c:205 ../src/daemon/main.c:210 +#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 #, c-format msgid "Failed to create '%s': %s" msgstr "" -#: ../src/daemon/main.c:217 +#: ../src/daemon/main.c:221 #, c-format msgid "Failed to change group list: %s" msgstr "" -#: ../src/daemon/main.c:233 +#: ../src/daemon/main.c:237 #, c-format msgid "Failed to change GID: %s" msgstr "" -#: ../src/daemon/main.c:249 +#: ../src/daemon/main.c:253 #, c-format msgid "Failed to change UID: %s" msgstr "" -#: ../src/daemon/main.c:263 +#: ../src/daemon/main.c:267 msgid "Successfully dropped root privileges." msgstr "" -#: ../src/daemon/main.c:271 +#: ../src/daemon/main.c:275 msgid "System wide mode unsupported on this platform." msgstr "" -#: ../src/daemon/main.c:289 +#: ../src/daemon/main.c:293 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "" -#: ../src/daemon/main.c:477 +#: ../src/daemon/main.c:481 msgid "Failed to parse command line." msgstr "" -#: ../src/daemon/main.c:501 +#: ../src/daemon/main.c:505 #, c-format msgid "We're in the group '%s', allowing high-priority scheduling." msgstr "" -#: ../src/daemon/main.c:508 +#: ../src/daemon/main.c:512 #, c-format msgid "We're in the group '%s', allowing real-time scheduling." msgstr "" -#: ../src/daemon/main.c:516 +#: ../src/daemon/main.c:520 msgid "PolicyKit grants us acquire-high-priority privilege." msgstr "" -#: ../src/daemon/main.c:519 +#: ../src/daemon/main.c:523 msgid "PolicyKit refuses acquire-high-priority privilege." msgstr "" -#: ../src/daemon/main.c:524 +#: ../src/daemon/main.c:528 msgid "PolicyKit grants us acquire-real-time privilege." msgstr "" -#: ../src/daemon/main.c:527 +#: ../src/daemon/main.c:531 msgid "PolicyKit refuses acquire-real-time privilege." msgstr "" -#: ../src/daemon/main.c:556 +#: ../src/daemon/main.c:560 #, c-format msgid "" "Called SUID root and real-time and/or high-priority scheduling was requested " @@ -271,201 +240,211 @@ msgid "" "the RLIMIT_NICE/RLIMIT_RTPRIO resource limits for this user." msgstr "" -#: ../src/daemon/main.c:581 +#: ../src/daemon/main.c:585 msgid "" "High-priority scheduling enabled in configuration but not allowed by policy." msgstr "" -#: ../src/daemon/main.c:610 +#: ../src/daemon/main.c:614 msgid "Successfully increased RLIMIT_RTPRIO" msgstr "" -#: ../src/daemon/main.c:613 +#: ../src/daemon/main.c:617 #, c-format msgid "RLIMIT_RTPRIO failed: %s" msgstr "" -#: ../src/daemon/main.c:620 +#: ../src/daemon/main.c:624 msgid "Giving up CAP_NICE" msgstr "" -#: ../src/daemon/main.c:627 +#: ../src/daemon/main.c:631 msgid "" "Real-time scheduling enabled in configuration but not allowed by policy." msgstr "" -#: ../src/daemon/main.c:688 +#: ../src/daemon/main.c:692 msgid "Daemon not running" msgstr "" -#: ../src/daemon/main.c:690 +#: ../src/daemon/main.c:694 #, c-format msgid "Daemon running as PID %u" msgstr "" -#: ../src/daemon/main.c:700 +#: ../src/daemon/main.c:704 #, c-format msgid "Failed to kill daemon: %s" msgstr "" -#: ../src/daemon/main.c:718 +#: ../src/daemon/main.c:722 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." msgstr "" -#: ../src/daemon/main.c:720 +#: ../src/daemon/main.c:724 msgid "Root privileges required." msgstr "" -#: ../src/daemon/main.c:725 +#: ../src/daemon/main.c:729 msgid "--start not supported for system instances." msgstr "" -#: ../src/daemon/main.c:730 +#: ../src/daemon/main.c:734 msgid "Running in system mode, but --disallow-exit not set!" msgstr "" -#: ../src/daemon/main.c:733 +#: ../src/daemon/main.c:737 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "" -#: ../src/daemon/main.c:736 +#: ../src/daemon/main.c:740 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "" -#: ../src/daemon/main.c:741 +#: ../src/daemon/main.c:745 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "" -#: ../src/daemon/main.c:768 +#: ../src/daemon/main.c:772 msgid "Failed to acquire stdio." msgstr "" -#: ../src/daemon/main.c:774 +#: ../src/daemon/main.c:778 #, c-format msgid "pipe failed: %s" msgstr "" -#: ../src/daemon/main.c:779 +#: ../src/daemon/main.c:783 #, c-format msgid "fork() failed: %s" msgstr "" -#: ../src/daemon/main.c:793 +#: ../src/daemon/main.c:797 #, c-format msgid "read() failed: %s" msgstr "" -#: ../src/daemon/main.c:799 +#: ../src/daemon/main.c:803 msgid "Daemon startup failed." msgstr "" -#: ../src/daemon/main.c:801 +#: ../src/daemon/main.c:805 msgid "Daemon startup successful." msgstr "" -#: ../src/daemon/main.c:871 +#: ../src/daemon/main.c:875 #, c-format msgid "This is PulseAudio %s" msgstr "Αυτό είναι το PulseAudio %s" -#: ../src/daemon/main.c:872 +#: ../src/daemon/main.c:876 #, c-format msgid "Compilation host: %s" msgstr "" -#: ../src/daemon/main.c:873 +#: ../src/daemon/main.c:877 #, c-format msgid "Compilation CFLAGS: %s" msgstr "" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:880 #, c-format msgid "Running on host: %s" msgstr "" -#: ../src/daemon/main.c:879 +#: ../src/daemon/main.c:883 #, c-format msgid "Found %u CPUs." msgstr "" -#: ../src/daemon/main.c:881 +#: ../src/daemon/main.c:885 #, c-format msgid "Page size is %lu bytes" msgstr "" -#: ../src/daemon/main.c:884 +#: ../src/daemon/main.c:888 msgid "Compiled with Valgrind support: yes" msgstr "" -#: ../src/daemon/main.c:886 +#: ../src/daemon/main.c:890 msgid "Compiled with Valgrind support: no" msgstr "" -#: ../src/daemon/main.c:889 +#: ../src/daemon/main.c:893 #, c-format msgid "Running in valgrind mode: %s" msgstr "" -#: ../src/daemon/main.c:892 +#: ../src/daemon/main.c:896 msgid "Optimized build: yes" msgstr "" -#: ../src/daemon/main.c:894 +#: ../src/daemon/main.c:898 msgid "Optimized build: no" msgstr "" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:902 msgid "NDEBUG defined, all asserts disabled." msgstr "" -#: ../src/daemon/main.c:900 +#: ../src/daemon/main.c:904 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:906 msgid "All asserts enabled." msgstr "" -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:910 msgid "Failed to get machine ID" msgstr "" -#: ../src/daemon/main.c:909 +#: ../src/daemon/main.c:913 #, c-format msgid "Machine ID is %s." msgstr "" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:917 #, c-format msgid "Session ID is %s." msgstr "" -#: ../src/daemon/main.c:919 +#: ../src/daemon/main.c:923 #, c-format msgid "Using runtime directory %s." msgstr "" -#: ../src/daemon/main.c:924 +#: ../src/daemon/main.c:928 #, c-format msgid "Using state directory %s." msgstr "" -#: ../src/daemon/main.c:927 +#: ../src/daemon/main.c:931 #, c-format msgid "Running in system mode: %s" msgstr "" -#: ../src/daemon/main.c:942 +#: ../src/daemon/main.c:934 +msgid "" +"OK, so you are running PA in system mode. Please note that you most likely " +"shouldn't be doing that.\n" +"If you do it nonetheless then it's your own fault if things don't work as " +"expected.\n" +"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " +"explanation why system mode is usually a bad idea." +msgstr "" + +#: ../src/daemon/main.c:951 msgid "pa_pid_file_create() failed." msgstr "" -#: ../src/daemon/main.c:954 +#: ../src/daemon/main.c:961 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "" -#: ../src/daemon/main.c:956 +#: ../src/daemon/main.c:963 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -473,31 +452,31 @@ msgstr "" "ΔικΠμου, ο πυÏήνας σου είναι για τα μπάζα! Η Ï€Ïόταση του σεφ σήμεÏα είναι " "Linux με ενεÏγοποιημÎνα τα high-resolution timers!" -#: ../src/daemon/main.c:970 +#: ../src/daemon/main.c:988 msgid "pa_core_new() failed." msgstr "" -#: ../src/daemon/main.c:1032 +#: ../src/daemon/main.c:1050 msgid "Failed to initialize daemon." msgstr "" -#: ../src/daemon/main.c:1037 +#: ../src/daemon/main.c:1055 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "" -#: ../src/daemon/main.c:1054 +#: ../src/daemon/main.c:1072 msgid "Daemon startup complete." msgstr "" -#: ../src/daemon/main.c:1060 +#: ../src/daemon/main.c:1078 msgid "Daemon shutdown initiated." msgstr "" -#: ../src/daemon/main.c:1082 +#: ../src/daemon/main.c:1100 msgid "Daemon terminated." msgstr "" -#: ../src/daemon/cmdline.c:121 +#: ../src/daemon/cmdline.c:115 #, c-format msgid "" "%s [options]\n" @@ -571,66 +550,66 @@ msgid "" " -n Don't load default script file\n" msgstr "" -#: ../src/daemon/cmdline.c:252 +#: ../src/daemon/cmdline.c:247 msgid "--daemonize expects boolean argument" msgstr "" -#: ../src/daemon/cmdline.c:259 +#: ../src/daemon/cmdline.c:254 msgid "--fail expects boolean argument" msgstr "" -#: ../src/daemon/cmdline.c:269 +#: ../src/daemon/cmdline.c:264 msgid "" "--log-level expects log level argument (either numeric in range 0..4 or one " "of debug, info, notice, warn, error)." msgstr "" -#: ../src/daemon/cmdline.c:281 +#: ../src/daemon/cmdline.c:276 msgid "--high-priority expects boolean argument" msgstr "" -#: ../src/daemon/cmdline.c:288 +#: ../src/daemon/cmdline.c:283 msgid "--realtime expects boolean argument" msgstr "" -#: ../src/daemon/cmdline.c:295 +#: ../src/daemon/cmdline.c:290 msgid "--disallow-module-loading expects boolean argument" msgstr "" -#: ../src/daemon/cmdline.c:302 +#: ../src/daemon/cmdline.c:297 msgid "--disallow-exit expects boolean argument" msgstr "" -#: ../src/daemon/cmdline.c:309 +#: ../src/daemon/cmdline.c:304 msgid "--use-pid-file expects boolean argument" msgstr "" -#: ../src/daemon/cmdline.c:326 +#: ../src/daemon/cmdline.c:321 msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgstr "" -#: ../src/daemon/cmdline.c:333 +#: ../src/daemon/cmdline.c:328 msgid "--log-time expects boolean argument" msgstr "" -#: ../src/daemon/cmdline.c:340 +#: ../src/daemon/cmdline.c:335 msgid "--log-meta expects boolean argument" msgstr "" -#: ../src/daemon/cmdline.c:359 +#: ../src/daemon/cmdline.c:354 #, c-format msgid "Invalid resample method '%s'." msgstr "" -#: ../src/daemon/cmdline.c:366 +#: ../src/daemon/cmdline.c:361 msgid "--system expects boolean argument" msgstr "" -#: ../src/daemon/cmdline.c:373 +#: ../src/daemon/cmdline.c:368 msgid "--no-cpu-limit expects boolean argument" msgstr "" -#: ../src/daemon/cmdline.c:380 +#: ../src/daemon/cmdline.c:375 msgid "--disable-shm expects boolean argument" msgstr "" @@ -669,77 +648,82 @@ msgstr "" msgid "Load Once: %s\n" msgstr "" -#: ../src/daemon/dumpmodules.c:77 +#: ../src/daemon/dumpmodules.c:75 +#, c-format +msgid "DEPRECATION WARNING: %s\n" +msgstr "" + +#: ../src/daemon/dumpmodules.c:79 #, c-format msgid "Path: %s\n" msgstr "" -#: ../src/daemon/daemon-conf.c:215 +#: ../src/daemon/daemon-conf.c:216 #, c-format msgid "[%s:%u] Invalid log target '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:231 +#: ../src/daemon/daemon-conf.c:232 #, c-format msgid "[%s:%u] Invalid log level '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:247 +#: ../src/daemon/daemon-conf.c:248 #, c-format msgid "[%s:%u] Invalid resample method '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:270 +#: ../src/daemon/daemon-conf.c:271 #, c-format msgid "[%s:%u] Invalid rlimit '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:277 +#: ../src/daemon/daemon-conf.c:278 #, c-format msgid "[%s:%u] rlimit not supported on this platform." msgstr "" -#: ../src/daemon/daemon-conf.c:293 +#: ../src/daemon/daemon-conf.c:294 #, c-format msgid "[%s:%u] Invalid sample format '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:311 +#: ../src/daemon/daemon-conf.c:312 #, c-format msgid "[%s:%u] Invalid sample rate '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:335 +#: ../src/daemon/daemon-conf.c:336 #, c-format msgid "[%s:%u] Invalid sample channels '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:353 +#: ../src/daemon/daemon-conf.c:354 #, c-format msgid "[%s:%u] Invalid channel map '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:371 +#: ../src/daemon/daemon-conf.c:372 #, c-format msgid "[%s:%u] Invalid number of fragments '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:389 +#: ../src/daemon/daemon-conf.c:390 #, c-format msgid "[%s:%u] Invalid fragment size '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:407 +#: ../src/daemon/daemon-conf.c:408 #, c-format msgid "[%s:%u] Invalid nice level '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:522 +#: ../src/daemon/daemon-conf.c:524 #, c-format msgid "Failed to open configuration file: %s" msgstr "" -#: ../src/daemon/daemon-conf.c:538 +#: ../src/daemon/daemon-conf.c:540 msgid "" "The specified default channel map has a different number of channels than " "the specified default number of channels." @@ -784,237 +768,237 @@ msgstr "" msgid "System policy prevents PulseAudio from acquiring real-time scheduling." msgstr "" -#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804 +#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "" -#: ../src/pulse/channelmap.c:105 +#: ../src/pulse/channelmap.c:107 msgid "Front Center" msgstr "" -#: ../src/pulse/channelmap.c:106 +#: ../src/pulse/channelmap.c:108 msgid "Front Left" msgstr "" -#: ../src/pulse/channelmap.c:107 +#: ../src/pulse/channelmap.c:109 msgid "Front Right" msgstr "" -#: ../src/pulse/channelmap.c:109 +#: ../src/pulse/channelmap.c:111 msgid "Rear Center" msgstr "" -#: ../src/pulse/channelmap.c:110 +#: ../src/pulse/channelmap.c:112 msgid "Rear Left" msgstr "" -#: ../src/pulse/channelmap.c:111 +#: ../src/pulse/channelmap.c:113 msgid "Rear Right" msgstr "" -#: ../src/pulse/channelmap.c:113 +#: ../src/pulse/channelmap.c:115 msgid "Low Frequency Emmiter" msgstr "" -#: ../src/pulse/channelmap.c:115 +#: ../src/pulse/channelmap.c:117 msgid "Front Left-of-center" msgstr "" -#: ../src/pulse/channelmap.c:116 +#: ../src/pulse/channelmap.c:118 msgid "Front Right-of-center" msgstr "" -#: ../src/pulse/channelmap.c:118 +#: ../src/pulse/channelmap.c:120 msgid "Side Left" msgstr "" -#: ../src/pulse/channelmap.c:119 +#: ../src/pulse/channelmap.c:121 msgid "Side Right" msgstr "" -#: ../src/pulse/channelmap.c:121 +#: ../src/pulse/channelmap.c:123 msgid "Auxiliary 0" msgstr "" -#: ../src/pulse/channelmap.c:122 +#: ../src/pulse/channelmap.c:124 msgid "Auxiliary 1" msgstr "" -#: ../src/pulse/channelmap.c:123 +#: ../src/pulse/channelmap.c:125 msgid "Auxiliary 2" msgstr "" -#: ../src/pulse/channelmap.c:124 +#: ../src/pulse/channelmap.c:126 msgid "Auxiliary 3" msgstr "" -#: ../src/pulse/channelmap.c:125 +#: ../src/pulse/channelmap.c:127 msgid "Auxiliary 4" msgstr "" -#: ../src/pulse/channelmap.c:126 +#: ../src/pulse/channelmap.c:128 msgid "Auxiliary 5" msgstr "" -#: ../src/pulse/channelmap.c:127 +#: ../src/pulse/channelmap.c:129 msgid "Auxiliary 6" msgstr "" -#: ../src/pulse/channelmap.c:128 +#: ../src/pulse/channelmap.c:130 msgid "Auxiliary 7" msgstr "" -#: ../src/pulse/channelmap.c:129 +#: ../src/pulse/channelmap.c:131 msgid "Auxiliary 8" msgstr "" -#: ../src/pulse/channelmap.c:130 +#: ../src/pulse/channelmap.c:132 msgid "Auxiliary 9" msgstr "" -#: ../src/pulse/channelmap.c:131 +#: ../src/pulse/channelmap.c:133 msgid "Auxiliary 10" msgstr "" -#: ../src/pulse/channelmap.c:132 +#: ../src/pulse/channelmap.c:134 msgid "Auxiliary 11" msgstr "" -#: ../src/pulse/channelmap.c:133 +#: ../src/pulse/channelmap.c:135 msgid "Auxiliary 12" msgstr "" -#: ../src/pulse/channelmap.c:134 +#: ../src/pulse/channelmap.c:136 msgid "Auxiliary 13" msgstr "" -#: ../src/pulse/channelmap.c:135 +#: ../src/pulse/channelmap.c:137 msgid "Auxiliary 14" msgstr "" -#: ../src/pulse/channelmap.c:136 +#: ../src/pulse/channelmap.c:138 msgid "Auxiliary 15" msgstr "" -#: ../src/pulse/channelmap.c:137 +#: ../src/pulse/channelmap.c:139 msgid "Auxiliary 16" msgstr "" -#: ../src/pulse/channelmap.c:138 +#: ../src/pulse/channelmap.c:140 msgid "Auxiliary 17" msgstr "" -#: ../src/pulse/channelmap.c:139 +#: ../src/pulse/channelmap.c:141 msgid "Auxiliary 18" msgstr "" -#: ../src/pulse/channelmap.c:140 +#: ../src/pulse/channelmap.c:142 msgid "Auxiliary 19" msgstr "" -#: ../src/pulse/channelmap.c:141 +#: ../src/pulse/channelmap.c:143 msgid "Auxiliary 20" msgstr "" -#: ../src/pulse/channelmap.c:142 +#: ../src/pulse/channelmap.c:144 msgid "Auxiliary 21" msgstr "" -#: ../src/pulse/channelmap.c:143 +#: ../src/pulse/channelmap.c:145 msgid "Auxiliary 22" msgstr "" -#: ../src/pulse/channelmap.c:144 +#: ../src/pulse/channelmap.c:146 msgid "Auxiliary 23" msgstr "" -#: ../src/pulse/channelmap.c:145 +#: ../src/pulse/channelmap.c:147 msgid "Auxiliary 24" msgstr "" -#: ../src/pulse/channelmap.c:146 +#: ../src/pulse/channelmap.c:148 msgid "Auxiliary 25" msgstr "" -#: ../src/pulse/channelmap.c:147 +#: ../src/pulse/channelmap.c:149 msgid "Auxiliary 26" msgstr "" -#: ../src/pulse/channelmap.c:148 +#: ../src/pulse/channelmap.c:150 msgid "Auxiliary 27" msgstr "" -#: ../src/pulse/channelmap.c:149 +#: ../src/pulse/channelmap.c:151 msgid "Auxiliary 28" msgstr "" -#: ../src/pulse/channelmap.c:150 +#: ../src/pulse/channelmap.c:152 msgid "Auxiliary 29" msgstr "" -#: ../src/pulse/channelmap.c:151 +#: ../src/pulse/channelmap.c:153 msgid "Auxiliary 30" msgstr "" -#: ../src/pulse/channelmap.c:152 +#: ../src/pulse/channelmap.c:154 msgid "Auxiliary 31" msgstr "" -#: ../src/pulse/channelmap.c:154 +#: ../src/pulse/channelmap.c:156 msgid "Top Center" msgstr "" -#: ../src/pulse/channelmap.c:156 +#: ../src/pulse/channelmap.c:158 msgid "Top Front Center" msgstr "" -#: ../src/pulse/channelmap.c:157 +#: ../src/pulse/channelmap.c:159 msgid "Top Front Left" msgstr "" -#: ../src/pulse/channelmap.c:158 +#: ../src/pulse/channelmap.c:160 msgid "Top Front Right" msgstr "" -#: ../src/pulse/channelmap.c:160 +#: ../src/pulse/channelmap.c:162 msgid "Top Rear Center" msgstr "" -#: ../src/pulse/channelmap.c:161 +#: ../src/pulse/channelmap.c:163 msgid "Top Rear Left" msgstr "" -#: ../src/pulse/channelmap.c:162 +#: ../src/pulse/channelmap.c:164 msgid "Top Rear Right" msgstr "" -#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167 -#: ../src/pulse/volume.c:170 ../src/pulse/volume.c:196 -#: ../src/pulse/volume.c:216 ../src/pulse/volume.c:246 +#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167 +#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265 +#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315 msgid "(invalid)" msgstr "" -#: ../src/pulse/channelmap.c:808 +#: ../src/pulse/channelmap.c:751 msgid "Stereo" msgstr "" -#: ../src/pulse/channelmap.c:813 +#: ../src/pulse/channelmap.c:756 msgid "Surround 4.0" msgstr "" -#: ../src/pulse/channelmap.c:819 +#: ../src/pulse/channelmap.c:762 msgid "Surround 4.1" msgstr "" -#: ../src/pulse/channelmap.c:825 +#: ../src/pulse/channelmap.c:768 msgid "Surround 5.0" msgstr "" -#: ../src/pulse/channelmap.c:831 +#: ../src/pulse/channelmap.c:774 msgid "Surround 5.1" msgstr "" -#: ../src/pulse/channelmap.c:838 +#: ../src/pulse/channelmap.c:781 msgid "Surround 7.1" msgstr "" @@ -1175,172 +1159,167 @@ msgstr "" msgid "Received message for unknown extension '%s'" msgstr "" -#: ../src/utils/pacat.c:94 +#: ../src/utils/pacat.c:107 +#, c-format +msgid "Failed to drain stream: %s\n" +msgstr "" + +#: ../src/utils/pacat.c:112 +msgid "Playback stream drained.\n" +msgstr "" + +#: ../src/utils/pacat.c:122 +msgid "Draining connection to server.\n" +msgstr "" + +#: ../src/utils/pacat.c:135 +#, c-format +msgid "pa_stream_drain(): %s\n" +msgstr "" + +#: ../src/utils/pacat.c:158 #, c-format msgid "pa_stream_write() failed: %s\n" msgstr "" -#: ../src/utils/pacat.c:133 +#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 #, c-format msgid "pa_stream_peek() failed: %s\n" msgstr "" -#: ../src/utils/pacat.c:169 -#, c-format +#: ../src/utils/pacat.c:302 msgid "Stream successfully created.\n" msgstr "" -#: ../src/utils/pacat.c:172 +#: ../src/utils/pacat.c:305 #, c-format msgid "pa_stream_get_buffer_attr() failed: %s\n" msgstr "" -#: ../src/utils/pacat.c:176 +#: ../src/utils/pacat.c:309 #, c-format msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgstr "" -#: ../src/utils/pacat.c:179 +#: ../src/utils/pacat.c:312 #, c-format msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgstr "" -#: ../src/utils/pacat.c:183 +#: ../src/utils/pacat.c:316 #, c-format msgid "Using sample spec '%s', channel map '%s'.\n" msgstr "" -#: ../src/utils/pacat.c:187 +#: ../src/utils/pacat.c:320 #, c-format msgid "Connected to device %s (%u, %ssuspended).\n" msgstr "" -#: ../src/utils/pacat.c:197 +#: ../src/utils/pacat.c:330 #, c-format msgid "Stream error: %s\n" msgstr "" -#: ../src/utils/pacat.c:207 +#: ../src/utils/pacat.c:340 #, c-format msgid "Stream device suspended.%s \n" msgstr "" -#: ../src/utils/pacat.c:209 +#: ../src/utils/pacat.c:342 #, c-format msgid "Stream device resumed.%s \n" msgstr "" -#: ../src/utils/pacat.c:217 +#: ../src/utils/pacat.c:350 #, c-format msgid "Stream underrun.%s \n" msgstr "" -#: ../src/utils/pacat.c:224 +#: ../src/utils/pacat.c:357 #, c-format msgid "Stream overrun.%s \n" msgstr "" -#: ../src/utils/pacat.c:231 +#: ../src/utils/pacat.c:364 #, c-format msgid "Stream started.%s \n" msgstr "" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 #, c-format msgid "Stream moved to device %s (%u, %ssuspended).%s \n" msgstr "" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 msgid "not " msgstr "" -#: ../src/utils/pacat.c:245 +#: ../src/utils/pacat.c:378 #, c-format msgid "Stream buffer attributes changed.%s \n" msgstr "" -#: ../src/utils/pacat.c:278 +#: ../src/utils/pacat.c:411 #, c-format msgid "Connection established.%s \n" msgstr "" -#: ../src/utils/pacat.c:281 +#: ../src/utils/pacat.c:414 #, c-format msgid "pa_stream_new() failed: %s\n" msgstr "" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:442 #, c-format msgid "pa_stream_connect_playback() failed: %s\n" msgstr "" -#: ../src/utils/pacat.c:315 +#: ../src/utils/pacat.c:448 #, c-format msgid "pa_stream_connect_record() failed: %s\n" msgstr "" -#: ../src/utils/pacat.c:329 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:762 ../src/utils/paplay.c:183 +#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 #, c-format msgid "Connection failure: %s\n" msgstr "" -#: ../src/utils/pacat.c:349 ../src/utils/paplay.c:75 -#, c-format -msgid "Failed to drain stream: %s\n" -msgstr "" - -#: ../src/utils/pacat.c:354 ../src/utils/paplay.c:80 -#, c-format -msgid "Playback stream drained.\n" -msgstr "" - -#: ../src/utils/pacat.c:364 ../src/utils/paplay.c:92 -#, c-format -msgid "Draining connection to server.\n" -msgstr "" - -#: ../src/utils/pacat.c:390 -#, c-format +#: ../src/utils/pacat.c:495 msgid "Got EOF.\n" msgstr "" -#: ../src/utils/pacat.c:396 -#, c-format -msgid "pa_stream_drain(): %s\n" -msgstr "" - -#: ../src/utils/pacat.c:406 +#: ../src/utils/pacat.c:500 #, c-format msgid "read() failed: %s\n" msgstr "" -#: ../src/utils/pacat.c:438 +#: ../src/utils/pacat.c:532 #, c-format msgid "write() failed: %s\n" msgstr "" -#: ../src/utils/pacat.c:459 -#, c-format +#: ../src/utils/pacat.c:553 msgid "Got signal, exiting.\n" msgstr "" -#: ../src/utils/pacat.c:473 +#: ../src/utils/pacat.c:567 #, c-format msgid "Failed to get latency: %s\n" msgstr "" -#: ../src/utils/pacat.c:478 +#: ../src/utils/pacat.c:572 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "" -#: ../src/utils/pacat.c:498 +#: ../src/utils/pacat.c:592 #, c-format msgid "pa_stream_update_timing_info() failed: %s\n" msgstr "" -#: ../src/utils/pacat.c:511 +#: ../src/utils/pacat.c:605 #, c-format msgid "" "%s [options]\n" @@ -1367,8 +1346,10 @@ msgid "" "44100)\n" " --format=SAMPLEFORMAT The sample type, one of s16le, " "s16be, u8, float32le,\n" -" float32be, ulaw, alaw, s32le, s32be " -"(defaults to s16ne)\n" +" float32be, ulaw, alaw, s32le, s32be, " +"s24le, s24be,\n" +" s24-32le, s24-32be (defaults to " +"s16ne)\n" " --channels=CHANNELS The number of channels, 1 for mono, " "2 for stereo\n" " (defaults to 2)\n" @@ -1391,9 +1372,14 @@ msgid "" "bytes.\n" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" +" --property=PROPERTY=VALUE Set the specified property to the " +"specified value.\n" +" --raw Record/play raw PCM data.\n" +" --file-format=FFORMAT Record/play formatted PCM data.\n" +" --list-file-formats List available file formats.\n" msgstr "" -#: ../src/utils/pacat.c:612 +#: ../src/utils/pacat.c:727 #, c-format msgid "" "pacat %s\n" @@ -1401,88 +1387,130 @@ msgid "" "Linked with libpulse %s\n" msgstr "" -#: ../src/utils/pacat.c:669 +#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 #, c-format -msgid "Invalid channel map '%s'\n" +msgid "Invalid client name '%s'\n" msgstr "" -#: ../src/utils/pacat.c:698 +#: ../src/utils/pacat.c:776 #, c-format -msgid "Invalid latency specification '%s'\n" +msgid "Invalid stream name '%s'\n" msgstr "" -#: ../src/utils/pacat.c:705 +#: ../src/utils/pacat.c:813 #, c-format -msgid "Invalid process time specification '%s'\n" +msgid "Invalid channel map '%s'\n" msgstr "" -#: ../src/utils/pacat.c:716 +#: ../src/utils/pacat.c:842 #, c-format -msgid "Invalid sample specification\n" +msgid "Invalid latency specification '%s'\n" msgstr "" -#: ../src/utils/pacat.c:721 +#: ../src/utils/pacat.c:849 #, c-format -msgid "Channel map doesn't match sample specification\n" +msgid "Invalid process time specification '%s'\n" msgstr "" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:861 #, c-format -msgid "Opening a %s stream with sample specification '%s'.\n" +msgid "Invalid property '%s'\n" msgstr "" -#: ../src/utils/pacat.c:728 -msgid "recording" +#: ../src/utils/pacat.c:878 +#, c-format +msgid "Unknown file format %s." msgstr "" -#: ../src/utils/pacat.c:728 -msgid "playback" +#: ../src/utils/pacat.c:897 +msgid "Invalid sample specification\n" msgstr "" -#: ../src/utils/pacat.c:736 +#: ../src/utils/pacat.c:907 #, c-format msgid "open(): %s\n" msgstr "" -#: ../src/utils/pacat.c:741 +#: ../src/utils/pacat.c:912 #, c-format msgid "dup2(): %s\n" msgstr "" -#: ../src/utils/pacat.c:751 -#, c-format +#: ../src/utils/pacat.c:919 msgid "Too many arguments.\n" msgstr "" -#: ../src/utils/pacat.c:764 ../src/utils/pasuspender.c:280 -#: ../src/utils/pactl.c:1017 ../src/utils/paplay.c:381 +#: ../src/utils/pacat.c:930 +msgid "Failed to generate sample specification for file.\n" +msgstr "" + +#: ../src/utils/pacat.c:950 +msgid "Failed to open audio file.\n" +msgstr "" + +#: ../src/utils/pacat.c:956 +msgid "" +"Warning: specified sample specification will be overwritten with " +"specification from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +msgid "Failed to determine sample specification from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:968 +msgid "Warning: Failed to determine channel map from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:979 +msgid "Channel map doesn't match sample specification\n" +msgstr "" + +#: ../src/utils/pacat.c:990 +msgid "Warning: failed to write channel map to file.\n" +msgstr "" + +#: ../src/utils/pacat.c:1005 #, c-format -msgid "pa_mainloop_new() failed.\n" +msgid "" +"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +msgstr "" + +#: ../src/utils/pacat.c:1006 +msgid "recording" +msgstr "" + +#: ../src/utils/pacat.c:1006 +msgid "playback" msgstr "" -#: ../src/utils/pacat.c:785 +#: ../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:1051 msgid "io_new() failed.\n" msgstr "" -#: ../src/utils/pacat.c:791 ../src/utils/pasuspender.c:293 -#: ../src/utils/pactl.c:1031 ../src/utils/paplay.c:396 +#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 +#: ../src/utils/pactl.c:1116 #, c-format msgid "pa_context_new() failed.\n" msgstr "" -#: ../src/utils/pacat.c:799 +#: ../src/utils/pacat.c:1066 #, c-format msgid "pa_context_connect() failed: %s\n" msgstr "" -#: ../src/utils/pacat.c:810 -#, c-format +#: ../src/utils/pacat.c:1077 msgid "time_new() failed.\n" msgstr "" -#: ../src/utils/pacat.c:817 ../src/utils/pasuspender.c:301 -#: ../src/utils/pactl.c:1042 ../src/utils/paplay.c:410 +#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 +#: ../src/utils/pactl.c:1127 #, c-format msgid "pa_mainloop_run() failed.\n" msgstr "" @@ -1512,8 +1540,7 @@ msgstr "" msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "" -#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:768 -#: ../src/utils/paplay.c:191 +#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" msgstr "" @@ -1535,7 +1562,7 @@ msgid "" "\n" msgstr "" -#: ../src/utils/pasuspender.c:251 +#: ../src/utils/pasuspender.c:248 #, c-format msgid "" "pasuspender %s\n" @@ -1543,32 +1570,32 @@ msgid "" "Linked with libpulse %s\n" msgstr "" -#: ../src/utils/pactl.c:108 +#: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" msgstr "" -#: ../src/utils/pactl.c:114 +#: ../src/utils/pactl.c:134 #, c-format msgid "Currently in use: %u blocks containing %s bytes total.\n" msgstr "" -#: ../src/utils/pactl.c:117 +#: ../src/utils/pactl.c:137 #, c-format msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n" msgstr "" -#: ../src/utils/pactl.c:120 +#: ../src/utils/pactl.c:140 #, c-format msgid "Sample cache size: %s\n" msgstr "" -#: ../src/utils/pactl.c:129 +#: ../src/utils/pactl.c:149 #, c-format msgid "Failed to get server information: %s\n" msgstr "" -#: ../src/utils/pactl.c:137 +#: ../src/utils/pactl.c:157 #, c-format msgid "" "User name: %s\n" @@ -1582,12 +1609,12 @@ msgid "" "Cookie: %08x\n" msgstr "" -#: ../src/utils/pactl.c:178 +#: ../src/utils/pactl.c:198 #, c-format msgid "Failed to get sink information: %s\n" msgstr "" -#: ../src/utils/pactl.c:194 +#: ../src/utils/pactl.c:214 #, c-format msgid "" "Sink #%u\n" @@ -1609,12 +1636,22 @@ msgid "" "\t\t%s\n" msgstr "" -#: ../src/utils/pactl.c:258 +#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 +#, c-format +msgid "\tPorts:\n" +msgstr "" + +#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 +#, c-format +msgid "\tActive Port: %s\n" +msgstr "" + +#: ../src/utils/pactl.c:290 #, c-format msgid "Failed to get source information: %s\n" msgstr "" -#: ../src/utils/pactl.c:274 +#: ../src/utils/pactl.c:306 #, c-format msgid "" "Source #%u\n" @@ -1636,20 +1673,20 @@ msgid "" "\t\t%s\n" msgstr "" -#: ../src/utils/pactl.c:306 ../src/utils/pactl.c:350 ../src/utils/pactl.c:385 -#: ../src/utils/pactl.c:422 ../src/utils/pactl.c:481 ../src/utils/pactl.c:482 -#: ../src/utils/pactl.c:492 ../src/utils/pactl.c:536 ../src/utils/pactl.c:537 -#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:586 ../src/utils/pactl.c:587 -#: ../src/utils/pactl.c:594 +#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429 +#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526 +#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581 +#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631 +#: ../src/utils/pactl.c:638 msgid "n/a" msgstr "" -#: ../src/utils/pactl.c:324 +#: ../src/utils/pactl.c:368 #, c-format msgid "Failed to get module information: %s\n" msgstr "" -#: ../src/utils/pactl.c:342 +#: ../src/utils/pactl.c:386 #, c-format msgid "" "Module #%u\n" @@ -1660,12 +1697,12 @@ msgid "" "\t\t%s\n" msgstr "" -#: ../src/utils/pactl.c:361 +#: ../src/utils/pactl.c:405 #, c-format msgid "Failed to get client information: %s\n" msgstr "" -#: ../src/utils/pactl.c:379 +#: ../src/utils/pactl.c:423 #, c-format msgid "" "Client #%u\n" @@ -1675,12 +1712,12 @@ msgid "" "\t\t%s\n" msgstr "" -#: ../src/utils/pactl.c:396 +#: ../src/utils/pactl.c:440 #, c-format msgid "Failed to get card information: %s\n" msgstr "" -#: ../src/utils/pactl.c:414 +#: ../src/utils/pactl.c:458 #, c-format msgid "" "Card #%u\n" @@ -1691,22 +1728,22 @@ msgid "" "\t\t%s\n" msgstr "" -#: ../src/utils/pactl.c:428 +#: ../src/utils/pactl.c:472 #, c-format msgid "\tProfiles:\n" msgstr "" -#: ../src/utils/pactl.c:434 +#: ../src/utils/pactl.c:478 #, c-format msgid "\tActive Profile: %s\n" msgstr "" -#: ../src/utils/pactl.c:445 +#: ../src/utils/pactl.c:489 #, c-format msgid "Failed to get sink input information: %s\n" msgstr "" -#: ../src/utils/pactl.c:464 +#: ../src/utils/pactl.c:508 #, c-format msgid "" "Sink Input #%u\n" @@ -1727,12 +1764,12 @@ msgid "" "\t\t%s\n" msgstr "" -#: ../src/utils/pactl.c:503 +#: ../src/utils/pactl.c:547 #, c-format msgid "Failed to get source output information: %s\n" msgstr "" -#: ../src/utils/pactl.c:523 +#: ../src/utils/pactl.c:567 #, c-format msgid "" "Source Output #%u\n" @@ -1749,12 +1786,12 @@ msgid "" "\t\t%s\n" msgstr "" -#: ../src/utils/pactl.c:554 +#: ../src/utils/pactl.c:598 #, c-format msgid "Failed to get sample information: %s\n" msgstr "" -#: ../src/utils/pactl.c:572 +#: ../src/utils/pactl.c:616 #, c-format msgid "" "Sample #%u\n" @@ -1772,22 +1809,21 @@ msgid "" "\t\t%s\n" msgstr "" -#: ../src/utils/pactl.c:602 ../src/utils/pactl.c:612 +#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 #, c-format msgid "Failure: %s\n" msgstr "" -#: ../src/utils/pactl.c:636 +#: ../src/utils/pactl.c:680 #, c-format msgid "Failed to upload sample: %s\n" msgstr "" -#: ../src/utils/pactl.c:653 -#, c-format +#: ../src/utils/pactl.c:697 msgid "Premature end of file\n" msgstr "" -#: ../src/utils/pactl.c:774 +#: ../src/utils/pactl.c:826 #, c-format msgid "" "%s [options] stat\n" @@ -1803,6 +1839,8 @@ msgid "" "%s [options] suspend-sink [SINK] 1|0\n" "%s [options] suspend-source [SOURCE] 1|0\n" "%s [options] set-card-profile [CARD] [PROFILE] \n" +"%s [options] set-sink-port [SINK] [PORT] \n" +"%s [options] set-source-port [SOURCE] [PORT] \n" "\n" " -h, --help Show this help\n" " --version Show version\n" @@ -1813,7 +1851,7 @@ msgid "" "server\n" msgstr "" -#: ../src/utils/pactl.c:826 +#: ../src/utils/pactl.c:880 #, c-format msgid "" "pactl %s\n" @@ -1821,71 +1859,71 @@ msgid "" "Linked with libpulse %s\n" msgstr "" -#: ../src/utils/pactl.c:865 -#, c-format +#: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "" -#: ../src/utils/pactl.c:887 -#, c-format +#: ../src/utils/pactl.c:939 msgid "Failed to open sound file.\n" msgstr "" -#: ../src/utils/pactl.c:899 -#, c-format +#: ../src/utils/pactl.c:951 +msgid "Warning: Failed to determine sample specification from file.\n" +msgstr "" + +#: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" msgstr "" -#: ../src/utils/pactl.c:911 -#, c-format +#: ../src/utils/pactl.c:973 msgid "You have to specify a sample name to remove\n" msgstr "" -#: ../src/utils/pactl.c:919 -#, c-format +#: ../src/utils/pactl.c:982 msgid "You have to specify a sink input index and a sink\n" msgstr "" -#: ../src/utils/pactl.c:928 -#, c-format +#: ../src/utils/pactl.c:992 msgid "You have to specify a source output index and a source\n" msgstr "" -#: ../src/utils/pactl.c:942 -#, c-format +#: ../src/utils/pactl.c:1007 msgid "You have to specify a module name and arguments.\n" msgstr "" -#: ../src/utils/pactl.c:962 -#, c-format +#: ../src/utils/pactl.c:1027 msgid "You have to specify a module index\n" msgstr "" -#: ../src/utils/pactl.c:972 -#, c-format +#: ../src/utils/pactl.c:1037 msgid "" "You may not specify more than one sink. You have to specify a boolean " "value.\n" msgstr "" -#: ../src/utils/pactl.c:985 -#, c-format +#: ../src/utils/pactl.c:1050 msgid "" "You may not specify more than one source. You have to specify a boolean " "value.\n" msgstr "" -#: ../src/utils/pactl.c:997 -#, c-format +#: ../src/utils/pactl.c:1062 msgid "You have to specify a card name/index and a profile name\n" msgstr "" -#: ../src/utils/pactl.c:1012 -#, c-format +#: ../src/utils/pactl.c:1073 +msgid "You have to specify a sink name/index and a port name\n" +msgstr "" + +#: ../src/utils/pactl.c:1084 +msgid "You have to specify a source name/index and a port name\n" +msgstr "" + +#: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "" -#: ../src/utils/pactl.c:1037 ../src/utils/paplay.c:404 +#: ../src/utils/pactl.c:1122 #, c-format msgid "pa_context_connect() failed: %s" msgstr "" @@ -1962,109 +2000,48 @@ msgstr "" msgid "Not yet implemented.\n" msgstr "" -#: ../src/utils/pacmd.c:64 +#: ../src/utils/pacmd.c:61 +msgid "No PulseAudio daemon running, or not running as session daemon." +msgstr "" + +#: ../src/utils/pacmd.c:66 #, c-format msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s" msgstr "" -#: ../src/utils/pacmd.c:81 +#: ../src/utils/pacmd.c:83 #, c-format msgid "connect(): %s" msgstr "" -#: ../src/utils/pacmd.c:89 +#: ../src/utils/pacmd.c:91 msgid "Failed to kill PulseAudio daemon." msgstr "" -#: ../src/utils/pacmd.c:97 +#: ../src/utils/pacmd.c:99 msgid "Daemon not responding." msgstr "" -#: ../src/utils/pacmd.c:144 +#: ../src/utils/pacmd.c:146 #, c-format msgid "select(): %s" msgstr "" -#: ../src/utils/pacmd.c:154 ../src/utils/pacmd.c:171 +#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173 #, c-format msgid "read(): %s" msgstr "" -#: ../src/utils/pacmd.c:187 ../src/utils/pacmd.c:201 +#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203 #, c-format msgid "write(): %s" msgstr "" -#: ../src/utils/paplay.c:139 -#, c-format -msgid "Stream successfully created\n" -msgstr "" - -#: ../src/utils/paplay.c:144 -#, c-format -msgid "Stream errror: %s\n" -msgstr "" - -#: ../src/utils/paplay.c:165 -#, c-format -msgid "Connection established.\n" -msgstr "" - -#: ../src/utils/paplay.c:198 -#, c-format -msgid "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" -msgstr "" - -#: ../src/utils/paplay.c:255 -#, c-format -msgid "" -"paplay %s\n" -"Compiled with libpulse %s\n" -"Linked with libpulse %s\n" -msgstr "" - -#: ../src/utils/paplay.c:292 -#, c-format -msgid "Invalid channel map\n" -msgstr "" - -#: ../src/utils/paplay.c:314 -#, c-format -msgid "Failed to open file '%s'\n" -msgstr "" - -#: ../src/utils/paplay.c:350 -#, c-format -msgid "Channel map doesn't match file.\n" -msgstr "" - -#: ../src/utils/paplay.c:376 -#, c-format -msgid "Using sample spec '%s'\n" -msgstr "" - #: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 msgid "Cannot access autospawn lock." msgstr "" -#: ../src/modules/alsa/alsa-sink.c:393 ../src/modules/alsa/alsa-sink.c:541 +#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2075,7 +2052,7 @@ msgid "" "returned 0 or another value < min_avail." msgstr "" -#: ../src/modules/alsa/alsa-source.c:377 ../src/modules/alsa/alsa-source.c:516 +#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2086,34 +2063,19 @@ msgid "" "returned 0 or another value < min_avail." msgstr "" -#: ../src/modules/alsa/module-alsa-card.c:114 -#, c-format -msgid "Output %s + Input %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:117 -#, c-format -msgid "Output %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:121 -#, c-format -msgid "Input %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:170 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2006 +#: ../src/modules/alsa/module-alsa-card.c:152 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 msgid "Off" msgstr "" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1976 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 msgid "High Fidelity Playback (A2DP)" msgstr "" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1991 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 msgid "Telephony Duplex (HSP/HFP)" msgstr "" -#: ../src/modules/reserve-wrap.c:139 +#: ../src/modules/reserve-wrap.c:151 msgid "PulseAudio Sound Server" msgstr "" @@ -8,60 +8,16 @@ msgid "" msgstr "" "Project-Id-Version: PulseAudio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-21 23:02+0200\n" -"PO-Revision-Date: 2009-04-18 12:45-0300\n" -"Last-Translator: Domingo Becker <domingobecker@gmail.com>\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 <dennis.tobar@gmail.com>\n" "Language-Team: Fedora Spanish <fedora-trans-es@redhat.com>\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:532 -msgid "Analog Mono" -msgstr "Mono Analógico" - -#: ../src/modules/alsa/alsa-util.c:540 -msgid "Analog Stereo" -msgstr "Estéreo Analógico" - -#: ../src/modules/alsa/alsa-util.c:548 -msgid "Digital Stereo (IEC958)" -msgstr "Estéreo Digital (IEC958)" - -#: ../src/modules/alsa/alsa-util.c:556 -msgid "Digital Stereo (HDMI)" -msgstr "Estéreo Digital (HDMI)" - -#: ../src/modules/alsa/alsa-util.c:565 -msgid "Analog Surround 4.0" -msgstr "Análogo Envolvente 4.0" - -#: ../src/modules/alsa/alsa-util.c:574 -msgid "Digital Surround 4.0 (IEC958/AC3)" -msgstr "Digital Envolvente 4.0 (IEC9588/AC3)" - -#: ../src/modules/alsa/alsa-util.c:584 -msgid "Analog Surround 4.1" -msgstr "Análogo Envolvente 4.1" - -#: ../src/modules/alsa/alsa-util.c:594 -msgid "Analog Surround 5.0" -msgstr "Análogo Envolvente 5.0" - -#: ../src/modules/alsa/alsa-util.c:604 -msgid "Analog Surround 5.1" -msgstr "Análogo Envolvente 5.1" - -#: ../src/modules/alsa/alsa-util.c:614 -msgid "Digital Surround 5.1 (IEC958/AC3)" -msgstr "Digital Envolvente 5.1 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:625 -msgid "Analog Surround 7.1" -msgstr "Análogo Envolvénte 7.1" - -#: ../src/modules/alsa/alsa-util.c:1646 +#: ../src/modules/alsa/alsa-util.c:1015 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -74,7 +30,7 @@ msgstr "" "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:1687 +#: ../src/modules/alsa/alsa-util.c:1056 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -87,7 +43,7 @@ msgstr "" "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:1734 +#: ../src/modules/alsa/alsa-util.c:1103 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -100,11 +56,24 @@ msgstr "" "Lo más probable es que sea un error del controlador ALSA '%s'. Por favor, " "informe ésto a los desarrolladores de ALSA." -#: ../src/pulsecore/sink.c:2141 +#: ../src/modules/module-ladspa-sink.c:49 +msgid "Virtual LADSPA sink" +msgstr "" + +#: ../src/modules/module-ladspa-sink.c:53 +msgid "" +"sink_name=<name for the sink> sink_properties=<properties for the sink> " +"master=<name of sink to filter> format=<sample format> rate=<sample rate> " +"channels=<number of channels> channel_map=<channel map> plugin=<ladspa " +"plugin name> label=<ladspa plugin label> control=<comma seperated list of " +"input control values>" +msgstr "" + +#: ../src/pulsecore/sink.c:2394 msgid "Internal Audio" msgstr "Audio Interno" -#: ../src/pulsecore/sink.c:2147 +#: ../src/pulsecore/sink.c:2400 msgid "Modem" msgstr "Módem" @@ -174,104 +143,104 @@ msgstr "No se pudo obtener auth: %s" msgid "PolicyKit responded with '%s'" msgstr "PolicyKit respondió con '%s'" -#: ../src/daemon/main.c:138 +#: ../src/daemon/main.c:142 #, c-format msgid "Got signal %s." msgstr "Se obtuvo la señal %s." -#: ../src/daemon/main.c:165 +#: ../src/daemon/main.c:169 msgid "Exiting." msgstr "Saliendo." -#: ../src/daemon/main.c:183 +#: ../src/daemon/main.c:187 #, c-format msgid "Failed to find user '%s'." msgstr "Falló al buscar usuario '%s'." -#: ../src/daemon/main.c:188 +#: ../src/daemon/main.c:192 #, c-format msgid "Failed to find group '%s'." msgstr "Falló al buscar grupo '%s'." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:196 #, 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:197 +#: ../src/daemon/main.c:201 #, 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:202 +#: ../src/daemon/main.c:206 #, 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:205 ../src/daemon/main.c:210 +#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 #, c-format msgid "Failed to create '%s': %s" msgstr "Falló al crear '%s': %s" -#: ../src/daemon/main.c:217 +#: ../src/daemon/main.c:221 #, c-format msgid "Failed to change group list: %s" msgstr "Falló al cambiar la lista de grupo: %s" -#: ../src/daemon/main.c:233 +#: ../src/daemon/main.c:237 #, c-format msgid "Failed to change GID: %s" msgstr "Falló al cambiar GID: %s" -#: ../src/daemon/main.c:249 +#: ../src/daemon/main.c:253 #, c-format msgid "Failed to change UID: %s" msgstr "Falló al cambiar UID: %s" -#: ../src/daemon/main.c:263 +#: ../src/daemon/main.c:267 msgid "Successfully dropped root privileges." msgstr "Se han liberado con éxitos los privilegios de root." -#: ../src/daemon/main.c:271 +#: ../src/daemon/main.c:275 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:289 +#: ../src/daemon/main.c:293 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) falló: %s" -#: ../src/daemon/main.c:477 +#: ../src/daemon/main.c:481 msgid "Failed to parse command line." msgstr "Falló al analizar la lÃnea de comando." -#: ../src/daemon/main.c:501 +#: ../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:508 +#: ../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:516 +#: ../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:519 +#: ../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:524 +#: ../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:527 +#: ../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:556 +#: ../src/daemon/main.c:560 #, c-format msgid "" "Called SUID root and real-time and/or high-priority scheduling was requested " @@ -293,48 +262,48 @@ msgstr "" "o aumente los lÃmites del recurso RLIMIT_NICE/RLIMIT_RTPRIO para este " "usuario." -#: ../src/daemon/main.c:581 +#: ../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:610 +#: ../src/daemon/main.c:614 msgid "Successfully increased RLIMIT_RTPRIO" msgstr "RLIMIT_RTPRIO incrementado en forma exitosa" -#: ../src/daemon/main.c:613 +#: ../src/daemon/main.c:617 #, c-format msgid "RLIMIT_RTPRIO failed: %s" msgstr "Fallo en RLIMIT_RTPRIO: %s" -#: ../src/daemon/main.c:620 +#: ../src/daemon/main.c:624 msgid "Giving up CAP_NICE" msgstr "Abandonando CAP_NICE" -#: ../src/daemon/main.c:627 +#: ../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:688 +#: ../src/daemon/main.c:692 msgid "Daemon not running" msgstr "El demonio no está funcionando" -#: ../src/daemon/main.c:690 +#: ../src/daemon/main.c:694 #, c-format msgid "Daemon running as PID %u" msgstr "El demonio está funcionando como PID %u" -#: ../src/daemon/main.c:700 +#: ../src/daemon/main.c:704 #, c-format msgid "Failed to kill daemon: %s" msgstr "No se ha podido detener el demonio: %s" -#: ../src/daemon/main.c:718 +#: ../src/daemon/main.c:722 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -342,165 +311,175 @@ msgstr "" "Este programa no tiene por qué ser ejecutado como root (a menos que --system " "sea especificado)." -#: ../src/daemon/main.c:720 +#: ../src/daemon/main.c:724 msgid "Root privileges required." msgstr "Se necesitan privilegios de root." -#: ../src/daemon/main.c:725 +#: ../src/daemon/main.c:729 msgid "--start not supported for system instances." msgstr "--start no está soportado para las instancias del sistema." -#: ../src/daemon/main.c:730 +#: ../src/daemon/main.c:734 msgid "Running in system mode, but --disallow-exit not set!" msgstr "" "Ejecutándose en modo de sistema, ¡pero no se ha configurado --disallow-exit! " -#: ../src/daemon/main.c:733 +#: ../src/daemon/main.c:737 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!" -#: ../src/daemon/main.c:736 +#: ../src/daemon/main.c:740 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "" "Ejecutándose en modo de sistema, ¡desactivando forzadamente el modo SHM!" -#: ../src/daemon/main.c:741 +#: ../src/daemon/main.c:745 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "" "Ejecutándose en modo de sistema, ¡desactivando forzadamente exit idle time!" -#: ../src/daemon/main.c:768 +#: ../src/daemon/main.c:772 msgid "Failed to acquire stdio." msgstr "Fallo al intentar adquirir stdio." -#: ../src/daemon/main.c:774 +#: ../src/daemon/main.c:778 #, c-format msgid "pipe failed: %s" msgstr "Falló el pipe: %s" -#: ../src/daemon/main.c:779 +#: ../src/daemon/main.c:783 #, c-format msgid "fork() failed: %s" msgstr "Falló el fork(): %s" -#: ../src/daemon/main.c:793 +#: ../src/daemon/main.c:797 #, c-format msgid "read() failed: %s" msgstr "Falló la operación read(): %s" -#: ../src/daemon/main.c:799 +#: ../src/daemon/main.c:803 msgid "Daemon startup failed." msgstr "Falló el inicio del demonio. " -#: ../src/daemon/main.c:801 +#: ../src/daemon/main.c:805 msgid "Daemon startup successful." msgstr "El demonio se inició exitosamente." -#: ../src/daemon/main.c:871 +#: ../src/daemon/main.c:875 #, c-format msgid "This is PulseAudio %s" msgstr "Esto es PulseAudio %s" -#: ../src/daemon/main.c:872 +#: ../src/daemon/main.c:876 #, c-format msgid "Compilation host: %s" msgstr "Host de compilación: %s" -#: ../src/daemon/main.c:873 +#: ../src/daemon/main.c:877 #, c-format msgid "Compilation CFLAGS: %s" msgstr "Compilación CFLAGS: %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:880 #, c-format msgid "Running on host: %s" msgstr "Ejecutándose en el host: %s" -#: ../src/daemon/main.c:879 +#: ../src/daemon/main.c:883 #, c-format msgid "Found %u CPUs." msgstr "Se encontraron %u CPUs." -#: ../src/daemon/main.c:881 +#: ../src/daemon/main.c:885 #, c-format msgid "Page size is %lu bytes" msgstr "El tamaño de la página es de %lu bytes" -#: ../src/daemon/main.c:884 +#: ../src/daemon/main.c:888 msgid "Compiled with Valgrind support: yes" msgstr "Soporte para compilar con Valgrind: si" -#: ../src/daemon/main.c:886 +#: ../src/daemon/main.c:890 msgid "Compiled with Valgrind support: no" msgstr "Soporte para compilar con Valgrind: no" -#: ../src/daemon/main.c:889 +#: ../src/daemon/main.c:893 #, c-format msgid "Running in valgrind mode: %s" msgstr "Ejecutándose en modo valgrind: %s" -#: ../src/daemon/main.c:892 +#: ../src/daemon/main.c:896 msgid "Optimized build: yes" msgstr "Build optimizado: si" -#: ../src/daemon/main.c:894 +#: ../src/daemon/main.c:898 msgid "Optimized build: no" msgstr "Build optimizado: no" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:902 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG definido, todos los chequeos deshabilitados." -#: ../src/daemon/main.c:900 +#: ../src/daemon/main.c:904 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "FASTPATH definido, sólo se deshabilitan los chequeos fast path." -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:906 msgid "All asserts enabled." msgstr "Todos los chequeos habilitados." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:910 msgid "Failed to get machine ID" msgstr "Fallo al intentar obtener el ID de la máquina" -#: ../src/daemon/main.c:909 +#: ../src/daemon/main.c:913 #, c-format msgid "Machine ID is %s." msgstr "El ID de la máquina es %s" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:917 #, fuzzy, c-format msgid "Session ID is %s." msgstr "El ID de la máquina es %s" -#: ../src/daemon/main.c:919 +#: ../src/daemon/main.c:923 #, c-format msgid "Using runtime directory %s." msgstr "Utilizando directorio de tiempo de ejecución %s." -#: ../src/daemon/main.c:924 +#: ../src/daemon/main.c:928 #, c-format msgid "Using state directory %s." msgstr "Utilizando directorio de estado %s." -#: ../src/daemon/main.c:927 +#: ../src/daemon/main.c:931 #, c-format msgid "Running in system mode: %s" msgstr "Ejecutándose en modo de sistema: %s" -#: ../src/daemon/main.c:942 +#: ../src/daemon/main.c:934 +msgid "" +"OK, so you are running PA in system mode. Please note that you most likely " +"shouldn't be doing that.\n" +"If you do it nonetheless then it's your own fault if things don't work as " +"expected.\n" +"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " +"explanation why system mode is usually a bad idea." +msgstr "" + +#: ../src/daemon/main.c:951 msgid "pa_pid_file_create() failed." msgstr "Ha fallado pa_pid_file_create()." -#: ../src/daemon/main.c:954 +#: ../src/daemon/main.c:961 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "" "¡Existen cronómetros de alta resolución fresquitos y disponibles! ¡Bon " "appetit!" -#: ../src/daemon/main.c:956 +#: ../src/daemon/main.c:963 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -508,33 +487,33 @@ 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:970 +#: ../src/daemon/main.c:988 msgid "pa_core_new() failed." msgstr "Falló pa_core_new()." -#: ../src/daemon/main.c:1032 +#: ../src/daemon/main.c:1050 msgid "Failed to initialize daemon." msgstr "Fallo al intentar iniciar el demonio." -#: ../src/daemon/main.c:1037 +#: ../src/daemon/main.c:1055 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." -#: ../src/daemon/main.c:1054 +#: ../src/daemon/main.c:1072 msgid "Daemon startup complete." msgstr "El demonio se inició completamente." -#: ../src/daemon/main.c:1060 +#: ../src/daemon/main.c:1078 msgid "Daemon shutdown initiated." msgstr "Comienza a apagarse el demonio." -#: ../src/daemon/main.c:1082 +#: ../src/daemon/main.c:1100 msgid "Daemon terminated." msgstr "El demonio se ha apagado." -#: ../src/daemon/cmdline.c:121 +#: ../src/daemon/cmdline.c:115 #, c-format msgid "" "%s [options]\n" @@ -686,15 +665,15 @@ msgstr "" " -n No carga el archivo script " "predeterminado\n" -#: ../src/daemon/cmdline.c:252 +#: ../src/daemon/cmdline.c:247 msgid "--daemonize expects boolean argument" msgstr "--daemonize espera un argumento booleano" -#: ../src/daemon/cmdline.c:259 +#: ../src/daemon/cmdline.c:254 msgid "--fail expects boolean argument" msgstr "--fail espera un argumento booleano" -#: ../src/daemon/cmdline.c:269 +#: ../src/daemon/cmdline.c:264 msgid "" "--log-level expects log level argument (either numeric in range 0..4 or one " "of debug, info, notice, warn, error)." @@ -703,52 +682,52 @@ msgstr "" "caiga en el rango de 0..4; ya sea uno de debug, info, notice, warn, o " "error). " -#: ../src/daemon/cmdline.c:281 +#: ../src/daemon/cmdline.c:276 msgid "--high-priority expects boolean argument" msgstr "--high-priority espera un argumento booleano" -#: ../src/daemon/cmdline.c:288 +#: ../src/daemon/cmdline.c:283 msgid "--realtime expects boolean argument" msgstr "--realtime espera un argumento booleano" -#: ../src/daemon/cmdline.c:295 +#: ../src/daemon/cmdline.c:290 msgid "--disallow-module-loading expects boolean argument" msgstr "--disallow-module-loading espera un argumento booleano" -#: ../src/daemon/cmdline.c:302 +#: ../src/daemon/cmdline.c:297 msgid "--disallow-exit expects boolean argument" msgstr "--disallow-exit espera un argumento booleano" -#: ../src/daemon/cmdline.c:309 +#: ../src/daemon/cmdline.c:304 msgid "--use-pid-file expects boolean argument" msgstr "--use pid-file espera un argumento booleano" -#: ../src/daemon/cmdline.c:326 +#: ../src/daemon/cmdline.c:321 msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgstr "Log target inválido: use o \"syslog\", o \"stderr\", o \"auto\"." -#: ../src/daemon/cmdline.c:333 +#: ../src/daemon/cmdline.c:328 msgid "--log-time expects boolean argument" msgstr "--log-time espera un argumento booleano" -#: ../src/daemon/cmdline.c:340 +#: ../src/daemon/cmdline.c:335 msgid "--log-meta expects boolean argument" msgstr "--log-meta espera un argumento booleano" -#: ../src/daemon/cmdline.c:359 +#: ../src/daemon/cmdline.c:354 #, c-format msgid "Invalid resample method '%s'." msgstr "Método de remuestreo inválido '%s'" -#: ../src/daemon/cmdline.c:366 +#: ../src/daemon/cmdline.c:361 msgid "--system expects boolean argument" msgstr "--system espera un argumento booleano" -#: ../src/daemon/cmdline.c:373 +#: ../src/daemon/cmdline.c:368 msgid "--no-cpu-limit expects boolean argument" msgstr "--no-cpu-limit espera un argumento booleano" -#: ../src/daemon/cmdline.c:380 +#: ../src/daemon/cmdline.c:375 msgid "--disable-shm expects boolean argument" msgstr "--disable-shm espera un argumento booleano" @@ -787,77 +766,82 @@ msgstr "Uso: %s\n" msgid "Load Once: %s\n" msgstr "Carga una vez: %s\n" -#: ../src/daemon/dumpmodules.c:77 +#: ../src/daemon/dumpmodules.c:75 +#, fuzzy, c-format +msgid "DEPRECATION WARNING: %s\n" +msgstr "ADVERTENCIA DE COMPATIBILIDAD: %s\n" + +#: ../src/daemon/dumpmodules.c:79 #, c-format msgid "Path: %s\n" msgstr "Ruta: %s\n" -#: ../src/daemon/daemon-conf.c:215 +#: ../src/daemon/daemon-conf.c:216 #, c-format msgid "[%s:%u] Invalid log target '%s'." msgstr "[%s:%u] Destino de log inválido '%s'." -#: ../src/daemon/daemon-conf.c:231 +#: ../src/daemon/daemon-conf.c:232 #, c-format msgid "[%s:%u] Invalid log level '%s'." msgstr "[%s:%u] Nivel de log inválido '%s'." -#: ../src/daemon/daemon-conf.c:247 +#: ../src/daemon/daemon-conf.c:248 #, c-format msgid "[%s:%u] Invalid resample method '%s'." msgstr "[%s:%u] Método de remuestreo inválido '%s'." -#: ../src/daemon/daemon-conf.c:270 +#: ../src/daemon/daemon-conf.c:271 #, c-format msgid "[%s:%u] Invalid rlimit '%s'." msgstr "[%s:%u] Rlimit inválido '%s'." -#: ../src/daemon/daemon-conf.c:277 +#: ../src/daemon/daemon-conf.c:278 #, c-format msgid "[%s:%u] rlimit not supported on this platform." msgstr "[%s:%u] Rlimit no soportado en esta plataforma." -#: ../src/daemon/daemon-conf.c:293 +#: ../src/daemon/daemon-conf.c:294 #, c-format msgid "[%s:%u] Invalid sample format '%s'." msgstr "[%s:%u] Formato de muestra inválido '%s'." -#: ../src/daemon/daemon-conf.c:311 +#: ../src/daemon/daemon-conf.c:312 #, c-format msgid "[%s:%u] Invalid sample rate '%s'." msgstr "[%s:%u] Tasa de muestra inválida '%s'." -#: ../src/daemon/daemon-conf.c:335 +#: ../src/daemon/daemon-conf.c:336 #, c-format msgid "[%s:%u] Invalid sample channels '%s'." msgstr "[%s:%u] Canales de muestra inválidos '%s'." -#: ../src/daemon/daemon-conf.c:353 +#: ../src/daemon/daemon-conf.c:354 #, c-format msgid "[%s:%u] Invalid channel map '%s'." msgstr "[%s:%u] Mapa de canal inválido '%s'." -#: ../src/daemon/daemon-conf.c:371 +#: ../src/daemon/daemon-conf.c:372 #, c-format msgid "[%s:%u] Invalid number of fragments '%s'." msgstr "[%s:%u] Cantidad de fragmentoa inválidos '%s'." -#: ../src/daemon/daemon-conf.c:389 +#: ../src/daemon/daemon-conf.c:390 #, c-format msgid "[%s:%u] Invalid fragment size '%s'." msgstr "[%s:%u] Tamaño inválido de fragmento '%s'." -#: ../src/daemon/daemon-conf.c:407 +#: ../src/daemon/daemon-conf.c:408 #, c-format msgid "[%s:%u] Invalid nice level '%s'." msgstr "[%s:%u] Nivel de nice inválido '%s'." -#: ../src/daemon/daemon-conf.c:522 +#: ../src/daemon/daemon-conf.c:524 #, c-format msgid "Failed to open configuration file: %s" msgstr "No se pudo abrir el archivo de configuración: %s" -#: ../src/daemon/daemon-conf.c:538 +#: ../src/daemon/daemon-conf.c:540 msgid "" "The specified default channel map has a different number of channels than " "the specified default number of channels." @@ -910,237 +894,237 @@ msgstr "" "Las polÃticas del sistema impidieron a PulseAudio adquirir la planificación " "de tiempo real." -#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804 +#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Mono" -#: ../src/pulse/channelmap.c:105 +#: ../src/pulse/channelmap.c:107 msgid "Front Center" msgstr "Frente central" -#: ../src/pulse/channelmap.c:106 +#: ../src/pulse/channelmap.c:108 msgid "Front Left" msgstr "Frente izquierdo" -#: ../src/pulse/channelmap.c:107 +#: ../src/pulse/channelmap.c:109 msgid "Front Right" msgstr "Frente derecho" -#: ../src/pulse/channelmap.c:109 +#: ../src/pulse/channelmap.c:111 msgid "Rear Center" msgstr "Posterior central" -#: ../src/pulse/channelmap.c:110 +#: ../src/pulse/channelmap.c:112 msgid "Rear Left" msgstr "POsterior izquierdo" -#: ../src/pulse/channelmap.c:111 +#: ../src/pulse/channelmap.c:113 msgid "Rear Right" msgstr "POsterior derecho" -#: ../src/pulse/channelmap.c:113 +#: ../src/pulse/channelmap.c:115 msgid "Low Frequency Emmiter" msgstr "Emisor de baja frecuencia" -#: ../src/pulse/channelmap.c:115 +#: ../src/pulse/channelmap.c:117 msgid "Front Left-of-center" msgstr "Frente izquierdo del centro" -#: ../src/pulse/channelmap.c:116 +#: ../src/pulse/channelmap.c:118 msgid "Front Right-of-center" msgstr "Frente derecho del centro" -#: ../src/pulse/channelmap.c:118 +#: ../src/pulse/channelmap.c:120 msgid "Side Left" msgstr "Lateral izquierdo" -#: ../src/pulse/channelmap.c:119 +#: ../src/pulse/channelmap.c:121 msgid "Side Right" msgstr "Lateral derecho" -#: ../src/pulse/channelmap.c:121 +#: ../src/pulse/channelmap.c:123 msgid "Auxiliary 0" msgstr "Auxiliar 0" -#: ../src/pulse/channelmap.c:122 +#: ../src/pulse/channelmap.c:124 msgid "Auxiliary 1" msgstr "Auxiliar 1" -#: ../src/pulse/channelmap.c:123 +#: ../src/pulse/channelmap.c:125 msgid "Auxiliary 2" msgstr "Auxiliar 2" -#: ../src/pulse/channelmap.c:124 +#: ../src/pulse/channelmap.c:126 msgid "Auxiliary 3" msgstr "Auxiliar 3" -#: ../src/pulse/channelmap.c:125 +#: ../src/pulse/channelmap.c:127 msgid "Auxiliary 4" msgstr "Auxiliar 4" -#: ../src/pulse/channelmap.c:126 +#: ../src/pulse/channelmap.c:128 msgid "Auxiliary 5" msgstr "Auxiliar 5" -#: ../src/pulse/channelmap.c:127 +#: ../src/pulse/channelmap.c:129 msgid "Auxiliary 6" msgstr "Auxiliar 6" -#: ../src/pulse/channelmap.c:128 +#: ../src/pulse/channelmap.c:130 msgid "Auxiliary 7" msgstr "Auxiliar 7" -#: ../src/pulse/channelmap.c:129 +#: ../src/pulse/channelmap.c:131 msgid "Auxiliary 8" msgstr "Auxiliar 8" -#: ../src/pulse/channelmap.c:130 +#: ../src/pulse/channelmap.c:132 msgid "Auxiliary 9" msgstr "Auxiliar 9" -#: ../src/pulse/channelmap.c:131 +#: ../src/pulse/channelmap.c:133 msgid "Auxiliary 10" msgstr "Auxiliar 10" -#: ../src/pulse/channelmap.c:132 +#: ../src/pulse/channelmap.c:134 msgid "Auxiliary 11" msgstr "Auxiliar 11" -#: ../src/pulse/channelmap.c:133 +#: ../src/pulse/channelmap.c:135 msgid "Auxiliary 12" msgstr "Auxiliar 12" -#: ../src/pulse/channelmap.c:134 +#: ../src/pulse/channelmap.c:136 msgid "Auxiliary 13" msgstr "Auxiliar 13" -#: ../src/pulse/channelmap.c:135 +#: ../src/pulse/channelmap.c:137 msgid "Auxiliary 14" msgstr "Auxiliar 14" -#: ../src/pulse/channelmap.c:136 +#: ../src/pulse/channelmap.c:138 msgid "Auxiliary 15" msgstr "Auxiliar 15" -#: ../src/pulse/channelmap.c:137 +#: ../src/pulse/channelmap.c:139 msgid "Auxiliary 16" msgstr "Auxiliar 16" -#: ../src/pulse/channelmap.c:138 +#: ../src/pulse/channelmap.c:140 msgid "Auxiliary 17" msgstr "Auxiliar 17" -#: ../src/pulse/channelmap.c:139 +#: ../src/pulse/channelmap.c:141 msgid "Auxiliary 18" msgstr "Auxiliar 18" -#: ../src/pulse/channelmap.c:140 +#: ../src/pulse/channelmap.c:142 msgid "Auxiliary 19" msgstr "Auxiliar 19" -#: ../src/pulse/channelmap.c:141 +#: ../src/pulse/channelmap.c:143 msgid "Auxiliary 20" msgstr "Auxiliar 20" -#: ../src/pulse/channelmap.c:142 +#: ../src/pulse/channelmap.c:144 msgid "Auxiliary 21" msgstr "Auxiliar 21" -#: ../src/pulse/channelmap.c:143 +#: ../src/pulse/channelmap.c:145 msgid "Auxiliary 22" msgstr "Auxiliar 22" -#: ../src/pulse/channelmap.c:144 +#: ../src/pulse/channelmap.c:146 msgid "Auxiliary 23" msgstr "Auxiliar 23" -#: ../src/pulse/channelmap.c:145 +#: ../src/pulse/channelmap.c:147 msgid "Auxiliary 24" msgstr "Auxiliar 24" -#: ../src/pulse/channelmap.c:146 +#: ../src/pulse/channelmap.c:148 msgid "Auxiliary 25" msgstr "Auxiliar 25" -#: ../src/pulse/channelmap.c:147 +#: ../src/pulse/channelmap.c:149 msgid "Auxiliary 26" msgstr "Auxiliar 26" -#: ../src/pulse/channelmap.c:148 +#: ../src/pulse/channelmap.c:150 msgid "Auxiliary 27" msgstr "Auxiliar 27" -#: ../src/pulse/channelmap.c:149 +#: ../src/pulse/channelmap.c:151 msgid "Auxiliary 28" msgstr "Auxiliar 28" -#: ../src/pulse/channelmap.c:150 +#: ../src/pulse/channelmap.c:152 msgid "Auxiliary 29" msgstr "Auxiliar 29" -#: ../src/pulse/channelmap.c:151 +#: ../src/pulse/channelmap.c:153 msgid "Auxiliary 30" msgstr "Auxiliar 30" -#: ../src/pulse/channelmap.c:152 +#: ../src/pulse/channelmap.c:154 msgid "Auxiliary 31" msgstr "Auxiliar 31" -#: ../src/pulse/channelmap.c:154 +#: ../src/pulse/channelmap.c:156 msgid "Top Center" msgstr "Central superior" -#: ../src/pulse/channelmap.c:156 +#: ../src/pulse/channelmap.c:158 msgid "Top Front Center" msgstr "Central frontal superior" -#: ../src/pulse/channelmap.c:157 +#: ../src/pulse/channelmap.c:159 msgid "Top Front Left" msgstr "Frontal superior izquierdo" -#: ../src/pulse/channelmap.c:158 +#: ../src/pulse/channelmap.c:160 msgid "Top Front Right" msgstr "Frontal superior derecho" -#: ../src/pulse/channelmap.c:160 +#: ../src/pulse/channelmap.c:162 msgid "Top Rear Center" msgstr "Posterior central superior " -#: ../src/pulse/channelmap.c:161 +#: ../src/pulse/channelmap.c:163 msgid "Top Rear Left" msgstr "Posterior izquierdo superior" -#: ../src/pulse/channelmap.c:162 +#: ../src/pulse/channelmap.c:164 msgid "Top Rear Right" msgstr "Posterior derecho superior" -#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167 -#: ../src/pulse/volume.c:170 ../src/pulse/volume.c:196 -#: ../src/pulse/volume.c:216 ../src/pulse/volume.c:246 +#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167 +#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265 +#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315 msgid "(invalid)" msgstr "(inválido)" -#: ../src/pulse/channelmap.c:808 +#: ../src/pulse/channelmap.c:751 msgid "Stereo" msgstr "Estéreo" -#: ../src/pulse/channelmap.c:813 +#: ../src/pulse/channelmap.c:756 msgid "Surround 4.0" msgstr "Envolvente 4.0" -#: ../src/pulse/channelmap.c:819 +#: ../src/pulse/channelmap.c:762 msgid "Surround 4.1" msgstr "Envolvente 4.1" -#: ../src/pulse/channelmap.c:825 +#: ../src/pulse/channelmap.c:768 msgid "Surround 5.0" msgstr "Envolvente 5.0" -#: ../src/pulse/channelmap.c:831 +#: ../src/pulse/channelmap.c:774 msgid "Surround 5.1" msgstr "Envolvente 5.1" -#: ../src/pulse/channelmap.c:838 +#: ../src/pulse/channelmap.c:781 msgid "Surround 7.1" msgstr "Envolvente 7.1" @@ -1301,173 +1285,168 @@ msgstr "waitpid(:) %s" msgid "Received message for unknown extension '%s'" msgstr "Se ha recibido un mensaje para una extensión desconocida '%s'" -#: ../src/utils/pacat.c:94 +#: ../src/utils/pacat.c:107 +#, c-format +msgid "Failed to drain stream: %s\n" +msgstr "Error al drenar el flujo: %s\n" + +#: ../src/utils/pacat.c:112 +msgid "Playback stream drained.\n" +msgstr "El flujo de platback se ha drenado.\n" + +#: ../src/utils/pacat.c:122 +msgid "Draining connection to server.\n" +msgstr "Drenando conexión con el servidor.\n" + +#: ../src/utils/pacat.c:135 +#, c-format +msgid "pa_stream_drain(): %s\n" +msgstr "pa_stream_drain(): %s\n" + +#: ../src/utils/pacat.c:158 #, c-format msgid "pa_stream_write() failed: %s\n" msgstr "pa_stream_write() falló: %s\n" -#: ../src/utils/pacat.c:133 +#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 #, c-format msgid "pa_stream_peek() failed: %s\n" msgstr "pa_stream_peek() falló: %s\n" -#: ../src/utils/pacat.c:169 -#, c-format +#: ../src/utils/pacat.c:302 msgid "Stream successfully created.\n" msgstr "Se ha creado exitosamente el flujo (stream).\n" -#: ../src/utils/pacat.c:172 +#: ../src/utils/pacat.c:305 #, c-format msgid "pa_stream_get_buffer_attr() failed: %s\n" msgstr "pa_stream_get_buffer_attr() falló: %s\n" -#: ../src/utils/pacat.c:176 +#: ../src/utils/pacat.c:309 #, c-format msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgstr "Métrica del búfer: maxlenght=%u, tlenghth=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:179 +#: ../src/utils/pacat.c:312 #, c-format msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgstr "Métrica del búfer: maxlenght=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:183 +#: ../src/utils/pacat.c:316 #, c-format msgid "Using sample spec '%s', channel map '%s'.\n" msgstr "Utilizando especificaciones de muestra '%s', mapa del canal '%s'.\n" -#: ../src/utils/pacat.c:187 +#: ../src/utils/pacat.c:320 #, c-format msgid "Connected to device %s (%u, %ssuspended).\n" msgstr "Conectado al dispositivo %s (%u, %ssuspended).\n" -#: ../src/utils/pacat.c:197 +#: ../src/utils/pacat.c:330 #, c-format msgid "Stream error: %s\n" msgstr "Error de flujo: %s\n" -#: ../src/utils/pacat.c:207 +#: ../src/utils/pacat.c:340 #, c-format msgid "Stream device suspended.%s \n" msgstr "Dispositivo de flujo suspendido. %s \n" -#: ../src/utils/pacat.c:209 +#: ../src/utils/pacat.c:342 #, c-format msgid "Stream device resumed.%s \n" msgstr "Dispositivo de flujo reestablecido. %s \n" -#: ../src/utils/pacat.c:217 +#: ../src/utils/pacat.c:350 #, c-format msgid "Stream underrun.%s \n" msgstr "Flujo agotado. %s \n" -#: ../src/utils/pacat.c:224 +#: ../src/utils/pacat.c:357 #, c-format msgid "Stream overrun.%s \n" msgstr "Flujo saturado.%s \n" -#: ../src/utils/pacat.c:231 +#: ../src/utils/pacat.c:364 #, c-format msgid "Stream started.%s \n" msgstr "Flujo iniciado. %s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 #, c-format msgid "Stream moved to device %s (%u, %ssuspended).%s \n" msgstr "Fujo trasladado al dispositivo %s (%u, %ssuspended). %s\n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 msgid "not " msgstr "no" -#: ../src/utils/pacat.c:245 +#: ../src/utils/pacat.c:378 #, c-format msgid "Stream buffer attributes changed.%s \n" msgstr "Los atributos del buffer de flujo cambiaron. %s \n" -#: ../src/utils/pacat.c:278 +#: ../src/utils/pacat.c:411 #, c-format msgid "Connection established.%s \n" msgstr "Conexión establecida. %s \n" -#: ../src/utils/pacat.c:281 +#: ../src/utils/pacat.c:414 #, c-format msgid "pa_stream_new() failed: %s\n" msgstr "pa_stream_new() falló; %s\n" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:442 #, c-format msgid "pa_stream_connect_playback() failed: %s\n" msgstr "pa_stream_connect_playback() falló: %s\n" -#: ../src/utils/pacat.c:315 +#: ../src/utils/pacat.c:448 #, c-format msgid "pa_stream_connect_record() failed: %s\n" msgstr "pa_stream_connect_record() falló: %s\n" -#: ../src/utils/pacat.c:329 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:762 ../src/utils/paplay.c:183 +#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 #, c-format msgid "Connection failure: %s\n" msgstr "Error en la conexión: %s\n" -#: ../src/utils/pacat.c:349 ../src/utils/paplay.c:75 -#, c-format -msgid "Failed to drain stream: %s\n" -msgstr "Error al drenar el flujo: %s\n" - -#: ../src/utils/pacat.c:354 ../src/utils/paplay.c:80 -#, c-format -msgid "Playback stream drained.\n" -msgstr "El flujo de platback se ha drenado.\n" - -#: ../src/utils/pacat.c:364 ../src/utils/paplay.c:92 -#, c-format -msgid "Draining connection to server.\n" -msgstr "Drenando conexión con el servidor.\n" - -#: ../src/utils/pacat.c:390 -#, c-format +#: ../src/utils/pacat.c:495 msgid "Got EOF.\n" msgstr "Hay EOF.\n" -#: ../src/utils/pacat.c:396 -#, c-format -msgid "pa_stream_drain(): %s\n" -msgstr "pa_stream_drain(): %s\n" - -#: ../src/utils/pacat.c:406 +#: ../src/utils/pacat.c:500 #, c-format msgid "read() failed: %s\n" msgstr "read() falló: %s\n" -#: ../src/utils/pacat.c:438 +#: ../src/utils/pacat.c:532 #, c-format msgid "write() failed: %s\n" msgstr "write() falló: %s\n" -#: ../src/utils/pacat.c:459 -#, c-format +#: ../src/utils/pacat.c:553 msgid "Got signal, exiting.\n" msgstr "Hay señal, saliendo (exiting).\n" -#: ../src/utils/pacat.c:473 +#: ../src/utils/pacat.c:567 #, c-format msgid "Failed to get latency: %s\n" msgstr "No se pudo obtener latencia: %s\n" -#: ../src/utils/pacat.c:478 +#: ../src/utils/pacat.c:572 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "Tiempo: %0.3f sec; Latencia: %0.0f usec. \r" -#: ../src/utils/pacat.c:498 +#: ../src/utils/pacat.c:592 #, c-format msgid "pa_stream_update_timing_info() failed: %s\n" msgstr "pa_stream_update_timing_info() falló: %s\n" -#: ../src/utils/pacat.c:511 -#, c-format +#: ../src/utils/pacat.c:605 +#, fuzzy, c-format msgid "" "%s [options]\n" "\n" @@ -1493,8 +1472,10 @@ msgid "" "44100)\n" " --format=SAMPLEFORMAT The sample type, one of s16le, " "s16be, u8, float32le,\n" -" float32be, ulaw, alaw, s32le, s32be " -"(defaults to s16ne)\n" +" float32be, ulaw, alaw, s32le, s32be, " +"s24le, s24be,\n" +" s24-32le, s24-32be (defaults to " +"s16ne)\n" " --channels=CHANNELS The number of channels, 1 for mono, " "2 for stereo\n" " (defaults to 2)\n" @@ -1517,6 +1498,11 @@ msgid "" "bytes.\n" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" +" --property=PROPERTY=VALUE Set the specified property to the " +"specified value.\n" +" --raw Record/play raw PCM data.\n" +" --file-format=FFORMAT Record/play formatted PCM data.\n" +" --list-file-formats List available file formats.\n" msgstr "" "%s [opciones]\n" "\n" @@ -1568,7 +1554,7 @@ msgstr "" " --process-time=BYTES Solicitar los procesos de tiempo por " "pedido especificados en bytes.\n" -#: ../src/utils/pacat.c:612 +#: ../src/utils/pacat.c:727 #, c-format msgid "" "pacat %s\n" @@ -1579,88 +1565,132 @@ msgstr "" "Compilado con libpulse %s\n" "Linkeado con libpulse %s\n" -#: ../src/utils/pacat.c:669 +#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "Mapa de canales inválido '%s'\n" + +#: ../src/utils/pacat.c:776 +#, fuzzy, c-format +msgid "Invalid stream name '%s'\n" +msgstr "Método de remuestreo inválido '%s'" + +#: ../src/utils/pacat.c:813 #, c-format msgid "Invalid channel map '%s'\n" msgstr "Mapa de canales inválido '%s'\n" -#: ../src/utils/pacat.c:698 +#: ../src/utils/pacat.c:842 #, c-format msgid "Invalid latency specification '%s'\n" msgstr "Especificación de latencia inválida '%s'\n" -#: ../src/utils/pacat.c:705 +#: ../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" -#: ../src/utils/pacat.c:716 -#, c-format +#: ../src/utils/pacat.c:861 +#, fuzzy, c-format +msgid "Invalid property '%s'\n" +msgstr "Método de remuestreo inválido '%s'" + +#: ../src/utils/pacat.c:878 +#, fuzzy, 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" -#: ../src/utils/pacat.c:721 +#: ../src/utils/pacat.c:907 +#, c-format +msgid "open(): %s\n" +msgstr "open() %s\n" + +#: ../src/utils/pacat.c:912 #, c-format +msgid "dup2(): %s\n" +msgstr "dup2(): %s\n" + +#: ../src/utils/pacat.c:919 +msgid "Too many arguments.\n" +msgstr "Demasiados argumentos.\n" + +#: ../src/utils/pacat.c:930 +#, fuzzy +msgid "Failed to generate sample specification for file.\n" +msgstr "Error al intentar obtener información de muestra: %s\n" + +#: ../src/utils/pacat.c:950 +msgid "Failed to open audio file.\n" +msgstr "Error al intentar abrir el archivo de sonido.\n" + +#: ../src/utils/pacat.c:956 +msgid "" +"Warning: specified sample specification will be overwritten with " +"specification from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "Error al intentar obtener información de muestra: %s\n" + +#: ../src/utils/pacat.c:968 +msgid "Warning: Failed to determine channel map from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:979 msgid "Channel map doesn't match sample specification\n" msgstr "El mapa del canal no se corresponde con la especificación de muestra\n" -#: ../src/utils/pacat.c:728 -#, c-format -msgid "Opening a %s stream with sample specification '%s'.\n" +#: ../src/utils/pacat.c:990 +msgid "Warning: failed to write channel map to file.\n" +msgstr "" + +#: ../src/utils/pacat.c:1005 +#, fuzzy, c-format +msgid "" +"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" msgstr "Abriendo un %s flujo con las especificaciones de muestra '%s'.\n" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "recording" msgstr "grabando" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "playback" msgstr "playback" -#: ../src/utils/pacat.c:736 -#, c-format -msgid "open(): %s\n" -msgstr "open() %s\n" - -#: ../src/utils/pacat.c:741 -#, c-format -msgid "dup2(): %s\n" -msgstr "dup2(): %s\n" - -#: ../src/utils/pacat.c:751 -#, c-format -msgid "Too many arguments.\n" -msgstr "Demasiados argumentos.\n" - -#: ../src/utils/pacat.c:764 ../src/utils/pasuspender.c:280 -#: ../src/utils/pactl.c:1017 ../src/utils/paplay.c:381 +#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 +#: ../src/utils/pactl.c:1104 #, c-format msgid "pa_mainloop_new() failed.\n" msgstr "pa_mainloop_new() falló.\n" -#: ../src/utils/pacat.c:785 -#, c-format +#: ../src/utils/pacat.c:1051 msgid "io_new() failed.\n" msgstr "io_new() falló.\n" -#: ../src/utils/pacat.c:791 ../src/utils/pasuspender.c:293 -#: ../src/utils/pactl.c:1031 ../src/utils/paplay.c:396 +#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 +#: ../src/utils/pactl.c:1116 #, c-format msgid "pa_context_new() failed.\n" msgstr "pa_context_new() falló.\n" -#: ../src/utils/pacat.c:799 +#: ../src/utils/pacat.c:1066 #, fuzzy, c-format msgid "pa_context_connect() failed: %s\n" msgstr "pa_context_connect() falló: %s" -#: ../src/utils/pacat.c:810 -#, c-format +#: ../src/utils/pacat.c:1077 msgid "time_new() failed.\n" msgstr "time_new() falló.\n" -#: ../src/utils/pacat.c:817 ../src/utils/pasuspender.c:301 -#: ../src/utils/pactl.c:1042 ../src/utils/paplay.c:410 +#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 +#: ../src/utils/pactl.c:1127 #, c-format msgid "pa_mainloop_run() failed.\n" msgstr "pa_mainloop_run() falló.\n" @@ -1690,8 +1720,7 @@ 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:768 -#: ../src/utils/paplay.c:191 +#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" msgstr "Hay SIGINT, saliendo.\n" @@ -1720,7 +1749,7 @@ msgstr "" "conectarse\n" "\n" -#: ../src/utils/pasuspender.c:251 +#: ../src/utils/pasuspender.c:248 #, c-format msgid "" "pasuspender %s\n" @@ -1731,34 +1760,34 @@ msgstr "" "Compilado con libpulse %s\n" "Linkeado con libpulse %s\n" -#: ../src/utils/pactl.c:108 +#: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" msgstr "Error al intentar obtener estadÃsticas: %s\n" -#: ../src/utils/pactl.c:114 +#: ../src/utils/pactl.c:134 #, c-format msgid "Currently in use: %u blocks containing %s bytes total.\n" msgstr "Actualmente en uso: %u bloques conteniendo %s bytes en total.\n" -#: ../src/utils/pactl.c:117 +#: ../src/utils/pactl.c:137 #, c-format msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n" msgstr "" "Ubicados durante a lo largo del tiempo: %u bloques conteniendo %s bytes en " "total.\n" -#: ../src/utils/pactl.c:120 +#: ../src/utils/pactl.c:140 #, c-format msgid "Sample cache size: %s\n" msgstr "Tamaño del cache de muestra: %s\n" -#: ../src/utils/pactl.c:129 +#: ../src/utils/pactl.c:149 #, c-format msgid "Failed to get server information: %s\n" msgstr "Error al intentar obtener información del servidor: %s\n" -#: ../src/utils/pactl.c:137 +#: ../src/utils/pactl.c:157 #, c-format msgid "" "User name: %s\n" @@ -1781,12 +1810,12 @@ msgstr "" "Fuente por defecto: %s\n" "Cookie: %08x\n" -#: ../src/utils/pactl.c:178 +#: ../src/utils/pactl.c:198 #, c-format msgid "Failed to get sink information: %s\n" msgstr "Error al intentar obtener información del destino: %s\n" -#: ../src/utils/pactl.c:194 +#: ../src/utils/pactl.c:214 #, c-format msgid "" "Sink #%u\n" @@ -1825,12 +1854,22 @@ msgstr "" "\tPropiedades:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:258 +#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 +#, fuzzy, c-format +msgid "\tPorts:\n" +msgstr "\tPerfiles:\n" + +#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 +#, fuzzy, c-format +msgid "\tActive Port: %s\n" +msgstr "\tPerfil Activo: %s\n" + +#: ../src/utils/pactl.c:290 #, c-format msgid "Failed to get source information: %s\n" msgstr "Error al intentar obtener información de la fuente: %s\n" -#: ../src/utils/pactl.c:274 +#: ../src/utils/pactl.c:306 #, c-format msgid "" "Source #%u\n" @@ -1869,20 +1908,20 @@ msgstr "" "\tPropiedades:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:306 ../src/utils/pactl.c:350 ../src/utils/pactl.c:385 -#: ../src/utils/pactl.c:422 ../src/utils/pactl.c:481 ../src/utils/pactl.c:482 -#: ../src/utils/pactl.c:492 ../src/utils/pactl.c:536 ../src/utils/pactl.c:537 -#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:586 ../src/utils/pactl.c:587 -#: ../src/utils/pactl.c:594 +#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429 +#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526 +#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581 +#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631 +#: ../src/utils/pactl.c:638 msgid "n/a" msgstr "n/a" -#: ../src/utils/pactl.c:324 +#: ../src/utils/pactl.c:368 #, c-format msgid "Failed to get module information: %s\n" msgstr "Error al intentar obtener información del módulo: %s\n" -#: ../src/utils/pactl.c:342 +#: ../src/utils/pactl.c:386 #, c-format msgid "" "Module #%u\n" @@ -1899,12 +1938,12 @@ msgstr "" "\tPropiedades:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:361 +#: ../src/utils/pactl.c:405 #, c-format msgid "Failed to get client information: %s\n" msgstr "Error al intentar obtener información del cliente: %s\n" -#: ../src/utils/pactl.c:379 +#: ../src/utils/pactl.c:423 #, c-format msgid "" "Client #%u\n" @@ -1919,12 +1958,12 @@ msgstr "" "\tPropiedades:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:396 +#: ../src/utils/pactl.c:440 #, c-format msgid "Failed to get card information: %s\n" msgstr "Fallo al obtener la información de la placa: %s\n" -#: ../src/utils/pactl.c:414 +#: ../src/utils/pactl.c:458 #, c-format msgid "" "Card #%u\n" @@ -1941,22 +1980,22 @@ msgstr "" "\tPropiedades:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:428 +#: ../src/utils/pactl.c:472 #, c-format msgid "\tProfiles:\n" msgstr "\tPerfiles:\n" -#: ../src/utils/pactl.c:434 +#: ../src/utils/pactl.c:478 #, c-format msgid "\tActive Profile: %s\n" msgstr "\tPerfil Activo: %s\n" -#: ../src/utils/pactl.c:445 +#: ../src/utils/pactl.c:489 #, c-format msgid "Failed to get sink input information: %s\n" msgstr "Error al intentar obtener información de entrada del destino: %s\n" -#: ../src/utils/pactl.c:464 +#: ../src/utils/pactl.c:508 #, c-format msgid "" "Sink Input #%u\n" @@ -1993,13 +2032,13 @@ msgstr "" "\tPropiedades:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:503 +#: ../src/utils/pactl.c:547 #, c-format msgid "Failed to get source output information: %s\n" msgstr "" "Error al intentar obtener información acerca de la salida de la fuenta: %s\n" -#: ../src/utils/pactl.c:523 +#: ../src/utils/pactl.c:567 #, c-format msgid "" "Source Output #%u\n" @@ -2028,12 +2067,12 @@ msgstr "" "\tPropiedades:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:554 +#: ../src/utils/pactl.c:598 #, c-format msgid "Failed to get sample information: %s\n" msgstr "Error al intentar obtener información de muestra: %s\n" -#: ../src/utils/pactl.c:572 +#: ../src/utils/pactl.c:616 #, c-format msgid "" "Sample #%u\n" @@ -2064,23 +2103,22 @@ msgstr "" "\tPropiedades:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:602 ../src/utils/pactl.c:612 +#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 #, c-format msgid "Failure: %s\n" msgstr "Falla: %s\n" -#: ../src/utils/pactl.c:636 +#: ../src/utils/pactl.c:680 #, c-format msgid "Failed to upload sample: %s\n" msgstr "Fallo al cargar muestra: %s\n" -#: ../src/utils/pactl.c:653 -#, c-format +#: ../src/utils/pactl.c:697 msgid "Premature end of file\n" msgstr "Fin prematuro del archivo\n" -#: ../src/utils/pactl.c:774 -#, c-format +#: ../src/utils/pactl.c:826 +#, fuzzy, c-format msgid "" "%s [options] stat\n" "%s [options] list\n" @@ -2095,6 +2133,8 @@ msgid "" "%s [options] suspend-sink [SINK] 1|0\n" "%s [options] suspend-source [SOURCE] 1|0\n" "%s [options] set-card-profile [CARD] [PROFILE] \n" +"%s [options] set-sink-port [SINK] [PORT] \n" +"%s [options] set-source-port [SOURCE] [PORT] \n" "\n" " -h, --help Show this help\n" " --version Show version\n" @@ -2126,7 +2166,7 @@ msgstr "" " -n, --client-name=NAME El nombre de este cliente en el " "servidor\n" -#: ../src/utils/pactl.c:826 +#: ../src/utils/pactl.c:880 #, c-format msgid "" "pactl %s\n" @@ -2137,50 +2177,46 @@ msgstr "" "Compilado con libpulse %s\n" "Linked con libpulse %s\n" -#: ../src/utils/pactl.c:865 -#, c-format +#: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "Por favor, especifique un archivo de muestra a cargar\n" -#: ../src/utils/pactl.c:887 -#, c-format +#: ../src/utils/pactl.c:939 msgid "Failed to open sound file.\n" msgstr "Error al intentar abrir el archivo de sonido.\n" -#: ../src/utils/pactl.c:899 -#, c-format +#: ../src/utils/pactl.c:951 +#, fuzzy +msgid "Warning: Failed to determine sample specification from file.\n" +msgstr "Abriendo un %s flujo con las especificaciones de muestra '%s'.\n" + +#: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" msgstr "Debe especificar un nombre de muestra para ser escuchado\n" -#: ../src/utils/pactl.c:911 -#, c-format +#: ../src/utils/pactl.c:973 msgid "You have to specify a sample name to remove\n" msgstr "Debe especificar un nombre de muestra para ser eliminado\n" -#: ../src/utils/pactl.c:919 -#, c-format +#: ../src/utils/pactl.c:982 msgid "You have to specify a sink input index and a sink\n" msgstr "" "Debe especificar un Ãndice para las entradas del destino y un destino\n" -#: ../src/utils/pactl.c:928 -#, c-format +#: ../src/utils/pactl.c:992 msgid "You have to specify a source output index and a source\n" msgstr "" "Debe especificar un Ãndice para las salidas de la fuente, y una fuente\n" -#: ../src/utils/pactl.c:942 -#, c-format +#: ../src/utils/pactl.c:1007 msgid "You have to specify a module name and arguments.\n" msgstr "Debe especificar un nombre de módulo y los argumentos\n" -#: ../src/utils/pactl.c:962 -#, c-format +#: ../src/utils/pactl.c:1027 msgid "You have to specify a module index\n" msgstr "Debe especificar un Ãndice de módulo\n" -#: ../src/utils/pactl.c:972 -#, c-format +#: ../src/utils/pactl.c:1037 msgid "" "You may not specify more than one sink. You have to specify a boolean " "value.\n" @@ -2188,8 +2224,7 @@ msgstr "" "No puede especificar más de un sumidero. Tiene que especificar un valor " "booleano.\n" -#: ../src/utils/pactl.c:985 -#, c-format +#: ../src/utils/pactl.c:1050 msgid "" "You may not specify more than one source. You have to specify a boolean " "value.\n" @@ -2197,17 +2232,25 @@ msgstr "" "No puede especificar más de una fuente. Tiene que especificar un valor " "booleano.\n" -#: ../src/utils/pactl.c:997 -#, c-format +#: ../src/utils/pactl.c:1062 msgid "You have to specify a card name/index and a profile name\n" msgstr "Debe especificar un nombre de placa/Ãndice y un nombre de perfil\n" -#: ../src/utils/pactl.c:1012 -#, c-format +#: ../src/utils/pactl.c:1073 +#, fuzzy +msgid "You have to specify a sink name/index and a port name\n" +msgstr "Debe especificar un nombre de placa/Ãndice y un nombre de perfil\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" + +#: ../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:1037 ../src/utils/paplay.c:404 +#: ../src/utils/pactl.c:1122 #, c-format msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect() falló: %s" @@ -2292,132 +2335,51 @@ msgstr "Error al cargar datos de cookie\n" msgid "Not yet implemented.\n" msgstr "Aún no se ha implementado.\n" -#: ../src/utils/pacmd.c:64 +#: ../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." + +#: ../src/utils/pacmd.c:66 #, c-format msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s" msgstr "socket(PF_UNIX, SOCK_STREAM, 0): %s" -#: ../src/utils/pacmd.c:81 +#: ../src/utils/pacmd.c:83 #, c-format msgid "connect(): %s" msgstr "connect(): %s" -#: ../src/utils/pacmd.c:89 +#: ../src/utils/pacmd.c:91 msgid "Failed to kill PulseAudio daemon." msgstr "Error al intentar detener el demonio de PulseAudio." -#: ../src/utils/pacmd.c:97 +#: ../src/utils/pacmd.c:99 msgid "Daemon not responding." msgstr "El demonio no responde." -#: ../src/utils/pacmd.c:144 +#: ../src/utils/pacmd.c:146 #, c-format msgid "select(): %s" msgstr "select(): %s" -#: ../src/utils/pacmd.c:154 ../src/utils/pacmd.c:171 +#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173 #, c-format msgid "read(): %s" msgstr "read(): %s" -#: ../src/utils/pacmd.c:187 ../src/utils/pacmd.c:201 +#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203 #, c-format msgid "write(): %s" msgstr "write(): %s" -#: ../src/utils/paplay.c:139 -#, c-format -msgid "Stream successfully created\n" -msgstr "Se ha creado el flujo exitosamente\n" - -#: ../src/utils/paplay.c:144 -#, c-format -msgid "Stream errror: %s\n" -msgstr "Error de flujo: %s\n" - -#: ../src/utils/paplay.c:165 -#, c-format -msgid "Connection established.\n" -msgstr "Conección establecida.\n" - -#: ../src/utils/paplay.c:198 -#, c-format -msgid "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" -msgstr "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Muestra esta ayuda\n" -" --version Muestra la versión\n" -"\n" -" -v, --verbose Habilita operación con vocabulario " -"más detallado\n" -"\n" -" -s, --server=SERVER El nombre del servidor al que " -"conectarse\n" -" -d, --device=DEVICE El nombre del destino al 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 volumen inicial " -"(linear)en el rango de 0...65536\n" -" --channel-map=CHANNELMAP Establece el mapa del canal para el " -"uso\n" - -#: ../src/utils/paplay.c:255 -#, c-format -msgid "" -"paplay %s\n" -"Compiled with libpulse %s\n" -"Linked with libpulse %s\n" -msgstr "" -"paplay %s\n" -"Compilado con libpulse %s\n" -"Linked con libpulse %s\n" - -#: ../src/utils/paplay.c:292 -#, c-format -msgid "Invalid channel map\n" -msgstr "Mapa de canal inválido\n" - -#: ../src/utils/paplay.c:314 -#, c-format -msgid "Failed to open file '%s'\n" -msgstr "Error al intentar abrir el archivo '%s'\n" - -#: ../src/utils/paplay.c:350 -#, c-format -msgid "Channel map doesn't match file.\n" -msgstr "El mapa del canal no se corresponde con el archivo.\n" - -#: ../src/utils/paplay.c:376 -#, c-format -msgid "Using sample spec '%s'\n" -msgstr "Utilizando especificaciones de muestra '%s'\n" - #: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 msgid "Cannot access autospawn lock." msgstr "No se puede acceder al candado de autogeneración." -#: ../src/modules/alsa/alsa-sink.c:393 ../src/modules/alsa/alsa-sink.c:541 +#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2434,7 +2396,7 @@ msgstr "" "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:377 ../src/modules/alsa/alsa-source.c:516 +#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2451,38 +2413,136 @@ msgstr "" "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:114 -#, c-format -msgid "Output %s + Input %s" -msgstr "Salida %s + Entrada %s" - -#: ../src/modules/alsa/module-alsa-card.c:117 -#, c-format -msgid "Output %s" -msgstr "Salida %s" - -#: ../src/modules/alsa/module-alsa-card.c:121 -#, c-format -msgid "Input %s" -msgstr "Entrada %s" - -#: ../src/modules/alsa/module-alsa-card.c:170 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2006 +#: ../src/modules/alsa/module-alsa-card.c:152 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 msgid "Off" msgstr "Apagado" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1976 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 msgid "High Fidelity Playback (A2DP)" msgstr "Reproducción de Alta Fidelidad (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1991 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 msgid "Telephony Duplex (HSP/HFP)" msgstr "TelefonÃa Duplex (HSP/HFP)" -#: ../src/modules/reserve-wrap.c:139 +#: ../src/modules/reserve-wrap.c:151 msgid "PulseAudio Sound Server" msgstr "Servidor de Sonido PulseAudio" +#~ 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" +#~ " -h, --help Show this help\n" +#~ " --version Show version\n" +#~ "\n" +#~ " -v, --verbose Enable verbose operation\n" +#~ "\n" +#~ " -s, --server=SERVER The name of the server to connect " +#~ "to\n" +#~ " -d, --device=DEVICE The name of the sink to connect " +#~ "to\n" +#~ " -n, --client-name=NAME How to call this client on the " +#~ "server\n" +#~ " --stream-name=NAME How to call this stream on the " +#~ "server\n" +#~ " --volume=VOLUME Specify the initial (linear) " +#~ "volume in range 0...65536\n" +#~ " --channel-map=CHANNELMAP Set the channel map to the use\n" +#~ msgstr "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Muestra esta ayuda\n" +#~ " --version Muestra la versión\n" +#~ "\n" +#~ " -v, --verbose Habilita operación con " +#~ "vocabulario más detallado\n" +#~ "\n" +#~ " -s, --server=SERVER El nombre del servidor al que " +#~ "conectarse\n" +#~ " -d, --device=DEVICE El nombre del destino al 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 volumen inicial " +#~ "(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" +#~ "Linked with libpulse %s\n" +#~ msgstr "" +#~ "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" + #, fuzzy #~ msgid "" #~ "Called SUID root and real-time and/or high-priority scheduling was " @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: git trunk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-21 23:02+0200\n" +"POT-Creation-Date: 2009-06-17 23:42+0200\n" "PO-Revision-Date: 2009-04-05 16:24+0300\n" "Last-Translator: Ville-Pekka Vainio <vpivaini@cs.helsinki.fi>\n" "Language-Team: Finnish <laatu@lokalisointi.org>\n" @@ -16,51 +16,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../src/modules/alsa/alsa-util.c:532 -msgid "Analog Mono" -msgstr "Analoginen mono" - -#: ../src/modules/alsa/alsa-util.c:540 -msgid "Analog Stereo" -msgstr "Analoginen stereo" - -#: ../src/modules/alsa/alsa-util.c:548 -msgid "Digital Stereo (IEC958)" -msgstr "Digitaalinen stereo (IEC958)" - -#: ../src/modules/alsa/alsa-util.c:556 -msgid "Digital Stereo (HDMI)" -msgstr "Digitaalinen stereo (HDMI)" - -#: ../src/modules/alsa/alsa-util.c:565 -msgid "Analog Surround 4.0" -msgstr "Analoginen tilaääni 4.0" - -#: ../src/modules/alsa/alsa-util.c:574 -msgid "Digital Surround 4.0 (IEC958/AC3)" -msgstr "Digitaalinen tilaääni 4.0 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:584 -msgid "Analog Surround 4.1" -msgstr "Analoginen tilaääni 4.1" - -#: ../src/modules/alsa/alsa-util.c:594 -msgid "Analog Surround 5.0" -msgstr "Analoginen tilaääni 5.0" - -#: ../src/modules/alsa/alsa-util.c:604 -msgid "Analog Surround 5.1" -msgstr "Analoginen tilaääni 5.1" - -#: ../src/modules/alsa/alsa-util.c:614 -msgid "Digital Surround 5.1 (IEC958/AC3)" -msgstr "Digitaalinen tilaääni 5.1 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:625 -msgid "Analog Surround 7.1" -msgstr "Analoginen tilaääni 7.1" - -#: ../src/modules/alsa/alsa-util.c:1646 +#: ../src/modules/alsa/alsa-util.c:1015 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -72,7 +28,7 @@ msgstr "" "Tämä on todennäköisesti ohjelmavirhe ALSA-ajurissa â€%sâ€. Ilmoita tästä " "ongelmasta ALSA-kehittäjille." -#: ../src/modules/alsa/alsa-util.c:1687 +#: ../src/modules/alsa/alsa-util.c:1056 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -85,7 +41,7 @@ msgstr "" "Tämä on todennäköisesti ohjelmavirhe ALSA-ajurissa â€%sâ€. Ilmoita tästä " "ongelmasta ALSA-kehittäjille." -#: ../src/modules/alsa/alsa-util.c:1734 +#: ../src/modules/alsa/alsa-util.c:1103 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -98,11 +54,24 @@ msgstr "" "Tämä on todennäköisesti ohjelmavirhe ALSA-ajurissa â€%sâ€. Ilmoita tästä " "ongelmasta ALSA-kehittäjille." -#: ../src/pulsecore/sink.c:2141 +#: ../src/modules/module-ladspa-sink.c:49 +msgid "Virtual LADSPA sink" +msgstr "" + +#: ../src/modules/module-ladspa-sink.c:53 +msgid "" +"sink_name=<name for the sink> sink_properties=<properties for the sink> " +"master=<name of sink to filter> format=<sample format> rate=<sample rate> " +"channels=<number of channels> channel_map=<channel map> plugin=<ladspa " +"plugin name> label=<ladspa plugin label> control=<comma seperated list of " +"input control values>" +msgstr "" + +#: ../src/pulsecore/sink.c:2394 msgid "Internal Audio" msgstr "Sisäinen äänentoisto" -#: ../src/pulsecore/sink.c:2147 +#: ../src/pulsecore/sink.c:2400 msgid "Modem" msgstr "Modeemi" @@ -172,104 +141,104 @@ msgstr "Tunnistautumista ei saada: %s" msgid "PolicyKit responded with '%s'" msgstr "PolicyKit vastasi â€%sâ€" -#: ../src/daemon/main.c:138 +#: ../src/daemon/main.c:142 #, c-format msgid "Got signal %s." msgstr "Saatiin signaali %s." -#: ../src/daemon/main.c:165 +#: ../src/daemon/main.c:169 msgid "Exiting." msgstr "Poistutaan." -#: ../src/daemon/main.c:183 +#: ../src/daemon/main.c:187 #, c-format msgid "Failed to find user '%s'." msgstr "Käyttäjää â€%s†ei löydetty." -#: ../src/daemon/main.c:188 +#: ../src/daemon/main.c:192 #, c-format msgid "Failed to find group '%s'." msgstr "Ryhmää â€%s†ei löydetty." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:196 #, 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:197 +#: ../src/daemon/main.c:201 #, 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:202 +#: ../src/daemon/main.c:206 #, 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:205 ../src/daemon/main.c:210 +#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 #, c-format msgid "Failed to create '%s': %s" msgstr "Hakemiston â€%s†luominen epäonnistui: %s" -#: ../src/daemon/main.c:217 +#: ../src/daemon/main.c:221 #, c-format msgid "Failed to change group list: %s" msgstr "Ryhmäluettelon vaihtaminen epäonnistui: %s" -#: ../src/daemon/main.c:233 +#: ../src/daemon/main.c:237 #, c-format msgid "Failed to change GID: %s" msgstr "GID:n vaihtaminen epäonnistui: %s" -#: ../src/daemon/main.c:249 +#: ../src/daemon/main.c:253 #, c-format msgid "Failed to change UID: %s" msgstr "UID:n vaihtaminen epäonnistui: %s" -#: ../src/daemon/main.c:263 +#: ../src/daemon/main.c:267 msgid "Successfully dropped root privileges." msgstr "Root-oikeuksista luopuminen onnistui." -#: ../src/daemon/main.c:271 +#: ../src/daemon/main.c:275 msgid "System wide mode unsupported on this platform." msgstr "Järjestelmänlaajuista tilaa ei tueta tällä alustalla." -#: ../src/daemon/main.c:289 +#: ../src/daemon/main.c:293 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) epäonnistui: %s" -#: ../src/daemon/main.c:477 +#: ../src/daemon/main.c:481 msgid "Failed to parse command line." msgstr "Komentorivin jäsentäminen epäonnistui." -#: ../src/daemon/main.c:501 +#: ../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:508 +#: ../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:516 +#: ../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:519 +#: ../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:524 +#: ../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:527 +#: ../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:556 +#: ../src/daemon/main.c:560 #, c-format msgid "" "Called SUID root and real-time and/or high-priority scheduling was requested " @@ -290,48 +259,48 @@ msgstr "" "käyttäjän RLIMIT_NICE/RLIMIT_RTPRIO-resurssirajoja reaaliaikaisen ja/tai " "korkean prioriteetin ajoituksen ottamiseksi käyttöön." -#: ../src/daemon/main.c:581 +#: ../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:610 +#: ../src/daemon/main.c:614 msgid "Successfully increased RLIMIT_RTPRIO" msgstr "RLIMIT_RTPRIO:n kasvatus onnistui" -#: ../src/daemon/main.c:613 +#: ../src/daemon/main.c:617 #, c-format msgid "RLIMIT_RTPRIO failed: %s" msgstr "RLIMIT_RTPRIO epäonnistui: %s" -#: ../src/daemon/main.c:620 +#: ../src/daemon/main.c:624 msgid "Giving up CAP_NICE" msgstr "Luovutaan CAP_NICE:stä" -#: ../src/daemon/main.c:627 +#: ../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:688 +#: ../src/daemon/main.c:692 msgid "Daemon not running" msgstr "Taustaprosessi ei ole käynnissä" -#: ../src/daemon/main.c:690 +#: ../src/daemon/main.c:694 #, c-format msgid "Daemon running as PID %u" msgstr "Taustaprosessi käynnissä prosessitunnisteella %u" -#: ../src/daemon/main.c:700 +#: ../src/daemon/main.c:704 #, c-format msgid "Failed to kill daemon: %s" msgstr "Taustaprosessin lopettaminen epäonnistui: %s" -#: ../src/daemon/main.c:718 +#: ../src/daemon/main.c:722 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -339,164 +308,174 @@ msgstr "" "Tätä ohjelmaa ei ole tarkoitettu suoritettavaksi pääkäyttäjänä (ellei --" "system ole määritelty)." -#: ../src/daemon/main.c:720 +#: ../src/daemon/main.c:724 msgid "Root privileges required." msgstr "Pääkäyttäjän (root) oikeudet vaaditaan." -#: ../src/daemon/main.c:725 +#: ../src/daemon/main.c:729 msgid "--start not supported for system instances." msgstr "--start-valitsinta ei tueta järjestelmätilassa." -#: ../src/daemon/main.c:730 +#: ../src/daemon/main.c:734 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:733 +#: ../src/daemon/main.c:737 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:736 +#: ../src/daemon/main.c:740 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:741 +#: ../src/daemon/main.c:745 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:768 +#: ../src/daemon/main.c:772 msgid "Failed to acquire stdio." msgstr "stdio:n saaminen epäonnistui." -#: ../src/daemon/main.c:774 +#: ../src/daemon/main.c:778 #, c-format msgid "pipe failed: %s" msgstr "putki epäonnistui: %s" -#: ../src/daemon/main.c:779 +#: ../src/daemon/main.c:783 #, c-format msgid "fork() failed: %s" msgstr "fork() epäonnistui: %s" -#: ../src/daemon/main.c:793 +#: ../src/daemon/main.c:797 #, c-format msgid "read() failed: %s" msgstr "read() epäonnistui: %s" -#: ../src/daemon/main.c:799 +#: ../src/daemon/main.c:803 msgid "Daemon startup failed." msgstr "Taustaprosessin käynnistys epäonnistui." -#: ../src/daemon/main.c:801 +#: ../src/daemon/main.c:805 msgid "Daemon startup successful." msgstr "Taustaprosessin käynnistys onnistui." -#: ../src/daemon/main.c:871 +#: ../src/daemon/main.c:875 #, c-format msgid "This is PulseAudio %s" msgstr "Tämä on PulseAudio %s" -#: ../src/daemon/main.c:872 +#: ../src/daemon/main.c:876 #, c-format msgid "Compilation host: %s" msgstr "Käännöksen isäntäkone: %s" -#: ../src/daemon/main.c:873 +#: ../src/daemon/main.c:877 #, c-format msgid "Compilation CFLAGS: %s" msgstr "Käännösaikaiset C-liput (CFLAGS): %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:880 #, c-format msgid "Running on host: %s" msgstr "Käynnissä isäntäkoneella: %s" -#: ../src/daemon/main.c:879 +#: ../src/daemon/main.c:883 #, c-format msgid "Found %u CPUs." msgstr "Löydettiin %u CPU:ta." -#: ../src/daemon/main.c:881 +#: ../src/daemon/main.c:885 #, c-format msgid "Page size is %lu bytes" msgstr "Sivun koko on %lu tavua" -#: ../src/daemon/main.c:884 +#: ../src/daemon/main.c:888 msgid "Compiled with Valgrind support: yes" msgstr "Käännetty Valgrind-tuella: kyllä" -#: ../src/daemon/main.c:886 +#: ../src/daemon/main.c:890 msgid "Compiled with Valgrind support: no" msgstr "Käännetty Valgrind-tuella: ei" -#: ../src/daemon/main.c:889 +#: ../src/daemon/main.c:893 #, c-format msgid "Running in valgrind mode: %s" msgstr "Käynnissä valgrind-tilassa: %s" -#: ../src/daemon/main.c:892 +#: ../src/daemon/main.c:896 msgid "Optimized build: yes" msgstr "Optimoitu rakentaminen: kyllä" -#: ../src/daemon/main.c:894 +#: ../src/daemon/main.c:898 msgid "Optimized build: no" msgstr "Optimoitu rakentaminen: ei" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:902 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG on määritelty, kaikki assertit ovat poissa käytöstä." -#: ../src/daemon/main.c:900 +#: ../src/daemon/main.c:904 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:902 +#: ../src/daemon/main.c:906 msgid "All asserts enabled." msgstr "Kaikki assertit ovat käytössä." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:910 msgid "Failed to get machine ID" msgstr "Konetunnisteen nouto epäonnistui" -#: ../src/daemon/main.c:909 +#: ../src/daemon/main.c:913 #, c-format msgid "Machine ID is %s." msgstr "Konetunniste on %s." -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:917 #, fuzzy, c-format msgid "Session ID is %s." msgstr "Konetunniste on %s." -#: ../src/daemon/main.c:919 +#: ../src/daemon/main.c:923 #, c-format msgid "Using runtime directory %s." msgstr "Käytetään ajonaikaista hakemistoa %s." -#: ../src/daemon/main.c:924 +#: ../src/daemon/main.c:928 #, c-format msgid "Using state directory %s." msgstr "Käytetään tilahakemistoa %s." -#: ../src/daemon/main.c:927 +#: ../src/daemon/main.c:931 #, c-format msgid "Running in system mode: %s" msgstr "Suoritetaan järjestelmätilassa: %s" -#: ../src/daemon/main.c:942 +#: ../src/daemon/main.c:934 +msgid "" +"OK, so you are running PA in system mode. Please note that you most likely " +"shouldn't be doing that.\n" +"If you do it nonetheless then it's your own fault if things don't work as " +"expected.\n" +"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " +"explanation why system mode is usually a bad idea." +msgstr "" + +#: ../src/daemon/main.c:951 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() epäonnistui." -#: ../src/daemon/main.c:954 +#: ../src/daemon/main.c:961 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "Korkean tarkkuuden ajastimet käytettävissä." -#: ../src/daemon/main.c:956 +#: ../src/daemon/main.c:963 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -504,33 +483,33 @@ msgstr "" "Hei, ytimesi on kehno! Linux korkean tarkkuuden ajastimien tuella on hyvin " "suositeltava!" -#: ../src/daemon/main.c:970 +#: ../src/daemon/main.c:988 msgid "pa_core_new() failed." msgstr "pa_core_new() epäonnistui." -#: ../src/daemon/main.c:1032 +#: ../src/daemon/main.c:1050 msgid "Failed to initialize daemon." msgstr "Taustaprosessin alustus epäonnistui." -#: ../src/daemon/main.c:1037 +#: ../src/daemon/main.c:1055 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "" "Taustaprosessin käynnistys ilman ladattavia moduuleita, kieltäydytään " "toiminnasta." -#: ../src/daemon/main.c:1054 +#: ../src/daemon/main.c:1072 msgid "Daemon startup complete." msgstr "Taustaprosessin käynnistys valmis." -#: ../src/daemon/main.c:1060 +#: ../src/daemon/main.c:1078 msgid "Daemon shutdown initiated." msgstr "Taustaprosessin sulkeminen käynnistetty." -#: ../src/daemon/main.c:1082 +#: ../src/daemon/main.c:1100 msgid "Daemon terminated." msgstr "Taustaprosessi lopetettu." -#: ../src/daemon/cmdline.c:121 +#: ../src/daemon/cmdline.c:115 #, c-format msgid "" "%s [options]\n" @@ -685,15 +664,15 @@ msgstr "" " -n Älä lataa oletuskomentosarja-\n" " tiedostoa\n" -#: ../src/daemon/cmdline.c:252 +#: ../src/daemon/cmdline.c:247 msgid "--daemonize expects boolean argument" msgstr "--daemonize vaatii totuusarvoisen argumentin" -#: ../src/daemon/cmdline.c:259 +#: ../src/daemon/cmdline.c:254 msgid "--fail expects boolean argument" msgstr "--fail vaatii totuusarvoisen argumentin" -#: ../src/daemon/cmdline.c:269 +#: ../src/daemon/cmdline.c:264 msgid "" "--log-level expects log level argument (either numeric in range 0..4 or one " "of debug, info, notice, warn, error)." @@ -701,54 +680,54 @@ msgstr "" "--log-level vaatii lokikirjoituksen tason argumentiksi (joko numero väliltä " "0..4 tai yksi seuraavista: debug, info, notice, warn, error)." -#: ../src/daemon/cmdline.c:281 +#: ../src/daemon/cmdline.c:276 msgid "--high-priority expects boolean argument" msgstr "--high-priority vaatii totuusarvoisen argumentin" -#: ../src/daemon/cmdline.c:288 +#: ../src/daemon/cmdline.c:283 msgid "--realtime expects boolean argument" msgstr "--realtime vaatii totuusarvoisen argumentin" -#: ../src/daemon/cmdline.c:295 +#: ../src/daemon/cmdline.c:290 msgid "--disallow-module-loading expects boolean argument" msgstr "--disallow-module-loading vaatii totuusarvoisen argumentin" -#: ../src/daemon/cmdline.c:302 +#: ../src/daemon/cmdline.c:297 msgid "--disallow-exit expects boolean argument" msgstr "--disallow-exit vaatii totuusarvoisen argumentin" -#: ../src/daemon/cmdline.c:309 +#: ../src/daemon/cmdline.c:304 msgid "--use-pid-file expects boolean argument" msgstr "--use-pid-file vaatii totuusarvoisen argumentin" -#: ../src/daemon/cmdline.c:326 +#: ../src/daemon/cmdline.c:321 msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgstr "" "Virheellinen lokikirjoituksen kohde: käytä jotain seuraavista: â€syslogâ€, " "â€stderr†tai â€autoâ€." -#: ../src/daemon/cmdline.c:333 +#: ../src/daemon/cmdline.c:328 msgid "--log-time expects boolean argument" msgstr "--log-time vaatii totuusarvoisen argumentin" -#: ../src/daemon/cmdline.c:340 +#: ../src/daemon/cmdline.c:335 msgid "--log-meta expects boolean argument" msgstr "--log-meta vaatii totuusarvoisen argumentin" -#: ../src/daemon/cmdline.c:359 +#: ../src/daemon/cmdline.c:354 #, c-format msgid "Invalid resample method '%s'." msgstr "Virheellinen uudelleennäytteistyksen tapa â€%sâ€." -#: ../src/daemon/cmdline.c:366 +#: ../src/daemon/cmdline.c:361 msgid "--system expects boolean argument" msgstr "--system vaatii totuusarvoisen argumentin" -#: ../src/daemon/cmdline.c:373 +#: ../src/daemon/cmdline.c:368 msgid "--no-cpu-limit expects boolean argument" msgstr "--no-cpu-limit vaatii totuusarvoisen argumentin" -#: ../src/daemon/cmdline.c:380 +#: ../src/daemon/cmdline.c:375 msgid "--disable-shm expects boolean argument" msgstr "--disable-shm vaatii totuusarvoisen argumentin" @@ -787,77 +766,82 @@ msgstr "Käyttö: %s\n" msgid "Load Once: %s\n" msgstr "Lataa kerran: %s\n" -#: ../src/daemon/dumpmodules.c:77 +#: ../src/daemon/dumpmodules.c:75 +#, c-format +msgid "DEPRECATION WARNING: %s\n" +msgstr "" + +#: ../src/daemon/dumpmodules.c:79 #, c-format msgid "Path: %s\n" msgstr "Polku: %s\n" -#: ../src/daemon/daemon-conf.c:215 +#: ../src/daemon/daemon-conf.c:216 #, c-format msgid "[%s:%u] Invalid log target '%s'." msgstr "[%s:%u] Virheellinen lokikirjoituksen kohde â€%sâ€." -#: ../src/daemon/daemon-conf.c:231 +#: ../src/daemon/daemon-conf.c:232 #, c-format msgid "[%s:%u] Invalid log level '%s'." msgstr "[%s:%u] Virheellinen lokikirjoituksen taso â€%sâ€." -#: ../src/daemon/daemon-conf.c:247 +#: ../src/daemon/daemon-conf.c:248 #, c-format msgid "[%s:%u] Invalid resample method '%s'." msgstr "[%s:%u] Virheellinen uudelleennäytteistyksen tapa â€%sâ€." -#: ../src/daemon/daemon-conf.c:270 +#: ../src/daemon/daemon-conf.c:271 #, c-format msgid "[%s:%u] Invalid rlimit '%s'." msgstr "[%s:%u] Virheellinen rlimit â€%sâ€." -#: ../src/daemon/daemon-conf.c:277 +#: ../src/daemon/daemon-conf.c:278 #, c-format msgid "[%s:%u] rlimit not supported on this platform." msgstr "[%s:%u] rlimitiä ei tueta tällä alustalla." -#: ../src/daemon/daemon-conf.c:293 +#: ../src/daemon/daemon-conf.c:294 #, c-format msgid "[%s:%u] Invalid sample format '%s'." msgstr "[%s:%u] Virheellinen näytemuoto â€%sâ€." -#: ../src/daemon/daemon-conf.c:311 +#: ../src/daemon/daemon-conf.c:312 #, c-format msgid "[%s:%u] Invalid sample rate '%s'." msgstr "[%s:%u] Virheellinen näytteenottotaajuus â€%sâ€." -#: ../src/daemon/daemon-conf.c:335 +#: ../src/daemon/daemon-conf.c:336 #, c-format msgid "[%s:%u] Invalid sample channels '%s'." msgstr "[%s:%u] Virheelliset näytekanavat â€%sâ€." -#: ../src/daemon/daemon-conf.c:353 +#: ../src/daemon/daemon-conf.c:354 #, c-format msgid "[%s:%u] Invalid channel map '%s'." msgstr "[%s:%u] Virheellinen kanavakartta â€%sâ€." -#: ../src/daemon/daemon-conf.c:371 +#: ../src/daemon/daemon-conf.c:372 #, c-format msgid "[%s:%u] Invalid number of fragments '%s'." msgstr "[%s:%u] Virheellinen fragmenttimäärä â€%sâ€." -#: ../src/daemon/daemon-conf.c:389 +#: ../src/daemon/daemon-conf.c:390 #, c-format msgid "[%s:%u] Invalid fragment size '%s'." msgstr "[%s:%u] Virheellinen fragmenttikoko â€%sâ€." -#: ../src/daemon/daemon-conf.c:407 +#: ../src/daemon/daemon-conf.c:408 #, c-format msgid "[%s:%u] Invalid nice level '%s'." msgstr "[%s:%u] Virheellinen nice-taso â€%sâ€." -#: ../src/daemon/daemon-conf.c:522 +#: ../src/daemon/daemon-conf.c:524 #, c-format msgid "Failed to open configuration file: %s" msgstr "Asetustiedoston avaaminen epäonnistui: %s" -#: ../src/daemon/daemon-conf.c:538 +#: ../src/daemon/daemon-conf.c:540 msgid "" "The specified default channel map has a different number of channels than " "the specified default number of channels." @@ -909,237 +893,237 @@ msgid "System policy prevents PulseAudio from acquiring real-time scheduling." msgstr "" "Järjestelmäkäytäntö estää PulseAudiota saamasta reaaliaikaista ajoitusta." -#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804 +#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Mono" -#: ../src/pulse/channelmap.c:105 +#: ../src/pulse/channelmap.c:107 msgid "Front Center" msgstr "Keski" -#: ../src/pulse/channelmap.c:106 +#: ../src/pulse/channelmap.c:108 msgid "Front Left" msgstr "Vasen etu" -#: ../src/pulse/channelmap.c:107 +#: ../src/pulse/channelmap.c:109 msgid "Front Right" msgstr "Oikea etu" -#: ../src/pulse/channelmap.c:109 +#: ../src/pulse/channelmap.c:111 msgid "Rear Center" msgstr "Takakeski" -#: ../src/pulse/channelmap.c:110 +#: ../src/pulse/channelmap.c:112 msgid "Rear Left" msgstr "Vasen taka" -#: ../src/pulse/channelmap.c:111 +#: ../src/pulse/channelmap.c:113 msgid "Rear Right" msgstr "Oikea taka" -#: ../src/pulse/channelmap.c:113 +#: ../src/pulse/channelmap.c:115 msgid "Low Frequency Emmiter" msgstr "Alataajuus" -#: ../src/pulse/channelmap.c:115 +#: ../src/pulse/channelmap.c:117 msgid "Front Left-of-center" msgstr "Vasemmalle keskeltä etu" -#: ../src/pulse/channelmap.c:116 +#: ../src/pulse/channelmap.c:118 msgid "Front Right-of-center" msgstr "Oikealle keskeltä etu" -#: ../src/pulse/channelmap.c:118 +#: ../src/pulse/channelmap.c:120 msgid "Side Left" msgstr "Vasen sivu" -#: ../src/pulse/channelmap.c:119 +#: ../src/pulse/channelmap.c:121 msgid "Side Right" msgstr "Oikea sivu" -#: ../src/pulse/channelmap.c:121 +#: ../src/pulse/channelmap.c:123 msgid "Auxiliary 0" msgstr "Avustava 0" -#: ../src/pulse/channelmap.c:122 +#: ../src/pulse/channelmap.c:124 msgid "Auxiliary 1" msgstr "Avustava 1" -#: ../src/pulse/channelmap.c:123 +#: ../src/pulse/channelmap.c:125 msgid "Auxiliary 2" msgstr "Avustava 2" -#: ../src/pulse/channelmap.c:124 +#: ../src/pulse/channelmap.c:126 msgid "Auxiliary 3" msgstr "Avustava 3" -#: ../src/pulse/channelmap.c:125 +#: ../src/pulse/channelmap.c:127 msgid "Auxiliary 4" msgstr "Avustava 4" -#: ../src/pulse/channelmap.c:126 +#: ../src/pulse/channelmap.c:128 msgid "Auxiliary 5" msgstr "Avustava 5" -#: ../src/pulse/channelmap.c:127 +#: ../src/pulse/channelmap.c:129 msgid "Auxiliary 6" msgstr "Avustava 6" -#: ../src/pulse/channelmap.c:128 +#: ../src/pulse/channelmap.c:130 msgid "Auxiliary 7" msgstr "Avustava 7" -#: ../src/pulse/channelmap.c:129 +#: ../src/pulse/channelmap.c:131 msgid "Auxiliary 8" msgstr "Avustava 8" -#: ../src/pulse/channelmap.c:130 +#: ../src/pulse/channelmap.c:132 msgid "Auxiliary 9" msgstr "Avustava 9" -#: ../src/pulse/channelmap.c:131 +#: ../src/pulse/channelmap.c:133 msgid "Auxiliary 10" msgstr "Avustava 10" -#: ../src/pulse/channelmap.c:132 +#: ../src/pulse/channelmap.c:134 msgid "Auxiliary 11" msgstr "Avustava 11" -#: ../src/pulse/channelmap.c:133 +#: ../src/pulse/channelmap.c:135 msgid "Auxiliary 12" msgstr "Avustava 12" -#: ../src/pulse/channelmap.c:134 +#: ../src/pulse/channelmap.c:136 msgid "Auxiliary 13" msgstr "Avustava 13" -#: ../src/pulse/channelmap.c:135 +#: ../src/pulse/channelmap.c:137 msgid "Auxiliary 14" msgstr "Avustava 14" -#: ../src/pulse/channelmap.c:136 +#: ../src/pulse/channelmap.c:138 msgid "Auxiliary 15" msgstr "Avustava 15" -#: ../src/pulse/channelmap.c:137 +#: ../src/pulse/channelmap.c:139 msgid "Auxiliary 16" msgstr "Avustava 16" -#: ../src/pulse/channelmap.c:138 +#: ../src/pulse/channelmap.c:140 msgid "Auxiliary 17" msgstr "Avustava 17" -#: ../src/pulse/channelmap.c:139 +#: ../src/pulse/channelmap.c:141 msgid "Auxiliary 18" msgstr "Avustava 18" -#: ../src/pulse/channelmap.c:140 +#: ../src/pulse/channelmap.c:142 msgid "Auxiliary 19" msgstr "Avustava 19" -#: ../src/pulse/channelmap.c:141 +#: ../src/pulse/channelmap.c:143 msgid "Auxiliary 20" msgstr "Avustava 20" -#: ../src/pulse/channelmap.c:142 +#: ../src/pulse/channelmap.c:144 msgid "Auxiliary 21" msgstr "Avustava 21" -#: ../src/pulse/channelmap.c:143 +#: ../src/pulse/channelmap.c:145 msgid "Auxiliary 22" msgstr "Avustava 22" -#: ../src/pulse/channelmap.c:144 +#: ../src/pulse/channelmap.c:146 msgid "Auxiliary 23" msgstr "Avustava 23" -#: ../src/pulse/channelmap.c:145 +#: ../src/pulse/channelmap.c:147 msgid "Auxiliary 24" msgstr "Avustava 24" -#: ../src/pulse/channelmap.c:146 +#: ../src/pulse/channelmap.c:148 msgid "Auxiliary 25" msgstr "Avustava 25" -#: ../src/pulse/channelmap.c:147 +#: ../src/pulse/channelmap.c:149 msgid "Auxiliary 26" msgstr "Avustava 26" -#: ../src/pulse/channelmap.c:148 +#: ../src/pulse/channelmap.c:150 msgid "Auxiliary 27" msgstr "Avustava 27" -#: ../src/pulse/channelmap.c:149 +#: ../src/pulse/channelmap.c:151 msgid "Auxiliary 28" msgstr "Avustava 28" -#: ../src/pulse/channelmap.c:150 +#: ../src/pulse/channelmap.c:152 msgid "Auxiliary 29" msgstr "Avustava 29" -#: ../src/pulse/channelmap.c:151 +#: ../src/pulse/channelmap.c:153 msgid "Auxiliary 30" msgstr "Avustava 30" -#: ../src/pulse/channelmap.c:152 +#: ../src/pulse/channelmap.c:154 msgid "Auxiliary 31" msgstr "Avustava 31" -#: ../src/pulse/channelmap.c:154 +#: ../src/pulse/channelmap.c:156 msgid "Top Center" msgstr "Keski ylä" -#: ../src/pulse/channelmap.c:156 +#: ../src/pulse/channelmap.c:158 msgid "Top Front Center" msgstr "Keski ylä etu" -#: ../src/pulse/channelmap.c:157 +#: ../src/pulse/channelmap.c:159 msgid "Top Front Left" msgstr "Vasen ylä etu" -#: ../src/pulse/channelmap.c:158 +#: ../src/pulse/channelmap.c:160 msgid "Top Front Right" msgstr "Oikea ylä etu" -#: ../src/pulse/channelmap.c:160 +#: ../src/pulse/channelmap.c:162 msgid "Top Rear Center" msgstr "Keski ylä taka" -#: ../src/pulse/channelmap.c:161 +#: ../src/pulse/channelmap.c:163 msgid "Top Rear Left" msgstr "Vasen ylä taka" -#: ../src/pulse/channelmap.c:162 +#: ../src/pulse/channelmap.c:164 msgid "Top Rear Right" msgstr "Oikea ylä taka" -#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167 -#: ../src/pulse/volume.c:170 ../src/pulse/volume.c:196 -#: ../src/pulse/volume.c:216 ../src/pulse/volume.c:246 +#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167 +#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265 +#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315 msgid "(invalid)" msgstr "(virheellinen)" -#: ../src/pulse/channelmap.c:808 +#: ../src/pulse/channelmap.c:751 msgid "Stereo" msgstr "Stereo" -#: ../src/pulse/channelmap.c:813 +#: ../src/pulse/channelmap.c:756 msgid "Surround 4.0" msgstr "4.0-tilaääni" -#: ../src/pulse/channelmap.c:819 +#: ../src/pulse/channelmap.c:762 msgid "Surround 4.1" msgstr "4.1-tilaääni" -#: ../src/pulse/channelmap.c:825 +#: ../src/pulse/channelmap.c:768 msgid "Surround 5.0" msgstr "5.0-tilaääni" -#: ../src/pulse/channelmap.c:831 +#: ../src/pulse/channelmap.c:774 msgid "Surround 5.1" msgstr "5.1-tilaääni" -#: ../src/pulse/channelmap.c:838 +#: ../src/pulse/channelmap.c:781 msgid "Surround 7.1" msgstr "7.1-tilaääni" @@ -1300,173 +1284,168 @@ msgstr "waitpid(): %s" msgid "Received message for unknown extension '%s'" msgstr "Saatiin viesti tuntemattomalle laajennokselle â€%sâ€" -#: ../src/utils/pacat.c:94 +#: ../src/utils/pacat.c:107 +#, c-format +msgid "Failed to drain stream: %s\n" +msgstr "Virran tyhjentäminen epäonnistui: %s\n" + +#: ../src/utils/pacat.c:112 +msgid "Playback stream drained.\n" +msgstr "Toistovirta on tyhjennetty.\n" + +#: ../src/utils/pacat.c:122 +msgid "Draining connection to server.\n" +msgstr "Tyhjennetään yhteyttä palvelimelle.\n" + +#: ../src/utils/pacat.c:135 +#, c-format +msgid "pa_stream_drain(): %s\n" +msgstr "pa_stream_drain(): %s\n" + +#: ../src/utils/pacat.c:158 #, c-format msgid "pa_stream_write() failed: %s\n" msgstr "pa_stream_write() epäonnistui: %s\n" -#: ../src/utils/pacat.c:133 +#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 #, c-format msgid "pa_stream_peek() failed: %s\n" msgstr "pa_stream_peek() epäonnistui: %s\n" -#: ../src/utils/pacat.c:169 -#, c-format +#: ../src/utils/pacat.c:302 msgid "Stream successfully created.\n" msgstr "Virran luonti onnistui.\n" -#: ../src/utils/pacat.c:172 +#: ../src/utils/pacat.c:305 #, c-format msgid "pa_stream_get_buffer_attr() failed: %s\n" msgstr "pa_stream_get_buffer_attr() epäonnistui: %s\n" -#: ../src/utils/pacat.c:176 +#: ../src/utils/pacat.c:309 #, c-format msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgstr "Puskuritiedot: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:179 +#: ../src/utils/pacat.c:312 #, c-format msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgstr "Puskuritiedot: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:183 +#: ../src/utils/pacat.c:316 #, c-format msgid "Using sample spec '%s', channel map '%s'.\n" msgstr "Käytetään näytemäärittelyä â€%sâ€, kanavakarttaa â€%sâ€.\n" -#: ../src/utils/pacat.c:187 +#: ../src/utils/pacat.c:320 #, c-format msgid "Connected to device %s (%u, %ssuspended).\n" msgstr "Yhdistetty laitteeseen %s (%u, %ssuspended).\n" -#: ../src/utils/pacat.c:197 +#: ../src/utils/pacat.c:330 #, c-format msgid "Stream error: %s\n" msgstr "Virtavirhe: %s\n" -#: ../src/utils/pacat.c:207 +#: ../src/utils/pacat.c:340 #, c-format msgid "Stream device suspended.%s \n" msgstr "Virtalaite keskeytetty.%s \n" -#: ../src/utils/pacat.c:209 +#: ../src/utils/pacat.c:342 #, c-format msgid "Stream device resumed.%s \n" msgstr "Virtalaite palautettu.%s \n" -#: ../src/utils/pacat.c:217 +#: ../src/utils/pacat.c:350 #, c-format msgid "Stream underrun.%s \n" msgstr "Virran alivuoto.%s \n" -#: ../src/utils/pacat.c:224 +#: ../src/utils/pacat.c:357 #, c-format msgid "Stream overrun.%s \n" msgstr "Virran ylivuoto.%s \n" -#: ../src/utils/pacat.c:231 +#: ../src/utils/pacat.c:364 #, c-format msgid "Stream started.%s \n" msgstr "Virta käynnistetty.%s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 #, c-format msgid "Stream moved to device %s (%u, %ssuspended).%s \n" msgstr "Virta siirretty laitteelle %s (%u, %ssuspended).%s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 msgid "not " msgstr "ei " -#: ../src/utils/pacat.c:245 +#: ../src/utils/pacat.c:378 #, c-format msgid "Stream buffer attributes changed.%s \n" msgstr "Virran puskuriattribuutteja muutettu.%s \n" -#: ../src/utils/pacat.c:278 +#: ../src/utils/pacat.c:411 #, c-format msgid "Connection established.%s \n" msgstr "Yhteys muodostettu.%s \n" -#: ../src/utils/pacat.c:281 +#: ../src/utils/pacat.c:414 #, c-format msgid "pa_stream_new() failed: %s\n" msgstr "pa_stream_new() epäonnistui: %s\n" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:442 #, c-format msgid "pa_stream_connect_playback() failed: %s\n" msgstr "pa_stream_connect_playback() epäonnistui: %s\n" -#: ../src/utils/pacat.c:315 +#: ../src/utils/pacat.c:448 #, c-format msgid "pa_stream_connect_record() failed: %s\n" msgstr "pa_stream_connect_record() epäonnistui: %s\n" -#: ../src/utils/pacat.c:329 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:762 ../src/utils/paplay.c:183 +#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 #, c-format msgid "Connection failure: %s\n" msgstr "Yhteysvirhe: %s\n" -#: ../src/utils/pacat.c:349 ../src/utils/paplay.c:75 -#, c-format -msgid "Failed to drain stream: %s\n" -msgstr "Virran tyhjentäminen epäonnistui: %s\n" - -#: ../src/utils/pacat.c:354 ../src/utils/paplay.c:80 -#, c-format -msgid "Playback stream drained.\n" -msgstr "Toistovirta on tyhjennetty.\n" - -#: ../src/utils/pacat.c:364 ../src/utils/paplay.c:92 -#, c-format -msgid "Draining connection to server.\n" -msgstr "Tyhjennetään yhteyttä palvelimelle.\n" - -#: ../src/utils/pacat.c:390 -#, c-format +#: ../src/utils/pacat.c:495 msgid "Got EOF.\n" msgstr "Saatiin EOF.\n" -#: ../src/utils/pacat.c:396 -#, c-format -msgid "pa_stream_drain(): %s\n" -msgstr "pa_stream_drain(): %s\n" - -#: ../src/utils/pacat.c:406 +#: ../src/utils/pacat.c:500 #, c-format msgid "read() failed: %s\n" msgstr "read() epäonnistui: %s\n" -#: ../src/utils/pacat.c:438 +#: ../src/utils/pacat.c:532 #, c-format msgid "write() failed: %s\n" msgstr "write() epäonnistui: %s\n" -#: ../src/utils/pacat.c:459 -#, c-format +#: ../src/utils/pacat.c:553 msgid "Got signal, exiting.\n" msgstr "Saatiin signaali, lopetetaan.\n" -#: ../src/utils/pacat.c:473 +#: ../src/utils/pacat.c:567 #, c-format msgid "Failed to get latency: %s\n" msgstr "Latenssin selvittäminen epäonnistui: %s\n" -#: ../src/utils/pacat.c:478 +#: ../src/utils/pacat.c:572 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "Aika: %0.3f s; latenssi: %0.0f μs. \r" -#: ../src/utils/pacat.c:498 +#: ../src/utils/pacat.c:592 #, c-format msgid "pa_stream_update_timing_info() failed: %s\n" msgstr "pa_stream_update_timing_info() epäonnistui: %s\n" -#: ../src/utils/pacat.c:511 -#, c-format +#: ../src/utils/pacat.c:605 +#, fuzzy, c-format msgid "" "%s [options]\n" "\n" @@ -1492,8 +1471,10 @@ msgid "" "44100)\n" " --format=SAMPLEFORMAT The sample type, one of s16le, " "s16be, u8, float32le,\n" -" float32be, ulaw, alaw, s32le, s32be " -"(defaults to s16ne)\n" +" float32be, ulaw, alaw, s32le, s32be, " +"s24le, s24be,\n" +" s24-32le, s24-32be (defaults to " +"s16ne)\n" " --channels=CHANNELS The number of channels, 1 for mono, " "2 for stereo\n" " (defaults to 2)\n" @@ -1516,6 +1497,11 @@ msgid "" "bytes.\n" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" +" --property=PROPERTY=VALUE Set the specified property to the " +"specified value.\n" +" --raw Record/play raw PCM data.\n" +" --file-format=FFORMAT Record/play formatted PCM data.\n" +" --list-file-formats List available file formats.\n" msgstr "" "%s [valitsimet]\n" "\n" @@ -1564,7 +1550,7 @@ msgstr "" " --process-time=TAVUA Pyydä määritettyä prosessiaikaa " "pyyntöä kohti tavuissa.\n" -#: ../src/utils/pacat.c:612 +#: ../src/utils/pacat.c:727 #, c-format msgid "" "pacat %s\n" @@ -1575,88 +1561,133 @@ msgstr "" "Käännetty libpulsen versiolle %s\n" "Linkitetty libpulsen versiolle %s\n" -#: ../src/utils/pacat.c:669 +#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "Virheellinen kanavakartta â€%sâ€\n" + +#: ../src/utils/pacat.c:776 +#, fuzzy, c-format +msgid "Invalid stream name '%s'\n" +msgstr "Virheellinen uudelleennäytteistyksen tapa â€%sâ€." + +#: ../src/utils/pacat.c:813 #, c-format msgid "Invalid channel map '%s'\n" msgstr "Virheellinen kanavakartta â€%sâ€\n" -#: ../src/utils/pacat.c:698 +#: ../src/utils/pacat.c:842 #, c-format msgid "Invalid latency specification '%s'\n" msgstr "Virheellinen latenssimääritys â€%sâ€\n" -#: ../src/utils/pacat.c:705 +#: ../src/utils/pacat.c:849 #, c-format msgid "Invalid process time specification '%s'\n" msgstr "Virheellinen prosessiajan määritys â€%sâ€\n" -#: ../src/utils/pacat.c:716 +#: ../src/utils/pacat.c:861 +#, fuzzy, c-format +msgid "Invalid property '%s'\n" +msgstr "Virheellinen uudelleennäytteistyksen tapa â€%sâ€." + +#: ../src/utils/pacat.c:878 #, c-format +msgid "Unknown file format %s." +msgstr "" + +#: ../src/utils/pacat.c:897 msgid "Invalid sample specification\n" msgstr "Virheellinen näytemääritys\n" -#: ../src/utils/pacat.c:721 +#: ../src/utils/pacat.c:907 #, c-format +msgid "open(): %s\n" +msgstr "open(): %s\n" + +#: ../src/utils/pacat.c:912 +#, c-format +msgid "dup2(): %s\n" +msgstr "dup2(): %s\n" + +#: ../src/utils/pacat.c:919 +msgid "Too many arguments.\n" +msgstr "Liian monta argumenttia.\n" + +#: ../src/utils/pacat.c:930 +#, fuzzy +msgid "Failed to generate sample specification for file.\n" +msgstr "Näytetietojen nouto epäonnistui: %s\n" + +#: ../src/utils/pacat.c:950 +#, fuzzy +msgid "Failed to open audio file.\n" +msgstr "Äänitiedoston avaaminen epäonnistui.\n" + +#: ../src/utils/pacat.c:956 +msgid "" +"Warning: specified sample specification will be overwritten with " +"specification from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "Näytetietojen nouto epäonnistui: %s\n" + +#: ../src/utils/pacat.c:968 +msgid "Warning: Failed to determine channel map from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:979 msgid "Channel map doesn't match sample specification\n" msgstr "Kanavakartta ei vastaa näytemääritystä\n" -#: ../src/utils/pacat.c:728 -#, c-format -msgid "Opening a %s stream with sample specification '%s'.\n" +#: ../src/utils/pacat.c:990 +msgid "Warning: failed to write channel map to file.\n" +msgstr "" + +#: ../src/utils/pacat.c:1005 +#, fuzzy, c-format +msgid "" +"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" msgstr "Avataan %svirta näytemäärityksellä â€%sâ€.\n" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "recording" msgstr "nauhoitus" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "playback" msgstr "toisto" -#: ../src/utils/pacat.c:736 -#, c-format -msgid "open(): %s\n" -msgstr "open(): %s\n" - -#: ../src/utils/pacat.c:741 -#, c-format -msgid "dup2(): %s\n" -msgstr "dup2(): %s\n" - -#: ../src/utils/pacat.c:751 -#, c-format -msgid "Too many arguments.\n" -msgstr "Liian monta argumenttia.\n" - -#: ../src/utils/pacat.c:764 ../src/utils/pasuspender.c:280 -#: ../src/utils/pactl.c:1017 ../src/utils/paplay.c:381 +#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 +#: ../src/utils/pactl.c:1104 #, c-format msgid "pa_mainloop_new() failed.\n" msgstr "pa_mainloop_new() epäonnistui.\n" -#: ../src/utils/pacat.c:785 -#, c-format +#: ../src/utils/pacat.c:1051 msgid "io_new() failed.\n" msgstr "io_new() epäonnistui.\n" -#: ../src/utils/pacat.c:791 ../src/utils/pasuspender.c:293 -#: ../src/utils/pactl.c:1031 ../src/utils/paplay.c:396 +#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 +#: ../src/utils/pactl.c:1116 #, c-format msgid "pa_context_new() failed.\n" msgstr "pa_context_new() epäonnistui.\n" -#: ../src/utils/pacat.c:799 +#: ../src/utils/pacat.c:1066 #, fuzzy, c-format msgid "pa_context_connect() failed: %s\n" msgstr "pa_context_connect() epäonnistui: %s" -#: ../src/utils/pacat.c:810 -#, c-format +#: ../src/utils/pacat.c:1077 msgid "time_new() failed.\n" msgstr "time_new() epäonnistui.\n" -#: ../src/utils/pacat.c:817 ../src/utils/pasuspender.c:301 -#: ../src/utils/pactl.c:1042 ../src/utils/paplay.c:410 +#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 +#: ../src/utils/pactl.c:1127 #, c-format msgid "pa_mainloop_run() failed.\n" msgstr "pa_mainloop_run() epäonnistui.\n" @@ -1686,8 +1717,7 @@ msgstr "Palautus epäonnistui: %s\n" msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "VAROITUS: Äänipalvelin ei ole paikallinen, ei keskeytetä.\n" -#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:768 -#: ../src/utils/paplay.c:191 +#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" msgstr "Saatiin SIGINT, lopetetaan.\n" @@ -1716,7 +1746,7 @@ msgstr "" " yhdistetään\n" "\n" -#: ../src/utils/pasuspender.c:251 +#: ../src/utils/pasuspender.c:248 #, c-format msgid "" "pasuspender %s\n" @@ -1727,32 +1757,32 @@ msgstr "" "Käännetty libpulsen versiolle %s\n" "Linkitetty libpulsen versiolle %s\n" -#: ../src/utils/pactl.c:108 +#: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" msgstr "Tilastojen selvittäminen epäonnistui: %s\n" -#: ../src/utils/pactl.c:114 +#: ../src/utils/pactl.c:134 #, c-format msgid "Currently in use: %u blocks containing %s bytes total.\n" msgstr "Nyt käytössä: %u lohkoa sisältäen yhteensä %s tavua.\n" -#: ../src/utils/pactl.c:117 +#: ../src/utils/pactl.c:137 #, c-format msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n" msgstr "Koko käyttöaikana varattu: %u lohkoa sisältäen yhteensä %s tavua.\n" -#: ../src/utils/pactl.c:120 +#: ../src/utils/pactl.c:140 #, c-format msgid "Sample cache size: %s\n" msgstr "Näytevälimuistin koko: %s\n" -#: ../src/utils/pactl.c:129 +#: ../src/utils/pactl.c:149 #, c-format msgid "Failed to get server information: %s\n" msgstr "Palvelintietojen selvittäminen epäonnistui: %s\n" -#: ../src/utils/pactl.c:137 +#: ../src/utils/pactl.c:157 #, c-format msgid "" "User name: %s\n" @@ -1775,12 +1805,12 @@ msgstr "" "Oletuslähde: %s\n" "Eväste: %08x\n" -#: ../src/utils/pactl.c:178 +#: ../src/utils/pactl.c:198 #, c-format msgid "Failed to get sink information: %s\n" msgstr "Nielun tietojen nouto epäonnistui: %s\n" -#: ../src/utils/pactl.c:194 +#: ../src/utils/pactl.c:214 #, c-format msgid "" "Sink #%u\n" @@ -1819,12 +1849,22 @@ msgstr "" "\tOminaisuudet:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:258 +#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 +#, fuzzy, c-format +msgid "\tPorts:\n" +msgstr "\tProfiilit:\n" + +#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 +#, fuzzy, c-format +msgid "\tActive Port: %s\n" +msgstr "\tAktiivinen profiili: %s\n" + +#: ../src/utils/pactl.c:290 #, c-format msgid "Failed to get source information: %s\n" msgstr "Lähteen tietojen nouto epäonnistui: %s\n" -#: ../src/utils/pactl.c:274 +#: ../src/utils/pactl.c:306 #, c-format msgid "" "Source #%u\n" @@ -1863,20 +1903,20 @@ msgstr "" "\tOminaisuudet:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:306 ../src/utils/pactl.c:350 ../src/utils/pactl.c:385 -#: ../src/utils/pactl.c:422 ../src/utils/pactl.c:481 ../src/utils/pactl.c:482 -#: ../src/utils/pactl.c:492 ../src/utils/pactl.c:536 ../src/utils/pactl.c:537 -#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:586 ../src/utils/pactl.c:587 -#: ../src/utils/pactl.c:594 +#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429 +#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526 +#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581 +#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631 +#: ../src/utils/pactl.c:638 msgid "n/a" msgstr "-" -#: ../src/utils/pactl.c:324 +#: ../src/utils/pactl.c:368 #, c-format msgid "Failed to get module information: %s\n" msgstr "Moduulin tietojen nouto epäonnistui: %s\n" -#: ../src/utils/pactl.c:342 +#: ../src/utils/pactl.c:386 #, c-format msgid "" "Module #%u\n" @@ -1893,12 +1933,12 @@ msgstr "" "\tOminaisuudet:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:361 +#: ../src/utils/pactl.c:405 #, c-format msgid "Failed to get client information: %s\n" msgstr "Asiakkaan tietojen nouto epäonnistui: %s\n" -#: ../src/utils/pactl.c:379 +#: ../src/utils/pactl.c:423 #, c-format msgid "" "Client #%u\n" @@ -1913,12 +1953,12 @@ msgstr "" "\tOminaisuudet:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:396 +#: ../src/utils/pactl.c:440 #, c-format msgid "Failed to get card information: %s\n" msgstr "Kortin tietojen nouto epäonnistui: %s\n" -#: ../src/utils/pactl.c:414 +#: ../src/utils/pactl.c:458 #, c-format msgid "" "Card #%u\n" @@ -1935,22 +1975,22 @@ msgstr "" "\tOminaisuudet:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:428 +#: ../src/utils/pactl.c:472 #, c-format msgid "\tProfiles:\n" msgstr "\tProfiilit:\n" -#: ../src/utils/pactl.c:434 +#: ../src/utils/pactl.c:478 #, c-format msgid "\tActive Profile: %s\n" msgstr "\tAktiivinen profiili: %s\n" -#: ../src/utils/pactl.c:445 +#: ../src/utils/pactl.c:489 #, c-format msgid "Failed to get sink input information: %s\n" msgstr "Nielun sisääntulon tietojen nouto epäonnistui: %s\n" -#: ../src/utils/pactl.c:464 +#: ../src/utils/pactl.c:508 #, c-format msgid "" "Sink Input #%u\n" @@ -1987,12 +2027,12 @@ msgstr "" "\tOminaisuudet:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:503 +#: ../src/utils/pactl.c:547 #, c-format msgid "Failed to get source output information: %s\n" msgstr "Lähteen ulostulon tietojen nouto epäonnistui: %s\n" -#: ../src/utils/pactl.c:523 +#: ../src/utils/pactl.c:567 #, c-format msgid "" "Source Output #%u\n" @@ -2021,12 +2061,12 @@ msgstr "" "\tOminaisuudet:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:554 +#: ../src/utils/pactl.c:598 #, c-format msgid "Failed to get sample information: %s\n" msgstr "Näytetietojen nouto epäonnistui: %s\n" -#: ../src/utils/pactl.c:572 +#: ../src/utils/pactl.c:616 #, c-format msgid "" "Sample #%u\n" @@ -2057,23 +2097,22 @@ msgstr "" "\tOminaisuudet:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:602 ../src/utils/pactl.c:612 +#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 #, c-format msgid "Failure: %s\n" msgstr "Epäonnistuminen: %s\n" -#: ../src/utils/pactl.c:636 +#: ../src/utils/pactl.c:680 #, c-format msgid "Failed to upload sample: %s\n" msgstr "Näytteen lähettäminen epäonnistui: %s\n" -#: ../src/utils/pactl.c:653 -#, c-format +#: ../src/utils/pactl.c:697 msgid "Premature end of file\n" msgstr "Ennenaikainen tiedoston päättyminen\n" -#: ../src/utils/pactl.c:774 -#, c-format +#: ../src/utils/pactl.c:826 +#, fuzzy, c-format msgid "" "%s [options] stat\n" "%s [options] list\n" @@ -2088,6 +2127,8 @@ msgid "" "%s [options] suspend-sink [SINK] 1|0\n" "%s [options] suspend-source [SOURCE] 1|0\n" "%s [options] set-card-profile [CARD] [PROFILE] \n" +"%s [options] set-sink-port [SINK] [PORT] \n" +"%s [options] set-source-port [SOURCE] [PORT] \n" "\n" " -h, --help Show this help\n" " --version Show version\n" @@ -2119,7 +2160,7 @@ msgstr "" " -n, --client-name=NIMI Kuinka tätä asiakasohjelmaa\n" " kutsutaan palvelimella\n" -#: ../src/utils/pactl.c:826 +#: ../src/utils/pactl.c:880 #, c-format msgid "" "pactl %s\n" @@ -2130,71 +2171,74 @@ msgstr "" "Käännetty libpulsen versiolle %s\n" "Linkitetty libpulsen versiolle %s\n" -#: ../src/utils/pactl.c:865 -#, c-format +#: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "Anna ladattava näytetiedosto\n" -#: ../src/utils/pactl.c:887 -#, c-format +#: ../src/utils/pactl.c:939 msgid "Failed to open sound file.\n" msgstr "Äänitiedoston avaaminen epäonnistui.\n" -#: ../src/utils/pactl.c:899 -#, c-format +#: ../src/utils/pactl.c:951 +#, fuzzy +msgid "Warning: Failed to determine sample specification from file.\n" +msgstr "Avataan %svirta näytemäärityksellä â€%sâ€.\n" + +#: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" msgstr "Soitettavan näytteen nimi on annettava\n" -#: ../src/utils/pactl.c:911 -#, c-format +#: ../src/utils/pactl.c:973 msgid "You have to specify a sample name to remove\n" msgstr "Poistettavan näytteen nimi on annettava\n" -#: ../src/utils/pactl.c:919 -#, c-format +#: ../src/utils/pactl.c:982 msgid "You have to specify a sink input index and a sink\n" msgstr "Nielun syöteindeksi ja nielu on annettava\n" -#: ../src/utils/pactl.c:928 -#, c-format +#: ../src/utils/pactl.c:992 msgid "You have to specify a source output index and a source\n" msgstr "Lähteen ulostuloindeksi ja lähde on annettava\n" -#: ../src/utils/pactl.c:942 -#, c-format +#: ../src/utils/pactl.c:1007 msgid "You have to specify a module name and arguments.\n" msgstr "Moduulin nimi ja argumentit on annettava.\n" -#: ../src/utils/pactl.c:962 -#, c-format +#: ../src/utils/pactl.c:1027 msgid "You have to specify a module index\n" msgstr "Moduulin indeksi on annettava\n" -#: ../src/utils/pactl.c:972 -#, c-format +#: ../src/utils/pactl.c:1037 msgid "" "You may not specify more than one sink. You have to specify a boolean " "value.\n" msgstr "Ei voi antaa enempää kuin yhden nielun. Totuusarvo on annettava.\n" -#: ../src/utils/pactl.c:985 -#, c-format +#: ../src/utils/pactl.c:1050 msgid "" "You may not specify more than one source. You have to specify a boolean " "value.\n" msgstr "Ei voi antaa enempää kuin yhden lähteen. Totuusarvo on annettava.\n" -#: ../src/utils/pactl.c:997 -#, c-format +#: ../src/utils/pactl.c:1062 msgid "You have to specify a card name/index and a profile name\n" msgstr "Kortin nimi/indeksi ja profiilin nimi on annettava\n" -#: ../src/utils/pactl.c:1012 -#, c-format +#: ../src/utils/pactl.c:1073 +#, fuzzy +msgid "You have to specify a sink name/index and a port name\n" +msgstr "Kortin nimi/indeksi ja profiilin nimi on annettava\n" + +#: ../src/utils/pactl.c:1084 +#, fuzzy +msgid "You have to specify a source name/index and a port name\n" +msgstr "Kortin nimi/indeksi ja profiilin nimi on annettava\n" + +#: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "Mitään kelvollista komentoa ei annettu.\n" -#: ../src/utils/pactl.c:1037 ../src/utils/paplay.c:404 +#: ../src/utils/pactl.c:1122 #, c-format msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect() epäonnistui: %s" @@ -2280,130 +2324,48 @@ msgstr "Evästetietojen lataaminen epäonnistui\n" msgid "Not yet implemented.\n" msgstr "Toteutusta ei vielä ole.\n" -#: ../src/utils/pacmd.c:64 +#: ../src/utils/pacmd.c:61 +msgid "No PulseAudio daemon running, or not running as session daemon." +msgstr "" + +#: ../src/utils/pacmd.c:66 #, c-format msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s" msgstr "socket(PF_UNIX, SOCK_STREAM, 0): %s" -#: ../src/utils/pacmd.c:81 +#: ../src/utils/pacmd.c:83 #, c-format msgid "connect(): %s" msgstr "connect(): %s" -#: ../src/utils/pacmd.c:89 +#: ../src/utils/pacmd.c:91 msgid "Failed to kill PulseAudio daemon." msgstr "PulseAudio-taustaprosessin lopettaminen epäonnistui." -#: ../src/utils/pacmd.c:97 +#: ../src/utils/pacmd.c:99 msgid "Daemon not responding." msgstr "Taustaprosessi ei vastaa." -#: ../src/utils/pacmd.c:144 +#: ../src/utils/pacmd.c:146 #, c-format msgid "select(): %s" msgstr "select(): %s" -#: ../src/utils/pacmd.c:154 ../src/utils/pacmd.c:171 +#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173 #, c-format msgid "read(): %s" msgstr "read(): %s" -#: ../src/utils/pacmd.c:187 ../src/utils/pacmd.c:201 +#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203 #, c-format msgid "write(): %s" msgstr "write(): %s" -#: ../src/utils/paplay.c:139 -#, c-format -msgid "Stream successfully created\n" -msgstr "Virran luonti onnistui\n" - -#: ../src/utils/paplay.c:144 -#, c-format -msgid "Stream errror: %s\n" -msgstr "Virtavirhe: %s\n" - -#: ../src/utils/paplay.c:165 -#, c-format -msgid "Connection established.\n" -msgstr "Yhteys muodostetettu.\n" - -#: ../src/utils/paplay.c:198 -#, c-format -msgid "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" -msgstr "" -"%s [valitsimet] [TIEDOSTO]\n" -"\n" -" -h, --help Näytä tämä ohje\n" -" --version Näytä tiedostot\n" -"\n" -" -v, --verbose Yksityiskohtaiset tulosteet\n" -"\n" -" -s, --server=PALVELIN Sen palvelimen nimi, johon\n" -" yhdistetään\n" -" -d, --device=LAITE Sen nielun nimi, johon yhdistetään\n" -" -n, --client-name=NIMI Kuinka tätä asiakasohjelmaa " -"kutsutaan\n" -" palvelimella\n" -" --stream-name=NIMI Kuinka tätä virtaa kutsutaan\n" -" palvelimella\n" -" --volume=ÄÄNENVOIMAKKUUS Määritä (lineaarinen) aloitusäänen-\n" -" voimakkuus väliltä 0...65536\n" -" --channel-map=KANAVAKARTTA Aseta käytettävä kanavakartta\n" - -#: ../src/utils/paplay.c:255 -#, c-format -msgid "" -"paplay %s\n" -"Compiled with libpulse %s\n" -"Linked with libpulse %s\n" -msgstr "" -"paplay %s\n" -"Käännetty libpulsen versiolle %s\n" -"Linkitetty libpulsen versiolle %s\n" - -#: ../src/utils/paplay.c:292 -#, c-format -msgid "Invalid channel map\n" -msgstr "Virheellinen kanavakartta\n" - -#: ../src/utils/paplay.c:314 -#, c-format -msgid "Failed to open file '%s'\n" -msgstr "Tiedoston â€%s†avaaminen epäonnistui\n" - -#: ../src/utils/paplay.c:350 -#, c-format -msgid "Channel map doesn't match file.\n" -msgstr "Kanavakartta ei täsmää tiedostoon.\n" - -#: ../src/utils/paplay.c:376 -#, c-format -msgid "Using sample spec '%s'\n" -msgstr "Käytetään näytemäärittelyä â€%sâ€\n" - #: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 msgid "Cannot access autospawn lock." msgstr "Automaattisen käynnistyksen lukkoa ei voida käyttää." -#: ../src/modules/alsa/alsa-sink.c:393 ../src/modules/alsa/alsa-sink.c:541 +#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2420,7 +2382,7 @@ msgstr "" "asetettuna, snd_pcm_avail() palautti kuitenkin 0 tai jonkin muun arvon, " "joka on < min_avail." -#: ../src/modules/alsa/alsa-source.c:377 ../src/modules/alsa/alsa-source.c:516 +#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2436,38 +2398,136 @@ msgstr "" "ongelmasta ALSA-kehittäjille. Taustaprosessi herätettiin POLLIN asetettuna, " "snd_pcm_avail() palautti kuitenkin 0 tai jonkin muun arvon, on < min_avail." -#: ../src/modules/alsa/module-alsa-card.c:114 -#, c-format -msgid "Output %s + Input %s" -msgstr "Ulostulo %s + Sisääntulo %s" - -#: ../src/modules/alsa/module-alsa-card.c:117 -#, c-format -msgid "Output %s" -msgstr "Ulostulo %s" - -#: ../src/modules/alsa/module-alsa-card.c:121 -#, c-format -msgid "Input %s" -msgstr "Sisääntulo %s" - -#: ../src/modules/alsa/module-alsa-card.c:170 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2006 +#: ../src/modules/alsa/module-alsa-card.c:152 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 msgid "Off" msgstr "Poissa" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1976 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 msgid "High Fidelity Playback (A2DP)" msgstr "Korkean äänenlaadun toisto (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1991 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 msgid "Telephony Duplex (HSP/HFP)" msgstr "" -#: ../src/modules/reserve-wrap.c:139 +#: ../src/modules/reserve-wrap.c:151 msgid "PulseAudio Sound Server" msgstr "PulseAudio-äänipalvelin" +#~ msgid "Analog Mono" +#~ msgstr "Analoginen mono" + +#~ msgid "Analog Stereo" +#~ msgstr "Analoginen stereo" + +#~ msgid "Digital Stereo (IEC958)" +#~ msgstr "Digitaalinen stereo (IEC958)" + +#~ msgid "Digital Stereo (HDMI)" +#~ msgstr "Digitaalinen stereo (HDMI)" + +#~ msgid "Analog Surround 4.0" +#~ msgstr "Analoginen tilaääni 4.0" + +#~ msgid "Digital Surround 4.0 (IEC958/AC3)" +#~ msgstr "Digitaalinen tilaääni 4.0 (IEC958/AC3)" + +#~ msgid "Analog Surround 4.1" +#~ msgstr "Analoginen tilaääni 4.1" + +#~ msgid "Analog Surround 5.0" +#~ msgstr "Analoginen tilaääni 5.0" + +#~ msgid "Analog Surround 5.1" +#~ msgstr "Analoginen tilaääni 5.1" + +#~ msgid "Digital Surround 5.1 (IEC958/AC3)" +#~ msgstr "Digitaalinen tilaääni 5.1 (IEC958/AC3)" + +#~ msgid "Analog Surround 7.1" +#~ msgstr "Analoginen tilaääni 7.1" + +#~ msgid "Output %s + Input %s" +#~ msgstr "Ulostulo %s + Sisääntulo %s" + +#~ msgid "Output %s" +#~ msgstr "Ulostulo %s" + +#~ msgid "Input %s" +#~ msgstr "Sisääntulo %s" + +#~ msgid "Stream successfully created\n" +#~ msgstr "Virran luonti onnistui\n" + +#~ msgid "Stream errror: %s\n" +#~ msgstr "Virtavirhe: %s\n" + +#~ msgid "Connection established.\n" +#~ msgstr "Yhteys muodostetettu.\n" + +#~ msgid "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Show this help\n" +#~ " --version Show version\n" +#~ "\n" +#~ " -v, --verbose Enable verbose operation\n" +#~ "\n" +#~ " -s, --server=SERVER The name of the server to connect " +#~ "to\n" +#~ " -d, --device=DEVICE The name of the sink to connect " +#~ "to\n" +#~ " -n, --client-name=NAME How to call this client on the " +#~ "server\n" +#~ " --stream-name=NAME How to call this stream on the " +#~ "server\n" +#~ " --volume=VOLUME Specify the initial (linear) " +#~ "volume in range 0...65536\n" +#~ " --channel-map=CHANNELMAP Set the channel map to the use\n" +#~ msgstr "" +#~ "%s [valitsimet] [TIEDOSTO]\n" +#~ "\n" +#~ " -h, --help Näytä tämä ohje\n" +#~ " --version Näytä tiedostot\n" +#~ "\n" +#~ " -v, --verbose Yksityiskohtaiset tulosteet\n" +#~ "\n" +#~ " -s, --server=PALVELIN Sen palvelimen nimi, johon\n" +#~ " yhdistetään\n" +#~ " -d, --device=LAITE Sen nielun nimi, johon " +#~ "yhdistetään\n" +#~ " -n, --client-name=NIMI Kuinka tätä asiakasohjelmaa " +#~ "kutsutaan\n" +#~ " palvelimella\n" +#~ " --stream-name=NIMI Kuinka tätä virtaa kutsutaan\n" +#~ " palvelimella\n" +#~ " --volume=ÄÄNENVOIMAKKUUS Määritä (lineaarinen) " +#~ "aloitusäänen-\n" +#~ " voimakkuus väliltä 0...65536\n" +#~ " --channel-map=KANAVAKARTTA Aseta käytettävä kanavakartta\n" + +#~ msgid "" +#~ "paplay %s\n" +#~ "Compiled with libpulse %s\n" +#~ "Linked with libpulse %s\n" +#~ msgstr "" +#~ "paplay %s\n" +#~ "Käännetty libpulsen versiolle %s\n" +#~ "Linkitetty libpulsen versiolle %s\n" + +#~ msgid "Invalid channel map\n" +#~ msgstr "Virheellinen kanavakartta\n" + +#~ msgid "Failed to open file '%s'\n" +#~ msgstr "Tiedoston â€%s†avaaminen epäonnistui\n" + +#~ msgid "Channel map doesn't match file.\n" +#~ msgstr "Kanavakartta ei täsmää tiedostoon.\n" + +#~ msgid "Using sample spec '%s'\n" +#~ msgstr "Käytetään näytemäärittelyä â€%sâ€\n" + #~ msgid "muted" #~ msgstr "vaimennettu" @@ -4,66 +4,23 @@ # Robert-André Mauchin <zebob.m@pengzone.org>, 2008. # Michaël Ughetto <telimektar esraonline com>, 2008. # Pablo Martin-Gomez <pablo.martin-gomez@laposte.net>, 2008. +# Corentin Perard <corentin.perard@gmail.com>, 2009. # # msgid "" msgstr "" "Project-Id-Version: pulseaudio trunk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-21 23:02+0200\n" -"PO-Revision-Date: 2008-10-18 20:34+0200\n" -"Last-Translator: Pablo Martin-Gomez <pablo.martin-gomez@laposte.net>\n" -"Language-Team: Français <fedora-trans-fr@redhat.com>\n" +"POT-Creation-Date: 2009-06-17 23:42+0200\n" +"PO-Revision-Date: 2009-04-26 17:22+0200\n" +"Last-Translator: Corentin Perard <corentin.perard@gmail.com>\n" +"Language-Team: French <fedora-trans-fr@redhat.com>\n" "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" -#: ../src/modules/alsa/alsa-util.c:532 -msgid "Analog Mono" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:540 -msgid "Analog Stereo" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:548 -msgid "Digital Stereo (IEC958)" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:556 -msgid "Digital Stereo (HDMI)" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:565 -msgid "Analog Surround 4.0" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:574 -msgid "Digital Surround 4.0 (IEC958/AC3)" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:584 -msgid "Analog Surround 4.1" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:594 -msgid "Analog Surround 5.0" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:604 -msgid "Analog Surround 5.1" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:614 -msgid "Digital Surround 5.1 (IEC958/AC3)" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:625 -msgid "Analog Surround 7.1" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:1646 +#: ../src/modules/alsa/alsa-util.c:1015 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -71,8 +28,12 @@ msgid "" "Most likely this is a bug in the ALSA driver '%s'. Please report this issue " "to the ALSA developers." msgstr "" +"snd_pcm_avail() a retourné une valeur qui est exceptionnellement large : %lu " +"octets (%lu ms).\n" +"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:1687 +#: ../src/modules/alsa/alsa-util.c:1056 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -80,8 +41,12 @@ msgid "" "Most likely this is a bug in the ALSA driver '%s'. Please report this issue " "to the ALSA developers." msgstr "" +"snd_pcm_delay() a retourné une valeur qui est exceptionnellement large : %li " +"octets (%s%lu ms).\n" +"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:1734 +#: ../src/modules/alsa/alsa-util.c:1103 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -89,25 +54,39 @@ msgid "" "Most likely this is a bug in the ALSA driver '%s'. Please report this issue " "to the ALSA developers." msgstr "" +"snd_pcm_mmap_begin() a retourné une valeur qui est exceptionnellement " +"large : %lu octets (%lu·ms).\n" +"Il s'agit très probablement d'un bogue dans le pilote ALSA « %s ». Veuillez " +"rapporter ce problème aux développeurs d'ALSA." -#: ../src/pulsecore/sink.c:2141 -#, fuzzy +#: ../src/modules/module-ladspa-sink.c:49 +msgid "Virtual LADSPA sink" +msgstr "" + +#: ../src/modules/module-ladspa-sink.c:53 +msgid "" +"sink_name=<name for the sink> sink_properties=<properties for the sink> " +"master=<name of sink to filter> format=<sample format> rate=<sample rate> " +"channels=<number of channels> channel_map=<channel map> plugin=<ladspa " +"plugin name> label=<ladspa plugin label> control=<comma seperated list of " +"input control values>" +msgstr "" + +#: ../src/pulsecore/sink.c:2394 msgid "Internal Audio" -msgstr "Erreur interne" +msgstr "Audio interne" -#: ../src/pulsecore/sink.c:2147 +#: ../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 "Échec lors de la recherche du chargeur dlopen original." +msgstr "Échec lors de la recherche du chargeur lt_dlopen original." #: ../src/daemon/ltdl-bind-now.c:129 -#, fuzzy msgid "Failed to allocate new dl loader." -msgstr "Échec lors de la recherche du chargeur dlopen original." +msgstr "Échec lors de l'allocation du nouveau chargeur dl." #: ../src/daemon/ltdl-bind-now.c:142 msgid "Failed to add bind-now-loader." @@ -167,108 +146,108 @@ msgstr "Impossible d'obtenir l'authentification : %s" msgid "PolicyKit responded with '%s'" msgstr "PolicyKit a renvoyé « %s »" -#: ../src/daemon/main.c:138 +#: ../src/daemon/main.c:142 #, c-format msgid "Got signal %s." msgstr "Signal %s obtenu." -#: ../src/daemon/main.c:165 +#: ../src/daemon/main.c:169 msgid "Exiting." msgstr "Fermeture." -#: ../src/daemon/main.c:183 +#: ../src/daemon/main.c:187 #, c-format msgid "Failed to find user '%s'." msgstr "Impossible de trouver l'utilisateur « %s »." -#: ../src/daemon/main.c:188 +#: ../src/daemon/main.c:192 #, c-format msgid "Failed to find group '%s'." msgstr "Impossible de trouver le groupe « %s »." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:196 #, 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:197 +#: ../src/daemon/main.c:201 #, 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:202 +#: ../src/daemon/main.c:206 #, 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:205 ../src/daemon/main.c:210 +#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 #, c-format msgid "Failed to create '%s': %s" msgstr "Échec lors de la création de « %s » : %s" -#: ../src/daemon/main.c:217 +#: ../src/daemon/main.c:221 #, c-format msgid "Failed to change group list: %s" msgstr "Échec lors du changement de la liste du groupe : %s" -#: ../src/daemon/main.c:233 +#: ../src/daemon/main.c:237 #, c-format msgid "Failed to change GID: %s" msgstr "Échec lors du changement de GID : %s" -#: ../src/daemon/main.c:249 +#: ../src/daemon/main.c:253 #, c-format msgid "Failed to change UID: %s" msgstr "Échec lors du changement d'UID : %s" -#: ../src/daemon/main.c:263 +#: ../src/daemon/main.c:267 msgid "Successfully dropped root privileges." -msgstr "Les permissions root ont été correctement abandonnées." +msgstr "Les privilèges root ont été correctement abandonnés." -#: ../src/daemon/main.c:271 +#: ../src/daemon/main.c:275 msgid "System wide mode unsupported on this platform." msgstr "Mode système étendu non pris en charge sur cette plateforme." -#: ../src/daemon/main.c:289 +#: ../src/daemon/main.c:293 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) a échoué : %s" -#: ../src/daemon/main.c:477 +#: ../src/daemon/main.c:481 msgid "Failed to parse command line." msgstr "Échec lors de l'analyse de la ligne de commande" -#: ../src/daemon/main.c:501 +#: ../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:508 +#: ../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 une planification en temps réel." +"Nous sommes dans le groupe « %s », permettant un ordonnancement en temps réel." -#: ../src/daemon/main.c:516 +#: ../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:519 +#: ../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:524 +#: ../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:527 +#: ../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:556 +#: ../src/daemon/main.c:560 #, c-format msgid "" "Called SUID root and real-time and/or high-priority scheduling was requested " @@ -280,49 +259,59 @@ msgid "" "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:581 +"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:610 +#: ../src/daemon/main.c:614 msgid "Successfully increased RLIMIT_RTPRIO" msgstr "Augmentation de RLIMIT_RTPRIO réussie" -#: ../src/daemon/main.c:613 +#: ../src/daemon/main.c:617 #, c-format msgid "RLIMIT_RTPRIO failed: %s" msgstr "RLIMIT_RTPRIO a échoué : %s" -#: ../src/daemon/main.c:620 +#: ../src/daemon/main.c:624 msgid "Giving up CAP_NICE" msgstr "Abandon de CAP_NICE" -#: ../src/daemon/main.c:627 +#: ../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:688 +#: ../src/daemon/main.c:692 msgid "Daemon not running" msgstr "Lé démon n'est pas lancé" -#: ../src/daemon/main.c:690 +#: ../src/daemon/main.c:694 #, c-format msgid "Daemon running as PID %u" msgstr "Le démon est lancé avec le PID %u" -#: ../src/daemon/main.c:700 +#: ../src/daemon/main.c:704 #, c-format msgid "Failed to kill daemon: %s" msgstr "Impossible de tuer le démon : %s" -#: ../src/daemon/main.c:718 +#: ../src/daemon/main.c:722 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -330,165 +319,175 @@ msgstr "" "Le programme n'est pas conçu pour être lancé en tant que root (sauf si --" "system est renseigné)." -#: ../src/daemon/main.c:720 -#, fuzzy +#: ../src/daemon/main.c:724 msgid "Root privileges required." -msgstr "Les permissions root sont nécessaires." +msgstr "Les privilèges root sont nécessaires." -#: ../src/daemon/main.c:725 +#: ../src/daemon/main.c:729 msgid "--start not supported for system instances." msgstr "--start n'est pas pris en charge pour les instances système." -#: ../src/daemon/main.c:730 +#: ../src/daemon/main.c:734 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:733 +#: ../src/daemon/main.c:737 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:736 +#: ../src/daemon/main.c:740 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:741 +#: ../src/daemon/main.c:745 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:768 +#: ../src/daemon/main.c:772 msgid "Failed to acquire stdio." msgstr "Échec lors de l'acquisition de stdio." -#: ../src/daemon/main.c:774 +#: ../src/daemon/main.c:778 #, c-format msgid "pipe failed: %s" msgstr "Échec du tube : %s" -#: ../src/daemon/main.c:779 +#: ../src/daemon/main.c:783 #, c-format msgid "fork() failed: %s" msgstr "Échec de fork() : %s" -#: ../src/daemon/main.c:793 +#: ../src/daemon/main.c:797 #, c-format msgid "read() failed: %s" msgstr "Échec de read() : %s" -#: ../src/daemon/main.c:799 +#: ../src/daemon/main.c:803 msgid "Daemon startup failed." msgstr "Échec lors du démarrage du démon." -#: ../src/daemon/main.c:801 +#: ../src/daemon/main.c:805 msgid "Daemon startup successful." msgstr "Démarrage du démon réussi." -#: ../src/daemon/main.c:871 +#: ../src/daemon/main.c:875 #, c-format msgid "This is PulseAudio %s" msgstr "Pulseaudio %s" -#: ../src/daemon/main.c:872 +#: ../src/daemon/main.c:876 #, c-format msgid "Compilation host: %s" msgstr "Hôte de compilation : %s" -#: ../src/daemon/main.c:873 +#: ../src/daemon/main.c:877 #, c-format msgid "Compilation CFLAGS: %s" msgstr "CFLAGS de compilation : %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:880 #, c-format msgid "Running on host: %s" msgstr "Exécution sur l'hôte : %s" -#: ../src/daemon/main.c:879 +#: ../src/daemon/main.c:883 #, c-format msgid "Found %u CPUs." -msgstr "" +msgstr "%u processeurs trouvés." -#: ../src/daemon/main.c:881 +#: ../src/daemon/main.c:885 #, c-format msgid "Page size is %lu bytes" msgstr "La taille de la page est de %lu octets" -#: ../src/daemon/main.c:884 +#: ../src/daemon/main.c:888 msgid "Compiled with Valgrind support: yes" msgstr "Compilé avec la prise en charge Valgrind : oui" -#: ../src/daemon/main.c:886 +#: ../src/daemon/main.c:890 msgid "Compiled with Valgrind support: no" msgstr "Compilé avec la prise en charge Valgrind : non" -#: ../src/daemon/main.c:889 +#: ../src/daemon/main.c:893 #, c-format msgid "Running in valgrind mode: %s" msgstr "Exécution en mode valgrind : %s" -#: ../src/daemon/main.c:892 +#: ../src/daemon/main.c:896 msgid "Optimized build: yes" msgstr "Construction optimisée : oui" -#: ../src/daemon/main.c:894 +#: ../src/daemon/main.c:898 msgid "Optimized build: no" msgstr "Construction optimisée : non" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:902 msgid "NDEBUG defined, all asserts disabled." -msgstr "" +msgstr "NDEBUG défini, tous les messages d'erreur sont désactivés." -#: ../src/daemon/main.c:900 +#: ../src/daemon/main.c:904 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:902 +#: ../src/daemon/main.c:906 msgid "All asserts enabled." -msgstr "" +msgstr "Tous les messages d'erreur sont activés." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:910 msgid "Failed to get machine ID" msgstr "Échec lors de l'obtention de l'ID de la machine" -#: ../src/daemon/main.c:909 +#: ../src/daemon/main.c:913 #, c-format msgid "Machine ID is %s." msgstr "L'ID de la machine est %s." -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:917 #, fuzzy, c-format msgid "Session ID is %s." msgstr "L'ID de la machine est %s." -#: ../src/daemon/main.c:919 +#: ../src/daemon/main.c:923 #, c-format msgid "Using runtime directory %s." msgstr "Utilisation du répertoire d'exécution %s." -#: ../src/daemon/main.c:924 +#: ../src/daemon/main.c:928 #, c-format msgid "Using state directory %s." msgstr "Utilisation du répertoire d'état %s." -#: ../src/daemon/main.c:927 +#: ../src/daemon/main.c:931 #, c-format msgid "Running in system mode: %s" msgstr "Exécution en mode système : %s" -#: ../src/daemon/main.c:942 +#: ../src/daemon/main.c:934 +msgid "" +"OK, so you are running PA in system mode. Please note that you most likely " +"shouldn't be doing that.\n" +"If you do it nonetheless then it's your own fault if things don't work as " +"expected.\n" +"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " +"explanation why system mode is usually a bad idea." +msgstr "" + +#: ../src/daemon/main.c:951 msgid "pa_pid_file_create() failed." msgstr "Échec de pa_pid_file_create()." -#: ../src/daemon/main.c:954 +#: ../src/daemon/main.c:961 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "" "De nouvelles horloges à haute résolution sont disponibles ! Bon appétit !" -#: ../src/daemon/main.c:956 +#: ../src/daemon/main.c:963 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -496,32 +495,32 @@ 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:970 +#: ../src/daemon/main.c:988 msgid "pa_core_new() failed." msgstr "Échec de pa_core_new()." -#: ../src/daemon/main.c:1032 +#: ../src/daemon/main.c:1050 msgid "Failed to initialize daemon." msgstr "Échec lors de l'initialisation du démon" -#: ../src/daemon/main.c:1037 +#: ../src/daemon/main.c:1055 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "Démarrage du démon sans aucun module chargé : refus de fonctionner." -#: ../src/daemon/main.c:1054 +#: ../src/daemon/main.c:1072 msgid "Daemon startup complete." msgstr "Démarrage du démon effectué." -#: ../src/daemon/main.c:1060 +#: ../src/daemon/main.c:1078 msgid "Daemon shutdown initiated." msgstr "Fermeture du démon initiée." -#: ../src/daemon/main.c:1082 +#: ../src/daemon/main.c:1100 msgid "Daemon terminated." msgstr "Démon terminé." -#: ../src/daemon/cmdline.c:121 -#, fuzzy, c-format +#: ../src/daemon/cmdline.c:115 +#, c-format msgid "" "%s [options]\n" "\n" @@ -609,7 +608,7 @@ msgstr "" "lancé\n" " -k --kill Tue un démon en cours d'exécution\n" " --check Vérifie s'il existe un démon en " -"cours d'exécution\n" +"cours d'exécution (ne retourne que le code de sortie)\n" "\n" "OPTIONS :\n" " --system[=BOOL] Exécuter en tant qu'instance " @@ -648,6 +647,12 @@ msgstr "" "verbosité\n" " -v Augmente le niveau de verbosité\n" " --log-target={auto,syslog,stderr} Indique la cible du journal\n" +" --log-meta[=BOOL] Inclure la position du code dans les " +"messages ·du journal\n" +" --log-time[=BOOL] Inclure la date dans les messages du " +"journal\n" +" --log-backtrace=TRAMES Inclure un traçage de la pile dans " +"les messages du journal\n" " -p, --dl-search-path=CHEMIN Définit le chemin de recherche pour " "les objets dynamiques\n" " partagés (extensions)\n" @@ -675,15 +680,15 @@ msgstr "" " -n Ne pas charger les fichiers de " "scripts par défaut\n" -#: ../src/daemon/cmdline.c:252 +#: ../src/daemon/cmdline.c:247 msgid "--daemonize expects boolean argument" msgstr "--daemonize requiert un paramètre booléen" -#: ../src/daemon/cmdline.c:259 +#: ../src/daemon/cmdline.c:254 msgid "--fail expects boolean argument" msgstr "--fail requiert un paramètre booléen" -#: ../src/daemon/cmdline.c:269 +#: ../src/daemon/cmdline.c:264 msgid "" "--log-level expects log level argument (either numeric in range 0..4 or one " "of debug, info, notice, warn, error)." @@ -691,55 +696,52 @@ msgstr "" "--log-level requiert un paramètre de niveau de journal (soit numérique entre " "0 et 4, soit de débogage : info, notice, warn , error)." -#: ../src/daemon/cmdline.c:281 +#: ../src/daemon/cmdline.c:276 msgid "--high-priority expects boolean argument" msgstr "--high-priority requiert un paramètre booléen" -#: ../src/daemon/cmdline.c:288 +#: ../src/daemon/cmdline.c:283 msgid "--realtime expects boolean argument" msgstr "--realtime requiert un paramètre booléen" -#: ../src/daemon/cmdline.c:295 +#: ../src/daemon/cmdline.c:290 msgid "--disallow-module-loading expects boolean argument" msgstr "--disallow-module-loading requiert un paramètre booléen" -#: ../src/daemon/cmdline.c:302 -#, fuzzy +#: ../src/daemon/cmdline.c:297 msgid "--disallow-exit expects boolean argument" msgstr "--disallow-exit requiert un paramètre booléen" -#: ../src/daemon/cmdline.c:309 +#: ../src/daemon/cmdline.c:304 msgid "--use-pid-file expects boolean argument" msgstr "--use-pid-file requiert un paramètre booléen" -#: ../src/daemon/cmdline.c:326 +#: ../src/daemon/cmdline.c:321 msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgstr "Cible du journal invalide : utilisez « syslog », « stderr » ou « auto »." -#: ../src/daemon/cmdline.c:333 -#, fuzzy +#: ../src/daemon/cmdline.c:328 msgid "--log-time expects boolean argument" -msgstr "--realtime requiert un paramètre booléen" +msgstr "--log-time requiert un paramètre booléen" -#: ../src/daemon/cmdline.c:340 -#, fuzzy +#: ../src/daemon/cmdline.c:335 msgid "--log-meta expects boolean argument" -msgstr "--disallow-exit requiert un paramètre booléen" +msgstr "--log-meta requiert un paramètre booléen" -#: ../src/daemon/cmdline.c:359 +#: ../src/daemon/cmdline.c:354 #, c-format msgid "Invalid resample method '%s'." msgstr "Méthode de rééchantillonnage invalide « %s »." -#: ../src/daemon/cmdline.c:366 +#: ../src/daemon/cmdline.c:361 msgid "--system expects boolean argument" msgstr "--system requiert un paramètre booléen" -#: ../src/daemon/cmdline.c:373 +#: ../src/daemon/cmdline.c:368 msgid "--no-cpu-limit expects boolean argument" msgstr "--no-cpu-limit requiert un paramètre booléen" -#: ../src/daemon/cmdline.c:380 +#: ../src/daemon/cmdline.c:375 msgid "--disable-shm expects boolean argument" msgstr "--disable-shm requiert un paramètre booléen" @@ -778,82 +780,89 @@ msgstr "Utilisation : %s\n" msgid "Load Once: %s\n" msgstr "Chargement unique : %s\n" -#: ../src/daemon/dumpmodules.c:77 +#: ../src/daemon/dumpmodules.c:75 +#, c-format +msgid "DEPRECATION WARNING: %s\n" +msgstr "" + +#: ../src/daemon/dumpmodules.c:79 #, c-format msgid "Path: %s\n" msgstr "Chemin : %s\n" # dans les lignes suivantes [%s = nom de fichier: %u = ligne dans celui-ci] -#: ../src/daemon/daemon-conf.c:215 +#: ../src/daemon/daemon-conf.c:216 #, c-format msgid "[%s:%u] Invalid log target '%s'." msgstr "[%s:%u] Cible du journal « %s » invalide." -#: ../src/daemon/daemon-conf.c:231 +#: ../src/daemon/daemon-conf.c:232 #, c-format msgid "[%s:%u] Invalid log level '%s'." msgstr "[%s:%u] Niveau du journal « %s » invalide." -#: ../src/daemon/daemon-conf.c:247 +#: ../src/daemon/daemon-conf.c:248 #, c-format msgid "[%s:%u] Invalid resample method '%s'." msgstr "[%s:%u] Méthode de rééchantillonnage « %s » invalide." -#: ../src/daemon/daemon-conf.c:270 +#: ../src/daemon/daemon-conf.c:271 #, c-format msgid "[%s:%u] Invalid rlimit '%s'." msgstr "[%s:%u] rlimit « %s » invalide." -#: ../src/daemon/daemon-conf.c:277 +#: ../src/daemon/daemon-conf.c:278 #, c-format msgid "[%s:%u] rlimit not supported on this platform." msgstr "[%s:%u] rlimit n'est pas pris en charge sur cette plateforme." -#: ../src/daemon/daemon-conf.c:293 +#: ../src/daemon/daemon-conf.c:294 #, c-format msgid "[%s:%u] Invalid sample format '%s'." msgstr "[%s:%u] Format d'échantillon « %s » invalide." -#: ../src/daemon/daemon-conf.c:311 +#: ../src/daemon/daemon-conf.c:312 #, c-format msgid "[%s:%u] Invalid sample rate '%s'." msgstr "[%s:%u] Taux d'échantillonnage « %s » invalide." -#: ../src/daemon/daemon-conf.c:335 +#: ../src/daemon/daemon-conf.c:336 #, c-format msgid "[%s:%u] Invalid sample channels '%s'." msgstr "[%s:%u] Canaux d'échantillonnage « %s » invalide." -#: ../src/daemon/daemon-conf.c:353 -#, fuzzy, c-format +#: ../src/daemon/daemon-conf.c:354 +#, c-format msgid "[%s:%u] Invalid channel map '%s'." -msgstr "[%s:%u] Canaux d'échantillonnage « %s » invalide." +msgstr "[%s:%u] Plan de canaux « %s » invalide." -#: ../src/daemon/daemon-conf.c:371 +#: ../src/daemon/daemon-conf.c:372 #, c-format msgid "[%s:%u] Invalid number of fragments '%s'." msgstr "[%s:%u] Nombre de fragments « %s » invalide." -#: ../src/daemon/daemon-conf.c:389 +#: ../src/daemon/daemon-conf.c:390 #, c-format msgid "[%s:%u] Invalid fragment size '%s'." msgstr "[%s:%u] Taille du fragment « %s » invalide." -#: ../src/daemon/daemon-conf.c:407 +#: ../src/daemon/daemon-conf.c:408 #, c-format msgid "[%s:%u] Invalid nice level '%s'." msgstr "[%s:%u] Niveau de priorité (nice) « %s » invalide." -#: ../src/daemon/daemon-conf.c:522 +#: ../src/daemon/daemon-conf.c:524 #, c-format msgid "Failed to open configuration file: %s" msgstr "Échec lors de l'ouverture du fichier de configuration : %s" -#: ../src/daemon/daemon-conf.c:538 +#: ../src/daemon/daemon-conf.c:540 msgid "" "The specified default channel map has a different number of channels than " "the specified default number of channels." msgstr "" +"Le plan de canaux spécifié par défaut a un nombre de canaux différent du " +"nombre spécifié par défaut." #: ../src/daemon/daemon-conf.c:616 #, c-format @@ -861,9 +870,8 @@ msgid "### Read from configuration file: %s ###\n" msgstr "### Lecture à partir du fichier de configuration : %s ###\n" #: ../src/daemon/caps.c:63 -#, fuzzy msgid "Dropping root privileges." -msgstr "Abandon des permissions root." +msgstr "Abandon des privilèges root." #: ../src/daemon/caps.c:103 msgid "Limited capabilities successfully to CAP_SYS_NICE." @@ -871,267 +879,269 @@ msgstr "Limitation des capacités à CAP_SYS_NICE réussie." #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" -msgstr "" +msgstr "Système de son PulseAudio" #: ../src/daemon/pulseaudio.desktop.in.h:2 msgid "Start the PulseAudio Sound System" -msgstr "" +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 -#, fuzzy msgid "Real-time scheduling for the PulseAudio daemon" -msgstr "Impossible de tuer le démon PulseAudio." +msgstr "Ordonnancement en temps réel pour le démon PulseAudio" #: ../src/daemon/org.pulseaudio.policy.in.h:3 -#, fuzzy msgid "" "System policy prevents PulseAudio from acquiring high-priority scheduling." msgstr "" -"Nous sommes dans le groupe « %s », permettant une planification à haute " -"priorité." +"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:103 ../src/pulse/channelmap.c:804 +#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Mono" -#: ../src/pulse/channelmap.c:105 +#: ../src/pulse/channelmap.c:107 msgid "Front Center" msgstr "Avant centre" -#: ../src/pulse/channelmap.c:106 +#: ../src/pulse/channelmap.c:108 msgid "Front Left" msgstr "Avant gauche" -#: ../src/pulse/channelmap.c:107 +#: ../src/pulse/channelmap.c:109 msgid "Front Right" msgstr "Avant droit" -#: ../src/pulse/channelmap.c:109 +#: ../src/pulse/channelmap.c:111 msgid "Rear Center" msgstr "Arrière centre" -#: ../src/pulse/channelmap.c:110 +#: ../src/pulse/channelmap.c:112 msgid "Rear Left" msgstr "Arrière gauche" -#: ../src/pulse/channelmap.c:111 +#: ../src/pulse/channelmap.c:113 msgid "Rear Right" msgstr "Arrière droit" -#: ../src/pulse/channelmap.c:113 +#: ../src/pulse/channelmap.c:115 msgid "Low Frequency Emmiter" msgstr "Émetteur à basse fréquence" -#: ../src/pulse/channelmap.c:115 +#: ../src/pulse/channelmap.c:117 msgid "Front Left-of-center" msgstr "Avant à gauche du centre" -#: ../src/pulse/channelmap.c:116 +#: ../src/pulse/channelmap.c:118 msgid "Front Right-of-center" msgstr "Avant à droite du centre" -#: ../src/pulse/channelmap.c:118 +#: ../src/pulse/channelmap.c:120 msgid "Side Left" msgstr "Côté gauche" -#: ../src/pulse/channelmap.c:119 +#: ../src/pulse/channelmap.c:121 msgid "Side Right" msgstr "Côté droit" -#: ../src/pulse/channelmap.c:121 +#: ../src/pulse/channelmap.c:123 msgid "Auxiliary 0" msgstr "Auxiliaire 0" -#: ../src/pulse/channelmap.c:122 +#: ../src/pulse/channelmap.c:124 msgid "Auxiliary 1" msgstr "Auxiliaire 1" -#: ../src/pulse/channelmap.c:123 +#: ../src/pulse/channelmap.c:125 msgid "Auxiliary 2" msgstr "Auxiliaire 2" -#: ../src/pulse/channelmap.c:124 +#: ../src/pulse/channelmap.c:126 msgid "Auxiliary 3" msgstr "Auxiliaire 3" -#: ../src/pulse/channelmap.c:125 +#: ../src/pulse/channelmap.c:127 msgid "Auxiliary 4" msgstr "Auxiliaire 4" -#: ../src/pulse/channelmap.c:126 +#: ../src/pulse/channelmap.c:128 msgid "Auxiliary 5" msgstr "Auxiliaire 5" -#: ../src/pulse/channelmap.c:127 +#: ../src/pulse/channelmap.c:129 msgid "Auxiliary 6" msgstr "Auxiliaire 6" -#: ../src/pulse/channelmap.c:128 +#: ../src/pulse/channelmap.c:130 msgid "Auxiliary 7" msgstr "Auxiliaire 7" -#: ../src/pulse/channelmap.c:129 +#: ../src/pulse/channelmap.c:131 msgid "Auxiliary 8" msgstr "Auxiliaire 8" -#: ../src/pulse/channelmap.c:130 +#: ../src/pulse/channelmap.c:132 msgid "Auxiliary 9" msgstr "Auxiliaire 9" -#: ../src/pulse/channelmap.c:131 +#: ../src/pulse/channelmap.c:133 msgid "Auxiliary 10" msgstr "Auxiliaire 10" -#: ../src/pulse/channelmap.c:132 +#: ../src/pulse/channelmap.c:134 msgid "Auxiliary 11" msgstr "Auxiliaire 11" -#: ../src/pulse/channelmap.c:133 +#: ../src/pulse/channelmap.c:135 msgid "Auxiliary 12" msgstr "Auxiliaire 12" -#: ../src/pulse/channelmap.c:134 +#: ../src/pulse/channelmap.c:136 msgid "Auxiliary 13" msgstr "Auxiliaire 13" -#: ../src/pulse/channelmap.c:135 +#: ../src/pulse/channelmap.c:137 msgid "Auxiliary 14" msgstr "Auxiliaire 14" -#: ../src/pulse/channelmap.c:136 +#: ../src/pulse/channelmap.c:138 msgid "Auxiliary 15" msgstr "Auxiliaire 15" -#: ../src/pulse/channelmap.c:137 +#: ../src/pulse/channelmap.c:139 msgid "Auxiliary 16" msgstr "Auxiliaire 16" -#: ../src/pulse/channelmap.c:138 +#: ../src/pulse/channelmap.c:140 msgid "Auxiliary 17" msgstr "Auxiliaire 17" -#: ../src/pulse/channelmap.c:139 +#: ../src/pulse/channelmap.c:141 msgid "Auxiliary 18" msgstr "Auxiliaire 18" -#: ../src/pulse/channelmap.c:140 +#: ../src/pulse/channelmap.c:142 msgid "Auxiliary 19" msgstr "Auxiliaire 19" -#: ../src/pulse/channelmap.c:141 +#: ../src/pulse/channelmap.c:143 msgid "Auxiliary 20" msgstr "Auxiliaire 20" -#: ../src/pulse/channelmap.c:142 +#: ../src/pulse/channelmap.c:144 msgid "Auxiliary 21" msgstr "Auxiliaire 21" -#: ../src/pulse/channelmap.c:143 +#: ../src/pulse/channelmap.c:145 msgid "Auxiliary 22" msgstr "Auxiliaire 22" -#: ../src/pulse/channelmap.c:144 +#: ../src/pulse/channelmap.c:146 msgid "Auxiliary 23" msgstr "Auxiliaire 23" -#: ../src/pulse/channelmap.c:145 +#: ../src/pulse/channelmap.c:147 msgid "Auxiliary 24" msgstr "Auxiliaire 24" -#: ../src/pulse/channelmap.c:146 +#: ../src/pulse/channelmap.c:148 msgid "Auxiliary 25" msgstr "Auxiliaire 25" -#: ../src/pulse/channelmap.c:147 +#: ../src/pulse/channelmap.c:149 msgid "Auxiliary 26" msgstr "Auxiliaire 26" -#: ../src/pulse/channelmap.c:148 +#: ../src/pulse/channelmap.c:150 msgid "Auxiliary 27" msgstr "Auxiliaire 27" -#: ../src/pulse/channelmap.c:149 +#: ../src/pulse/channelmap.c:151 msgid "Auxiliary 28" msgstr "Auxiliaire 28" -#: ../src/pulse/channelmap.c:150 +#: ../src/pulse/channelmap.c:152 msgid "Auxiliary 29" msgstr "Auxiliaire 29" -#: ../src/pulse/channelmap.c:151 +#: ../src/pulse/channelmap.c:153 msgid "Auxiliary 30" msgstr "Auxiliaire 30" -#: ../src/pulse/channelmap.c:152 +#: ../src/pulse/channelmap.c:154 msgid "Auxiliary 31" msgstr "Auxiliaire 31" -#: ../src/pulse/channelmap.c:154 +#: ../src/pulse/channelmap.c:156 msgid "Top Center" msgstr "Centre haut" -#: ../src/pulse/channelmap.c:156 +#: ../src/pulse/channelmap.c:158 msgid "Top Front Center" msgstr "Avant centre haut" -#: ../src/pulse/channelmap.c:157 +#: ../src/pulse/channelmap.c:159 msgid "Top Front Left" msgstr "Avant gauche haut" -#: ../src/pulse/channelmap.c:158 +#: ../src/pulse/channelmap.c:160 msgid "Top Front Right" msgstr "Avant droit haut" -#: ../src/pulse/channelmap.c:160 +#: ../src/pulse/channelmap.c:162 msgid "Top Rear Center" msgstr "Arrière centre haut" -#: ../src/pulse/channelmap.c:161 +#: ../src/pulse/channelmap.c:163 msgid "Top Rear Left" msgstr "Arrière gauche haut" -#: ../src/pulse/channelmap.c:162 +#: ../src/pulse/channelmap.c:164 msgid "Top Rear Right" msgstr "Arrière droit haut" -#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167 -#: ../src/pulse/volume.c:170 ../src/pulse/volume.c:196 -#: ../src/pulse/volume.c:216 ../src/pulse/volume.c:246 +#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167 +#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265 +#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315 msgid "(invalid)" msgstr "(invalide)" -#: ../src/pulse/channelmap.c:808 +#: ../src/pulse/channelmap.c:751 msgid "Stereo" -msgstr "" +msgstr "Stéréo" -#: ../src/pulse/channelmap.c:813 +#: ../src/pulse/channelmap.c:756 msgid "Surround 4.0" -msgstr "" +msgstr "Surround 4.0" -#: ../src/pulse/channelmap.c:819 +#: ../src/pulse/channelmap.c:762 msgid "Surround 4.1" -msgstr "" +msgstr "Surround 4.1" -#: ../src/pulse/channelmap.c:825 +#: ../src/pulse/channelmap.c:768 msgid "Surround 5.0" -msgstr "" +msgstr "Surround 5.0" -#: ../src/pulse/channelmap.c:831 +#: ../src/pulse/channelmap.c:774 msgid "Surround 5.1" -msgstr "" +msgstr "Surround 5.1" -#: ../src/pulse/channelmap.c:838 +#: ../src/pulse/channelmap.c:781 msgid "Surround 7.1" -msgstr "" +msgstr "Surround 7.1" #: ../src/pulse/error.c:43 msgid "OK" @@ -1223,40 +1233,40 @@ msgstr "Aucune extension de ce type" #: ../src/pulse/error.c:65 msgid "Obsolete functionality" -msgstr "" +msgstr "Fonctionnalité dépréciée" #: ../src/pulse/error.c:66 msgid "Missing implementation" -msgstr "" +msgstr "Implantation manquante" #: ../src/pulse/error.c:67 msgid "Client forked" -msgstr "" +msgstr "Le client s'est divisé (Client forked)" #: ../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 Gio" #: ../src/pulse/sample.c:183 #, c-format msgid "%0.1f MiB" -msgstr "" +msgstr "%0.1f Mio" #: ../src/pulse/sample.c:185 #, c-format msgid "%0.1f KiB" -msgstr "" +msgstr "%0.1f Kio" #: ../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 msgid "XOpenDisplay() failed" @@ -1290,170 +1300,165 @@ msgstr "waitpid() : %s" msgid "Received message for unknown extension '%s'" msgstr "Message reçu pour une extension inconnue « %s »" -#: ../src/utils/pacat.c:94 +#: ../src/utils/pacat.c:107 +#, c-format +msgid "Failed to drain stream: %s\n" +msgstr "Échec lors du vidage du flux : %s\n" + +#: ../src/utils/pacat.c:112 +msgid "Playback stream drained.\n" +msgstr "Flux de lecture vidé.\n" + +#: ../src/utils/pacat.c:122 +msgid "Draining connection to server.\n" +msgstr "Vidage de la connexion au serveur.\n" + +#: ../src/utils/pacat.c:135 +#, c-format +msgid "pa_stream_drain(): %s\n" +msgstr "pa_stream_drain() : %s\n" + +#: ../src/utils/pacat.c:158 #, c-format msgid "pa_stream_write() failed: %s\n" msgstr "Échec de pa_stream_write() : %s\n" -#: ../src/utils/pacat.c:133 +#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 #, c-format msgid "pa_stream_peek() failed: %s\n" msgstr "Échec de pa_stream_peek() : %s\n" -#: ../src/utils/pacat.c:169 -#, c-format +#: ../src/utils/pacat.c:302 msgid "Stream successfully created.\n" msgstr "Création du flux réussie.\n" -#: ../src/utils/pacat.c:172 +#: ../src/utils/pacat.c:305 #, c-format msgid "pa_stream_get_buffer_attr() failed: %s\n" msgstr "Échec de pa_stream_get_buffer_attr() : %s\n" -#: ../src/utils/pacat.c:176 +#: ../src/utils/pacat.c:309 #, c-format msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgstr "Mesures du tampon : maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:179 +#: ../src/utils/pacat.c:312 #, c-format msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgstr "Mesures du tampon : maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:183 +#: ../src/utils/pacat.c:316 #, c-format msgid "Using sample spec '%s', channel map '%s'.\n" msgstr "" "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:187 +#: ../src/utils/pacat.c:320 #, c-format msgid "Connected to device %s (%u, %ssuspended).\n" msgstr "Connecté au périphérique %s (%u, %ssuspendu).\n" -#: ../src/utils/pacat.c:197 +#: ../src/utils/pacat.c:330 #, c-format msgid "Stream error: %s\n" msgstr "Erreur du flux : %s\n" -#: ../src/utils/pacat.c:207 +#: ../src/utils/pacat.c:340 #, c-format msgid "Stream device suspended.%s \n" msgstr "Périphérique de flux suspendu %s \n" -#: ../src/utils/pacat.c:209 +#: ../src/utils/pacat.c:342 #, c-format msgid "Stream device resumed.%s \n" msgstr "Périphérique de flux repris %s \n" -#: ../src/utils/pacat.c:217 +#: ../src/utils/pacat.c:350 #, c-format msgid "Stream underrun.%s \n" msgstr "Flux vide %s \n" -#: ../src/utils/pacat.c:224 +#: ../src/utils/pacat.c:357 #, c-format msgid "Stream overrun.%s \n" msgstr "Flux saturé %s \n" -#: ../src/utils/pacat.c:231 +#: ../src/utils/pacat.c:364 #, c-format msgid "Stream started.%s \n" msgstr "Flux démarré %s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 #, c-format msgid "Stream moved to device %s (%u, %ssuspended).%s \n" msgstr "Flux déplacé vers le périphérique %s (%u, %ssuspendu).%s \n" # suspendu ou non suspendu -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 msgid "not " msgstr "non " -#: ../src/utils/pacat.c:245 -#, fuzzy, c-format +#: ../src/utils/pacat.c:378 +#, c-format msgid "Stream buffer attributes changed.%s \n" -msgstr "Flux vide %s \n" +msgstr "Des attributs du tampon de flux ont changé. %s \n" -#: ../src/utils/pacat.c:278 +#: ../src/utils/pacat.c:411 #, c-format msgid "Connection established.%s \n" msgstr "Connection établie.%s \n" -#: ../src/utils/pacat.c:281 +#: ../src/utils/pacat.c:414 #, c-format msgid "pa_stream_new() failed: %s\n" msgstr "Échec de pa_stream_new() : %s\n" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:442 #, c-format msgid "pa_stream_connect_playback() failed: %s\n" msgstr "Échec de pa_stream_connect_playback() : %s\n" -#: ../src/utils/pacat.c:315 +#: ../src/utils/pacat.c:448 #, c-format msgid "pa_stream_connect_record() failed: %s\n" msgstr "Échec de pa_stream_connect_record() : %s\n" -#: ../src/utils/pacat.c:329 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:762 ../src/utils/paplay.c:183 +#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 #, c-format msgid "Connection failure: %s\n" msgstr "Échec lors de la connexion : %s\n" -#: ../src/utils/pacat.c:349 ../src/utils/paplay.c:75 -#, c-format -msgid "Failed to drain stream: %s\n" -msgstr "Échec lors du vidage du flux : %s\n" - -#: ../src/utils/pacat.c:354 ../src/utils/paplay.c:80 -#, c-format -msgid "Playback stream drained.\n" -msgstr "Flux de lecture vidé.\n" - -#: ../src/utils/pacat.c:364 ../src/utils/paplay.c:92 -#, c-format -msgid "Draining connection to server.\n" -msgstr "Vidage de la connexion au serveur.\n" - -#: ../src/utils/pacat.c:390 -#, c-format +#: ../src/utils/pacat.c:495 msgid "Got EOF.\n" msgstr "EOF obtenu.\n" -#: ../src/utils/pacat.c:396 -#, c-format -msgid "pa_stream_drain(): %s\n" -msgstr "pa_stream_drain() : %s\n" - -#: ../src/utils/pacat.c:406 +#: ../src/utils/pacat.c:500 #, c-format msgid "read() failed: %s\n" msgstr "Échec de read() : %s\n" -#: ../src/utils/pacat.c:438 +#: ../src/utils/pacat.c:532 #, c-format msgid "write() failed: %s\n" msgstr "Échec de write() : %s\n" -#: ../src/utils/pacat.c:459 -#, c-format +#: ../src/utils/pacat.c:553 msgid "Got signal, exiting.\n" msgstr "Signal obtenu, fermeture.\n" -#: ../src/utils/pacat.c:473 +#: ../src/utils/pacat.c:567 #, c-format msgid "Failed to get latency: %s\n" msgstr "Échec lors de l'obtention de la latence : %s\n" -#: ../src/utils/pacat.c:478 +#: ../src/utils/pacat.c:572 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "Durée : %0.3f s ; Latency : %0.0f µs. \r" -#: ../src/utils/pacat.c:498 +#: ../src/utils/pacat.c:592 #, c-format msgid "pa_stream_update_timing_info() failed: %s\n" msgstr "Échec de pa_stream_update_timing_info() : %s\n" @@ -1461,8 +1466,8 @@ msgstr "Échec de pa_stream_update_timing_info() : %s\n" # downmix = par ex. convertir 5 canaux en 2 canaux # upmixer = par ex. convertir 2 canaux en 5 canaux # https://bugzilla.redhat.com/show_bug.cgi?id=460798 -#: ../src/utils/pacat.c:511 -#, c-format +#: ../src/utils/pacat.c:605 +#, fuzzy, c-format msgid "" "%s [options]\n" "\n" @@ -1488,8 +1493,10 @@ msgid "" "44100)\n" " --format=SAMPLEFORMAT The sample type, one of s16le, " "s16be, u8, float32le,\n" -" float32be, ulaw, alaw, s32le, s32be " -"(defaults to s16ne)\n" +" float32be, ulaw, alaw, s32le, s32be, " +"s24le, s24be,\n" +" s24-32le, s24-32be (defaults to " +"s16ne)\n" " --channels=CHANNELS The number of channels, 1 for mono, " "2 for stereo\n" " (defaults to 2)\n" @@ -1512,6 +1519,11 @@ msgid "" "bytes.\n" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" +" --property=PROPERTY=VALUE Set the specified property to the " +"specified value.\n" +" --raw Record/play raw PCM data.\n" +" --file-format=FFORMAT Record/play formatted PCM data.\n" +" --list-file-formats List available file formats.\n" msgstr "" "%s [options]\n" "\n" @@ -1565,7 +1577,7 @@ msgstr "" " --process-time=OCTETS Demande le temps de traitement " "indiqué par requête en octets.\n" -#: ../src/utils/pacat.c:612 +#: ../src/utils/pacat.c:727 #, c-format msgid "" "pacat %s\n" @@ -1576,89 +1588,134 @@ msgstr "" "Compilé avec libpulse %s\n" "Lié avec libpulse %s\n" -#: ../src/utils/pacat.c:669 +#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "Plan des canaux invalide « %s »\n" + +#: ../src/utils/pacat.c:776 +#, fuzzy, c-format +msgid "Invalid stream name '%s'\n" +msgstr "Méthode de rééchantillonnage invalide « %s »." + +#: ../src/utils/pacat.c:813 #, c-format msgid "Invalid channel map '%s'\n" msgstr "Plan des canaux invalide « %s »\n" -#: ../src/utils/pacat.c:698 +#: ../src/utils/pacat.c:842 #, c-format msgid "Invalid latency specification '%s'\n" msgstr "Spécification de latence invalide « %s »\n" -#: ../src/utils/pacat.c:705 +#: ../src/utils/pacat.c:849 #, c-format msgid "Invalid process time specification '%s'\n" msgstr "Spécification de temps de traitement invalide « %s »\n" -#: ../src/utils/pacat.c:716 +#: ../src/utils/pacat.c:861 +#, fuzzy, c-format +msgid "Invalid property '%s'\n" +msgstr "Méthode de rééchantillonnage invalide « %s »." + +#: ../src/utils/pacat.c:878 #, c-format +msgid "Unknown file format %s." +msgstr "" + +#: ../src/utils/pacat.c:897 msgid "Invalid sample specification\n" msgstr "Spécification d'échantillon invalide\n" -#: ../src/utils/pacat.c:721 +#: ../src/utils/pacat.c:907 +#, c-format +msgid "open(): %s\n" +msgstr "open() : %s\n" + +#: ../src/utils/pacat.c:912 #, c-format +msgid "dup2(): %s\n" +msgstr "dup2() : %s\n" + +#: ../src/utils/pacat.c:919 +msgid "Too many arguments.\n" +msgstr "Trop de paramètres.\n" + +#: ../src/utils/pacat.c:930 +#, fuzzy +msgid "Failed to generate sample specification for file.\n" +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" +msgstr "Échec lors de l'ouverture du fichier audio.\n" + +#: ../src/utils/pacat.c:956 +msgid "" +"Warning: specified sample specification will be overwritten with " +"specification from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "É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 "" + +#: ../src/utils/pacat.c:979 msgid "Channel map doesn't match sample specification\n" msgstr "" "Le plan des canaux ne correspond pas à la spécification d'échantillon\n" -#: ../src/utils/pacat.c:728 -#, c-format -msgid "Opening a %s stream with sample specification '%s'.\n" +#: ../src/utils/pacat.c:990 +msgid "Warning: failed to write channel map to file.\n" +msgstr "" + +#: ../src/utils/pacat.c:1005 +#, fuzzy, c-format +msgid "" +"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" msgstr "Ouverture d'un flux %s avec une spécification d'échantillon « %s ».\n" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "recording" msgstr "enregistrement" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "playback" msgstr "lecture" -#: ../src/utils/pacat.c:736 -#, c-format -msgid "open(): %s\n" -msgstr "open() : %s\n" - -#: ../src/utils/pacat.c:741 -#, c-format -msgid "dup2(): %s\n" -msgstr "dup2() : %s\n" - -#: ../src/utils/pacat.c:751 -#, c-format -msgid "Too many arguments.\n" -msgstr "Trop de paramètres.\n" - -#: ../src/utils/pacat.c:764 ../src/utils/pasuspender.c:280 -#: ../src/utils/pactl.c:1017 ../src/utils/paplay.c:381 +#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 +#: ../src/utils/pactl.c:1104 #, c-format msgid "pa_mainloop_new() failed.\n" msgstr "Échec de pa_mainloop_new().\n" -#: ../src/utils/pacat.c:785 -#, c-format +#: ../src/utils/pacat.c:1051 msgid "io_new() failed.\n" msgstr "Échec de io_new().\n" -#: ../src/utils/pacat.c:791 ../src/utils/pasuspender.c:293 -#: ../src/utils/pactl.c:1031 ../src/utils/paplay.c:396 +#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 +#: ../src/utils/pactl.c:1116 #, c-format msgid "pa_context_new() failed.\n" msgstr "Échec de pa_context_new().\n" -#: ../src/utils/pacat.c:799 +#: ../src/utils/pacat.c:1066 #, fuzzy, c-format msgid "pa_context_connect() failed: %s\n" msgstr "Échec de pa_context_connect() : %s" -#: ../src/utils/pacat.c:810 -#, c-format +#: ../src/utils/pacat.c:1077 msgid "time_new() failed.\n" msgstr "Échec de time_new().\n" -#: ../src/utils/pacat.c:817 ../src/utils/pasuspender.c:301 -#: ../src/utils/pactl.c:1042 ../src/utils/paplay.c:410 +#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 +#: ../src/utils/pactl.c:1127 #, c-format msgid "pa_mainloop_run() failed.\n" msgstr "Échec de pa_mainloop_run().\n" @@ -1689,8 +1746,7 @@ msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "" "AVERTISSEMENT : le serveur de son n'est pas local, suspension annulée.\n" -#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:768 -#: ../src/utils/paplay.c:191 +#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" msgstr "SIGINT reçu, fermeture.\n" @@ -1719,7 +1775,7 @@ msgstr "" "connecter\n" "\n" -#: ../src/utils/pasuspender.c:251 +#: ../src/utils/pasuspender.c:248 #, c-format msgid "" "pasuspender %s\n" @@ -1730,35 +1786,35 @@ msgstr "" "Compilé avec libpulse %s\n" "Lié avec libpulse %s\n" -#: ../src/utils/pactl.c:108 +#: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" msgstr "Échec lors de l'obtention des statistiques : %s\n" -#: ../src/utils/pactl.c:114 +#: ../src/utils/pactl.c:134 #, c-format msgid "Currently in use: %u blocks containing %s bytes total.\n" msgstr "En cours d'utilisation : %u blocs contenant au total %s octets.\n" -#: ../src/utils/pactl.c:117 +#: ../src/utils/pactl.c:137 #, c-format msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n" msgstr "" "Alloué pendant l'ensemble de la durée d'exécution : %u blocs contenant au " "total %s octets.\n" -#: ../src/utils/pactl.c:120 +#: ../src/utils/pactl.c:140 #, c-format msgid "Sample cache size: %s\n" msgstr "Taille du cache de l'échantillon : %s\n" -#: ../src/utils/pactl.c:129 +#: ../src/utils/pactl.c:149 #, c-format msgid "Failed to get server information: %s\n" msgstr "Échec lors de l'obtention des informations du serveur : %s\n" -#: ../src/utils/pactl.c:137 -#, fuzzy, c-format +#: ../src/utils/pactl.c:157 +#, c-format msgid "" "User name: %s\n" "Host Name: %s\n" @@ -1775,18 +1831,19 @@ msgstr "" "Nom du serveur : %s\n" "Version du serveur : %s\n" "Spécification d'échantillon par défaut : %s\n" +"Plan de canaux par défaut : %s\n" "Destination par défaut : %s\n" "Source par défaut : %s\n" "Cookie : %08x\n" -#: ../src/utils/pactl.c:178 +#: ../src/utils/pactl.c:198 #, c-format msgid "Failed to get sink information: %s\n" msgstr "Échec lors de l'obtention des informations sur la destination : %s\n" # demander à Lennart s'il s'agit de monitor of source -#: ../src/utils/pactl.c:194 -#, fuzzy, c-format +#: ../src/utils/pactl.c:214 +#, c-format msgid "" "Sink #%u\n" "\tState: %s\n" @@ -1806,26 +1863,41 @@ msgid "" "\tProperties:\n" "\t\t%s\n" msgstr "" -"*** Destination #%u ***\n" -"Nom : %s\n" -"Pilote : %s\n" -"Spécification de l'échantillon : %s\n" -"Plan des canaux : %s\n" -"Module propriétaire : %u\n" -"Volume : %s\n" -"Moniteur de la source : %s\n" -"Latence : %0.0f µs, %0.0f µs configurée \n" -"Drapeaux : %s%s%s%s%s%s\n" -"Propriétés :\n" -"%s" - -#: ../src/utils/pactl.c:258 +"Destination #%u\n" +"\tÉtat : %s\n" +"\tNom : %s\n" +"\tDescription : %s\n" +"\tPilote : %s\n" +"\tSpécification de l'échantillon : %s\n" +"\tPlan des canaux : %s\n" +"\tModule propriétaire : %u\n" +"\tMuet : %s\n" +"\tVolume : %s%s%s\n" +"\t balance %0.2f\n" +"\tVolume de base : %s%s%s\n" +"\tMoniteur de la source : %s\n" +"\tLatence : %0.0f·µs, configurée %0.0f·µs\n" +"\tDrapeaux : %s%s%s%s%s%s\n" +"\tPropriétés :\n" +"\t\t%s\n" + +#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 +#, fuzzy, c-format +msgid "\tPorts:\n" +msgstr "\tProfils :\n" + +#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 +#, fuzzy, c-format +msgid "\tActive Port: %s\n" +msgstr "\tProfil actif : %s\n" + +#: ../src/utils/pactl.c:290 #, c-format msgid "Failed to get source information: %s\n" msgstr "Échec lors de l'obtention des informations sur la source : %s\n" -#: ../src/utils/pactl.c:274 -#, fuzzy, c-format +#: ../src/utils/pactl.c:306 +#, c-format msgid "" "Source #%u\n" "\tState: %s\n" @@ -1845,34 +1917,39 @@ msgid "" "\tProperties:\n" "\t\t%s\n" msgstr "" -"*** Source #%u ***\n" -"Nom : %s\n" -"Pilote : %s\n" -"Spécification de l'échantillon : %s\n" -"Plan des canaux : %s\n" -"Module propriétaire : %u\n" -"Volume : %s\n" -"Moniteur de la destination : %s\n" -"Latence : %0.0f µs, %0.0f µs configurée \n" -"Drapeaux : %s%s%s%s%s%s\n" -"Propriétés :\n" -"%s" - -#: ../src/utils/pactl.c:306 ../src/utils/pactl.c:350 ../src/utils/pactl.c:385 -#: ../src/utils/pactl.c:422 ../src/utils/pactl.c:481 ../src/utils/pactl.c:482 -#: ../src/utils/pactl.c:492 ../src/utils/pactl.c:536 ../src/utils/pactl.c:537 -#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:586 ../src/utils/pactl.c:587 -#: ../src/utils/pactl.c:594 +"Source #%u\n" +"\tÉtat : %s\n" +"\tNom : %s\n" +"\tDescription : %s\n" +"\tPilote : %s\n" +"\tSpécification de l'échantillon : %s\n" +"\tPlan des canaux : %s\n" +"\tModule propriétaire : %u\n" +"\tMuet : %s\n" +"\tVolume : %s%s%s\n" +"\t balance %0.2f\n" +"\tVolume de base : %s%s%s\n" +"\tMoniteur de la destination : %s\n" +"\tLatence : %0.0f µs, configurée %0.0f µs\n" +"\tDrapeaux : %s%s%s%s%s%s\n" +"\tPropriétés :\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/d" -#: ../src/utils/pactl.c:324 +#: ../src/utils/pactl.c:368 #, c-format msgid "Failed to get module information: %s\n" msgstr "Échec lors de l'obtention des informations du module : %s\n" -#: ../src/utils/pactl.c:342 -#, fuzzy, c-format +#: ../src/utils/pactl.c:386 +#, c-format msgid "" "Module #%u\n" "\tName: %s\n" @@ -1881,19 +1958,20 @@ msgid "" "\tProperties:\n" "\t\t%s\n" msgstr "" -"*** Module #%u ***\n" -"Nom : %s\n" -"Paramètre : %s\n" -"Nombre d'utilisations : %s\n" -"Déchargement automatique : %s\n" +"Module #%u\n" +"\tNom : %s\n" +"\tParamètre : %s\n" +"\tNombre d'utilisations : %s\n" +"\tPropriétés : \n" +"\t\t%s\n" -#: ../src/utils/pactl.c:361 +#: ../src/utils/pactl.c:405 #, c-format msgid "Failed to get client information: %s\n" msgstr "Échec lors de l'obtention des informations du client : %s\n" -#: ../src/utils/pactl.c:379 -#, fuzzy, c-format +#: ../src/utils/pactl.c:423 +#, c-format msgid "" "Client #%u\n" "\tDriver: %s\n" @@ -1901,20 +1979,19 @@ msgid "" "\tProperties:\n" "\t\t%s\n" msgstr "" -"*** Client #%u ***\n" -"Pilote : %s\n" -"Module propriétaire : %s\n" -"Propriétés :\n" -"%s" +"Client #%u\n" +"\tPilote : %s\n" +"\tModule propriétaire : %s\n" +"\tPropriétés :\n" +"\t\t%s\n" -#: ../src/utils/pactl.c:396 -#, fuzzy, c-format +#: ../src/utils/pactl.c:440 +#, c-format msgid "Failed to get card information: %s\n" -msgstr "" -"Échec lors de l'obtention des informations du chargement automatique : %s\n" +msgstr "Impossible d'obtenir des informations sur la carte : %s\n" -#: ../src/utils/pactl.c:414 -#, fuzzy, c-format +#: ../src/utils/pactl.c:458 +#, c-format msgid "" "Card #%u\n" "\tName: %s\n" @@ -1923,31 +2000,32 @@ msgid "" "\tProperties:\n" "\t\t%s\n" msgstr "" -"*** Client #%u ***\n" -"Pilote : %s\n" -"Module propriétaire : %s\n" -"Propriétés :\n" -"%s" +"Carte #%u\n" +"\tNom : %s\n" +"\tPilote : %s\n" +"\tModule propriétaire : %s\n" +"\tPropriétés :\n" +"\t\t%s\n" -#: ../src/utils/pactl.c:428 +#: ../src/utils/pactl.c:472 #, c-format msgid "\tProfiles:\n" -msgstr "" +msgstr "\tProfils :\n" -#: ../src/utils/pactl.c:434 -#, fuzzy, c-format +#: ../src/utils/pactl.c:478 +#, c-format msgid "\tActive Profile: %s\n" -msgstr "Échec du tube : %s" +msgstr "\tProfil actif : %s\n" -#: ../src/utils/pactl.c:445 +#: ../src/utils/pactl.c:489 #, c-format msgid "Failed to get sink input information: %s\n" msgstr "" "Échec lors de l'obtention des informations de l'entrée de la destination : %" "s\n" -#: ../src/utils/pactl.c:464 -#, fuzzy, c-format +#: ../src/utils/pactl.c:508 +#, c-format msgid "" "Sink Input #%u\n" "\tDriver: %s\n" @@ -1966,28 +2044,31 @@ msgid "" "\tProperties:\n" "\t\t%s\n" msgstr "" -"*** Entrée de la destination #%u ***\n" -"Pilote : %s\n" -"Module propriétaire : %s\n" -"Client : %s\n" -"Destination : %u\n" -"Spécification de l'échantillon : %s\n" -"Plan des canaux : %s\n" -"Volume : %s\n" -"Latence du tampon : %0.0f µs\n" -"Latence de la destination : %0.0f µs\n" -"Méthode de rééchantillonnage : %s\n" -"Propriétés :\n" -"%s" - -#: ../src/utils/pactl.c:503 +"Entrée de la destination #%u\n" +"\tPilote : %s\n" +"\tModule propriétaire : %s\n" +"\tClient : %s\n" +"\tDestination : %u\n" +"\tSpécification de l'échantillon : %s\n" +"\tPlan des canaux : %s\n" +"\tMuet : %s\n" +"\tVolume : %s\n" +"\t %s\n" +"\t balance %0.2f\n" +"\tLatence du tampon : %0.0f µs\n" +"\tLatence de la destination : %0.0f µs\n" +"\tMéthode de rééchantillonnage : %s\n" +"\tPropriétés :\n" +"\t\t%s\n" + +#: ../src/utils/pactl.c:547 #, c-format msgid "Failed to get source output information: %s\n" msgstr "" "Échec lors de l'obtention des informations de la sortie de la source : %s\n" -#: ../src/utils/pactl.c:523 -#, fuzzy, c-format +#: ../src/utils/pactl.c:567 +#, c-format msgid "" "Source Output #%u\n" "\tDriver: %s\n" @@ -2002,20 +2083,20 @@ msgid "" "\tProperties:\n" "\t\t%s\n" msgstr "" -"*** Source Output #%u ***\n" -"Pilote : %s\n" -"Module propriétaire : %s\n" -"Client : %s\n" -"Source : %u\n" -"Spécification de l'échantillon : %s\n" -"Plan des canaux : %s\n" -"Latence du tampon : %0.0f µs\n" -"Latence de la source : %0.0f µs\n" -"Méthode de rééchantillonnage : %s\n" -"Propriétés :\n" -"%s" - -#: ../src/utils/pactl.c:554 +"Sortie de la source #%u\n" +"\tPilote : %s\n" +"\tModule propriétaire : %s\n" +"\tClient : %s\n" +"\tSource : %u\n" +"\tSpécification de l'échantillon : %s\n" +"\tPlan des canaux : %s\n" +"\tLatence du tampon : %0.0f µs\n" +"\tLatence de la source : %0.0f µs\n" +"\tMéthode de rééchantillonnage : %s\n" +"\tPropriétés :\n" +"\t\t%s\n" + +#: ../src/utils/pactl.c:598 #, c-format msgid "Failed to get sample information: %s\n" msgstr "Échec lors de l'obtention des informations de l'échantillon : %s\n" @@ -2023,8 +2104,8 @@ msgstr "Échec lors de l'obtention des informations de l'échantillon : %s\n" # Lazy ? # load-sample-lazy = Create a new entry in the sample cache, but don't load # the sample immediately. The sample is loaded only when it is first used -#: ../src/utils/pactl.c:572 -#, fuzzy, c-format +#: ../src/utils/pactl.c:616 +#, c-format msgid "" "Sample #%u\n" "\tName: %s\n" @@ -2040,34 +2121,35 @@ msgid "" "\tProperties:\n" "\t\t%s\n" msgstr "" -"*** Échantillon #%u ***\n" -"Nom : %s\n" -"Volume : %s\n" -"Spécification de l'échantillon : %s\n" -"Plan des canaux : %s\n" -"Durée : %0.1f s\n" -"Taille : %s\n" -"Cache retardé : %s\n" -"Nom de fichier : %s\n" -"Propriétés :\n" -"%s" - -#: ../src/utils/pactl.c:602 ../src/utils/pactl.c:612 +"Échantillon #%u\n" +"\tNom : %s\n" +"\tSpécification de l'échantillon : %s\n" +"\tPlan des canaux : %s\n" +"\tVolume : %s\n" +"\t %s\n" +"\t balance %0.2f\n" +"\tDurée : %0.1f s\n" +"\tTaille : %s\n" +"\tCache retardé : %s\n" +"\tNom de fichier : %s\n" +"\tPropriétés :\n" +"\t\t%s\n" + +#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 #, c-format msgid "Failure: %s\n" msgstr "Échec : %s\n" -#: ../src/utils/pactl.c:636 +#: ../src/utils/pactl.c:680 #, c-format msgid "Failed to upload sample: %s\n" msgstr "Échec lors de l'envoi de l'échantillon : %s\n" -#: ../src/utils/pactl.c:653 -#, c-format +#: ../src/utils/pactl.c:697 msgid "Premature end of file\n" msgstr "Fin prématurée du fichier\n" -#: ../src/utils/pactl.c:774 +#: ../src/utils/pactl.c:826 #, fuzzy, c-format msgid "" "%s [options] stat\n" @@ -2083,6 +2165,8 @@ msgid "" "%s [options] suspend-sink [SINK] 1|0\n" "%s [options] suspend-source [SOURCE] 1|0\n" "%s [options] set-card-profile [CARD] [PROFILE] \n" +"%s [options] set-sink-port [SINK] [PORT] \n" +"%s [options] set-source-port [SOURCE] [PORT] \n" "\n" " -h, --help Show this help\n" " --version Show version\n" @@ -2104,6 +2188,7 @@ msgstr "" "%s [options] unload-module ID\n" "%s [options] suspend-sink [DEST] 1|0\n" "%s [options] suspend-source [SOURCE] 1|0\n" +"%s·[options]·set-card-profile·[CARTE]·[PROFIL]·\n" "\n" " -h, --help Affiche cette aide\n" " --version Affiche la version\n" @@ -2113,7 +2198,7 @@ msgstr "" " -n, --client-name=NOM Définit le nom de ce client sur le " "serveur\n" -#: ../src/utils/pactl.c:826 +#: ../src/utils/pactl.c:880 #, c-format msgid "" "pactl %s\n" @@ -2124,77 +2209,79 @@ msgstr "" "Compilé avec libpulse %s\n" "Lié avec libpulse %s\n" -#: ../src/utils/pactl.c:865 -#, c-format +#: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "Veuillez indiquer un fichier d'échantillon à charger\n" -#: ../src/utils/pactl.c:887 -#, c-format +#: ../src/utils/pactl.c:939 msgid "Failed to open sound file.\n" msgstr "Échec lors de l'ouverture du fichier audio.\n" -#: ../src/utils/pactl.c:899 -#, c-format +#: ../src/utils/pactl.c:951 +#, fuzzy +msgid "Warning: Failed to determine sample specification from file.\n" +msgstr "Ouverture d'un flux %s avec une spécification d'échantillon « %s ».\n" + +#: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" msgstr "Vous devez indiquer un nom d'échantillon à lire\n" -#: ../src/utils/pactl.c:911 -#, c-format +#: ../src/utils/pactl.c:973 msgid "You have to specify a sample name to remove\n" msgstr "Vous devez indiquer un nom d'échantillon à supprimer\n" -#: ../src/utils/pactl.c:919 -#, c-format +#: ../src/utils/pactl.c:982 msgid "You have to specify a sink input index and a sink\n" msgstr "" "Vous devez indiquer un index de sortie de destination et une destination\n" -#: ../src/utils/pactl.c:928 -#, c-format +#: ../src/utils/pactl.c:992 msgid "You have to specify a source output index and a source\n" msgstr "Vous devez indiquer un index de sortie de source et une source\n" -#: ../src/utils/pactl.c:942 -#, c-format +#: ../src/utils/pactl.c:1007 msgid "You have to specify a module name and arguments.\n" msgstr "Vous devez indiquer un nom de module et des paramètres.\n" -#: ../src/utils/pactl.c:962 -#, c-format +#: ../src/utils/pactl.c:1027 msgid "You have to specify a module index\n" msgstr "Vous devez indiquer un index de module\n" -#: ../src/utils/pactl.c:972 -#, fuzzy, c-format +#: ../src/utils/pactl.c:1037 msgid "" "You may not specify more than one sink. You have to specify a boolean " "value.\n" msgstr "" -"Vous ne pouvez pas indiquer plus d'une destination. Vous devez indiquer au " -"moins une valeur booléenne.\n" +"Vous ne pouvez pas indiquer plus d'une destination. Vous devez indiquer une " +"valeur booléenne.\n" -#: ../src/utils/pactl.c:985 -#, fuzzy, c-format +#: ../src/utils/pactl.c:1050 msgid "" "You may not specify more than one source. You have to specify a boolean " "value.\n" msgstr "" -"Vous ne pouvez pas indiquer plus d'une source. Vous devez indiquer au moins " -"une valeur booléenne.\n" +"Vous ne pouvez pas indiquer plus d'une source. Vous devez indiquer une " +"valeur booléenne.\n" -#: ../src/utils/pactl.c:997 -#, fuzzy, c-format +#: ../src/utils/pactl.c:1062 msgid "You have to specify a card name/index and a profile name\n" -msgstr "" -"Vous devez indiquer un index de sortie de destination et une destination\n" +msgstr "Vous devez indiquer un nom/un index de carte et un nom de profil\n" -#: ../src/utils/pactl.c:1012 -#, c-format +#: ../src/utils/pactl.c:1073 +#, fuzzy +msgid "You have to specify a sink name/index and a port name\n" +msgstr "Vous devez indiquer un nom/un index de carte et un nom de profil\n" + +#: ../src/utils/pactl.c:1084 +#, fuzzy +msgid "You have to specify a source name/index and a port name\n" +msgstr "Vous devez indiquer un nom/un index de carte et un nom de profil\n" + +#: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "Aucune commande valide indiquée.\n" -#: ../src/utils/pactl.c:1037 ../src/utils/paplay.c:404 +#: ../src/utils/pactl.c:1122 #, c-format msgid "pa_context_connect() failed: %s" msgstr "Échec de pa_context_connect() : %s" @@ -2282,131 +2369,48 @@ msgstr "Échec lors du chargement des données du cookie\n" msgid "Not yet implemented.\n" msgstr "Pas encore implémenté.\n" -#: ../src/utils/pacmd.c:64 +#: ../src/utils/pacmd.c:61 +msgid "No PulseAudio daemon running, or not running as session daemon." +msgstr "" + +#: ../src/utils/pacmd.c:66 #, c-format msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s" msgstr "socket(PF_UNIX, SOCK_STREAM, 0) : %s" -#: ../src/utils/pacmd.c:81 +#: ../src/utils/pacmd.c:83 #, c-format msgid "connect(): %s" msgstr "connect() : %s" -#: ../src/utils/pacmd.c:89 +#: ../src/utils/pacmd.c:91 msgid "Failed to kill PulseAudio daemon." msgstr "Impossible de tuer le démon PulseAudio." -#: ../src/utils/pacmd.c:97 +#: ../src/utils/pacmd.c:99 msgid "Daemon not responding." msgstr "Le démon ne répond pas." -#: ../src/utils/pacmd.c:144 +#: ../src/utils/pacmd.c:146 #, c-format msgid "select(): %s" msgstr "select() : %s" -#: ../src/utils/pacmd.c:154 ../src/utils/pacmd.c:171 +#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173 #, c-format msgid "read(): %s" msgstr "read() : %s" -#: ../src/utils/pacmd.c:187 ../src/utils/pacmd.c:201 +#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203 #, c-format msgid "write(): %s" msgstr "write() : %s" -#: ../src/utils/paplay.c:139 -#, c-format -msgid "Stream successfully created\n" -msgstr "Création du flux réussie\n" - -#: ../src/utils/paplay.c:144 -#, c-format -msgid "Stream errror: %s\n" -msgstr "Erreur du flux : %s\n" - -#: ../src/utils/paplay.c:165 -#, c-format -msgid "Connection established.\n" -msgstr "Connexion établie.\n" - -#: ../src/utils/paplay.c:198 -#, c-format -msgid "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" -msgstr "" -"%s [options] [FICHIER]\n" -"\n" -" -h, --help Affiche cette aide\n" -" --version Affiche la version\n" -"\n" -" -v, --verbose Active le mode verbeux\n" -"\n" -" -s, --server=SERVEUR Le nom du serveur auquel se " -"connecter\n" -" -d, --device=PÉRIPHÉRIQUE Le nom de la destination à laquelle " -"se connecter\n" -" -n, --client-name=NOM Définit le nom de ce client sur le " -"serveur\n" -" --stream-name=NOM Définit le nom de ce flux sur le " -"serveur\n" -" --volume=VOLUME Définit le volume initial (linéaire) " -"entre 0 et 65536\n" -" --channel-map=PLANDESCANAUX Définit le plan des canaux à " -"utiliser\n" - -#: ../src/utils/paplay.c:255 -#, c-format -msgid "" -"paplay %s\n" -"Compiled with libpulse %s\n" -"Linked with libpulse %s\n" -msgstr "" -"paplay %s\n" -"Compilé avec libpulse %s\n" -"Lié avec libpulse %s\n" - -#: ../src/utils/paplay.c:292 -#, c-format -msgid "Invalid channel map\n" -msgstr "Plan des canaux invalide\n" - -#: ../src/utils/paplay.c:314 -#, c-format -msgid "Failed to open file '%s'\n" -msgstr "Échec lors de l'ouverture du fichier « %s »\n" - -#: ../src/utils/paplay.c:350 -#, c-format -msgid "Channel map doesn't match file.\n" -msgstr "Le plan des canaux ne correspond pas au fichier.\n" - -#: ../src/utils/paplay.c:376 -#, c-format -msgid "Using sample spec '%s'\n" -msgstr "Utilisation de la spécification de l'échantillon « %s »\n" - #: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 msgid "Cannot access autospawn lock." msgstr "Impossible d'accèder au verrou autonome." -#: ../src/modules/alsa/alsa-sink.c:393 ../src/modules/alsa/alsa-sink.c:541 +#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2416,8 +2420,14 @@ msgid "" "We were woken up with POLLOUT set -- however a subsequent snd_pcm_avail() " "returned 0 or another value < min_avail." msgstr "" +"ALSA nous a réveillé pour lire de nouvelles données à partir du " +"périphérique, mais il n'y avait en fait rien à écrire !\n" +"Il s'agit très probablement d'un bogue dans le pilote ALSA « %s ». Veuillez " +"rapporter ce problème aux développeurs d'ALSA.Nous avons été réveillés avec " +"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:377 ../src/modules/alsa/alsa-source.c:516 +#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2427,38 +2437,141 @@ msgid "" "We were woken up with POLLIN set -- however a subsequent snd_pcm_avail() " "returned 0 or another value < min_avail." msgstr "" +"ALSA nous a réveillé pour lire de nouvelles données à partir du " +"périphérique, mais il n'y avait en fait rien à lire !\n" +"Il s'agit très probablement d'un bogue dans le pilote ALSA « %s ». Veuillez " +"rapporter ce problème aux développeurs d'ALSA.Nous avons été réveillés avec " +"le jeu POLLIN -- cependant un snd_pcm_avail() ultérieur a retourné 0 ou une " +"autre valeur < min_avail." -#: ../src/modules/alsa/module-alsa-card.c:114 -#, c-format -msgid "Output %s + Input %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:117 -#, c-format -msgid "Output %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:121 -#, c-format -msgid "Input %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:170 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2006 +#: ../src/modules/alsa/module-alsa-card.c:152 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 msgid "Off" -msgstr "" +msgstr "Éteint" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1976 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 msgid "High Fidelity Playback (A2DP)" -msgstr "" +msgstr "Lecture haute fidélité (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1991 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 msgid "Telephony Duplex (HSP/HFP)" -msgstr "" +msgstr "Telephonie en duplex (HSP/HFP)" -#: ../src/modules/reserve-wrap.c:139 +#: ../src/modules/reserve-wrap.c:151 msgid "PulseAudio Sound Server" -msgstr "" +msgstr "Serveur de son PulseAudio" + +#~ msgid "Analog Mono" +#~ msgstr "Mono analogique" + +#~ msgid "Analog Stereo" +#~ msgstr "Stéréo analogique" + +#~ msgid "Digital Stereo (IEC958)" +#~ msgstr "Stéréo numérique (IEC958)" + +#~ msgid "Digital Stereo (HDMI)" +#~ msgstr "Stéréo numérique (HDMI)" + +#~ msgid "Analog Surround 4.0" +#~ msgstr "Surround analogique 4.0" + +#~ msgid "Digital Surround 4.0 (IEC958/AC3)" +#~ msgstr "Surround numérique 4.0 (IEC958/AC3)" + +#~ msgid "Analog Surround 4.1" +#~ msgstr "Surround analogique 4.1" + +#~ msgid "Analog Surround 5.0" +#~ msgstr "Surround analogique 5.0" + +#~ msgid "Analog Surround 5.1" +#~ msgstr "Surround analogique 5.1" + +#~ msgid "Digital Surround 5.1 (IEC958/AC3)" +#~ msgstr "Surround numérique 5.1 (IEC958/AC3)" + +#~ msgid "Analog Surround 7.1" +#~ msgstr "Surround analogique 7.1" + +#~ msgid "Output %s + Input %s" +#~ msgstr "Sortie %s + Entrée %s" + +#~ msgid "Output %s" +#~ msgstr "Sortie %s" + +#~ msgid "Input %s" +#~ msgstr "Entrée %s" + +#~ msgid "Stream successfully created\n" +#~ msgstr "Création du flux réussie\n" + +#~ msgid "Stream errror: %s\n" +#~ msgstr "Erreur du flux : %s\n" + +#~ msgid "Connection established.\n" +#~ msgstr "Connexion établie.\n" + +#~ msgid "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Show this help\n" +#~ " --version Show version\n" +#~ "\n" +#~ " -v, --verbose Enable verbose operation\n" +#~ "\n" +#~ " -s, --server=SERVER The name of the server to connect " +#~ "to\n" +#~ " -d, --device=DEVICE The name of the sink to connect " +#~ "to\n" +#~ " -n, --client-name=NAME How to call this client on the " +#~ "server\n" +#~ " --stream-name=NAME How to call this stream on the " +#~ "server\n" +#~ " --volume=VOLUME Specify the initial (linear) " +#~ "volume in range 0...65536\n" +#~ " --channel-map=CHANNELMAP Set the channel map to the use\n" +#~ msgstr "" +#~ "%s [options] [FICHIER]\n" +#~ "\n" +#~ " -h, --help Affiche cette aide\n" +#~ " --version Affiche la version\n" +#~ "\n" +#~ " -v, --verbose Active le mode verbeux\n" +#~ "\n" +#~ " -s, --server=SERVEUR Le nom du serveur auquel se " +#~ "connecter\n" +#~ " -d, --device=PÉRIPHÉRIQUE Le nom de la destination à " +#~ "laquelle se connecter\n" +#~ " -n, --client-name=NOM Définit le nom de ce client sur " +#~ "le serveur\n" +#~ " --stream-name=NOM Définit le nom de ce flux sur le " +#~ "serveur\n" +#~ " --volume=VOLUME Définit le volume initial " +#~ "(linéaire) entre 0 et 65536\n" +#~ " --channel-map=PLANDESCANAUX Définit le plan des canaux à " +#~ "utiliser\n" + +#~ msgid "" +#~ "paplay %s\n" +#~ "Compiled with libpulse %s\n" +#~ "Linked with libpulse %s\n" +#~ msgstr "" +#~ "paplay %s\n" +#~ "Compilé avec libpulse %s\n" +#~ "Lié avec libpulse %s\n" + +#~ msgid "Invalid channel map\n" +#~ msgstr "Plan des canaux invalide\n" + +#~ msgid "Failed to open file '%s'\n" +#~ msgstr "Échec lors de l'ouverture du fichier « %s »\n" + +#~ msgid "Channel map doesn't match file.\n" +#~ msgstr "Le plan des canaux ne correspond pas au fichier.\n" + +#~ msgid "Using sample spec '%s'\n" +#~ msgstr "Utilisation de la spécification de l'échantillon « %s »\n" #, fuzzy #~ msgid "" @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-21 23:02+0200\n" +"POT-Creation-Date: 2009-06-17 23:42+0200\n" "PO-Revision-Date: 2009-04-07 14:27+0530\n" "Last-Translator: Sweta Kothari <swkothar@redhat.com>\n" "Language-Team: Gujarati\n" @@ -17,51 +17,7 @@ msgstr "" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" -#: ../src/modules/alsa/alsa-util.c:532 -msgid "Analog Mono" -msgstr "àªàª¨àª¾àª²à«‹àª— મોનો" - -#: ../src/modules/alsa/alsa-util.c:540 -msgid "Analog Stereo" -msgstr "àªàª¨àª¾àª²à«‹àª— સà«àªŸà«‡àª°àª¿àª“" - -#: ../src/modules/alsa/alsa-util.c:548 -msgid "Digital Stereo (IEC958)" -msgstr "ડિજિટલ સà«àªŸà«‡àª°àª¿àª“ (IEC958)" - -#: ../src/modules/alsa/alsa-util.c:556 -msgid "Digital Stereo (HDMI)" -msgstr "ડિજિટલ સà«àªŸà«‡àª°àª¿àª“ (HDMI)" - -#: ../src/modules/alsa/alsa-util.c:565 -msgid "Analog Surround 4.0" -msgstr "àªàª¨àª¾àª²à«‹àª— સરાઉનà«àª¡ 4.0" - -#: ../src/modules/alsa/alsa-util.c:574 -msgid "Digital Surround 4.0 (IEC958/AC3)" -msgstr "àªàª¨àª¾àª²à«‹àª— સરાઉનà«àª¡ 4.0 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:584 -msgid "Analog Surround 4.1" -msgstr "àªàª¨àª¾àª²à«‹àª— સરાઉનà«àª¡ 4.1" - -#: ../src/modules/alsa/alsa-util.c:594 -msgid "Analog Surround 5.0" -msgstr "àªàª¨àª¾àª²à«‹àª— સરાઉનà«àª¡ 4.2" - -#: ../src/modules/alsa/alsa-util.c:604 -msgid "Analog Surround 5.1" -msgstr "àªàª¨àª¾àª²à«‹àª— સરાઉનà«àª¡ 5.1" - -#: ../src/modules/alsa/alsa-util.c:614 -msgid "Digital Surround 5.1 (IEC958/AC3)" -msgstr "àªàª¨àª¾àª²à«‹àª— સરાઉનà«àª¡ 5.1 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:625 -msgid "Analog Surround 7.1" -msgstr "àªàª¨àª¾àª²à«‹àª— સરાઉનà«àª¡ 7.1" - -#: ../src/modules/alsa/alsa-util.c:1646 +#: ../src/modules/alsa/alsa-util.c:1015 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -73,7 +29,7 @@ msgstr "" "ALSA ડà«àª°àª¾àª‡àªµàª° '%s' માં મોટેàªàª¾àª—ે આ àªà«‚લ જેવૠછે. ALSA ડેવલà«àªªàª°à«‹àª®àª¾àª‚ આ સમસà«àª¯àª¾àª¨à«‡ મહેરબાની કરીને " "અહેવાલ કરો." -#: ../src/modules/alsa/alsa-util.c:1687 +#: ../src/modules/alsa/alsa-util.c:1056 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -86,7 +42,7 @@ msgstr "" "ALSA ડà«àª°àª¾àª‡àªµàª° '%s' માં મોટેàªàª¾àª—ે આ àªà«‚લ જેવૠછે. ALSA ડેવલà«àªªàª°à«‹àª®àª¾àª‚ આ સમસà«àª¯àª¾àª¨à«‡ મહેરબાની કરીને " "અહેવાલ કરો." -#: ../src/modules/alsa/alsa-util.c:1734 +#: ../src/modules/alsa/alsa-util.c:1103 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -99,11 +55,24 @@ msgstr "" "ALSA ડà«àª°àª¾àª‡àªµàª° '%s' માં મોટેàªàª¾àª—ે આ àªà«‚લ જેવૠછે. ALSA ડેવલà«àªªàª°à«‹àª®àª¾àª‚ આ સમસà«àª¯àª¾àª¨à«‡ મહેરબાની કરીને " "અહેવાલ કરો." -#: ../src/pulsecore/sink.c:2141 +#: ../src/modules/module-ladspa-sink.c:49 +msgid "Virtual LADSPA sink" +msgstr "" + +#: ../src/modules/module-ladspa-sink.c:53 +msgid "" +"sink_name=<name for the sink> sink_properties=<properties for the sink> " +"master=<name of sink to filter> format=<sample format> rate=<sample rate> " +"channels=<number of channels> channel_map=<channel map> plugin=<ladspa " +"plugin name> label=<ladspa plugin label> control=<comma seperated list of " +"input control values>" +msgstr "" + +#: ../src/pulsecore/sink.c:2394 msgid "Internal Audio" msgstr "આંતરિક ઓડિયો" -#: ../src/pulsecore/sink.c:2147 +#: ../src/pulsecore/sink.c:2400 msgid "Modem" msgstr "મોડેમ" @@ -173,104 +142,104 @@ msgstr "auth મેળવા શકાતૠનથી: %s" msgid "PolicyKit responded with '%s'" msgstr "'%s' સાથે PolicyKit ઠપà«àª°àª¤à«àª¯à«àª¤à«àª¤àª° આપેલ છે" -#: ../src/daemon/main.c:138 +#: ../src/daemon/main.c:142 #, c-format msgid "Got signal %s." msgstr "સંકેત %s મળà«àª¯à«." -#: ../src/daemon/main.c:165 +#: ../src/daemon/main.c:169 msgid "Exiting." msgstr "બહાર નીકળી રહà«àª¯àª¾ છે." -#: ../src/daemon/main.c:183 +#: ../src/daemon/main.c:187 #, c-format msgid "Failed to find user '%s'." msgstr "વપરાશકરà«àª¤àª¾ '%s' ને શોધવામાં નિષà«àª«àª³." -#: ../src/daemon/main.c:188 +#: ../src/daemon/main.c:192 #, c-format msgid "Failed to find group '%s'." msgstr "જૂથ '%s' ને શોધવામાં નિષà«àª«àª³." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:196 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "વપરાશકરà«àª¤àª¾ '%s' (UID %lu) અને જૂથ '%s' (GID %lu) શોધાયà«." -#: ../src/daemon/main.c:197 +#: ../src/daemon/main.c:201 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "વપરાશકરà«àª¤àª¾ '%s' અને જૂથ '%s' ની GID બંધબેસતૠનથી." -#: ../src/daemon/main.c:202 +#: ../src/daemon/main.c:206 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "વપરાશકરà«àª¤àª¾àª“ '%s' ની ઘર ડિરેકà«àªŸàª°à«€ '%s' નથી, અવગણી રહà«àª¯àª¾ છે." -#: ../src/daemon/main.c:205 ../src/daemon/main.c:210 +#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 #, c-format msgid "Failed to create '%s': %s" msgstr "'%s' ને બનાવવામાં નિષà«àª«àª³: %s" -#: ../src/daemon/main.c:217 +#: ../src/daemon/main.c:221 #, c-format msgid "Failed to change group list: %s" msgstr "જૂથ યાદીને બદલવામાં નિષà«àª«àª³: %s" -#: ../src/daemon/main.c:233 +#: ../src/daemon/main.c:237 #, c-format msgid "Failed to change GID: %s" msgstr "GID ને બદલવામાં નિષà«àª«àª³: %s" -#: ../src/daemon/main.c:249 +#: ../src/daemon/main.c:253 #, c-format msgid "Failed to change UID: %s" msgstr "UID ને બદલવામાં નિષà«àª«àª³: %s" -#: ../src/daemon/main.c:263 +#: ../src/daemon/main.c:267 msgid "Successfully dropped root privileges." msgstr "સફળતાપૂરà«àªµàª• છોડી દીધેલ રà«àªŸ અધિકારો." -#: ../src/daemon/main.c:271 +#: ../src/daemon/main.c:275 msgid "System wide mode unsupported on this platform." msgstr "આ પà«àª²à«‡àªŸàª«à«‹àª°à«àª® પર બિનઆધારàªà«‚ત સિસà«àªŸàª® વિશાળ સà«àª¥àª¿àª¤àª¿." -#: ../src/daemon/main.c:289 +#: ../src/daemon/main.c:293 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) નિષà«àª«àª³: %s" -#: ../src/daemon/main.c:477 +#: ../src/daemon/main.c:481 msgid "Failed to parse command line." msgstr "આદેશ વાકà«àª¯àª¨à«‡ પદચà«àª›à«‡àª¦àª¨ કરવામાં નિષà«àª«àª³." -#: ../src/daemon/main.c:501 +#: ../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:508 +#: ../src/daemon/main.c:512 #, c-format msgid "We're in the group '%s', allowing real-time scheduling." msgstr "આપણે જૂથ '%s' માં છીàª, સાચા સમયે ગોઠવવાની પરવાનગી આપી રહà«àª¯àª¾ છે." -#: ../src/daemon/main.c:516 +#: ../src/daemon/main.c:520 msgid "PolicyKit grants us acquire-high-priority privilege." msgstr "PolicyKit આપણને acquire-high-priority અધિકારની મંજૂરી આપે છે." -#: ../src/daemon/main.c:519 +#: ../src/daemon/main.c:523 msgid "PolicyKit refuses acquire-high-priority privilege." msgstr "PolicyKit ઠacquire-high-priority અધિકારને ફરીથી શરૂ કરે છે." -#: ../src/daemon/main.c:524 +#: ../src/daemon/main.c:528 msgid "PolicyKit grants us acquire-real-time privilege." msgstr "PolicyKit ઠacquire-real-time અધિકારની મંજૂરી આપે છે." -#: ../src/daemon/main.c:527 +#: ../src/daemon/main.c:531 msgid "PolicyKit refuses acquire-real-time privilege." msgstr "PolicyKit ઠacquire-real-time અધિકારને ફરી શરૂ કરે છે." -#: ../src/daemon/main.c:556 +#: ../src/daemon/main.c:560 #, c-format msgid "" "Called SUID root and real-time and/or high-priority scheduling was requested " @@ -290,206 +259,216 @@ msgstr "" "અધિકારોને મેળવો, અથવા '%s' નાં સàªà«àª¯ બનો, અથવા આ વપરાશકરà«àª¤àª¾ માટે RLIMIT_NICE/" "RLIMIT_RTPRIO સà«àª¤à«àª°à«‹àª¤ મરà«àª¯àª¾àª¦àª¾àª“ને વધારો." -#: ../src/daemon/main.c:581 +#: ../src/daemon/main.c:585 msgid "" "High-priority scheduling enabled in configuration but not allowed by policy." msgstr "" "High-priority ગોઠવવાનà«àª‚ રૂપરેખાંકનમાં સકà«àª°àª¿àª¯ થયેલ છે પરંતૠપોલિસી દà«àª¦àª¾àª°àª¾ પરવાનગી આપેલ નથી." -#: ../src/daemon/main.c:610 +#: ../src/daemon/main.c:614 msgid "Successfully increased RLIMIT_RTPRIO" msgstr "સફળતાપૂરà«àªµàª• વધારેલ RLIMIT_RTPRIO" -#: ../src/daemon/main.c:613 +#: ../src/daemon/main.c:617 #, c-format msgid "RLIMIT_RTPRIO failed: %s" msgstr "RLIMIT_RTPRIO નિષà«àª«àª³: %s" -#: ../src/daemon/main.c:620 +#: ../src/daemon/main.c:624 msgid "Giving up CAP_NICE" msgstr "CAP_NICE ને છોડી રહà«àª¯àª¾ છે" -#: ../src/daemon/main.c:627 +#: ../src/daemon/main.c:631 msgid "" "Real-time scheduling enabled in configuration but not allowed by policy." msgstr "" "Real-time ગોઠવવાનà«àª‚ ઠરૂપરેખાંકનમાં સકà«àª°àª¿àª¯ થયેલ છે પરંતૠપોલિસી દà«àª¦àª¾àª°àª¾ પરવાનગી આપેલ નથી." -#: ../src/daemon/main.c:688 +#: ../src/daemon/main.c:692 msgid "Daemon not running" msgstr "ડિમન ચાલી રહà«àª¯à« નથી" -#: ../src/daemon/main.c:690 +#: ../src/daemon/main.c:694 #, c-format msgid "Daemon running as PID %u" msgstr "PID %u તરીકે ડિમન ચાલી રહà«àª¯à« છે" -#: ../src/daemon/main.c:700 +#: ../src/daemon/main.c:704 #, c-format msgid "Failed to kill daemon: %s" msgstr "ડિમનને મારવાનà«àª‚ નિષà«àª«àª³: %s" -#: ../src/daemon/main.c:718 +#: ../src/daemon/main.c:722 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." msgstr "" "આ પà«àª°àª•à«àª°àª¿àª¯àª¾àª¨à«‡ રà«àªŸ તરીકે ચલાવવા માટે વિચાર થયેલ નથી (નહિં તો --system ઠસà«àªªàª·à«àªŸ થયેલ છે)." -#: ../src/daemon/main.c:720 +#: ../src/daemon/main.c:724 msgid "Root privileges required." msgstr "રà«àªŸ અધિકારો જરૂરી છે." -#: ../src/daemon/main.c:725 +#: ../src/daemon/main.c:729 msgid "--start not supported for system instances." msgstr "--start ઠસિસà«àªŸàª® ઉદાહરણો માટે આધારàªà«‚ત નથી." -#: ../src/daemon/main.c:730 +#: ../src/daemon/main.c:734 msgid "Running in system mode, but --disallow-exit not set!" msgstr "સિસà«àªŸàª® સà«àª¥àª¿àª¤àª¿àª®àª¾àª‚ ચાલી રહà«àª¯à« છે, પરંતૠ--disallow-exit સà«àª¯à«‹àªœàª¿àª¤ નથી!" -#: ../src/daemon/main.c:733 +#: ../src/daemon/main.c:737 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "સિસà«àªŸàª® સà«àª¥àª¿àª¤àª¿àª®àª¾àª‚ ચાલી રહà«àª¯à« છે, પરંતૠ--disallow-module-loading ઠસà«àª¯à«‹àªœàª¿àª¤ નથી!" -#: ../src/daemon/main.c:736 +#: ../src/daemon/main.c:740 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "સિસà«àªŸàª® સà«àª¥àª¿àª¤àª¿àª®àª¾àª‚ ચાલી રહà«àª¯à« છે, SHM સà«àª¥àª¿àª¤àª¿àª¨à«‡ દબાણપૂરà«àªµàª• નિષà«àª•à«àª°àª¿àª¯ કરી રહà«àª¯àª¾ છે!" -#: ../src/daemon/main.c:741 +#: ../src/daemon/main.c:745 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "" "સિસà«àªŸàª® સà«àª¥àª¿àª¤àª¿àª®àª¾àª‚ ચાલી રહà«àª¯à« છે, બહાર નીકળવનાં નિષà«àª•àª¾àª°à«àª¯ સમયને દબાણપૂરà«àªµàª• નિષà«àª•à«àª°àª¿àª¯ કરી " "રહà«àª¯àª¾ છે!" -#: ../src/daemon/main.c:768 +#: ../src/daemon/main.c:772 msgid "Failed to acquire stdio." msgstr "stdio ને મેળવવામાં નિષà«àª«àª³." -#: ../src/daemon/main.c:774 +#: ../src/daemon/main.c:778 #, c-format msgid "pipe failed: %s" msgstr "પાઇપ નિષà«àª«àª³: %s" -#: ../src/daemon/main.c:779 +#: ../src/daemon/main.c:783 #, c-format msgid "fork() failed: %s" msgstr "fork() નિષà«àª«àª³: %s" -#: ../src/daemon/main.c:793 +#: ../src/daemon/main.c:797 #, c-format msgid "read() failed: %s" msgstr "read() નિષà«àª«àª³: %s" -#: ../src/daemon/main.c:799 +#: ../src/daemon/main.c:803 msgid "Daemon startup failed." msgstr "ડિમન શરૂઆત નિષà«àª«àª³." -#: ../src/daemon/main.c:801 +#: ../src/daemon/main.c:805 msgid "Daemon startup successful." msgstr "ડિમન શરૂઆત કરવૠસફળ છે." -#: ../src/daemon/main.c:871 +#: ../src/daemon/main.c:875 #, c-format msgid "This is PulseAudio %s" msgstr "આ PulseAudio %s છે" -#: ../src/daemon/main.c:872 +#: ../src/daemon/main.c:876 #, c-format msgid "Compilation host: %s" msgstr "કમà«àªªàª¾àª‡àª²à«‡àª¶àª¨ યજમાન: %s" -#: ../src/daemon/main.c:873 +#: ../src/daemon/main.c:877 #, c-format msgid "Compilation CFLAGS: %s" msgstr "કમà«àªªàª¾àª‡àª²à«‡àª¶àª¨ CFLAGS: %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:880 #, c-format msgid "Running on host: %s" msgstr "યજમાન પર ચાલી રહà«àª¯à« છે: %s" -#: ../src/daemon/main.c:879 +#: ../src/daemon/main.c:883 #, c-format msgid "Found %u CPUs." msgstr "%u CPUs શોધાયà«." -#: ../src/daemon/main.c:881 +#: ../src/daemon/main.c:885 #, c-format msgid "Page size is %lu bytes" msgstr "પાનાંનૠમાપ %lu બાઇટો છે" -#: ../src/daemon/main.c:884 +#: ../src/daemon/main.c:888 msgid "Compiled with Valgrind support: yes" msgstr "Valgrind આધાર સાથે કમà«àªªàª¾àª‡àª² થયેલ છે: હા" -#: ../src/daemon/main.c:886 +#: ../src/daemon/main.c:890 msgid "Compiled with Valgrind support: no" msgstr "Valgrind આધાર સાથે કમà«àªªàª¾àª‡àª² થયેલ છે: ના" -#: ../src/daemon/main.c:889 +#: ../src/daemon/main.c:893 #, c-format msgid "Running in valgrind mode: %s" msgstr "valgrind સà«àª¥àª¿àª¤àª¿àª®àª¾àª‚ ચાલી રહà«àª¯à« છે: %s" -#: ../src/daemon/main.c:892 +#: ../src/daemon/main.c:896 msgid "Optimized build: yes" msgstr "શà«àª°à«‡àª·à«àªŸ થયેલ બિલà«àª¡: હા" -#: ../src/daemon/main.c:894 +#: ../src/daemon/main.c:898 msgid "Optimized build: no" msgstr "શà«àª°à«‡àª·à«àªŸ થયેલ બિલà«àª¡: ના" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:902 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG વà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ થયેલ છે, બધા હકો નિષà«àª•à«àª°àª¿àª¯ થયેલ છે." -#: ../src/daemon/main.c:900 +#: ../src/daemon/main.c:904 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "FASTPATH વà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ થયેલ છે, ફકà«àª¤ àªàª¡àªªà«€ પાથનાં હકો નિષà«àª•à«àª°àª¿àª¯ થયેલ છે." -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:906 msgid "All asserts enabled." msgstr "બધા હકો સકà«àª°àª¿àª¯ થયેલ છે." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:910 msgid "Failed to get machine ID" msgstr "મશીન ID ને મેળવવામાં નિષà«àª«àª³" -#: ../src/daemon/main.c:909 +#: ../src/daemon/main.c:913 #, c-format msgid "Machine ID is %s." msgstr "મશીન ID %s છે." -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:917 #, fuzzy, c-format msgid "Session ID is %s." msgstr "મશીન ID %s છે." -#: ../src/daemon/main.c:919 +#: ../src/daemon/main.c:923 #, c-format msgid "Using runtime directory %s." msgstr "રનટાઇમ ડિરેકà«àªŸàª°à«€ %s ને વાપરી રહà«àª¯àª¾ છે." -#: ../src/daemon/main.c:924 +#: ../src/daemon/main.c:928 #, c-format msgid "Using state directory %s." msgstr "સà«àª¥àª¿àª¤àª¿ ડિરેકà«àªŸàª°à«€ %s ને વાપરી રહà«àª¯àª¾ છે." -#: ../src/daemon/main.c:927 +#: ../src/daemon/main.c:931 #, c-format msgid "Running in system mode: %s" msgstr "સિસà«àªŸàª® સà«àª¥àª¿àª¤àª¿àª®àª¾àª‚ ચાલી રહà«àª¯à« છે: %s" -#: ../src/daemon/main.c:942 +#: ../src/daemon/main.c:934 +msgid "" +"OK, so you are running PA in system mode. Please note that you most likely " +"shouldn't be doing that.\n" +"If you do it nonetheless then it's your own fault if things don't work as " +"expected.\n" +"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " +"explanation why system mode is usually a bad idea." +msgstr "" + +#: ../src/daemon/main.c:951 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() નિષà«àª«àª³." -#: ../src/daemon/main.c:954 +#: ../src/daemon/main.c:961 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "તાજૠhigh-resolution ટાઇમરો ઉપલà«àª¬àª§ છે! બોન àªàªªà«‡àªŸàª¾àª‡àªŸ!" -#: ../src/daemon/main.c:956 +#: ../src/daemon/main.c:963 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -497,31 +476,31 @@ msgstr "" "મિતà«àª°, તમારૠકરà«àª¨àª²àª®àª¾àª‚ ગડબડ છે! રસોઇયાનà«àª‚ આજે àªàª²àª¾àª®àª£ ઠસકà«àª°àª¿àª¯ થયેલ high-resolution " "ટાઇમરો સાથે Linux નà«àª‚ છે!" -#: ../src/daemon/main.c:970 +#: ../src/daemon/main.c:988 msgid "pa_core_new() failed." msgstr "pa_core_new() નિષà«àª«àª³." -#: ../src/daemon/main.c:1032 +#: ../src/daemon/main.c:1050 msgid "Failed to initialize daemon." msgstr "ડિમનને શરૂ કરવામાં નિષà«àª«àª³." -#: ../src/daemon/main.c:1037 +#: ../src/daemon/main.c:1055 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "કોઇપણ લોડ થયેલ મોડà«àª¯à«àª²à«‹ વગર ડિમનને શરૂ કરો, કામ કરવા માટે ફરી શરૂ કરી રહà«àª¯àª¾ છે." -#: ../src/daemon/main.c:1054 +#: ../src/daemon/main.c:1072 msgid "Daemon startup complete." msgstr "ડિમન પારંઠકરવાનà«àª‚ સમાપà«àª¤ છે." -#: ../src/daemon/main.c:1060 +#: ../src/daemon/main.c:1078 msgid "Daemon shutdown initiated." msgstr "ડિમનને બંધ કરવાનà«àª‚ પà«àª°àª¾àª°àª‚ઠથયેલ છે." -#: ../src/daemon/main.c:1082 +#: ../src/daemon/main.c:1100 msgid "Daemon terminated." msgstr "ડિમનનો અંત આવેલ છે." -#: ../src/daemon/cmdline.c:121 +#: ../src/daemon/cmdline.c:115 #, c-format msgid "" "%s [options]\n" @@ -663,15 +642,15 @@ msgstr "" "\n" " -n મૂળàªà«‚ત સà«àª•à«àª°àª¿àªªà«àªŸ ફાઇલને લોડ કરો નહિં\n" -#: ../src/daemon/cmdline.c:252 +#: ../src/daemon/cmdline.c:247 msgid "--daemonize expects boolean argument" msgstr "--daemonize ઠબà«àª²àª¿àª¯àª¨ દલીલની ઇચà«àª›àª¾ રાખે છે" -#: ../src/daemon/cmdline.c:259 +#: ../src/daemon/cmdline.c:254 msgid "--fail expects boolean argument" msgstr "--fail ઠબà«àª²àª¿àª¯àª¨ દલીલની ઇચà«àª›àª¾ રાખે છે" -#: ../src/daemon/cmdline.c:269 +#: ../src/daemon/cmdline.c:264 msgid "" "--log-level expects log level argument (either numeric in range 0..4 or one " "of debug, info, notice, warn, error)." @@ -679,52 +658,52 @@ msgstr "" "--log-level ઠલોગ સà«àª¤àª° દલીલની ઇચà«àª›àª¾ રાખે છે (કà«àª¯àª¾àª‚તો સીમા 0..4 માં પૂરà«àª£àª¸àª‚ખà«àª¯àª¾ છે અથવા " "ડિબગ, જાણકારી, સૂચના, ચેતવણી, àªà«‚લ નà«àª‚ àªàª•)." -#: ../src/daemon/cmdline.c:281 +#: ../src/daemon/cmdline.c:276 msgid "--high-priority expects boolean argument" msgstr "--high-priority ઠબà«àª²àª¿àª¯àª¨ દલીલની ઇચà«àª›àª¾ રાખે છે" -#: ../src/daemon/cmdline.c:288 +#: ../src/daemon/cmdline.c:283 msgid "--realtime expects boolean argument" msgstr "--realtime ઠબà«àª²àª¿àª¯àª¨ દલીલની ઇચà«àª›àª¾ રાખે છે" -#: ../src/daemon/cmdline.c:295 +#: ../src/daemon/cmdline.c:290 msgid "--disallow-module-loading expects boolean argument" msgstr "--disallow-module-loading ઠબà«àª²àª¿àª¯àª¨ દલીલની ઇચà«àª›àª¾ રાખે છે" -#: ../src/daemon/cmdline.c:302 +#: ../src/daemon/cmdline.c:297 msgid "--disallow-exit expects boolean argument" msgstr "--disallow-exit ઠબà«àª²àª¿àª¯àª¨ દલીલની ઇચà«àª›àª¾ રાખે છે" -#: ../src/daemon/cmdline.c:309 +#: ../src/daemon/cmdline.c:304 msgid "--use-pid-file expects boolean argument" msgstr "--use-pid-file ઠબà«àª²àª¿àª¯àª¨ દલીલની ઇચà«àª›àª¾ રાખે છે" -#: ../src/daemon/cmdline.c:326 +#: ../src/daemon/cmdline.c:321 msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgstr "અયોગà«àª¯ લોગ લકà«àª·à«àª¯: કà«àª¯àª¾àª‚તો 'syslog', 'stderr' અથવા 'auto' ને વાપરો." -#: ../src/daemon/cmdline.c:333 +#: ../src/daemon/cmdline.c:328 msgid "--log-time expects boolean argument" msgstr "--log-time ઠબà«àª²àª¿àª¯àª¨ દલીલની ઇચà«àª›àª¾ રાખે છે" -#: ../src/daemon/cmdline.c:340 +#: ../src/daemon/cmdline.c:335 msgid "--log-meta expects boolean argument" msgstr "--log-meta ઠબà«àª²àª¿àª¯àª¨ દલીલની ઇચà«àª›àª¾ રાખે છે" -#: ../src/daemon/cmdline.c:359 +#: ../src/daemon/cmdline.c:354 #, c-format msgid "Invalid resample method '%s'." msgstr "અયોગà«àª¯ resample પદà«àª¦àª¤àª¿ '%s'." -#: ../src/daemon/cmdline.c:366 +#: ../src/daemon/cmdline.c:361 msgid "--system expects boolean argument" msgstr "--system ઠબà«àª²àª¿àª¯àª¨ દલીલની ઇચà«àª›àª¾ રાખે છે" -#: ../src/daemon/cmdline.c:373 +#: ../src/daemon/cmdline.c:368 msgid "--no-cpu-limit expects boolean argument" msgstr "--no-cpu-limit ઠબà«àª²àª¿àª¯àª¨ દલીલની ઇચà«àª›àª¾ રાખે છે" -#: ../src/daemon/cmdline.c:380 +#: ../src/daemon/cmdline.c:375 msgid "--disable-shm expects boolean argument" msgstr "--disable-shm ઠબà«àª²àª¿àª¯àª¨ દલીલની ઇચà«àª›àª¾ રાખે છે" @@ -763,77 +742,82 @@ msgstr "વપરાશ: %s\n" msgid "Load Once: %s\n" msgstr "àªàª•àªµàª¾àª° લોડ કરો: %s\n" -#: ../src/daemon/dumpmodules.c:77 +#: ../src/daemon/dumpmodules.c:75 +#, c-format +msgid "DEPRECATION WARNING: %s\n" +msgstr "" + +#: ../src/daemon/dumpmodules.c:79 #, c-format msgid "Path: %s\n" msgstr "પાથ: %s\n" -#: ../src/daemon/daemon-conf.c:215 +#: ../src/daemon/daemon-conf.c:216 #, c-format msgid "[%s:%u] Invalid log target '%s'." msgstr "[%s:%u] અયોગà«àª¯ લોગ લકà«àª·à«àª¯ '%s'." -#: ../src/daemon/daemon-conf.c:231 +#: ../src/daemon/daemon-conf.c:232 #, c-format msgid "[%s:%u] Invalid log level '%s'." msgstr "[%s:%u] અયોગà«àª¯ લોગ સà«àª¤àª° '%s'." -#: ../src/daemon/daemon-conf.c:247 +#: ../src/daemon/daemon-conf.c:248 #, c-format msgid "[%s:%u] Invalid resample method '%s'." msgstr "[%s:%u] અયોગà«àª¯ resample પદà«àª¦àª¤àª¿ '%s'." -#: ../src/daemon/daemon-conf.c:270 +#: ../src/daemon/daemon-conf.c:271 #, c-format msgid "[%s:%u] Invalid rlimit '%s'." msgstr "[%s:%u] અયોગà«àª¯ rlimit '%s'." -#: ../src/daemon/daemon-conf.c:277 +#: ../src/daemon/daemon-conf.c:278 #, c-format msgid "[%s:%u] rlimit not supported on this platform." msgstr "[%s:%u] rlimit ઠઆ પà«àª²à«‡àªŸàª«à«‹àª°à«àª® પર આધારàªà«‚ત નથી." -#: ../src/daemon/daemon-conf.c:293 +#: ../src/daemon/daemon-conf.c:294 #, c-format msgid "[%s:%u] Invalid sample format '%s'." msgstr "[%s:%u] અયોગà«àª¯ નમૂના બંધારણ '%s'." -#: ../src/daemon/daemon-conf.c:311 +#: ../src/daemon/daemon-conf.c:312 #, c-format msgid "[%s:%u] Invalid sample rate '%s'." msgstr "[%s:%u] અયોગà«àª¯ નમૂના દર '%s'." -#: ../src/daemon/daemon-conf.c:335 +#: ../src/daemon/daemon-conf.c:336 #, c-format msgid "[%s:%u] Invalid sample channels '%s'." msgstr "[%s:%u] અયોગà«àª¯ નમૂના ચેનલો '%s'." -#: ../src/daemon/daemon-conf.c:353 +#: ../src/daemon/daemon-conf.c:354 #, c-format msgid "[%s:%u] Invalid channel map '%s'." msgstr "[%s:%u] અયોગà«àª¯ ચેનલ મેપ '%s'." -#: ../src/daemon/daemon-conf.c:371 +#: ../src/daemon/daemon-conf.c:372 #, c-format msgid "[%s:%u] Invalid number of fragments '%s'." msgstr "[%s:%u] અયોગà«àª¯ ફà«àª°à«‡àª—મેનà«àªŸà«‹àª¨àª¾àª‚ નંબર '%s'." -#: ../src/daemon/daemon-conf.c:389 +#: ../src/daemon/daemon-conf.c:390 #, c-format msgid "[%s:%u] Invalid fragment size '%s'." msgstr "[%s:%u] અયોગà«àª¯ ફà«àª°à«‡àª—મેનà«àªŸ માપ '%s'." -#: ../src/daemon/daemon-conf.c:407 +#: ../src/daemon/daemon-conf.c:408 #, c-format msgid "[%s:%u] Invalid nice level '%s'." msgstr "[%s:%u] અયોગà«àª¯ સારૠસà«àª¤àª° '%s'." -#: ../src/daemon/daemon-conf.c:522 +#: ../src/daemon/daemon-conf.c:524 #, c-format msgid "Failed to open configuration file: %s" msgstr "રૂપરેખાંકન ફાઇલને ખોલવાનà«àª‚ નિષà«àª«àª³: %s" -#: ../src/daemon/daemon-conf.c:538 +#: ../src/daemon/daemon-conf.c:540 msgid "" "The specified default channel map has a different number of channels than " "the specified default number of channels." @@ -880,237 +864,237 @@ msgstr "" msgid "System policy prevents PulseAudio from acquiring real-time scheduling." msgstr "real-time ગોઠવણી પà«àª°àª¾àªªà«àª¤ કરવા માંથી સિસà«àªŸàª® પોલિસી ઠPulseAudio ને અટકાવે છે." -#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804 +#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "મોનો" -#: ../src/pulse/channelmap.c:105 +#: ../src/pulse/channelmap.c:107 msgid "Front Center" msgstr "આગળનà«àª‚ કેનà«àª¦à«àª°" -#: ../src/pulse/channelmap.c:106 +#: ../src/pulse/channelmap.c:108 msgid "Front Left" msgstr "આગળ ડાબે" -#: ../src/pulse/channelmap.c:107 +#: ../src/pulse/channelmap.c:109 msgid "Front Right" msgstr "આગળ જમણે" -#: ../src/pulse/channelmap.c:109 +#: ../src/pulse/channelmap.c:111 msgid "Rear Center" msgstr "રિઅર કેનà«àª¦à«àª°" -#: ../src/pulse/channelmap.c:110 +#: ../src/pulse/channelmap.c:112 msgid "Rear Left" msgstr "રિઅર ડાબે" -#: ../src/pulse/channelmap.c:111 +#: ../src/pulse/channelmap.c:113 msgid "Rear Right" msgstr "રિઅર જમણે" -#: ../src/pulse/channelmap.c:113 +#: ../src/pulse/channelmap.c:115 msgid "Low Frequency Emmiter" msgstr "Low Frequency Emmiter" -#: ../src/pulse/channelmap.c:115 +#: ../src/pulse/channelmap.c:117 msgid "Front Left-of-center" msgstr "આગળ કેનà«àª¦à«àª°àª¨à«€ ડાબે" -#: ../src/pulse/channelmap.c:116 +#: ../src/pulse/channelmap.c:118 msgid "Front Right-of-center" msgstr "આગળ કેનà«àª¦à«àª°àª¨à«€ જમણે" -#: ../src/pulse/channelmap.c:118 +#: ../src/pulse/channelmap.c:120 msgid "Side Left" msgstr "ડાબી બાજà«" -#: ../src/pulse/channelmap.c:119 +#: ../src/pulse/channelmap.c:121 msgid "Side Right" msgstr "જમણી બાજà«" -#: ../src/pulse/channelmap.c:121 +#: ../src/pulse/channelmap.c:123 msgid "Auxiliary 0" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 0" -#: ../src/pulse/channelmap.c:122 +#: ../src/pulse/channelmap.c:124 msgid "Auxiliary 1" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 1" -#: ../src/pulse/channelmap.c:123 +#: ../src/pulse/channelmap.c:125 msgid "Auxiliary 2" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 2" -#: ../src/pulse/channelmap.c:124 +#: ../src/pulse/channelmap.c:126 msgid "Auxiliary 3" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 3" -#: ../src/pulse/channelmap.c:125 +#: ../src/pulse/channelmap.c:127 msgid "Auxiliary 4" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 4" -#: ../src/pulse/channelmap.c:126 +#: ../src/pulse/channelmap.c:128 msgid "Auxiliary 5" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 5" -#: ../src/pulse/channelmap.c:127 +#: ../src/pulse/channelmap.c:129 msgid "Auxiliary 6" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 6" -#: ../src/pulse/channelmap.c:128 +#: ../src/pulse/channelmap.c:130 msgid "Auxiliary 7" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 7" -#: ../src/pulse/channelmap.c:129 +#: ../src/pulse/channelmap.c:131 msgid "Auxiliary 8" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 8" -#: ../src/pulse/channelmap.c:130 +#: ../src/pulse/channelmap.c:132 msgid "Auxiliary 9" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 9" -#: ../src/pulse/channelmap.c:131 +#: ../src/pulse/channelmap.c:133 msgid "Auxiliary 10" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 10" -#: ../src/pulse/channelmap.c:132 +#: ../src/pulse/channelmap.c:134 msgid "Auxiliary 11" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 11" -#: ../src/pulse/channelmap.c:133 +#: ../src/pulse/channelmap.c:135 msgid "Auxiliary 12" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 12" -#: ../src/pulse/channelmap.c:134 +#: ../src/pulse/channelmap.c:136 msgid "Auxiliary 13" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 13" -#: ../src/pulse/channelmap.c:135 +#: ../src/pulse/channelmap.c:137 msgid "Auxiliary 14" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 14" -#: ../src/pulse/channelmap.c:136 +#: ../src/pulse/channelmap.c:138 msgid "Auxiliary 15" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 15" -#: ../src/pulse/channelmap.c:137 +#: ../src/pulse/channelmap.c:139 msgid "Auxiliary 16" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 16" -#: ../src/pulse/channelmap.c:138 +#: ../src/pulse/channelmap.c:140 msgid "Auxiliary 17" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 17" -#: ../src/pulse/channelmap.c:139 +#: ../src/pulse/channelmap.c:141 msgid "Auxiliary 18" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 18" -#: ../src/pulse/channelmap.c:140 +#: ../src/pulse/channelmap.c:142 msgid "Auxiliary 19" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 19" -#: ../src/pulse/channelmap.c:141 +#: ../src/pulse/channelmap.c:143 msgid "Auxiliary 20" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 20" -#: ../src/pulse/channelmap.c:142 +#: ../src/pulse/channelmap.c:144 msgid "Auxiliary 21" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 21" -#: ../src/pulse/channelmap.c:143 +#: ../src/pulse/channelmap.c:145 msgid "Auxiliary 22" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 22" -#: ../src/pulse/channelmap.c:144 +#: ../src/pulse/channelmap.c:146 msgid "Auxiliary 23" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 23" -#: ../src/pulse/channelmap.c:145 +#: ../src/pulse/channelmap.c:147 msgid "Auxiliary 24" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 24" -#: ../src/pulse/channelmap.c:146 +#: ../src/pulse/channelmap.c:148 msgid "Auxiliary 25" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 25" -#: ../src/pulse/channelmap.c:147 +#: ../src/pulse/channelmap.c:149 msgid "Auxiliary 26" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 26" -#: ../src/pulse/channelmap.c:148 +#: ../src/pulse/channelmap.c:150 msgid "Auxiliary 27" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 27" -#: ../src/pulse/channelmap.c:149 +#: ../src/pulse/channelmap.c:151 msgid "Auxiliary 28" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 28" -#: ../src/pulse/channelmap.c:150 +#: ../src/pulse/channelmap.c:152 msgid "Auxiliary 29" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 29" -#: ../src/pulse/channelmap.c:151 +#: ../src/pulse/channelmap.c:153 msgid "Auxiliary 30" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 30" -#: ../src/pulse/channelmap.c:152 +#: ../src/pulse/channelmap.c:154 msgid "Auxiliary 31" msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 31" -#: ../src/pulse/channelmap.c:154 +#: ../src/pulse/channelmap.c:156 msgid "Top Center" msgstr "ઊંચે કેનà«àª¦à«àª°" -#: ../src/pulse/channelmap.c:156 +#: ../src/pulse/channelmap.c:158 msgid "Top Front Center" msgstr "ઊંચે આગળ કેનà«àª¦à«àª°" -#: ../src/pulse/channelmap.c:157 +#: ../src/pulse/channelmap.c:159 msgid "Top Front Left" msgstr "ઊંચે આગળ ડાબે" -#: ../src/pulse/channelmap.c:158 +#: ../src/pulse/channelmap.c:160 msgid "Top Front Right" msgstr "ઊંચે આગળ જમણે" -#: ../src/pulse/channelmap.c:160 +#: ../src/pulse/channelmap.c:162 msgid "Top Rear Center" msgstr "ઊંચે રિઅર કેનà«àª¦à«àª°" -#: ../src/pulse/channelmap.c:161 +#: ../src/pulse/channelmap.c:163 msgid "Top Rear Left" msgstr "ઉપર રિઅર ડાબે" -#: ../src/pulse/channelmap.c:162 +#: ../src/pulse/channelmap.c:164 msgid "Top Rear Right" msgstr "ઉપર રિઅર જમણે" -#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167 -#: ../src/pulse/volume.c:170 ../src/pulse/volume.c:196 -#: ../src/pulse/volume.c:216 ../src/pulse/volume.c:246 +#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167 +#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265 +#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315 msgid "(invalid)" msgstr "(અયોગà«àª¯)" -#: ../src/pulse/channelmap.c:808 +#: ../src/pulse/channelmap.c:751 msgid "Stereo" msgstr "સà«àªŸà«‡àª°àª¿àª“" -#: ../src/pulse/channelmap.c:813 +#: ../src/pulse/channelmap.c:756 msgid "Surround 4.0" msgstr "સરાઉનà«àª¡ 4.0" -#: ../src/pulse/channelmap.c:819 +#: ../src/pulse/channelmap.c:762 msgid "Surround 4.1" msgstr "સરાઉનà«àª¡ 4.1" -#: ../src/pulse/channelmap.c:825 +#: ../src/pulse/channelmap.c:768 msgid "Surround 5.0" msgstr "સરાઉનà«àª¡ 5.0" -#: ../src/pulse/channelmap.c:831 +#: ../src/pulse/channelmap.c:774 msgid "Surround 5.1" msgstr "સરાઉનà«àª¡ 5.1" -#: ../src/pulse/channelmap.c:838 +#: ../src/pulse/channelmap.c:781 msgid "Surround 7.1" msgstr "સરાઉનà«àª¡ 7.1" @@ -1271,173 +1255,168 @@ msgstr "waitpid(): %s" msgid "Received message for unknown extension '%s'" msgstr "અજà«àªžàª¾àª¤ àªàª•à«àª¸àªŸà«‡àª¨à«àª¶àª¨ '%s' માટે મળેલ સંદેશ" -#: ../src/utils/pacat.c:94 +#: ../src/utils/pacat.c:107 +#, c-format +msgid "Failed to drain stream: %s\n" +msgstr "સà«àªŸà«àª°à«€àª®àª¨à«‡ નિકાલ કરવામાં નિષà«àª«àª³: %s\n" + +#: ../src/utils/pacat.c:112 +msgid "Playback stream drained.\n" +msgstr "પà«àª²à«‡àª¬à«‡àª• સà«àªŸà«àª°à«€àª® ને નિકાલ કરેલ છે.\n" + +#: ../src/utils/pacat.c:122 +msgid "Draining connection to server.\n" +msgstr "સરà«àªµàª°àª®àª¾àª‚ જોડાણને નિકાલ કરી રહà«àª¯àª¾ છે.\n" + +#: ../src/utils/pacat.c:135 +#, c-format +msgid "pa_stream_drain(): %s\n" +msgstr "pa_stream_drain(): %s\n" + +#: ../src/utils/pacat.c:158 #, c-format msgid "pa_stream_write() failed: %s\n" msgstr "pa_stream_write() નિષà«àª«àª³: %s\n" -#: ../src/utils/pacat.c:133 +#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 #, c-format msgid "pa_stream_peek() failed: %s\n" msgstr "pa_stream_peek() નિષà«àª«àª³: %s\n" -#: ../src/utils/pacat.c:169 -#, c-format +#: ../src/utils/pacat.c:302 msgid "Stream successfully created.\n" msgstr "સà«àªŸà«àª°à«€àª® સફળતાપૂરà«àªµàª• બનાવેલ છે.\n" -#: ../src/utils/pacat.c:172 +#: ../src/utils/pacat.c:305 #, c-format msgid "pa_stream_get_buffer_attr() failed: %s\n" msgstr "pa_stream_get_buffer_attr() નિષà«àª«àª³: %s\n" -#: ../src/utils/pacat.c:176 +#: ../src/utils/pacat.c:309 #, c-format msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgstr "બફર મેટà«àª°àª¿àª•à«àª¸: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:179 +#: ../src/utils/pacat.c:312 #, c-format msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgstr "બફર મેટà«àª°àª¿àª•à«àª¸: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:183 +#: ../src/utils/pacat.c:316 #, c-format msgid "Using sample spec '%s', channel map '%s'.\n" msgstr "નમૂનો spec '%s' ને વાપરી રહà«àª¯àª¾ છે, ચેનલ મેપ '%s'.\n" -#: ../src/utils/pacat.c:187 +#: ../src/utils/pacat.c:320 #, c-format msgid "Connected to device %s (%u, %ssuspended).\n" msgstr "ઉપકરણ %s (%u, %ssuspended) સાથે જોડાયેલ છે.\n" -#: ../src/utils/pacat.c:197 +#: ../src/utils/pacat.c:330 #, c-format msgid "Stream error: %s\n" msgstr "સà«àªŸà«àª°à«€àª® àªà«‚લ: %s\n" -#: ../src/utils/pacat.c:207 +#: ../src/utils/pacat.c:340 #, c-format msgid "Stream device suspended.%s \n" msgstr "સà«àªŸà«àª°à«€àª® ઉપકરણ ને થોડા સમય માટે બંધ રાખેલ છે.%s \n" -#: ../src/utils/pacat.c:209 +#: ../src/utils/pacat.c:342 #, c-format msgid "Stream device resumed.%s \n" msgstr "સà«àªŸà«àª°à«€àª® ઉપકરણને ફરી શરૂ કરેલ છે.%s \n" -#: ../src/utils/pacat.c:217 +#: ../src/utils/pacat.c:350 #, c-format msgid "Stream underrun.%s \n" msgstr "સà«àªŸà«àª°à«€àª® ચલાવવા હેઠળ છે.%s \n" -#: ../src/utils/pacat.c:224 +#: ../src/utils/pacat.c:357 #, c-format msgid "Stream overrun.%s \n" msgstr "સà«àªŸà«àª°à«€àª® ઉપર ચાલે છે.%s \n" -#: ../src/utils/pacat.c:231 +#: ../src/utils/pacat.c:364 #, c-format msgid "Stream started.%s \n" msgstr "સà«àªŸà«àª°à«€àª® શરૂ થયેલ છે.%s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 #, c-format msgid "Stream moved to device %s (%u, %ssuspended).%s \n" msgstr "સà«àªŸà«àª°à«€àª® ઠઉપકરણ %s (%u, %ssuspended) માં ખસેડેલ છે.%s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 msgid "not " msgstr "નથી " -#: ../src/utils/pacat.c:245 +#: ../src/utils/pacat.c:378 #, c-format msgid "Stream buffer attributes changed.%s \n" msgstr "સà«àªŸà«àª°à«€àª® બફર ગà«àª£àª§àª°à«àª®à«‹ બદલાયેલ છે.%s \n" -#: ../src/utils/pacat.c:278 +#: ../src/utils/pacat.c:411 #, c-format msgid "Connection established.%s \n" msgstr "જોડાણ સà«àª¥àª¾àªªàª¿àª¤ થયેલ છે.%s \n" -#: ../src/utils/pacat.c:281 +#: ../src/utils/pacat.c:414 #, c-format msgid "pa_stream_new() failed: %s\n" msgstr "pa_stream_new() નિષà«àª«àª³: %s\n" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:442 #, c-format msgid "pa_stream_connect_playback() failed: %s\n" msgstr "pa_stream_connect_playback() નિષà«àª«àª³: %s\n" -#: ../src/utils/pacat.c:315 +#: ../src/utils/pacat.c:448 #, c-format msgid "pa_stream_connect_record() failed: %s\n" msgstr "pa_stream_connect_record() નિષà«àª«àª³: %s\n" -#: ../src/utils/pacat.c:329 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:762 ../src/utils/paplay.c:183 +#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 #, c-format msgid "Connection failure: %s\n" msgstr "જોડાણ નિષà«àª«àª³: %s\n" -#: ../src/utils/pacat.c:349 ../src/utils/paplay.c:75 -#, c-format -msgid "Failed to drain stream: %s\n" -msgstr "સà«àªŸà«àª°à«€àª®àª¨à«‡ નિકાલ કરવામાં નિષà«àª«àª³: %s\n" - -#: ../src/utils/pacat.c:354 ../src/utils/paplay.c:80 -#, c-format -msgid "Playback stream drained.\n" -msgstr "પà«àª²à«‡àª¬à«‡àª• સà«àªŸà«àª°à«€àª® ને નિકાલ કરેલ છે.\n" - -#: ../src/utils/pacat.c:364 ../src/utils/paplay.c:92 -#, c-format -msgid "Draining connection to server.\n" -msgstr "સરà«àªµàª°àª®àª¾àª‚ જોડાણને નિકાલ કરી રહà«àª¯àª¾ છે.\n" - -#: ../src/utils/pacat.c:390 -#, c-format +#: ../src/utils/pacat.c:495 msgid "Got EOF.\n" msgstr "EOF મળà«àª¯à«.\n" -#: ../src/utils/pacat.c:396 -#, c-format -msgid "pa_stream_drain(): %s\n" -msgstr "pa_stream_drain(): %s\n" - -#: ../src/utils/pacat.c:406 +#: ../src/utils/pacat.c:500 #, c-format msgid "read() failed: %s\n" msgstr "read() નિષà«àª«àª³: %s\n" -#: ../src/utils/pacat.c:438 +#: ../src/utils/pacat.c:532 #, c-format msgid "write() failed: %s\n" msgstr "write() નિષà«àª«àª³: %s\n" -#: ../src/utils/pacat.c:459 -#, c-format +#: ../src/utils/pacat.c:553 msgid "Got signal, exiting.\n" msgstr "સંકેત મળà«àª¯à«àª‚, બહાર નીકળી રહà«àª¯àª¾ છે.\n" -#: ../src/utils/pacat.c:473 +#: ../src/utils/pacat.c:567 #, c-format msgid "Failed to get latency: %s\n" msgstr "ગà«àªªà«àª¤àª¤àª¾ મેળવવામાં નિષà«àª«àª³: %s\n" -#: ../src/utils/pacat.c:478 +#: ../src/utils/pacat.c:572 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "Time: %0.3f sec; Latency: %0.0f usec. \r" -#: ../src/utils/pacat.c:498 +#: ../src/utils/pacat.c:592 #, c-format msgid "pa_stream_update_timing_info() failed: %s\n" msgstr "pa_stream_update_timing_info() નિષà«àª«àª³: %s\n" -#: ../src/utils/pacat.c:511 -#, c-format +#: ../src/utils/pacat.c:605 +#, fuzzy, c-format msgid "" "%s [options]\n" "\n" @@ -1463,8 +1442,10 @@ msgid "" "44100)\n" " --format=SAMPLEFORMAT The sample type, one of s16le, " "s16be, u8, float32le,\n" -" float32be, ulaw, alaw, s32le, s32be " -"(defaults to s16ne)\n" +" float32be, ulaw, alaw, s32le, s32be, " +"s24le, s24be,\n" +" s24-32le, s24-32be (defaults to " +"s16ne)\n" " --channels=CHANNELS The number of channels, 1 for mono, " "2 for stereo\n" " (defaults to 2)\n" @@ -1487,6 +1468,11 @@ msgid "" "bytes.\n" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" +" --property=PROPERTY=VALUE Set the specified property to the " +"specified value.\n" +" --raw Record/play raw PCM data.\n" +" --file-format=FFORMAT Record/play formatted PCM data.\n" +" --list-file-formats List available file formats.\n" msgstr "" "%s [options]\n" "\n" @@ -1537,7 +1523,7 @@ msgstr "" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" -#: ../src/utils/pacat.c:612 +#: ../src/utils/pacat.c:727 #, c-format msgid "" "pacat %s\n" @@ -1548,88 +1534,133 @@ msgstr "" "libpulse %s સાથે કમà«àªªàª¾àª‡àª² થયેલ છે\n" "libpulse %s સાથે કડી થયેલ છે\n" -#: ../src/utils/pacat.c:669 +#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "અયોગà«àª¯ ચેનલ મેપ '%s'\n" + +#: ../src/utils/pacat.c:776 +#, fuzzy, c-format +msgid "Invalid stream name '%s'\n" +msgstr "અયોગà«àª¯ resample પદà«àª¦àª¤àª¿ '%s'." + +#: ../src/utils/pacat.c:813 #, c-format msgid "Invalid channel map '%s'\n" msgstr "અયોગà«àª¯ ચેનલ મેપ '%s'\n" -#: ../src/utils/pacat.c:698 +#: ../src/utils/pacat.c:842 #, c-format msgid "Invalid latency specification '%s'\n" msgstr "અયોગà«àª¯ ગà«àªªà«àª¤àª¤àª¾ સà«àªªàª·à«àªŸà«€àª•àª°àª£ '%s'\n" -#: ../src/utils/pacat.c:705 +#: ../src/utils/pacat.c:849 #, c-format msgid "Invalid process time specification '%s'\n" msgstr "અયોગà«àª¯ પà«àª°àª•à«àª°àª¿àª¯àª¾ સમય સà«àªªàª·à«àªŸà«€àª•àª°àª£ '%s'\n" -#: ../src/utils/pacat.c:716 +#: ../src/utils/pacat.c:861 +#, fuzzy, c-format +msgid "Invalid property '%s'\n" +msgstr "અયોગà«àª¯ resample પદà«àª¦àª¤àª¿ '%s'." + +#: ../src/utils/pacat.c:878 #, c-format +msgid "Unknown file format %s." +msgstr "" + +#: ../src/utils/pacat.c:897 msgid "Invalid sample specification\n" msgstr "અયોગà«àª¯ નમૂના સà«àªªàª·à«àªŸà«€àª•àª°àª£\n" -#: ../src/utils/pacat.c:721 +#: ../src/utils/pacat.c:907 #, c-format +msgid "open(): %s\n" +msgstr "open(): %s\n" + +#: ../src/utils/pacat.c:912 +#, c-format +msgid "dup2(): %s\n" +msgstr "dup2(): %s\n" + +#: ../src/utils/pacat.c:919 +msgid "Too many arguments.\n" +msgstr "ઘણી બધી દલીલો છે.\n" + +#: ../src/utils/pacat.c:930 +#, fuzzy +msgid "Failed to generate sample specification for file.\n" +msgstr "નમૂના જાણકારી મેળવવામાં નિષà«àª«àª³: %s\n" + +#: ../src/utils/pacat.c:950 +#, fuzzy +msgid "Failed to open audio file.\n" +msgstr "સાઉનà«àª¡ ફાઇલને ખોલવામાં નિષà«àª«àª³.\n" + +#: ../src/utils/pacat.c:956 +msgid "" +"Warning: specified sample specification will be overwritten with " +"specification from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "નમૂના જાણકારી મેળવવામાં નિષà«àª«àª³: %s\n" + +#: ../src/utils/pacat.c:968 +msgid "Warning: Failed to determine channel map from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:979 msgid "Channel map doesn't match sample specification\n" msgstr "ચેનલ મેપ ઠસà«àªªàª·à«àªŸà«€àª•àª°àª£ નમૂનાને બંધબેસતૠનથી\n" -#: ../src/utils/pacat.c:728 -#, c-format -msgid "Opening a %s stream with sample specification '%s'.\n" +#: ../src/utils/pacat.c:990 +msgid "Warning: failed to write channel map to file.\n" +msgstr "" + +#: ../src/utils/pacat.c:1005 +#, fuzzy, c-format +msgid "" +"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" msgstr "નમૂના સà«àªªàª·à«àªŸà«€àª•àª°àª£ '%s' સાથે %s સà«àªŸà«àª°à«€àª®àª¨à«‡ ખોલી રહà«àª¯àª¾ છે.\n" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "recording" msgstr "રેકોરà«àª¡ કરી રહà«àª¯àª¾ છે" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "playback" msgstr "પà«àª²à«‡àª¬à«‡àª•" -#: ../src/utils/pacat.c:736 -#, c-format -msgid "open(): %s\n" -msgstr "open(): %s\n" - -#: ../src/utils/pacat.c:741 -#, c-format -msgid "dup2(): %s\n" -msgstr "dup2(): %s\n" - -#: ../src/utils/pacat.c:751 -#, c-format -msgid "Too many arguments.\n" -msgstr "ઘણી બધી દલીલો છે.\n" - -#: ../src/utils/pacat.c:764 ../src/utils/pasuspender.c:280 -#: ../src/utils/pactl.c:1017 ../src/utils/paplay.c:381 +#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 +#: ../src/utils/pactl.c:1104 #, c-format msgid "pa_mainloop_new() failed.\n" msgstr "pa_mainloop_new() નિષà«àª«àª³.\n" -#: ../src/utils/pacat.c:785 -#, c-format +#: ../src/utils/pacat.c:1051 msgid "io_new() failed.\n" msgstr "io_new() નિષà«àª«àª³.\n" -#: ../src/utils/pacat.c:791 ../src/utils/pasuspender.c:293 -#: ../src/utils/pactl.c:1031 ../src/utils/paplay.c:396 +#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 +#: ../src/utils/pactl.c:1116 #, c-format msgid "pa_context_new() failed.\n" msgstr "pa_context_new() નિષà«àª«àª³.\n" -#: ../src/utils/pacat.c:799 +#: ../src/utils/pacat.c:1066 #, fuzzy, c-format msgid "pa_context_connect() failed: %s\n" msgstr "pa_context_connect() નિષà«àª«àª³: %s" -#: ../src/utils/pacat.c:810 -#, c-format +#: ../src/utils/pacat.c:1077 msgid "time_new() failed.\n" msgstr "time_new() નિષà«àª«àª³.\n" -#: ../src/utils/pacat.c:817 ../src/utils/pasuspender.c:301 -#: ../src/utils/pactl.c:1042 ../src/utils/paplay.c:410 +#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 +#: ../src/utils/pactl.c:1127 #, c-format msgid "pa_mainloop_run() failed.\n" msgstr "pa_mainloop_run() નિષà«àª«àª³.\n" @@ -1659,8 +1690,7 @@ msgstr "ફરી શરૂ કરવામાં નિષà«àª«àª³àª¤àª¾: %s\n msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "ચેતવણી: સાઉનà«àª¡ સરà«àªµàª° ઠસà«àª¥àª¾àª¨àª¿àª• નથી, થોડા સમય માટે બંધ કરવામાં આવà«àª¯à« નથી.\n" -#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:768 -#: ../src/utils/paplay.c:191 +#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" msgstr "SIGINT મળà«àª¯à«, બહાર નીકળી રહà«àª¯àª¾ છે.\n" @@ -1688,7 +1718,7 @@ msgstr "" " -s, --server=SERVER જોડાવવા માટે સરà«àªµàª°àª¨à«àª‚ નામ\n" "\n" -#: ../src/utils/pasuspender.c:251 +#: ../src/utils/pasuspender.c:248 #, c-format msgid "" "pasuspender %s\n" @@ -1699,32 +1729,32 @@ msgstr "" "libpulse %s સાથે કમà«àªªàª¾àª‡àª² થયેલ છે\n" "libpulse %s સાથે કડી થયેલ છે\n" -#: ../src/utils/pactl.c:108 +#: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" msgstr "પરિસà«àª¥àª¿àª¤àª¿àª“ને મેળવવામાં નિષà«àª«àª³: %s\n" -#: ../src/utils/pactl.c:114 +#: ../src/utils/pactl.c:134 #, c-format msgid "Currently in use: %u blocks containing %s bytes total.\n" msgstr "હાલમાં વપરાશમાં છે: %u બà«àª²à«‹àª•à«‹ %s કà«àª² બાઇટોને સમાવી રહà«àª¯àª¾ છે.\n" -#: ../src/utils/pactl.c:117 +#: ../src/utils/pactl.c:137 #, c-format msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n" msgstr "આખી જીંદગી દરમà«àª¯àª¾àª¨ ફાળવેલ છે: %u બà«àª²à«‹àª•à«‹ %s કà«àª² બાઇટોને સમાવી રહà«àª¯àª¾ છે.\n" -#: ../src/utils/pactl.c:120 +#: ../src/utils/pactl.c:140 #, c-format msgid "Sample cache size: %s\n" msgstr "નમૂના કેશ માપ: %s\n" -#: ../src/utils/pactl.c:129 +#: ../src/utils/pactl.c:149 #, c-format msgid "Failed to get server information: %s\n" msgstr "સરà«àªµàª° જાણકારી મેળવવામાં નિષà«àª«àª³àª¤àª¾: %s\n" -#: ../src/utils/pactl.c:137 +#: ../src/utils/pactl.c:157 #, c-format msgid "" "User name: %s\n" @@ -1747,12 +1777,12 @@ msgstr "" "મૂળàªà«‚ત સà«àª¤à«àª°à«‹àª¤: %s\n" "કà«àª•à«€: %08x\n" -#: ../src/utils/pactl.c:178 +#: ../src/utils/pactl.c:198 #, c-format msgid "Failed to get sink information: %s\n" msgstr "સિંક જાણકારી મેળવવામાં નિષà«àª«àª³: %s\n" -#: ../src/utils/pactl.c:194 +#: ../src/utils/pactl.c:214 #, c-format msgid "" "Sink #%u\n" @@ -1791,12 +1821,22 @@ msgstr "" "\tગà«àª£àª§àª°à«àª®à«‹:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:258 +#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 +#, fuzzy, c-format +msgid "\tPorts:\n" +msgstr "\tરૂપરેખાઓ:\n" + +#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 +#, fuzzy, c-format +msgid "\tActive Port: %s\n" +msgstr "\tસકà«àª°àª¿àª¯ રૂપરેખા: %s\n" + +#: ../src/utils/pactl.c:290 #, c-format msgid "Failed to get source information: %s\n" msgstr "સà«àª¤à«àª°à«‹àª¤ જાણકારીને મેળવવામાં નિષà«àª«àª³: %s\n" -#: ../src/utils/pactl.c:274 +#: ../src/utils/pactl.c:306 #, c-format msgid "" "Source #%u\n" @@ -1835,20 +1875,20 @@ msgstr "" "\tગà«àª£àª§àª°à«àª®à«‹:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:306 ../src/utils/pactl.c:350 ../src/utils/pactl.c:385 -#: ../src/utils/pactl.c:422 ../src/utils/pactl.c:481 ../src/utils/pactl.c:482 -#: ../src/utils/pactl.c:492 ../src/utils/pactl.c:536 ../src/utils/pactl.c:537 -#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:586 ../src/utils/pactl.c:587 -#: ../src/utils/pactl.c:594 +#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429 +#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526 +#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581 +#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631 +#: ../src/utils/pactl.c:638 msgid "n/a" msgstr "n/a" -#: ../src/utils/pactl.c:324 +#: ../src/utils/pactl.c:368 #, c-format msgid "Failed to get module information: %s\n" msgstr "મોડà«àª¯à«àª²àª¨à«€ જાણકારી મેળવવામાં નિષà«àª«àª³: %s\n" -#: ../src/utils/pactl.c:342 +#: ../src/utils/pactl.c:386 #, c-format msgid "" "Module #%u\n" @@ -1865,12 +1905,12 @@ msgstr "" "\tગà«àª£àª§àª°à«àª®à«‹:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:361 +#: ../src/utils/pactl.c:405 #, c-format msgid "Failed to get client information: %s\n" msgstr "કà«àª²àª¾àª‡àª¨à«àªŸ જાણકારી મેળવવામાં નિષà«àª«àª³: %s\n" -#: ../src/utils/pactl.c:379 +#: ../src/utils/pactl.c:423 #, c-format msgid "" "Client #%u\n" @@ -1885,12 +1925,12 @@ msgstr "" "\tગà«àª£àª§àª°à«àª®à«‹:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:396 +#: ../src/utils/pactl.c:440 #, c-format msgid "Failed to get card information: %s\n" msgstr "કારà«àª¡ જાણકારી મેળવવામાં નિષà«àª«àª³: %s\n" -#: ../src/utils/pactl.c:414 +#: ../src/utils/pactl.c:458 #, c-format msgid "" "Card #%u\n" @@ -1907,22 +1947,22 @@ msgstr "" "\tગà«àª£àª§àª°à«àª®à«‹:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:428 +#: ../src/utils/pactl.c:472 #, c-format msgid "\tProfiles:\n" msgstr "\tરૂપરેખાઓ:\n" -#: ../src/utils/pactl.c:434 +#: ../src/utils/pactl.c:478 #, c-format msgid "\tActive Profile: %s\n" msgstr "\tસકà«àª°àª¿àª¯ રૂપરેખા: %s\n" -#: ../src/utils/pactl.c:445 +#: ../src/utils/pactl.c:489 #, c-format msgid "Failed to get sink input information: %s\n" msgstr "સિંક ઇનપà«àªŸ જાણકારી મેળવવામાં નિષà«àª«àª³àª¤àª¾: %s\n" -#: ../src/utils/pactl.c:464 +#: ../src/utils/pactl.c:508 #, c-format msgid "" "Sink Input #%u\n" @@ -1959,12 +1999,12 @@ msgstr "" "\tગà«àª£àª§àª°à«àª®à«‹:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:503 +#: ../src/utils/pactl.c:547 #, c-format msgid "Failed to get source output information: %s\n" msgstr "સà«àª¤à«àª°à«‹àª¤ આઉટપà«àªŸ જાણકારી મેળવવામાં નિષà«àª«àª³: %s\n" -#: ../src/utils/pactl.c:523 +#: ../src/utils/pactl.c:567 #, c-format msgid "" "Source Output #%u\n" @@ -1993,12 +2033,12 @@ msgstr "" "\tગà«àª£àª§àª°à«àª®à«‹:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:554 +#: ../src/utils/pactl.c:598 #, c-format msgid "Failed to get sample information: %s\n" msgstr "નમૂના જાણકારી મેળવવામાં નિષà«àª«àª³: %s\n" -#: ../src/utils/pactl.c:572 +#: ../src/utils/pactl.c:616 #, c-format msgid "" "Sample #%u\n" @@ -2029,23 +2069,22 @@ msgstr "" "\tગà«àª£àª§àª°à«àª®à«‹:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:602 ../src/utils/pactl.c:612 +#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 #, c-format msgid "Failure: %s\n" msgstr "નિષà«àª«àª³àª¤àª¾: %s\n" -#: ../src/utils/pactl.c:636 +#: ../src/utils/pactl.c:680 #, c-format msgid "Failed to upload sample: %s\n" msgstr "નમૂનાને અપલોડ કરવામાં નિષà«àª«àª³: %s\n" -#: ../src/utils/pactl.c:653 -#, c-format +#: ../src/utils/pactl.c:697 msgid "Premature end of file\n" msgstr "ફાઇલનો નિયત સમય પહેલા અંત\n" -#: ../src/utils/pactl.c:774 -#, c-format +#: ../src/utils/pactl.c:826 +#, fuzzy, c-format msgid "" "%s [options] stat\n" "%s [options] list\n" @@ -2060,6 +2099,8 @@ msgid "" "%s [options] suspend-sink [SINK] 1|0\n" "%s [options] suspend-source [SOURCE] 1|0\n" "%s [options] set-card-profile [CARD] [PROFILE] \n" +"%s [options] set-sink-port [SINK] [PORT] \n" +"%s [options] set-source-port [SOURCE] [PORT] \n" "\n" " -h, --help Show this help\n" " --version Show version\n" @@ -2089,7 +2130,7 @@ msgstr "" " -s, --server=SERVER જોડાવા માટે સરà«àªµàª° નà«àª‚ નામ\n" " -n, --client-name=NAME સરà«àªµàª° પર આ કà«àª²àª¾àª‡àª¨à«àªŸàª¨à«‡ કેવી રીતે કોલ કરશો\n" -#: ../src/utils/pactl.c:826 +#: ../src/utils/pactl.c:880 #, c-format msgid "" "pactl %s\n" @@ -2100,73 +2141,76 @@ msgstr "" "libpulse %s સાથે કમà«àªªàª¾àª‡àª² થયેલ છે\n" "libpulse %s સાથે કડી થયેલ છે\n" -#: ../src/utils/pactl.c:865 -#, c-format +#: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "મહેરબાની કરીને લોડ કરવા માટે નમૂના ફાઇલને સà«àªªàª·à«àªŸ કરો\n" -#: ../src/utils/pactl.c:887 -#, c-format +#: ../src/utils/pactl.c:939 msgid "Failed to open sound file.\n" msgstr "સાઉનà«àª¡ ફાઇલને ખોલવામાં નિષà«àª«àª³.\n" -#: ../src/utils/pactl.c:899 -#, c-format +#: ../src/utils/pactl.c:951 +#, fuzzy +msgid "Warning: Failed to determine sample specification from file.\n" +msgstr "નમૂના સà«àªªàª·à«àªŸà«€àª•àª°àª£ '%s' સાથે %s સà«àªŸà«àª°à«€àª®àª¨à«‡ ખોલી રહà«àª¯àª¾ છે.\n" + +#: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" msgstr "વગાડવા માટે તમારે નમૂના નામને સà«àªªàª·à«àªŸ કરવૠજ પડશે\n" -#: ../src/utils/pactl.c:911 -#, c-format +#: ../src/utils/pactl.c:973 msgid "You have to specify a sample name to remove\n" msgstr "દૂર કરવા માટે તમારે નમૂના નામને સà«àªªàª·à«àªŸ કરવૠજ પડશે\n" -#: ../src/utils/pactl.c:919 -#, c-format +#: ../src/utils/pactl.c:982 msgid "You have to specify a sink input index and a sink\n" msgstr "સિંક ઇનપà«àªŸ અનà«àª•à«àª°àª®àª£àª¿àª•àª¾ અને સિંકને તમારે સà«àªªàª·à«àªŸ કરવૠજ પડશે\n" -#: ../src/utils/pactl.c:928 -#, c-format +#: ../src/utils/pactl.c:992 msgid "You have to specify a source output index and a source\n" msgstr "તમારે સà«àª¤à«àª°à«‹àª¤ આઉટપà«àªŸ અનà«àª•à«àª°àª®àª£àª¿àª•àª¾ અને સà«àª¤à«àª°à«‹àª¤àª¨à«‡ સà«àªªàª·à«àªŸ કરવૠજ પડશે\n" -#: ../src/utils/pactl.c:942 -#, c-format +#: ../src/utils/pactl.c:1007 msgid "You have to specify a module name and arguments.\n" msgstr "તમારે મોડà«àª¯à«àª² નામ અને દલીલોને સà«àªªàª·à«àªŸ કરવૠજ પડશે.\n" -#: ../src/utils/pactl.c:962 -#, c-format +#: ../src/utils/pactl.c:1027 msgid "You have to specify a module index\n" msgstr "તમારે મોડà«àª¯à«àª² અનà«àª•à«àª°àª®àª£àª¿àª•àª¾àª¨à«‡ સà«àªªàª·à«àªŸ કરવૠજ પડશે\n" -#: ../src/utils/pactl.c:972 -#, c-format +#: ../src/utils/pactl.c:1037 msgid "" "You may not specify more than one sink. You have to specify a boolean " "value.\n" msgstr "" "તમે àªàª• સિંક કરતા વધારે સà«àªªàª·à«àªŸ કરી શકશો નહિં. તમારે બà«àª²àª¿àª¯àª¨ કિંમતને સà«àªªàª·à«àªŸ કરવૠજ પડશે.\n" -#: ../src/utils/pactl.c:985 -#, c-format +#: ../src/utils/pactl.c:1050 msgid "" "You may not specify more than one source. You have to specify a boolean " "value.\n" msgstr "" "તમે àªàª• સà«àª¤à«àª°à«‹àª¤ કરતા વધારે સà«àªªàª·à«àªŸ કરી શકશો નહિં. તમારે બà«àª²àª¿àª¯àª¨ કિંમતને સà«àªªàª·à«àªŸ કરવૠજ પડશે.\n" -#: ../src/utils/pactl.c:997 -#, c-format +#: ../src/utils/pactl.c:1062 msgid "You have to specify a card name/index and a profile name\n" msgstr "તમારે કારà«àª¡ નામ/અનà«àª•à«àª°àª®àª£àª¿àª•àª¾ અને રૂપરેખા નામને સà«àªªàª·à«àªŸ કરવૠજ પડશે\n" -#: ../src/utils/pactl.c:1012 -#, c-format +#: ../src/utils/pactl.c:1073 +#, fuzzy +msgid "You have to specify a sink name/index and a port name\n" +msgstr "તમારે કારà«àª¡ નામ/અનà«àª•à«àª°àª®àª£àª¿àª•àª¾ અને રૂપરેખા નામને સà«àªªàª·à«àªŸ કરવૠજ પડશે\n" + +#: ../src/utils/pactl.c:1084 +#, fuzzy +msgid "You have to specify a source name/index and a port name\n" +msgstr "તમારે કારà«àª¡ નામ/અનà«àª•à«àª°àª®àª£àª¿àª•àª¾ અને રૂપરેખા નામને સà«àªªàª·à«àªŸ કરવૠજ પડશે\n" + +#: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "યોગà«àª¯ આદેશ સà«àªªàª·à«àªŸ થયેલ નથી.\n" -#: ../src/utils/pactl.c:1037 ../src/utils/paplay.c:404 +#: ../src/utils/pactl.c:1122 #, c-format msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect() નિષà«àª«àª³: %s" @@ -2250,126 +2294,48 @@ msgstr "કà«àª•à«€ માહિતીને લોડ કરવામાં ઠmsgid "Not yet implemented.\n" msgstr "હજૠઅમલીકરણ થયેલ નથી.\n" -#: ../src/utils/pacmd.c:64 +#: ../src/utils/pacmd.c:61 +msgid "No PulseAudio daemon running, or not running as session daemon." +msgstr "" + +#: ../src/utils/pacmd.c:66 #, c-format msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s" msgstr "socket(PF_UNIX, SOCK_STREAM, 0): %s" -#: ../src/utils/pacmd.c:81 +#: ../src/utils/pacmd.c:83 #, c-format msgid "connect(): %s" msgstr "connect(): %s" -#: ../src/utils/pacmd.c:89 +#: ../src/utils/pacmd.c:91 msgid "Failed to kill PulseAudio daemon." msgstr "PulseAudio ડિમનને મારવામાં નિષà«àª«àª³." -#: ../src/utils/pacmd.c:97 +#: ../src/utils/pacmd.c:99 msgid "Daemon not responding." msgstr "ડિમન ઠજવાબ આપતૠનથી." -#: ../src/utils/pacmd.c:144 +#: ../src/utils/pacmd.c:146 #, c-format msgid "select(): %s" msgstr "select(): %s" -#: ../src/utils/pacmd.c:154 ../src/utils/pacmd.c:171 +#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173 #, c-format msgid "read(): %s" msgstr "read(): %s" -#: ../src/utils/pacmd.c:187 ../src/utils/pacmd.c:201 +#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203 #, c-format msgid "write(): %s" msgstr "write(): %s" -#: ../src/utils/paplay.c:139 -#, c-format -msgid "Stream successfully created\n" -msgstr "સà«àªŸà«àª°à«€àª® સફળતાપૂરà«àªµàª• બનાવેલ છે\n" - -#: ../src/utils/paplay.c:144 -#, c-format -msgid "Stream errror: %s\n" -msgstr "સà«àªŸà«àª°à«€àª® àªà«‚લ: %s\n" - -#: ../src/utils/paplay.c:165 -#, c-format -msgid "Connection established.\n" -msgstr "જોડાણ સà«àª¥àª¾àªªàª¿àª¤ થયેલ છે.\n" - -#: ../src/utils/paplay.c:198 -#, c-format -msgid "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" -msgstr "" -"%s [options] [FILE]\n" -"\n" -" -h, --help આ મદદને બતાવો\n" -" --version આવૃતà«àª¤àª¿àª¨à«‡ બતાવો\n" -"\n" -" -v, --verbose વરà«àª¬à«‹àª¸ કà«àª°àª¿àª¯àª¾àª¨à«‡ સકà«àª°àª¿àª¯ કરો\n" -"\n" -" -s, --server=SERVER જોડાવા માટે સરà«àªµàª°àª¨à«àª‚ નામ\n" -" -d, --device=DEVICE જોડાવા માટે સિંકનà«àª‚ નામ\n" -" -n, --client-name=NAME સરà«àªµàª° પર આ કà«àª²àª¾àª‡àª¨à«àªŸàª¨à«‡ કેવી રીતે કોલ કરશો\n" -" --stream-name=NAME સરà«àªµàª° પર આ સà«àªŸà«àª°à«€àª®àª¨à«‡ કેવી રીતે કોલ કરશો\n" -" --volume=VOLUME સીમા 0...65536 માં પà«àª°àª¾àª°àª‚àªàª¨àª¾àª‚ (àªàª• સરખા) " -"વોલà«àª¯à«àª®àª¨à«‡ સà«àªªàª·à«àªŸ કરો\n" -" --channel-map=CHANNELMAP વાપરવા માટે ચેનલ મેપને સà«àª¯à«‹àªœàª¿àª¤ કરો\n" - -#: ../src/utils/paplay.c:255 -#, c-format -msgid "" -"paplay %s\n" -"Compiled with libpulse %s\n" -"Linked with libpulse %s\n" -msgstr "" -"paplay %s\n" -"libpulse %s સાથે કમà«àªªàª¾àª‡àª² થયેલ છે\n" -"libpulse %s સાથે કડી થયેલ છે\n" - -#: ../src/utils/paplay.c:292 -#, c-format -msgid "Invalid channel map\n" -msgstr "અયોગà«àª¯ ચેનલ મેપ\n" - -#: ../src/utils/paplay.c:314 -#, c-format -msgid "Failed to open file '%s'\n" -msgstr "ફાઇલ '%s' ખોલવામાં નિષà«àª«àª³\n" - -#: ../src/utils/paplay.c:350 -#, c-format -msgid "Channel map doesn't match file.\n" -msgstr "ચેનલ મેપ ફાઇલ સાથે બંધબેસતૠનથી.\n" - -#: ../src/utils/paplay.c:376 -#, c-format -msgid "Using sample spec '%s'\n" -msgstr "નમૂના spec '%s' ને વાપરી રહà«àª¯àª¾ છે\n" - #: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 msgid "Cannot access autospawn lock." msgstr "autospawn તાળાને દાખલ કરી શકાતૠનથી." -#: ../src/modules/alsa/alsa-sink.c:393 ../src/modules/alsa/alsa-sink.c:541 +#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2386,7 +2352,7 @@ msgstr "" "POLLOUT સà«àª¯à«‹àªœàª¨ સાથે આપણે જાગેલ હતા -- છતાંપણ ના પછીનà«àª‚ snd_pcm_avail() ને 0 પાછો મળે " "છે અથવા બીજી કિંમત < min_avail." -#: ../src/modules/alsa/alsa-source.c:377 ../src/modules/alsa/alsa-source.c:516 +#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2403,34 +2369,128 @@ msgstr "" "POLLOUT સà«àª¯à«‹àªœàª¨ સાથે આપણે જાગેલ હતા -- છતાંપણ ના પછીનà«àª‚ snd_pcm_avail() ને 0 પાછો મળે " "છે અથવા બીજી કિંમત < min_avail." -#: ../src/modules/alsa/module-alsa-card.c:114 -#, c-format -msgid "Output %s + Input %s" -msgstr "આઉટપà«àªŸ %s + ઇનપà«àªŸ %s" - -#: ../src/modules/alsa/module-alsa-card.c:117 -#, c-format -msgid "Output %s" -msgstr "આઉટપà«àªŸ %s" - -#: ../src/modules/alsa/module-alsa-card.c:121 -#, c-format -msgid "Input %s" -msgstr "ઇનપà«àªŸ %s" - -#: ../src/modules/alsa/module-alsa-card.c:170 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2006 +#: ../src/modules/alsa/module-alsa-card.c:152 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 msgid "Off" msgstr "બંધ" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1976 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 msgid "High Fidelity Playback (A2DP)" msgstr "High Fidelity Playback (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1991 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 msgid "Telephony Duplex (HSP/HFP)" msgstr "Telephony Duplex (HSP/HFP)" -#: ../src/modules/reserve-wrap.c:139 +#: ../src/modules/reserve-wrap.c:151 msgid "PulseAudio Sound Server" msgstr "PulseAudio સાઉનà«àª¡ સરà«àªµàª°" + +#~ msgid "Analog Mono" +#~ msgstr "àªàª¨àª¾àª²à«‹àª— મોનો" + +#~ msgid "Analog Stereo" +#~ msgstr "àªàª¨àª¾àª²à«‹àª— સà«àªŸà«‡àª°àª¿àª“" + +#~ msgid "Digital Stereo (IEC958)" +#~ msgstr "ડિજિટલ સà«àªŸà«‡àª°àª¿àª“ (IEC958)" + +#~ msgid "Digital Stereo (HDMI)" +#~ msgstr "ડિજિટલ સà«àªŸà«‡àª°àª¿àª“ (HDMI)" + +#~ msgid "Analog Surround 4.0" +#~ msgstr "àªàª¨àª¾àª²à«‹àª— સરાઉનà«àª¡ 4.0" + +#~ msgid "Digital Surround 4.0 (IEC958/AC3)" +#~ msgstr "àªàª¨àª¾àª²à«‹àª— સરાઉનà«àª¡ 4.0 (IEC958/AC3)" + +#~ msgid "Analog Surround 4.1" +#~ msgstr "àªàª¨àª¾àª²à«‹àª— સરાઉનà«àª¡ 4.1" + +#~ msgid "Analog Surround 5.0" +#~ msgstr "àªàª¨àª¾àª²à«‹àª— સરાઉનà«àª¡ 4.2" + +#~ msgid "Analog Surround 5.1" +#~ msgstr "àªàª¨àª¾àª²à«‹àª— સરાઉનà«àª¡ 5.1" + +#~ msgid "Digital Surround 5.1 (IEC958/AC3)" +#~ msgstr "àªàª¨àª¾àª²à«‹àª— સરાઉનà«àª¡ 5.1 (IEC958/AC3)" + +#~ msgid "Analog Surround 7.1" +#~ msgstr "àªàª¨àª¾àª²à«‹àª— સરાઉનà«àª¡ 7.1" + +#~ msgid "Output %s + Input %s" +#~ msgstr "આઉટપà«àªŸ %s + ઇનપà«àªŸ %s" + +#~ msgid "Output %s" +#~ msgstr "આઉટપà«àªŸ %s" + +#~ msgid "Input %s" +#~ msgstr "ઇનપà«àªŸ %s" + +#~ msgid "Stream successfully created\n" +#~ msgstr "સà«àªŸà«àª°à«€àª® સફળતાપૂરà«àªµàª• બનાવેલ છે\n" + +#~ msgid "Stream errror: %s\n" +#~ msgstr "સà«àªŸà«àª°à«€àª® àªà«‚લ: %s\n" + +#~ msgid "Connection established.\n" +#~ msgstr "જોડાણ સà«àª¥àª¾àªªàª¿àª¤ થયેલ છે.\n" + +#~ msgid "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Show this help\n" +#~ " --version Show version\n" +#~ "\n" +#~ " -v, --verbose Enable verbose operation\n" +#~ "\n" +#~ " -s, --server=SERVER The name of the server to connect " +#~ "to\n" +#~ " -d, --device=DEVICE The name of the sink to connect " +#~ "to\n" +#~ " -n, --client-name=NAME How to call this client on the " +#~ "server\n" +#~ " --stream-name=NAME How to call this stream on the " +#~ "server\n" +#~ " --volume=VOLUME Specify the initial (linear) " +#~ "volume in range 0...65536\n" +#~ " --channel-map=CHANNELMAP Set the channel map to the use\n" +#~ msgstr "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help આ મદદને બતાવો\n" +#~ " --version આવૃતà«àª¤àª¿àª¨à«‡ બતાવો\n" +#~ "\n" +#~ " -v, --verbose વરà«àª¬à«‹àª¸ કà«àª°àª¿àª¯àª¾àª¨à«‡ સકà«àª°àª¿àª¯ કરો\n" +#~ "\n" +#~ " -s, --server=SERVER જોડાવા માટે સરà«àªµàª°àª¨à«àª‚ નામ\n" +#~ " -d, --device=DEVICE જોડાવા માટે સિંકનà«àª‚ નામ\n" +#~ " -n, --client-name=NAME સરà«àªµàª° પર આ કà«àª²àª¾àª‡àª¨à«àªŸàª¨à«‡ કેવી રીતે કોલ " +#~ "કરશો\n" +#~ " --stream-name=NAME સરà«àªµàª° પર આ સà«àªŸà«àª°à«€àª®àª¨à«‡ કેવી રીતે કોલ " +#~ "કરશો\n" +#~ " --volume=VOLUME સીમા 0...65536 માં પà«àª°àª¾àª°àª‚àªàª¨àª¾àª‚ (àªàª• " +#~ "સરખા) વોલà«àª¯à«àª®àª¨à«‡ સà«àªªàª·à«àªŸ કરો\n" +#~ " --channel-map=CHANNELMAP વાપરવા માટે ચેનલ મેપને સà«àª¯à«‹àªœàª¿àª¤ કરો\n" + +#~ msgid "" +#~ "paplay %s\n" +#~ "Compiled with libpulse %s\n" +#~ "Linked with libpulse %s\n" +#~ msgstr "" +#~ "paplay %s\n" +#~ "libpulse %s સાથે કમà«àªªàª¾àª‡àª² થયેલ છે\n" +#~ "libpulse %s સાથે કડી થયેલ છે\n" + +#~ msgid "Invalid channel map\n" +#~ msgstr "અયોગà«àª¯ ચેનલ મેપ\n" + +#~ msgid "Failed to open file '%s'\n" +#~ msgstr "ફાઇલ '%s' ખોલવામાં નિષà«àª«àª³\n" + +#~ msgid "Channel map doesn't match file.\n" +#~ msgstr "ચેનલ મેપ ફાઇલ સાથે બંધબેસતૠનથી.\n" + +#~ msgid "Using sample spec '%s'\n" +#~ msgstr "નમૂના spec '%s' ને વાપરી રહà«àª¯àª¾ છે\n" diff --git a/po/hi.po b/po/hi.po new file mode 100644 index 00000000..91a27120 --- /dev/null +++ b/po/hi.po @@ -0,0 +1,2502 @@ +# translation of pulseaudio.master-tx.pulseaudio.po to Hindi +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Rajesh Ranjan <rajesh672@gmail.com>, 2009. +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" +"PO-Revision-Date: 2009-06-08 12:01+0530\n" +"Last-Translator: Rajesh Ranjan <rajesh672@gmail.com>\n" +"Language-Team: Hindi <hindi.sf.net>\n" +"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" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"\n" +"\n" +"\n" + +#: ../src/modules/alsa/alsa-util.c:1015 +#, c-format +msgid "" +"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " +"ms).\n" +"Most likely this is a bug in the ALSA driver '%s'. Please report this issue " +"to the ALSA developers." +msgstr "" +"snd_pcm_avail() ने à¤à¤• मान दिया जो अपà¥à¤°à¤¤à¥à¤¯à¤¾à¤¶à¤¿à¤¤ रूप से बड़ा है: %lu बाइट (%lu ms).\n" +"अधिक संà¤à¤µ है कि यह ALSA डà¥à¤°à¤¾à¤‡à¤µà¤° '%s' में à¤à¤• बग है. इस मà¥à¤¦à¥à¤¦à¥‡ को ALSA डेवलेपर को रिपोरà¥à¤Ÿ " +"करें." + +#: ../src/modules/alsa/alsa-util.c:1056 +#, c-format +msgid "" +"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" +"lu ms).\n" +"Most likely this is a bug in the ALSA driver '%s'. Please report this issue " +"to the ALSA developers." +msgstr "" +"snd_pcm_delay() ने à¤à¤• मान दिया जो अपà¥à¤°à¤¤à¥à¤¯à¤¾à¤¶à¤¿à¤¤ रूप से बड़ा है: %li बाइट (%s%lu ms).\n" +"अधिक संà¤à¤µ है कि यह ALSA डà¥à¤°à¤¾à¤‡à¤µà¤° '%s' में à¤à¤• बग है. इस मà¥à¤¦à¥à¤¦à¥‡ को ALSA डेवलेपर को रिपोरà¥à¤Ÿ " +"करें." + +#: ../src/modules/alsa/alsa-util.c:1103 +#, c-format +msgid "" +"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " +"(%lu ms).\n" +"Most likely this is a bug in the ALSA driver '%s'. Please report this issue " +"to the ALSA developers." +msgstr "" +"snd_pcm_mmap_begin() ने à¤à¤• मान दिया जो अपà¥à¤°à¤¤à¥à¤¯à¤¾à¤¶à¤¿à¤¤ रूप से बड़ा है: %lu बाइट (%lu " +"ms).\n" +"अधिक संà¤à¤µ है कि यह ALSA डà¥à¤°à¤¾à¤‡à¤µà¤° '%s' में à¤à¤• बग है. इस मà¥à¤¦à¥à¤¦à¥‡ को ALSA डेवलेपर को रिपोरà¥à¤Ÿ " +"करें." + +#: ../src/modules/module-ladspa-sink.c:49 +msgid "Virtual LADSPA sink" +msgstr "" + +#: ../src/modules/module-ladspa-sink.c:53 +msgid "" +"sink_name=<name for the sink> sink_properties=<properties for the sink> " +"master=<name of sink to filter> format=<sample format> rate=<sample rate> " +"channels=<number of channels> channel_map=<channel map> plugin=<ladspa " +"plugin name> label=<ladspa plugin label> control=<comma seperated list of " +"input control values>" +msgstr "" + +#: ../src/pulsecore/sink.c:2394 +msgid "Internal Audio" +msgstr "आंतरिक ऑडियो" + +#: ../src/pulsecore/sink.c:2400 +msgid "Modem" +msgstr "मॉडेम" + +#: ../src/daemon/ltdl-bind-now.c:124 +msgid "Failed to find original lt_dlopen loader." +msgstr "मौलिक ltdlopen लोडर ढूà¤à¤¢à¤¼à¤¨à¥‡ में विफल (_d)." + +#: ../src/daemon/ltdl-bind-now.c:129 +msgid "Failed to allocate new dl loader." +msgstr "नया dl लोडर आबंटित करने में विफल." + +#: ../src/daemon/ltdl-bind-now.c:142 +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 +#, c-format +msgid "Got signal %s." +msgstr "%s संकेत पाया." + +#: ../src/daemon/main.c:169 +msgid "Exiting." +msgstr "बाहर हो रहा है." + +#: ../src/daemon/main.c:187 +#, c-format +msgid "Failed to find user '%s'." +msgstr "'%s' उपयोकà¥à¤¤à¤¾ ढूंढ़ने में विफल." + +#: ../src/daemon/main.c:192 +#, c-format +msgid "Failed to find group '%s'." +msgstr "'%s' समूह ढूंढ़ने में विफल." + +#: ../src/daemon/main.c:196 +#, c-format +msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." +msgstr "'%s' (UID %lu) उपयोकà¥à¤¤à¤¾ व '%s' (GID %lu) समूह पाया." + +#: ../src/daemon/main.c:201 +#, c-format +msgid "GID of user '%s' and of group '%s' don't match." +msgstr "'%s' उपयोकà¥à¤¤à¤¾ और '%s' समूह का GID मेल नहीं खाता है" + +#: ../src/daemon/main.c:206 +#, 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 +#, c-format +msgid "Failed to create '%s': %s" +msgstr "'%s' बनाने में विफल: %s" + +#: ../src/daemon/main.c:221 +#, c-format +msgid "Failed to change group list: %s" +msgstr "समूह सूची पाने में विफल: %s" + +#: ../src/daemon/main.c:237 +#, c-format +msgid "Failed to change GID: %s" +msgstr "GID बदलने में विफल: %s" + +#: ../src/daemon/main.c:253 +#, c-format +msgid "Failed to change UID: %s" +msgstr "UID बदलने में विफल: %s" + +#: ../src/daemon/main.c:267 +msgid "Successfully dropped root privileges." +msgstr "रूट अधिकार सफलतापूरà¥à¤µà¤• छोड़ा." + +#: ../src/daemon/main.c:275 +msgid "System wide mode unsupported on this platform." +msgstr "इस पà¥à¤²à¥ˆà¤Ÿà¤«à¥‰à¤°à¥à¤® पर असमरà¥à¤¥à¤¿à¤¤ तंतà¥à¤° वà¥à¤¯à¤¾à¤ªà¤• विधि." + +#: ../src/daemon/main.c:293 +#, c-format +msgid "setrlimit(%s, (%u, %u)) failed: %s" +msgstr "setrlimit(%s, (%u, %u)) विफल: %s" + +#: ../src/daemon/main.c:481 +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 +msgid "Daemon not running" +msgstr "डेमॉन नहीं कारà¥à¤¯à¤¶à¥€à¤²" + +#: ../src/daemon/main.c:694 +#, c-format +msgid "Daemon running as PID %u" +msgstr "डेमॉन बतौर PID %u चल रहा है" + +#: ../src/daemon/main.c:704 +#, c-format +msgid "Failed to kill daemon: %s" +msgstr "डेमॉन हटाने में विफल: %s" + +#: ../src/daemon/main.c:722 +msgid "" +"This program is not intended to be run as root (unless --system is " +"specified)." +msgstr "" +"यह पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® बतौर रूट चलाने के लिठइचà¥à¤›à¤¿à¤¤ नहीं है (unless --system is specified)." + +#: ../src/daemon/main.c:724 +msgid "Root privileges required." +msgstr "रूट अधिकार जरूरी." + +#: ../src/daemon/main.c:729 +msgid "--start not supported for system instances." +msgstr "--start not supported for system instances." + +#: ../src/daemon/main.c:734 +msgid "Running in system mode, but --disallow-exit not set!" +msgstr "तंतà¥à¤° मोड में चल रहा है, लेकिन --disallow-exit सेट नहीं!" + +#: ../src/daemon/main.c:737 +msgid "Running in system mode, but --disallow-module-loading not set!" +msgstr "तंतà¥à¤° मोड में चल रहा है, लेकिन --disallow-module-loading सेट नहीं!" + +#: ../src/daemon/main.c:740 +msgid "Running in system mode, forcibly disabling SHM mode!" +msgstr "तंतà¥à¤° मोड में चल रहा है, SHM मोड बाधà¥à¤¯ रूप से निषà¥à¤•à¥à¤°à¤¿à¤¯!" + +#: ../src/daemon/main.c:745 +msgid "Running in system mode, forcibly disabling exit idle time!" +msgstr "तंतà¥à¤° मोड में चल रहा है, निकास निषà¥à¤•à¥à¤°à¤¿à¤¯ समय बाधà¥à¤¯ रूप से निषà¥à¤•à¥à¤°à¤¿à¤¯!" + +#: ../src/daemon/main.c:772 +msgid "Failed to acquire stdio." +msgstr "stdio पाने में विफल." + +#: ../src/daemon/main.c:778 +#, c-format +msgid "pipe failed: %s" +msgstr "पाइप विफल: %s" + +#: ../src/daemon/main.c:783 +#, c-format +msgid "fork() failed: %s" +msgstr "fork() विफल: %s" + +#: ../src/daemon/main.c:797 +#, c-format +msgid "read() failed: %s" +msgstr "read() विफल: %s" + +#: ../src/daemon/main.c:803 +msgid "Daemon startup failed." +msgstr "डेमॉन आरंठविफल." + +#: ../src/daemon/main.c:805 +msgid "Daemon startup successful." +msgstr "डेमॉन आरंठसफल." + +#: ../src/daemon/main.c:875 +#, c-format +msgid "This is PulseAudio %s" +msgstr "यह पलà¥à¤¸à¤‘डियो %s है." + +#: ../src/daemon/main.c:876 +#, c-format +msgid "Compilation host: %s" +msgstr "Compilation host: %s" + +#: ../src/daemon/main.c:877 +#, c-format +msgid "Compilation CFLAGS: %s" +msgstr "Compilation CFLAGS: %s" + +#: ../src/daemon/main.c:880 +#, c-format +msgid "Running on host: %s" +msgstr "मेजबान पर चल रहा है: %s" + +#: ../src/daemon/main.c:883 +#, c-format +msgid "Found %u CPUs." +msgstr "%u CPU पाया." + +#: ../src/daemon/main.c:885 +#, c-format +msgid "Page size is %lu bytes" +msgstr "पृषà¥à¤ आकार %lu बाइट है." + +#: ../src/daemon/main.c:888 +msgid "Compiled with Valgrind support: yes" +msgstr "वेलगà¥à¤°à¤¿à¤‚ड समरà¥à¤¥à¤¨ से कंपाइल: हाà¤" + +#: ../src/daemon/main.c:890 +msgid "Compiled with Valgrind support: no" +msgstr "वेलगà¥à¤°à¤¿à¤‚ड समरà¥à¤¥à¤¨ से कंपाइल: नहीं" + +#: ../src/daemon/main.c:893 +#, c-format +msgid "Running in valgrind mode: %s" +msgstr "वेलगà¥à¤°à¤¿à¤‚ड विधि में चल रहा है: %s" + +#: ../src/daemon/main.c:896 +msgid "Optimized build: yes" +msgstr "अनà¥à¤•à¥‚लित बिलà¥à¤¡: हाà¤" + +#: ../src/daemon/main.c:898 +msgid "Optimized build: no" +msgstr "अनà¥à¤•à¥‚लित बिलà¥à¤¡: नहीं" + +#: ../src/daemon/main.c:902 +msgid "NDEBUG defined, all asserts disabled." +msgstr "NDEBUG परिà¤à¤¾à¤·à¤¿à¤¤, सà¤à¥€ निषà¥à¤•à¥à¤°à¤¿à¤¯." + +#: ../src/daemon/main.c:904 +msgid "FASTPATH defined, only fast path asserts disabled." +msgstr "FASTPATH परिà¤à¤¾à¤·à¤¿à¤¤, केव तेज पथ à¤à¤¸à¤°à¥à¤Ÿ निषà¥à¤•à¥à¤°à¤¿à¤¯." + +#: ../src/daemon/main.c:906 +msgid "All asserts enabled." +msgstr "सà¤à¥€ à¤à¤¸à¤°à¥à¤Ÿ सकà¥à¤·à¤®." + +#: ../src/daemon/main.c:910 +msgid "Failed to get machine ID" +msgstr "मशीन ID पाने में विफल" + +#: ../src/daemon/main.c:913 +#, c-format +msgid "Machine ID is %s." +msgstr "मशीन ID %s है." + +#: ../src/daemon/main.c:917 +#, fuzzy, c-format +msgid "Session ID is %s." +msgstr "मशीन ID %s है." + +#: ../src/daemon/main.c:923 +#, c-format +msgid "Using runtime directory %s." +msgstr "रनटाइम निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ %s का पà¥à¤°à¤¯à¥‹à¤— कर रहा है." + +#: ../src/daemon/main.c:928 +#, c-format +msgid "Using state directory %s." +msgstr "सà¥à¤Ÿà¥‡à¤Ÿ निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ %s का पà¥à¤°à¤¯à¥‹à¤— कर रहा है." + +#: ../src/daemon/main.c:931 +#, c-format +msgid "Running in system mode: %s" +msgstr "तंतà¥à¤° मोड में चल रहा है: %s" + +#: ../src/daemon/main.c:934 +msgid "" +"OK, so you are running PA in system mode. Please note that you most likely " +"shouldn't be doing that.\n" +"If you do it nonetheless then it's your own fault if things don't work as " +"expected.\n" +"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " +"explanation why system mode is usually a bad idea." +msgstr "" + +#: ../src/daemon/main.c:951 +msgid "pa_pid_file_create() failed." +msgstr "pa_pid_file_create() विफल." + +#: ../src/daemon/main.c:961 +msgid "Fresh high-resolution timers available! Bon appetit!" +msgstr "ताज़ा उचà¥à¤š विà¤à¥‡à¤¦à¤¨ टाइमर उपलबà¥à¤§! आनंद लें!" + +#: ../src/daemon/main.c:963 +msgid "" +"Dude, your kernel stinks! The chef's recommendation today is Linux with high-" +"resolution timers enabled!" +msgstr "" +"आपका करà¥à¤¨à¥‡à¤² बà¥à¤°à¥€ सà¥à¤¥à¤¿à¤¤à¤¿ में है! सलाह है कि उचà¥à¤š विà¤à¥‡à¤¦à¤¨ यà¥à¤•à¥à¤¤ लिनकà¥à¤¸ सकà¥à¤°à¤¿à¤¯ किया जाना चाहिà¤!" + +#: ../src/daemon/main.c:988 +msgid "pa_core_new() failed." +msgstr "pa_core_new() विफल." + +#: ../src/daemon/main.c:1050 +msgid "Failed to initialize daemon." +msgstr "डेमॉन आरंठकरने में विफल." + +#: ../src/daemon/main.c:1055 +msgid "Daemon startup without any loaded modules, refusing to work." +msgstr "बिना लोड मॉडà¥à¤¯à¥‚ल के डेमॉन आरंà¤, काम करने से असà¥à¤µà¥€à¤•à¤¾à¤° कर रहा है." + +#: ../src/daemon/main.c:1072 +msgid "Daemon startup complete." +msgstr "डेमॉन आरंà¤à¤¨ पूरà¥à¤£." + +#: ../src/daemon/main.c:1078 +msgid "Daemon shutdown initiated." +msgstr "डेमॉन बनà¥à¤¦ किया जाना आरंà¤." + +#: ../src/daemon/main.c:1100 +msgid "Daemon terminated." +msgstr "डेमॉन अवरोधित." + +#: ../src/daemon/cmdline.c:115 +#, c-format +msgid "" +"%s [options]\n" +"\n" +"COMMANDS:\n" +" -h, --help Show this help\n" +" --version Show version\n" +" --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" +" -k --kill Kill a running daemon\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" +" with elevated RLIMIT_NICE)\n" +" --realtime[=BOOL] Try to enable realtime scheduling\n" +" (only available as root, when SUID " +"or\n" +" with elevated RLIMIT_RTPRIO)\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" +" time passed\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" +" 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-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" +" objects (plugins)\n" +" --resample-method=METHOD Use the specified resampling method\n" +" (See --dump-resample-methods for\n" +" possible values)\n" +" --use-pid-file[=BOOL] Create a PID file\n" +" --no-cpu-limit[=BOOL] Do not install CPU load limiter on\n" +" platforms that support it.\n" +" --disable-shm[=BOOL] Disable shared memory support.\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" +"\n" +" -n Don't load default script file\n" +msgstr "" +"%s [options]\n" +"\n" +"COMMANDS:\n" +" -h, --help Show this help\n" +" --version Show version\n" +" --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" +" -k --kill Kill a running daemon\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" +" with elevated RLIMIT_NICE)\n" +" --realtime[=BOOL] Try to enable realtime scheduling\n" +" (only available as root, when SUID " +"or\n" +" with elevated RLIMIT_RTPRIO)\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" +" time passed\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" +" 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-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" +" objects (plugins)\n" +" --resample-method=METHOD Use the specified resampling method\n" +" (See --dump-resample-methods for\n" +" possible values)\n" +" --use-pid-file[=BOOL] Create a PID file\n" +" --no-cpu-limit[=BOOL] Do not install CPU load limiter on\n" +" platforms that support it.\n" +" --disable-shm[=BOOL] Disable shared memory support.\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" +"\n" +" -n Don't load default script file\n" + +#: ../src/daemon/cmdline.c:247 +msgid "--daemonize expects boolean argument" +msgstr "--daemonize के लिठबà¥à¤²à¤¿à¤¯à¤¨ तरà¥à¤• की आशा है" + +#: ../src/daemon/cmdline.c:254 +msgid "--fail expects boolean argument" +msgstr "--fail के लिठबà¥à¤²à¤¿à¤¯à¤¨ तरà¥à¤• की आशा है" + +#: ../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 expects log level argument (either numeric in range 0..4 or one " +"of debug, info, notice, warn, error)." + +#: ../src/daemon/cmdline.c:276 +msgid "--high-priority expects boolean argument" +msgstr "--high-priority के लिठबà¥à¤²à¤¿à¤¯à¤¨ तरà¥à¤• की आशा है" + +#: ../src/daemon/cmdline.c:283 +msgid "--realtime expects boolean argument" +msgstr "--realtime के लिठबà¥à¤²à¤¿à¤¯à¤¨ तरà¥à¤• की आशा है" + +#: ../src/daemon/cmdline.c:290 +msgid "--disallow-module-loading expects boolean argument" +msgstr "--disallow-module-loading के लिठबà¥à¤²à¤¿à¤¯à¤¨ तरà¥à¤• की आशा है" + +#: ../src/daemon/cmdline.c:297 +msgid "--disallow-exit expects boolean argument" +msgstr "--disallow-exit के लिठबà¥à¤²à¤¿à¤¯à¤¨ तरà¥à¤• की आशा है" + +#: ../src/daemon/cmdline.c:304 +msgid "--use-pid-file expects boolean argument" +msgstr "--use-pid-file के लिठबà¥à¤²à¤¿à¤¯à¤¨ तरà¥à¤• की आशा है" + +#: ../src/daemon/cmdline.c:321 +msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." +msgstr "अवैध लॉग लकà¥à¤·à¥à¤¯: use either 'syslog', 'stderr' or 'auto'." + +#: ../src/daemon/cmdline.c:328 +msgid "--log-time expects boolean argument" +msgstr "--log-time के लिठबà¥à¤²à¤¿à¤¯à¤¨ तरà¥à¤• की आशा है" + +#: ../src/daemon/cmdline.c:335 +msgid "--log-meta expects boolean argument" +msgstr "--log-meta के लिठबà¥à¤²à¤¿à¤¯à¤¨ तरà¥à¤• की आशा है" + +#: ../src/daemon/cmdline.c:354 +#, c-format +msgid "Invalid resample method '%s'." +msgstr "अवैध पà¥à¤¨à¤ƒ पà¥à¤°à¤¤à¤¿à¤¦à¤°à¥à¤¶ विधि '%s'." + +#: ../src/daemon/cmdline.c:361 +msgid "--system expects boolean argument" +msgstr "--system के लिठबà¥à¤²à¤¿à¤¯à¤¨ तरà¥à¤• की आशा है" + +#: ../src/daemon/cmdline.c:368 +msgid "--no-cpu-limit expects boolean argument" +msgstr "--no-cpu-limit के लिठबà¥à¤²à¤¿à¤¯à¤¨ तरà¥à¤• की आशा है" + +#: ../src/daemon/cmdline.c:375 +msgid "--disable-shm expects boolean argument" +msgstr "--disable-shm के लिठबà¥à¤²à¤¿à¤¯à¤¨ तरà¥à¤• की आशा है" + +#: ../src/daemon/dumpmodules.c:60 +#, c-format +msgid "Name: %s\n" +msgstr "नाम: %s\n" + +#: ../src/daemon/dumpmodules.c:63 +#, c-format +msgid "No module information available\n" +msgstr "कोई मॉडà¥à¤¯à¥‚ल सूचना उपलबà¥à¤§ नहीं\n" + +#: ../src/daemon/dumpmodules.c:66 +#, c-format +msgid "Version: %s\n" +msgstr "संसà¥à¤•à¤°à¤£: %s\n" + +#: ../src/daemon/dumpmodules.c:68 +#, c-format +msgid "Description: %s\n" +msgstr "विवरण: %s\n" + +#: ../src/daemon/dumpmodules.c:70 +#, c-format +msgid "Author: %s\n" +msgstr "लेखक: %s\n" + +#: ../src/daemon/dumpmodules.c:72 +#, c-format +msgid "Usage: %s\n" +msgstr "उपयोग: %s\n" + +#: ../src/daemon/dumpmodules.c:73 +#, c-format +msgid "Load Once: %s\n" +msgstr "à¤à¤• बार लोड करें: %s\n" + +#: ../src/daemon/dumpmodules.c:75 +#, c-format +msgid "DEPRECATION WARNING: %s\n" +msgstr "" + +#: ../src/daemon/dumpmodules.c:79 +#, c-format +msgid "Path: %s\n" +msgstr "पथ: %s\n" + +#: ../src/daemon/daemon-conf.c:216 +#, c-format +msgid "[%s:%u] Invalid log target '%s'." +msgstr "[%s:%u] अवैध लॉग लकà¥à¤·à¥à¤¯ '%s'." + +#: ../src/daemon/daemon-conf.c:232 +#, c-format +msgid "[%s:%u] Invalid log level '%s'." +msgstr "[%s:%u] अवैध लॉग सà¥à¤¤à¤° '%s'." + +#: ../src/daemon/daemon-conf.c:248 +#, c-format +msgid "[%s:%u] Invalid resample method '%s'." +msgstr "[%s:%u] अवैध पà¥à¤¨à¤ƒ नमूना विधि '%s'." + +#: ../src/daemon/daemon-conf.c:271 +#, c-format +msgid "[%s:%u] Invalid rlimit '%s'." +msgstr "[%s:%u] अवैध rlimit '%s'." + +#: ../src/daemon/daemon-conf.c:278 +#, c-format +msgid "[%s:%u] rlimit not supported on this platform." +msgstr "[%s:%u] rlimit इस पà¥à¤²à¥‡à¤Ÿà¤«à¥‰à¤°à¥à¤® पर समरà¥à¤¥à¤¿à¤¤ नहीं." + +#: ../src/daemon/daemon-conf.c:294 +#, c-format +msgid "[%s:%u] Invalid sample format '%s'." +msgstr "[%s:%u] अवैध पà¥à¤°à¤¤à¤¿à¤¦à¤°à¥à¤¶ पà¥à¤°à¤¾à¤°à¥‚प '%s'." + +#: ../src/daemon/daemon-conf.c:312 +#, c-format +msgid "[%s:%u] Invalid sample rate '%s'." +msgstr "[%s:%u] अवैध पà¥à¤°à¤¤à¤¿à¤¦à¤°à¥à¤¶ दर '%s'." + +#: ../src/daemon/daemon-conf.c:336 +#, c-format +msgid "[%s:%u] Invalid sample channels '%s'." +msgstr "[%s:%u] अवैध पà¥à¤°à¤¤à¤¿à¤¦à¤°à¥à¤¶ चैनल '%s'." + +#: ../src/daemon/daemon-conf.c:354 +#, c-format +msgid "[%s:%u] Invalid channel map '%s'." +msgstr "[%s:%u] अवैध चैनल मानचितà¥à¤° '%s'." + +#: ../src/daemon/daemon-conf.c:372 +#, c-format +msgid "[%s:%u] Invalid number of fragments '%s'." +msgstr "[%s:%u] टà¥à¤•à¤¡à¤¼à¥‡ '%s' की अवैध संखà¥à¤¯à¤¾." + +#: ../src/daemon/daemon-conf.c:390 +#, c-format +msgid "[%s:%u] Invalid fragment size '%s'." +msgstr "[%s:%u] अवैध खंड आकार '%s'." + +#: ../src/daemon/daemon-conf.c:408 +#, c-format +msgid "[%s:%u] Invalid nice level '%s'." +msgstr "[%s:%u] अवैध नाइस सà¥à¤¤à¤° '%s'." + +#: ../src/daemon/daemon-conf.c:524 +#, c-format +msgid "Failed to open configuration file: %s" +msgstr "विनà¥à¤¯à¤¾à¤¸ फ़ाइल खोलने में विफल: %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 "" +"निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ तयशà¥à¤¦à¤¾ चैनल मानचितà¥à¤° के पास चैनल की à¤à¤¿à¤¨à¥à¤¨ संखà¥à¤¯à¤¾ है चैनल की तयशà¥à¤¦à¤¾ निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ संखà¥à¤¯à¤¾ " +"के बनिसà¥à¤ªà¤¤." + +#: ../src/daemon/daemon-conf.c:616 +#, c-format +msgid "### Read from configuration file: %s ###\n" +msgstr "### विनà¥à¤¯à¤¾à¤¸ फ़ाइल से पढ़ें: %s ###\n" + +#: ../src/daemon/caps.c:63 +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 "पलà¥à¤¸à¤‘डियो धà¥à¤µà¤¨à¤¿ तंतà¥à¤°" + +#: ../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 "उचà¥à¤š पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•à¤¤à¤¾ अनà¥à¤¸à¥‚चन (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 "मोनो" + +#: ../src/pulse/channelmap.c:107 +msgid "Front Center" +msgstr "अगà¥à¤° केंदà¥à¤°" + +#: ../src/pulse/channelmap.c:108 +msgid "Front Left" +msgstr "अगà¥à¤° बायाà¤" + +#: ../src/pulse/channelmap.c:109 +msgid "Front Right" +msgstr "अगà¥à¤° दाहिना" + +#: ../src/pulse/channelmap.c:111 +msgid "Rear Center" +msgstr "पशà¥à¤š केंदà¥à¤°" + +#: ../src/pulse/channelmap.c:112 +msgid "Rear Left" +msgstr "पशà¥à¤š बायां" + +#: ../src/pulse/channelmap.c:113 +msgid "Rear Right" +msgstr "पशà¥à¤š दाहिना" + +#: ../src/pulse/channelmap.c:115 +msgid "Low Frequency Emmiter" +msgstr "निमà¥à¤¨ आवृतà¥à¤¤à¤¿ निकासकरà¥à¤¤à¤¾" + +#: ../src/pulse/channelmap.c:117 +msgid "Front Left-of-center" +msgstr "केंदà¥à¤° का अगà¥à¤° वाम" + +#: ../src/pulse/channelmap.c:118 +msgid "Front Right-of-center" +msgstr "केंदà¥à¤° का अगà¥à¤° दकà¥à¤·à¤¿à¤£" + +#: ../src/pulse/channelmap.c:120 +msgid "Side Left" +msgstr "किनारा वाम" + +#: ../src/pulse/channelmap.c:121 +msgid "Side Right" +msgstr "किनारा दायाà¤" + +#: ../src/pulse/channelmap.c:123 +msgid "Auxiliary 0" +msgstr "सहायक 0" + +#: ../src/pulse/channelmap.c:124 +msgid "Auxiliary 1" +msgstr "सहायक 1" + +#: ../src/pulse/channelmap.c:125 +msgid "Auxiliary 2" +msgstr "सहायक 2" + +#: ../src/pulse/channelmap.c:126 +msgid "Auxiliary 3" +msgstr "सहायक 3" + +#: ../src/pulse/channelmap.c:127 +msgid "Auxiliary 4" +msgstr "सहायक 4" + +#: ../src/pulse/channelmap.c:128 +msgid "Auxiliary 5" +msgstr "सहायक 5" + +#: ../src/pulse/channelmap.c:129 +msgid "Auxiliary 6" +msgstr "सहायक 6" + +#: ../src/pulse/channelmap.c:130 +msgid "Auxiliary 7" +msgstr "सहायक 7" + +#: ../src/pulse/channelmap.c:131 +msgid "Auxiliary 8" +msgstr "सहायक 8" + +#: ../src/pulse/channelmap.c:132 +msgid "Auxiliary 9" +msgstr "सहायक 9" + +#: ../src/pulse/channelmap.c:133 +msgid "Auxiliary 10" +msgstr "सहायक 10" + +#: ../src/pulse/channelmap.c:134 +msgid "Auxiliary 11" +msgstr "सहायक 11" + +#: ../src/pulse/channelmap.c:135 +msgid "Auxiliary 12" +msgstr "सहायक 12" + +#: ../src/pulse/channelmap.c:136 +msgid "Auxiliary 13" +msgstr "सहायक 13" + +#: ../src/pulse/channelmap.c:137 +msgid "Auxiliary 14" +msgstr "सहायक 14" + +#: ../src/pulse/channelmap.c:138 +msgid "Auxiliary 15" +msgstr "सहायक 15" + +#: ../src/pulse/channelmap.c:139 +msgid "Auxiliary 16" +msgstr "सहायक 16" + +#: ../src/pulse/channelmap.c:140 +msgid "Auxiliary 17" +msgstr "सहायक 17" + +#: ../src/pulse/channelmap.c:141 +msgid "Auxiliary 18" +msgstr "सहायक 18" + +#: ../src/pulse/channelmap.c:142 +msgid "Auxiliary 19" +msgstr "सहायक 19" + +#: ../src/pulse/channelmap.c:143 +msgid "Auxiliary 20" +msgstr "सहायक 20" + +#: ../src/pulse/channelmap.c:144 +msgid "Auxiliary 21" +msgstr "सहायक 21" + +#: ../src/pulse/channelmap.c:145 +msgid "Auxiliary 22" +msgstr "सहायक 22" + +#: ../src/pulse/channelmap.c:146 +msgid "Auxiliary 23" +msgstr "सहायक 23" + +#: ../src/pulse/channelmap.c:147 +msgid "Auxiliary 24" +msgstr "सहायक 24" + +#: ../src/pulse/channelmap.c:148 +msgid "Auxiliary 25" +msgstr "सहायक 25" + +#: ../src/pulse/channelmap.c:149 +msgid "Auxiliary 26" +msgstr "सहायक 26" + +#: ../src/pulse/channelmap.c:150 +msgid "Auxiliary 27" +msgstr "सहायक 27" + +#: ../src/pulse/channelmap.c:151 +msgid "Auxiliary 28" +msgstr "सहायक 28" + +#: ../src/pulse/channelmap.c:152 +msgid "Auxiliary 29" +msgstr "सहायक 29" + +#: ../src/pulse/channelmap.c:153 +msgid "Auxiliary 30" +msgstr "सहायक 30" + +#: ../src/pulse/channelmap.c:154 +msgid "Auxiliary 31" +msgstr "सहायक 31" + +#: ../src/pulse/channelmap.c:156 +msgid "Top Center" +msgstr "शीरà¥à¤· केंदà¥à¤°" + +#: ../src/pulse/channelmap.c:158 +msgid "Top Front Center" +msgstr "शीरà¥à¤· अगà¥à¤° केंदà¥à¤°" + +#: ../src/pulse/channelmap.c:159 +msgid "Top Front Left" +msgstr "शीरà¥à¤· अगà¥à¤° वाम" + +#: ../src/pulse/channelmap.c:160 +msgid "Top Front Right" +msgstr "ऊपर अगà¥à¤° दायाà¤" + +#: ../src/pulse/channelmap.c:162 +msgid "Top Rear Center" +msgstr "ऊपर पशà¥à¤š केंदà¥à¤°" + +#: ../src/pulse/channelmap.c:163 +msgid "Top Rear Left" +msgstr "ऊपर पशà¥à¤š बायाà¤" + +#: ../src/pulse/channelmap.c:164 +msgid "Top Rear Right" +msgstr "ऊपर पशà¥à¤š दायाà¤" + +#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167 +#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265 +#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315 +msgid "(invalid)" +msgstr "(अवैध)" + +#: ../src/pulse/channelmap.c:751 +msgid "Stereo" +msgstr "सà¥à¤Ÿà¥€à¤°à¤¿à¤¯à¥‹" + +#: ../src/pulse/channelmap.c:756 +msgid "Surround 4.0" +msgstr "सरà¥à¤°à¤¾à¤‰à¤‚ड 4.0" + +#: ../src/pulse/channelmap.c:762 +msgid "Surround 4.1" +msgstr "सरà¥à¤°à¤¾à¤‰à¤‚ड 4.1" + +#: ../src/pulse/channelmap.c:768 +msgid "Surround 5.0" +msgstr "सरà¥à¤°à¤¾à¤‰à¤‚ड 5.0" + +#: ../src/pulse/channelmap.c:774 +msgid "Surround 5.1" +msgstr "सरà¥à¤°à¤¾à¤‰à¤‚ड 5.1" + +#: ../src/pulse/channelmap.c:781 +msgid "Surround 7.1" +msgstr "सरà¥à¤°à¤¾à¤‰à¤‚ड 7.1" + +#: ../src/pulse/error.c:43 +msgid "OK" +msgstr "ठीक" + +#: ../src/pulse/error.c:44 +msgid "Access denied" +msgstr "पहà¥à¤à¤š मनाही" + +#: ../src/pulse/error.c:45 +msgid "Unknown command" +msgstr "अनजान कमांड" + +#: ../src/pulse/error.c:46 +msgid "Invalid argument" +msgstr "अवैध तरà¥à¤•" + +#: ../src/pulse/error.c:47 +msgid "Entity exists" +msgstr "à¤à¤‚टिटी मौजूद" + +#: ../src/pulse/error.c:48 +msgid "No such entity" +msgstr "कोई à¤à¤¸à¥€ à¤à¤‚टिटी नहीं" + +#: ../src/pulse/error.c:49 +msgid "Connection refused" +msgstr "कनेकà¥à¤¶à¤¨ असà¥à¤µà¥€à¤•à¥ƒà¤¤" + +#: ../src/pulse/error.c:50 +msgid "Protocol error" +msgstr "पà¥à¤°à¥‹à¤Ÿà¥‹à¤•à¤¾à¤² तà¥à¤°à¥à¤Ÿà¤¿" + +#: ../src/pulse/error.c:51 +msgid "Timeout" +msgstr "समय ख़तà¥à¤®" + +#: ../src/pulse/error.c:52 +msgid "No authorization key" +msgstr "कोई पà¥à¤°à¤¾à¤§à¤¿à¤•à¤°à¤£ कà¥à¤‚जी नहीं" + +#: ../src/pulse/error.c:53 +msgid "Internal error" +msgstr "आंतरिक तà¥à¤°à¥à¤Ÿà¤¿" + +#: ../src/pulse/error.c:54 +msgid "Connection terminated" +msgstr "कनेकà¥à¤¶à¤¨ समापà¥à¤¤" + +#: ../src/pulse/error.c:55 +msgid "Entity killed" +msgstr "à¤à¤‚टिटी मृत" + +#: ../src/pulse/error.c:56 +msgid "Invalid server" +msgstr "अवैध सरà¥à¤µà¤°" + +#: ../src/pulse/error.c:57 +msgid "Module initalization failed" +msgstr "मॉडयूल आरंà¤à¥€à¤•à¤°à¤£ असफल" + +#: ../src/pulse/error.c:58 +msgid "Bad state" +msgstr "बà¥à¤°à¥€ सà¥à¤¥à¤¿à¤¤à¤¿" + +#: ../src/pulse/error.c:59 +msgid "No data" +msgstr "कोई आà¤à¤•à¤¡à¤¼à¤¾ नहीं" + +#: ../src/pulse/error.c:60 +msgid "Incompatible protocol version" +msgstr "बेमेल पà¥à¤°à¥‹à¤Ÿà¥‹à¤•à¥‰à¤² संसà¥à¤•à¤°à¤£" + +#: ../src/pulse/error.c:61 +msgid "Too large" +msgstr "काफी बड़ा" + +#: ../src/pulse/error.c:62 +msgid "Not supported" +msgstr "समरà¥à¤¥à¤¿à¤¤ नहीं है" + +#: ../src/pulse/error.c:63 +msgid "Unknown error code" +msgstr "अजà¥à¤žà¤¾à¤¤ तà¥à¤°à¥à¤Ÿà¤¿ कोड" + +#: ../src/pulse/error.c:64 +msgid "No such extension" +msgstr "कोई à¤à¤¸à¤¾ विसà¥à¤¤à¤¾à¤° नहीं" + +#: ../src/pulse/error.c:65 +msgid "Obsolete functionality" +msgstr "पà¥à¤°à¤¾à¤¨à¥€ पà¥à¤°à¤•à¤¾à¤°à¥à¤¯à¤¾à¤¤à¥à¤®à¤•à¤¤à¤¾" + +#: ../src/pulse/error.c:66 +msgid "Missing implementation" +msgstr "अनà¥à¤ªà¤¸à¥à¤¥à¤¿à¤¤ कारà¥à¤¯à¤¾à¤¨à¥à¤µà¤¯à¤¨" + +#: ../src/pulse/error.c:67 +msgid "Client forked" +msgstr "कà¥à¤²à¤¾à¤à¤‚ट विà¤à¤¾à¤œà¤¿à¤¤" + +#: ../src/pulse/sample.c:169 +#, c-format +msgid "%s %uch %uHz" +msgstr "%s %uch %uHz" + +#: ../src/pulse/sample.c:181 +#, c-format +msgid "%0.1f GiB" +msgstr "%0.1f GiB" + +#: ../src/pulse/sample.c:183 +#, c-format +msgid "%0.1f MiB" +msgstr "%0.1f MiB" + +#: ../src/pulse/sample.c:185 +#, c-format +msgid "%0.1f KiB" +msgstr "%0.1f KiB" + +#: ../src/pulse/sample.c:187 +#, c-format +msgid "%u B" +msgstr "%u B" + +#: ../src/pulse/client-conf-x11.c:55 ../src/utils/pax11publish.c:100 +msgid "XOpenDisplay() failed" +msgstr "XOpenDisplay() विफल" + +#: ../src/pulse/client-conf-x11.c:93 +msgid "Failed to parse cookie data" +msgstr "कà¥à¤•à¥€ आंकड़ा के विशà¥à¤²à¥‡à¤·à¤£ में विफल" + +#: ../src/pulse/client-conf.c:110 +#, c-format +msgid "Failed to open configuration file '%s': %s" +msgstr "विनà¥à¤¯à¤¾à¤¸ फ़ाइल '%s' खोलने में विफल: %s" + +#: ../src/pulse/context.c:546 +msgid "No cookie loaded. Attempting to connect without." +msgstr "कोई कà¥à¤•à¥€ नहीं लोड किया गया. इसके बिना कनेकà¥à¤Ÿ करने की कोशिश कर रहा हूà¤." + +#: ../src/pulse/context.c:676 +#, c-format +msgid "fork(): %s" +msgstr "fork(): %s" + +#: ../src/pulse/context.c:729 +#, c-format +msgid "waitpid(): %s" +msgstr "waitpid(): %s" + +#: ../src/pulse/context.c:1403 +#, 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" +msgstr "Failed to drain stream: %s\n" + +#: ../src/utils/pacat.c:112 +msgid "Playback stream drained.\n" +msgstr "पà¥à¤²à¥‡à¤¬à¥ˆà¤• सà¥à¤Ÿà¥à¤°à¥€à¤® खतà¥à¤®.\n" + +#: ../src/utils/pacat.c:122 +msgid "Draining connection to server.\n" +msgstr "सरà¥à¤µà¤° में कनेकà¥à¤¶à¤¨ ले जा रहा है.\n" + +#: ../src/utils/pacat.c:135 +#, c-format +msgid "pa_stream_drain(): %s\n" +msgstr "pa_stream_drain(): %s\n" + +#: ../src/utils/pacat.c:158 +#, c-format +msgid "pa_stream_write() failed: %s\n" +msgstr "pa_stream_write() विफल: %s\n" + +#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 +#, c-format +msgid "pa_stream_peek() failed: %s\n" +msgstr "pa_stream_peek() विफल: %s\n" + +#: ../src/utils/pacat.c:302 +msgid "Stream successfully created.\n" +msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® सफलतापूरà¥à¤µà¤• निरà¥à¤®à¤¿à¤¤.\n" + +#: ../src/utils/pacat.c:305 +#, c-format +msgid "pa_stream_get_buffer_attr() failed: %s\n" +msgstr "pa_stream_get_buffer_attr() विफल: %s\n" + +#: ../src/utils/pacat.c:309 +#, c-format +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" +msgstr "बफ़र मेटà¥à¤°à¤¿à¤•à¥à¤¸: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" + +#: ../src/utils/pacat.c:312 +#, c-format +msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" +msgstr "बफ़र मेटà¥à¤°à¤¿à¤•à¥à¤¸: maxlength=%u, fragsize=%u\n" + +#: ../src/utils/pacat.c:316 +#, c-format +msgid "Using sample spec '%s', channel map '%s'.\n" +msgstr "नमूना सà¥à¤ªà¥‡à¤• '%s' का पà¥à¤°à¤¯à¥‹à¤—, चैनल मैप '%s'.\n" + +#: ../src/utils/pacat.c:320 +#, c-format +msgid "Connected to device %s (%u, %ssuspended).\n" +msgstr "यà¥à¤•à¥à¤¤à¤¿ %s (%u, %ssuspended) से कनेकà¥à¤Ÿà¥‡à¤¡.\n" + +#: ../src/utils/pacat.c:330 +#, c-format +msgid "Stream error: %s\n" +msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® तà¥à¤°à¥à¤Ÿà¤¿: %s\n" + +#: ../src/utils/pacat.c:340 +#, c-format +msgid "Stream device suspended.%s \n" +msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® यà¥à¤•à¥à¤¤à¤¿ सà¥à¤¥à¤—ित.%s \n" + +#: ../src/utils/pacat.c:342 +#, c-format +msgid "Stream device resumed.%s \n" +msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® यà¥à¤•à¥à¤¤à¤¿ पà¥à¤¨à¤°à¥à¤¬à¤¹à¤¾à¤².%s \n" + +#: ../src/utils/pacat.c:350 +#, c-format +msgid "Stream underrun.%s \n" +msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® अंडररन.%s \n" + +#: ../src/utils/pacat.c:357 +#, c-format +msgid "Stream overrun.%s \n" +msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® ओवररन.%s \n" + +#: ../src/utils/pacat.c:364 +#, c-format +msgid "Stream started.%s \n" +msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® आरंà¤.%s \n" + +#: ../src/utils/pacat.c:371 +#, c-format +msgid "Stream moved to device %s (%u, %ssuspended).%s \n" +msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® यà¥à¤•à¥à¤¤à¤¿ %s (%u, %ssuspended).%s में खिसकाया गया \n" + +#: ../src/utils/pacat.c:371 +msgid "not " +msgstr "नहीं " + +#: ../src/utils/pacat.c:378 +#, c-format +msgid "Stream buffer attributes changed.%s \n" +msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® बफ़र गà¥à¤£ परिवरà¥à¤¤à¤¿à¤¤.%s \n" + +#: ../src/utils/pacat.c:411 +#, c-format +msgid "Connection established.%s \n" +msgstr "कनेकà¥à¤¶à¤¨ सà¥à¤¥à¤¾à¤ªà¤¿à¤¤.%s \n" + +#: ../src/utils/pacat.c:414 +#, c-format +msgid "pa_stream_new() failed: %s\n" +msgstr "pa_stream_new() विफल: %s\n" + +#: ../src/utils/pacat.c:442 +#, c-format +msgid "pa_stream_connect_playback() failed: %s\n" +msgstr "pa_stream_connect_playback() विफल: %s\n" + +#: ../src/utils/pacat.c:448 +#, c-format +msgid "pa_stream_connect_record() failed: %s\n" +msgstr "pa_stream_connect_record() विफल: %s\n" + +#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +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" + +#: ../src/utils/pacat.c:532 +#, c-format +msgid "write() failed: %s\n" +msgstr "write() विफल: %s\n" + +#: ../src/utils/pacat.c:553 +msgid "Got signal, exiting.\n" +msgstr "संकेत पाया, निकल रहा है.\n" + +#: ../src/utils/pacat.c:567 +#, c-format +msgid "Failed to get latency: %s\n" +msgstr "Failed to get latency: %s\n" + +#: ../src/utils/pacat.c:572 +#, c-format +msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" +msgstr "समय: %0.3f sec; लैटेंसी: %0.0f usec. \r" + +#: ../src/utils/pacat.c:592 +#, c-format +msgid "pa_stream_update_timing_info() failed: %s\n" +msgstr "pa_stream_update_timing_info() विफल: %s\n" + +#: ../src/utils/pacat.c:605 +#, fuzzy, c-format +msgid "" +"%s [options]\n" +"\n" +" -h, --help Show this help\n" +" --version Show version\n" +"\n" +" -r, --record Create a connection for recording\n" +" -p, --playback Create a connection for playback\n" +"\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" +" (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" +" being connected to.\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" +" --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" +" --raw Record/play raw PCM data.\n" +" --file-format=FFORMAT Record/play formatted PCM data.\n" +" --list-file-formats List available file formats.\n" +msgstr "" +"%s [options]\n" +"\n" +" -h, --help Show this help\n" +" --version Show version\n" +"\n" +" -r, --record Create a connection for recording\n" +" -p, --playback Create a connection for playback\n" +"\n" +" -v, --verbose Enable verbose operations\n" +"\n" +" -s, --server=SERVER The name of the server to connect " +"to\n" +" -d, --device=DEVICE The name of the sink/source to " +"connect to\n" +" -n, --client-name=NAME How to call this client on the " +"server\n" +" --stream-name=NAME How to call this stream on the " +"server\n" +" --volume=VOLUME Specify the initial (linear) volume " +"in range 0...65536\n" +" --rate=SAMPLERATE The sample rate in Hz (defaults to " +"44100)\n" +" --format=SAMPLEFORMAT The sample type, one of s16le, " +"s16be, u8, float32le,\n" +" float32be, ulaw, alaw, s32le, s32be " +"(defaults to s16ne)\n" +" --channels=CHANNELS The number of channels, 1 for mono, " +"2 for stereo\n" +" (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" +" being connected to.\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" +" --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" + +#: ../src/utils/pacat.c:727 +#, c-format +msgid "" +"pacat %s\n" +"Compiled with libpulse %s\n" +"Linked with libpulse %s\n" +msgstr "" +"pacat %s\n" +"लिबपलà¥à¤¸ %s के साथ कंपाइल\n" +"लिबपलà¥à¤¸ %s के साथ लिंक\n" + +#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "अवैध चैनल मानचितà¥à¤° '%s'\n" + +#: ../src/utils/pacat.c:776 +#, fuzzy, c-format +msgid "Invalid stream name '%s'\n" +msgstr "अवैध पà¥à¤¨à¤ƒ पà¥à¤°à¤¤à¤¿à¤¦à¤°à¥à¤¶ विधि '%s'." + +#: ../src/utils/pacat.c:813 +#, c-format +msgid "Invalid channel map '%s'\n" +msgstr "अवैध चैनल मानचितà¥à¤° '%s'\n" + +#: ../src/utils/pacat.c:842 +#, c-format +msgid "Invalid latency specification '%s'\n" +msgstr "अवैध लैटेंसी विनिरà¥à¤¦à¤¿à¤·à¥à¤Ÿà¤¤à¤¾ '%s'\n" + +#: ../src/utils/pacat.c:849 +#, c-format +msgid "Invalid process time specification '%s'\n" +msgstr "अवैध पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ समय विनिरà¥à¤¦à¤¿à¤·à¥à¤Ÿà¤¤à¤¾ '%s'\n" + +#: ../src/utils/pacat.c:861 +#, fuzzy, c-format +msgid "Invalid property '%s'\n" +msgstr "अवैध पà¥à¤¨à¤ƒ पà¥à¤°à¤¤à¤¿à¤¦à¤°à¥à¤¶ विधि '%s'." + +#: ../src/utils/pacat.c:878 +#, c-format +msgid "Unknown file format %s." +msgstr "" + +#: ../src/utils/pacat.c:897 +msgid "Invalid sample specification\n" +msgstr "अवैध नमूना विनिरà¥à¤¦à¤¿à¤·à¥à¤Ÿà¤¤à¤¾\n" + +#: ../src/utils/pacat.c:907 +#, c-format +msgid "open(): %s\n" +msgstr "open(): %s\n" + +#: ../src/utils/pacat.c:912 +#, c-format +msgid "dup2(): %s\n" +msgstr "dup2(): %s\n" + +#: ../src/utils/pacat.c:919 +msgid "Too many arguments.\n" +msgstr "कई वितरà¥à¤•.\n" + +#: ../src/utils/pacat.c:930 +#, fuzzy +msgid "Failed to generate sample specification for file.\n" +msgstr "नमूना सूचना पाने में विफल: %s\n" + +#: ../src/utils/pacat.c:950 +#, fuzzy +msgid "Failed to open audio file.\n" +msgstr "धà¥à¤µà¤¨à¤¿ फ़ाइल खोलने में विफल.\n" + +#: ../src/utils/pacat.c:956 +msgid "" +"Warning: specified sample specification will be overwritten with " +"specification from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "नमूना सूचना पाने में विफल: %s\n" + +#: ../src/utils/pacat.c:968 +msgid "Warning: Failed to determine channel map from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:979 +msgid "Channel map doesn't match sample specification\n" +msgstr "चैनल मानचितà¥à¤° नमूना विनिरà¥à¤¦à¤¿à¤·à¥à¤Ÿà¤¤à¤¾ के मेल नहीं खाता\n" + +#: ../src/utils/pacat.c:990 +msgid "Warning: failed to write channel map to file.\n" +msgstr "" + +#: ../src/utils/pacat.c:1005 +#, fuzzy, c-format +msgid "" +"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +msgstr "%s सà¥à¤Ÿà¥à¤°à¥€à¤® को किसी नमूना विनिरà¥à¤¦à¤¿à¤·à¥à¤Ÿà¤¤à¤¾ '%s' के साथ खोल रहा है.\n" + +#: ../src/utils/pacat.c:1006 +msgid "recording" +msgstr "रिकारà¥à¤¡à¤¿à¤‚ग" + +#: ../src/utils/pacat.c:1006 +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 "pa_mainloop_new() विफल.\n" + +#: ../src/utils/pacat.c:1051 +msgid "io_new() failed.\n" +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" +msgstr "pa_context_new() विफल.\n" + +#: ../src/utils/pacat.c:1066 +#, fuzzy, c-format +msgid "pa_context_connect() failed: %s\n" +msgstr "pa_context_connect() विफल: %s" + +#: ../src/utils/pacat.c:1077 +msgid "time_new() failed.\n" +msgstr "time_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 "pa_mainloop_run() विफल.\n" + +#: ../src/utils/pasuspender.c:81 +#, c-format +msgid "fork(): %s\n" +msgstr "fork(): %s\n" + +#: ../src/utils/pasuspender.c:92 +#, c-format +msgid "execvp(): %s\n" +msgstr "execvp(): %s\n" + +#: ../src/utils/pasuspender.c:109 +#, c-format +msgid "Failure to suspend: %s\n" +msgstr "सà¥à¤¥à¤—न में विफल: %s\n" + +#: ../src/utils/pasuspender.c:124 +#, c-format +msgid "Failure to resume: %s\n" +msgstr "पà¥à¤¨à¤°à¥à¤¬à¤¹à¤¾à¤²à¥€ में विफल: %s\n" + +#: ../src/utils/pasuspender.c:147 +#, c-format +msgid "WARNING: Sound server is not local, not suspending.\n" +msgstr "चेतावनी: धà¥à¤µà¤¨à¤¿ सरà¥à¤µà¤° सà¥à¤¥à¤¾à¤¨à¥€à¤¯ नहीं है, सà¥à¤¥à¤—ित नहीं कर रहा है.\n" + +#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 +#, c-format +msgid "Got SIGINT, exiting.\n" +msgstr "SIGINT पाया, निकल रहा है.\n" + +#: ../src/utils/pasuspender.c:194 +#, c-format +msgid "WARNING: Child process terminated by signal %u\n" +msgstr "चेतावनी: संतति पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ %u संकेत से रूका\n" + +#: ../src/utils/pasuspender.c:212 +#, c-format +msgid "" +"%s [options] ... \n" +"\n" +" -h, --help Show this help\n" +" --version Show version\n" +" -s, --server=SERVER The name of the server to connect " +"to\n" +"\n" +msgstr "" +"%s [options] ... \n" +"\n" +" -h, --help Show this help\n" +" --version Show version\n" +" -s, --server=SERVER The name of the server to connect " +"to\n" +"\n" + +#: ../src/utils/pasuspender.c:248 +#, c-format +msgid "" +"pasuspender %s\n" +"Compiled with libpulse %s\n" +"Linked with libpulse %s\n" +msgstr "" +"pasuspender %s\n" +"लिबपलà¥à¤¸ %s से कंपाइल\n" +"लिबपलà¥à¤¸ %s से कड़ीबदà¥à¤§\n" + +#: ../src/utils/pactl.c:128 +#, c-format +msgid "Failed to get statistics: %s\n" +msgstr "आंकड़े पाने में विफल: %s\n" + +#: ../src/utils/pactl.c:134 +#, c-format +msgid "Currently in use: %u blocks containing %s bytes total.\n" +msgstr "पà¥à¤°à¤¯à¥‹à¤— में मà¥à¤¦à¥à¤°à¤¾: %u बà¥à¤²à¥‰à¤• %s बाइट कà¥à¤² समाहित करता है.\n" + +#: ../src/utils/pactl.c:137 +#, c-format +msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n" +msgstr "संपूरà¥à¤£ जीवनचकà¥à¤° के दौरान आबंटित: %u बà¥à¤²à¥‰à¤• %s बाइट कà¥à¤² को समाहित करता है.\n" + +#: ../src/utils/pactl.c:140 +#, c-format +msgid "Sample cache size: %s\n" +msgstr "नमूना कैश आकार: %s\n" + +#: ../src/utils/pactl.c:149 +#, c-format +msgid "Failed to get server information: %s\n" +msgstr "सरà¥à¤µà¤° सूचना पाने में विफल: %s\n" + +#: ../src/utils/pactl.c:157 +#, c-format +msgid "" +"User name: %s\n" +"Host Name: %s\n" +"Server Name: %s\n" +"Server Version: %s\n" +"Default Sample Specification: %s\n" +"Default Channel Map: %s\n" +"Default Sink: %s\n" +"Default Source: %s\n" +"Cookie: %08x\n" +msgstr "" +"उपयोकà¥à¤¤à¤¾ नाम: %s\n" +"मेजबान नाम: %s\n" +"सरà¥à¤µà¤° नाम: %s\n" +"सरà¥à¤µà¤° संसà¥à¤•à¤°à¤£: %s\n" +"तयशà¥à¤¦à¤¾ नमूना विनिरà¥à¤¦à¤¿à¤·à¥à¤Ÿà¤¤à¤¾: %s\n" +"तयशà¥à¤¦à¤¾ चैनल मानचितà¥à¤°: %s\n" +"तयशà¥à¤¦à¤¾ सिंक: %s\n" +"तयशà¥à¤¦à¤¾ सà¥à¤°à¥‹à¤¤: %s\n" +"कà¥à¤•à¥€: %08x\n" + +#: ../src/utils/pactl.c:198 +#, c-format +msgid "Failed to get sink information: %s\n" +msgstr "सिंक सूचना पाने में विफल: %s\n" + +#: ../src/utils/pactl.c:214 +#, c-format +msgid "" +"Sink #%u\n" +"\tState: %s\n" +"\tName: %s\n" +"\tDescription: %s\n" +"\tDriver: %s\n" +"\tSample Specification: %s\n" +"\tChannel Map: %s\n" +"\tOwner Module: %u\n" +"\tMute: %s\n" +"\tVolume: %s%s%s\n" +"\t balance %0.2f\n" +"\tBase Volume: %s%s%s\n" +"\tMonitor Source: %s\n" +"\tLatency: %0.0f usec, configured %0.0f usec\n" +"\tFlags: %s%s%s%s%s%s\n" +"\tProperties:\n" +"\t\t%s\n" +msgstr "" +"Sink #%u\n" +"\tState: %s\n" +"\tName: %s\n" +"\tDescription: %s\n" +"\tDriver: %s\n" +"\tSample Specification: %s\n" +"\tChannel Map: %s\n" +"\tOwner Module: %u\n" +"\tMute: %s\n" +"\tVolume: %s%s%s\n" +"\t balance %0.2f\n" +"\tBase Volume: %s%s%s\n" +"\tMonitor Source: %s\n" +"\tLatency: %0.0f usec, configured %0.0f usec\n" +"\tFlags: %s%s%s%s%s%s\n" +"\tProperties:\n" +"\t\t%s\n" + +#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 +#, fuzzy, c-format +msgid "\tPorts:\n" +msgstr "\tProfiles:\n" + +#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 +#, fuzzy, c-format +msgid "\tActive Port: %s\n" +msgstr "\tActive Profile: %s\n" + +#: ../src/utils/pactl.c:290 +#, c-format +msgid "Failed to get source information: %s\n" +msgstr "सà¥à¤°à¥‹à¤¤ सूचना पाने में विफल: %s\n" + +#: ../src/utils/pactl.c:306 +#, c-format +msgid "" +"Source #%u\n" +"\tState: %s\n" +"\tName: %s\n" +"\tDescription: %s\n" +"\tDriver: %s\n" +"\tSample Specification: %s\n" +"\tChannel Map: %s\n" +"\tOwner Module: %u\n" +"\tMute: %s\n" +"\tVolume: %s%s%s\n" +"\t balance %0.2f\n" +"\tBase Volume: %s%s%s\n" +"\tMonitor of Sink: %s\n" +"\tLatency: %0.0f usec, configured %0.0f usec\n" +"\tFlags: %s%s%s%s%s%s\n" +"\tProperties:\n" +"\t\t%s\n" +msgstr "" +"Source #%u\n" +"\tState: %s\n" +"\tName: %s\n" +"\tDescription: %s\n" +"\tDriver: %s\n" +"\tSample Specification: %s\n" +"\tChannel Map: %s\n" +"\tOwner Module: %u\n" +"\tMute: %s\n" +"\tVolume: %s%s%s\n" +"\t balance %0.2f\n" +"\tBase Volume: %s%s%s\n" +"\tMonitor of Sink: %s\n" +"\tLatency: %0.0f usec, configured %0.0f usec\n" +"\tFlags: %s%s%s%s%s%s\n" +"\tProperties:\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" + +#: ../src/utils/pactl.c:368 +#, c-format +msgid "Failed to get module information: %s\n" +msgstr "मॉडà¥à¤¯à¥‚ल सूचना पाने में विफल: %s\n" + +#: ../src/utils/pactl.c:386 +#, c-format +msgid "" +"Module #%u\n" +"\tName: %s\n" +"\tArgument: %s\n" +"\tUsage counter: %s\n" +"\tProperties:\n" +"\t\t%s\n" +msgstr "" +"Module #%u\n" +"\tName: %s\n" +"\tArgument: %s\n" +"\tUsage counter: %s\n" +"\tProperties:\n" +"\t\t%s\n" + +#: ../src/utils/pactl.c:405 +#, c-format +msgid "Failed to get client information: %s\n" +msgstr "कà¥à¤²à¤¾à¤‡à¤‚ट सूचना पाने में विफल: %s\n" + +#: ../src/utils/pactl.c:423 +#, c-format +msgid "" +"Client #%u\n" +"\tDriver: %s\n" +"\tOwner Module: %s\n" +"\tProperties:\n" +"\t\t%s\n" +msgstr "" +"Client #%u\n" +"\tDriver: %s\n" +"\tOwner Module: %s\n" +"\tProperties:\n" +"\t\t%s\n" + +#: ../src/utils/pactl.c:440 +#, c-format +msgid "Failed to get card information: %s\n" +msgstr "कारà¥à¤¡ सूचना पाने में विफल: %s\n" + +#: ../src/utils/pactl.c:458 +#, c-format +msgid "" +"Card #%u\n" +"\tName: %s\n" +"\tDriver: %s\n" +"\tOwner Module: %s\n" +"\tProperties:\n" +"\t\t%s\n" +msgstr "" +"Card #%u\n" +"\tName: %s\n" +"\tDriver: %s\n" +"\tOwner Module: %s\n" +"\tProperties:\n" +"\t\t%s\n" + +#: ../src/utils/pactl.c:472 +#, c-format +msgid "\tProfiles:\n" +msgstr "\tProfiles:\n" + +#: ../src/utils/pactl.c:478 +#, c-format +msgid "\tActive Profile: %s\n" +msgstr "\tActive Profile: %s\n" + +#: ../src/utils/pactl.c:489 +#, c-format +msgid "Failed to get sink input information: %s\n" +msgstr "सिंक इनपà¥à¤Ÿ सूचना पाने में विफल: %s\n" + +#: ../src/utils/pactl.c:508 +#, c-format +msgid "" +"Sink Input #%u\n" +"\tDriver: %s\n" +"\tOwner Module: %s\n" +"\tClient: %s\n" +"\tSink: %u\n" +"\tSample Specification: %s\n" +"\tChannel Map: %s\n" +"\tMute: %s\n" +"\tVolume: %s\n" +"\t %s\n" +"\t balance %0.2f\n" +"\tBuffer Latency: %0.0f usec\n" +"\tSink Latency: %0.0f usec\n" +"\tResample method: %s\n" +"\tProperties:\n" +"\t\t%s\n" +msgstr "" +"Sink Input #%u\n" +"\tDriver: %s\n" +"\tOwner Module: %s\n" +"\tClient: %s\n" +"\tSink: %u\n" +"\tSample Specification: %s\n" +"\tChannel Map: %s\n" +"\tMute: %s\n" +"\tVolume: %s\n" +"\t %s\n" +"\t balance %0.2f\n" +"\tBuffer Latency: %0.0f usec\n" +"\tSink Latency: %0.0f usec\n" +"\tResample method: %s\n" +"\tProperties:\n" +"\t\t%s\n" + +#: ../src/utils/pactl.c:547 +#, c-format +msgid "Failed to get source output information: %s\n" +msgstr "सà¥à¤°à¥‹à¤¤ आउटपà¥à¤Ÿ सूचना पाने में विफल: %s\n" + +#: ../src/utils/pactl.c:567 +#, c-format +msgid "" +"Source Output #%u\n" +"\tDriver: %s\n" +"\tOwner Module: %s\n" +"\tClient: %s\n" +"\tSource: %u\n" +"\tSample Specification: %s\n" +"\tChannel Map: %s\n" +"\tBuffer Latency: %0.0f usec\n" +"\tSource Latency: %0.0f usec\n" +"\tResample method: %s\n" +"\tProperties:\n" +"\t\t%s\n" +msgstr "" +"Source Output #%u\n" +"\tDriver: %s\n" +"\tOwner Module: %s\n" +"\tClient: %s\n" +"\tSource: %u\n" +"\tSample Specification: %s\n" +"\tChannel Map: %s\n" +"\tBuffer Latency: %0.0f usec\n" +"\tSource Latency: %0.0f usec\n" +"\tResample method: %s\n" +"\tProperties:\n" +"\t\t%s\n" + +#: ../src/utils/pactl.c:598 +#, c-format +msgid "Failed to get sample information: %s\n" +msgstr "नमूना सूचना पाने में विफल: %s\n" + +#: ../src/utils/pactl.c:616 +#, c-format +msgid "" +"Sample #%u\n" +"\tName: %s\n" +"\tSample Specification: %s\n" +"\tChannel Map: %s\n" +"\tVolume: %s\n" +"\t %s\n" +"\t balance %0.2f\n" +"\tDuration: %0.1fs\n" +"\tSize: %s\n" +"\tLazy: %s\n" +"\tFilename: %s\n" +"\tProperties:\n" +"\t\t%s\n" +msgstr "" +"Sample #%u\n" +"\tName: %s\n" +"\tSample Specification: %s\n" +"\tChannel Map: %s\n" +"\tVolume: %s\n" +"\t %s\n" +"\t balance %0.2f\n" +"\tDuration: %0.1fs\n" +"\tSize: %s\n" +"\tLazy: %s\n" +"\tFilename: %s\n" +"\tProperties:\n" +"\t\t%s\n" + +#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 +#, c-format +msgid "Failure: %s\n" +msgstr "विफलता: %s\n" + +#: ../src/utils/pactl.c:680 +#, c-format +msgid "Failed to upload sample: %s\n" +msgstr "नमूना अफलोड करने में विफल: %s\n" + +#: ../src/utils/pactl.c:697 +msgid "Premature end of file\n" +msgstr "फ़ाइल का असामयिक अंत\n" + +#: ../src/utils/pactl.c:826 +#, fuzzy, c-format +msgid "" +"%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 [options] set-card-profile [CARD] [PROFILE] \n" +"%s [options] set-sink-port [SINK] [PORT] \n" +"%s [options] set-source-port [SOURCE] [PORT] \n" +"\n" +" -h, --help Show this help\n" +" --version Show version\n" +"\n" +" -s, --server=SERVER The name of the server to connect " +"to\n" +" -n, --client-name=NAME How to call this client on the " +"server\n" +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 [options] set-card-profile [CARD] [PROFILE] \n" +"\n" +" -h, --help Show this help\n" +" --version Show version\n" +"\n" +" -s, --server=SERVER The name of the server to connect " +"to\n" +" -n, --client-name=NAME How to call this client on the " +"server\n" + +#: ../src/utils/pactl.c:880 +#, c-format +msgid "" +"pactl %s\n" +"Compiled with libpulse %s\n" +"Linked with libpulse %s\n" +msgstr "" +"pactl %s\n" +"लिबपलà¥à¤¸ %s से कंपाइल\n" +"लिबपलà¥à¤¸ %s से कड़ीबदà¥à¤§\n" + +#: ../src/utils/pactl.c:926 +msgid "Please specify a sample file to load\n" +msgstr "लोड करने के लिठकिसी नमूना फ़ाइल निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ करें\n" + +#: ../src/utils/pactl.c:939 +msgid "Failed to open sound file.\n" +msgstr "धà¥à¤µà¤¨à¤¿ फ़ाइल खोलने में विफल.\n" + +#: ../src/utils/pactl.c:951 +#, fuzzy +msgid "Warning: Failed to determine sample specification from file.\n" +msgstr "%s सà¥à¤Ÿà¥à¤°à¥€à¤® को किसी नमूना विनिरà¥à¤¦à¤¿à¤·à¥à¤Ÿà¤¤à¤¾ '%s' के साथ खोल रहा है.\n" + +#: ../src/utils/pactl.c:961 +msgid "You have to specify a sample name to play\n" +msgstr "आपने किसी नमूना नाम को बजाने के लिठनिरà¥à¤¦à¤¿à¤·à¥à¤Ÿ किया है\n" + +#: ../src/utils/pactl.c:973 +msgid "You have to specify a sample name to remove\n" +msgstr "आपने किसी नमूना नाम को हटाने के लिठनिरà¥à¤¦à¤¿à¤·à¥à¤Ÿ किया है\n" + +#: ../src/utils/pactl.c:982 +msgid "You have to specify a sink input index and a sink\n" +msgstr "आपने किसी सिंक इनपà¥à¤Ÿ सूची और सिंक को निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ किया है\n" + +#: ../src/utils/pactl.c:992 +msgid "You have to specify a source output index and a source\n" +msgstr "आपने किसी सिंक सà¥à¤°à¥‹à¤¤ आउटपà¥à¤Ÿ और सà¥à¤°à¥‹à¤¤ को निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ किया है\n" + +#: ../src/utils/pactl.c:1007 +msgid "You have to specify a module name and arguments.\n" +msgstr "आपने किसी मॉडà¥à¤¯à¥‚ल नाम और वितरà¥à¤• को निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ किया है\n" + +#: ../src/utils/pactl.c:1027 +msgid "You have to specify a module index\n" +msgstr "आपने किसी मॉडà¥à¤¯à¥‚ल सूची को निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ किया है\n" + +#: ../src/utils/pactl.c:1037 +msgid "" +"You may not specify more than one sink. You have to specify a boolean " +"value.\n" +msgstr "" +"आप à¤à¤• सिंक से अधिक निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ नहीं कर सकते हैं. आपको किसी बà¥à¤²à¤¿à¤¯à¤¨ मान को निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ करना " +"है.\n" + +#: ../src/utils/pactl.c:1050 +msgid "" +"You may not specify more than one source. You have to specify a boolean " +"value.\n" +msgstr "" +"आप à¤à¤• सà¥à¤°à¥‹à¤¤ से अधिक निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ नहीं कर सकते हैं. आपको किसी बà¥à¤²à¤¿à¤¯à¤¨ मान को निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ करना " +"है.\n" + +#: ../src/utils/pactl.c:1062 +msgid "You have to specify a card name/index and a profile name\n" +msgstr "आपको किसी कारà¥à¤¡ नाम/सूची और पà¥à¤°à¥‹à¤«à¤¼à¤¾à¤‡à¤² नाम को निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ करना है.\n" + +#: ../src/utils/pactl.c:1073 +#, fuzzy +msgid "You have to specify a sink name/index and a port name\n" +msgstr "आपको किसी कारà¥à¤¡ नाम/सूची और पà¥à¤°à¥‹à¤«à¤¼à¤¾à¤‡à¤² नाम को निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ करना है.\n" + +#: ../src/utils/pactl.c:1084 +#, fuzzy +msgid "You have to specify a source name/index and a port name\n" +msgstr "आपको किसी कारà¥à¤¡ नाम/सूची और पà¥à¤°à¥‹à¤«à¤¼à¤¾à¤‡à¤² नाम को निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ करना है.\n" + +#: ../src/utils/pactl.c:1099 +msgid "No valid command specified.\n" +msgstr "कोई वैध कमांड निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ नहीं.\n" + +#: ../src/utils/pactl.c:1122 +#, c-format +msgid "pa_context_connect() failed: %s" +msgstr "pa_context_connect() विफल: %s" + +#: ../src/utils/pax11publish.c:61 +#, c-format +msgid "" +"%s [-D display] [-S server] [-O sink] [-I source] [-c file] [-d|-e|-i|-r]\n" +"\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" +" -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 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" +" -r Remove PulseAudio data from X11 display\n" + +#: ../src/utils/pax11publish.c:94 +#, c-format +msgid "Failed to parse command line.\n" +msgstr "कमांड लाइन के विशà¥à¤²à¥‡à¤·à¤£ में असमरà¥à¤¥.\n" + +#: ../src/utils/pax11publish.c:108 +#, c-format +msgid "Server: %s\n" +msgstr "सरà¥à¤µà¤°: %s\n" + +#: ../src/utils/pax11publish.c:110 +#, c-format +msgid "Source: %s\n" +msgstr "सà¥à¤°à¥‹à¤¤: %s\n" + +#: ../src/utils/pax11publish.c:112 +#, c-format +msgid "Sink: %s\n" +msgstr "सिंक: %s\n" + +#: ../src/utils/pax11publish.c:114 +#, c-format +msgid "Cookie: %s\n" +msgstr "कà¥à¤•à¥€: %s\n" + +#: ../src/utils/pax11publish.c:132 +#, c-format +msgid "Failed to parse cookie data\n" +msgstr "कà¥à¤•à¥€ आंकड़ा के विशà¥à¤²à¥‡à¤·à¤£ में विफल\n" + +#: ../src/utils/pax11publish.c:137 +#, c-format +msgid "Failed to save cookie data\n" +msgstr "कà¥à¤•à¥€ आंकड़ा के सहेजने में विफल\n" + +#: ../src/utils/pax11publish.c:152 +#, c-format +msgid "Failed to load client configuration file.\n" +msgstr "कà¥à¤²à¤¾à¤‡à¤‚ट विनà¥à¤¯à¤¾à¤¸ फ़ाइल लोड करने में विफल\n" + +#: ../src/utils/pax11publish.c:157 +#, c-format +msgid "Failed to read environment configuration data.\n" +msgstr "वातावरण विनà¥à¤¯à¤¾à¤¸ आंकड़ा को पढ़ने में विफल.\n" + +#: ../src/utils/pax11publish.c:174 +#, c-format +msgid "Failed to get FQDN.\n" +msgstr "FQDN पाने में विफल.\n" + +#: ../src/utils/pax11publish.c:194 +#, c-format +msgid "Failed to load cookie data\n" +msgstr "कà¥à¤•à¥€ आंकड़ा लोड करने में विफल\n" + +#: ../src/utils/pax11publish.c:211 +#, c-format +msgid "Not yet implemented.\n" +msgstr "अà¤à¥€ तक कारà¥à¤¯à¤¾à¤¨à¥à¤µà¤¿à¤¤ नहीं.\n" + +#: ../src/utils/pacmd.c:61 +msgid "No PulseAudio daemon running, or not running as session daemon." +msgstr "" + +#: ../src/utils/pacmd.c:66 +#, c-format +msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s" +msgstr "socket(PF_UNIX, SOCK_STREAM, 0): %s" + +#: ../src/utils/pacmd.c:83 +#, c-format +msgid "connect(): %s" +msgstr "connect(): %s" + +#: ../src/utils/pacmd.c:91 +msgid "Failed to kill PulseAudio daemon." +msgstr "PulseAudio डेमॉन को मारने में विफल." + +#: ../src/utils/pacmd.c:99 +msgid "Daemon not responding." +msgstr "डेमॉन पà¥à¤°à¤¤à¤¿à¤•à¥à¤°à¤¿à¤¯à¤¾ नहीं दे रहा है." + +#: ../src/utils/pacmd.c:146 +#, c-format +msgid "select(): %s" +msgstr "select(): %s" + +#: ../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 +#, c-format +msgid "write(): %s" +msgstr "write(): %s" + +#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 +msgid "Cannot access autospawn lock." +msgstr "autospawn लॉक की पहà¥à¤à¤š नहीं ले सकता है." + +#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 +#, c-format +msgid "" +"ALSA woke us up to write new data to the device, but there was actually " +"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 ने यà¥à¤•à¥à¤¤à¤¿ में नया आंकड़ा लिखने के लिठहमें तैयार किया, लेकिन वहाठवासà¥à¤¤à¤µ में लिखने के लिठ" +"कà¥à¤› नहीं था!\n" +"अधिक संà¤à¤µ है कि यह ALSA डà¥à¤°à¤¾à¤‡à¤µà¤° '%s' में à¤à¤• बग है. कृपया इस मà¥à¤¦à¥à¤¦à¥‡ को ALSA डेवलेपर को " +"रिपोरà¥à¤Ÿ करें.\n" +"हमें POLLOUT सेट के साथ तैयार किया गया है -- हालांकि परवरà¥à¤¤à¥€ snd_pcm_avail() ने 0 या " +"दूसरा मान < min_avail दिया." + +#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 +#, c-format +msgid "" +"ALSA woke us up to read new data from the device, but there was actually " +"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 ने यà¥à¤•à¥à¤¤à¤¿ में नया आंकड़ा पढ़ने के लिठहमें तैयार किया, लेकिन वहाठवासà¥à¤¤à¤µ में पढ़ने के लिठकà¥à¤› " +"नहीं था!\n" +"अधिक संà¤à¤µ है कि यह ALSA डà¥à¤°à¤¾à¤‡à¤µà¤° '%s' में à¤à¤• बग है. कृपया इस मà¥à¤¦à¥à¤¦à¥‡ को ALSA डेवलेपर को " +"रिपोरà¥à¤Ÿ करें.\n" +"हमें POLLIN सेट के साथ तैयार किया गया है -- हालांकि परवरà¥à¤¤à¥€ snd_pcm_avail() ने 0 या " +"दूसरा मान < min_avail दिया." + +#: ../src/modules/alsa/module-alsa-card.c:152 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 +msgid "Off" +msgstr "बंद" + +#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +msgid "High Fidelity Playback (A2DP)" +msgstr "उचà¥à¤š विशà¥à¤µà¤¸à¤¨à¥€à¤¯à¤¤à¤¾à¤¯à¥à¤•à¥à¤¤à¤¿ पà¥à¤²à¥‡à¤¬à¥ˆà¤• (A2DP)" + +#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +msgid "Telephony Duplex (HSP/HFP)" +msgstr "टेलिफोनी डà¥à¤¯à¥‚पà¥à¤²à¥‡à¤•à¥à¤¸ (HSP/HFP)" + +#: ../src/modules/reserve-wrap.c:151 +msgid "PulseAudio Sound Server" +msgstr "पलà¥à¤¸à¤‘डियो धà¥à¤µà¤¨à¤¿ सरà¥à¤µà¤°" + +#~ msgid "Analog Mono" +#~ msgstr "à¤à¤¨à¤¾à¤²à¥‰à¤— मोनो" + +#~ msgid "Analog Stereo" +#~ msgstr "à¤à¤¨à¤¾à¤²à¥‰à¤— सà¥à¤Ÿà¥€à¤°à¤¿à¤¯à¥‹" + +#~ msgid "Digital Stereo (IEC958)" +#~ msgstr "डिजिटल सà¥à¤Ÿà¥€à¤°à¤¿à¤¯à¥‹ (IEC958)" + +#~ msgid "Digital Stereo (HDMI)" +#~ msgstr "डिजिटल सà¥à¤Ÿà¥€à¤°à¤¿à¤¯à¥‹ (HDMI)" + +#~ msgid "Analog Surround 4.0" +#~ msgstr "à¤à¤¨à¤¾à¤²à¥‰à¤— सरà¥à¤°à¤¾à¤‰à¤‚ड 4.0" + +#~ msgid "Digital Surround 4.0 (IEC958/AC3)" +#~ msgstr "डिजिटल सरà¥à¤°à¤¾à¤‰à¤‚ड 4.0 (IEC958/AC3)" + +#~ msgid "Analog Surround 4.1" +#~ msgstr "à¤à¤¨à¤¾à¤²à¥‰à¤— सरà¥à¤°à¤¾à¤‰à¤‚ड 4.1" + +#~ msgid "Analog Surround 5.0" +#~ msgstr "à¤à¤¨à¤¾à¤²à¥‰à¤— सरà¥à¤°à¤¾à¤‰à¤‚ड 5.0" + +#~ msgid "Analog Surround 5.1" +#~ msgstr "à¤à¤¨à¤¾à¤²à¥‰à¤— सरà¥à¤°à¤¾à¤‰à¤‚ड 5.1" + +#~ msgid "Digital Surround 5.1 (IEC958/AC3)" +#~ msgstr "डिजिटल सरà¥à¤°à¤¾à¤‰à¤‚ड 5.1 (IEC958/AC3)" + +#~ msgid "Analog Surround 7.1" +#~ msgstr "à¤à¤¨à¤¾à¤²à¥‰à¤— सरà¥à¤°à¤¾à¤‰à¤‚ड 7.1" + +#~ msgid "Stream successfully created\n" +#~ msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® सफलतापूरà¥à¤µà¤• बनाया गया\n" + +#~ msgid "Stream errror: %s\n" +#~ msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® तà¥à¤°à¥à¤Ÿà¤¿: %s\n" + +#~ msgid "Connection established.\n" +#~ msgstr "कनेकà¥à¤¶à¤¨ सà¥à¤¥à¤¾à¤ªà¤¿à¤¤.\n" + +#~ msgid "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Show this help\n" +#~ " --version Show version\n" +#~ "\n" +#~ " -v, --verbose Enable verbose operation\n" +#~ "\n" +#~ " -s, --server=SERVER The name of the server to connect " +#~ "to\n" +#~ " -d, --device=DEVICE The name of the sink to connect " +#~ "to\n" +#~ " -n, --client-name=NAME How to call this client on the " +#~ "server\n" +#~ " --stream-name=NAME How to call this stream on the " +#~ "server\n" +#~ " --volume=VOLUME Specify the initial (linear) " +#~ "volume in range 0...65536\n" +#~ " --channel-map=CHANNELMAP Set the channel map to the use\n" +#~ msgstr "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Show this help\n" +#~ " --version Show version\n" +#~ "\n" +#~ " -v, --verbose Enable verbose operation\n" +#~ "\n" +#~ " -s, --server=SERVER The name of the server to connect " +#~ "to\n" +#~ " -d, --device=DEVICE The name of the sink to connect " +#~ "to\n" +#~ " -n, --client-name=NAME How to call this client on the " +#~ "server\n" +#~ " --stream-name=NAME How to call this stream on the " +#~ "server\n" +#~ " --volume=VOLUME Specify the initial (linear) " +#~ "volume in range 0...65536\n" +#~ " --channel-map=CHANNELMAP Set the channel map to the use\n" + +#~ msgid "" +#~ "paplay %s\n" +#~ "Compiled with libpulse %s\n" +#~ "Linked with libpulse %s\n" +#~ msgstr "" +#~ "paplay %s\n" +#~ "लिबपलà¥à¤¸ %s से कंपाइल\n" +#~ "लिबपलà¥à¤¸ %s से कड़ीबदà¥à¤§\n" + +#~ msgid "Invalid channel map\n" +#~ msgstr "अवैध चैनल मानचितà¥à¤°\n" + +#~ msgid "Failed to open file '%s'\n" +#~ msgstr "फ़ाइल '%s' खोलने में विफल\n" + +#~ msgid "Channel map doesn't match file.\n" +#~ msgstr "चैनल मानचितà¥à¤° फ़ाइल से मेल नहीं खाता है.\n" + +#~ msgid "Using sample spec '%s'\n" +#~ msgstr "नमूना सà¥à¤ªà¥‡à¤• '%s' का पà¥à¤°à¤¯à¥‹à¤— कर रहा है\n" + +#~ msgid "Output %s + Input %s" +#~ msgstr "आउटपà¥à¤Ÿ %s + इनपà¥à¤Ÿ %s" + +#~ msgid "Output %s" +#~ msgstr "आउटपà¥à¤Ÿ %s" + +#~ msgid "Input %s" +#~ msgstr "इनपà¥à¤Ÿ %s" @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-21 23:02+0200\n" +"POT-Creation-Date: 2009-06-17 23:42+0200\n" "PO-Revision-Date: 2009-04-20 22:34+0200\n" "Last-Translator: mario_santagiuliana <mario at marionline.it>\n" "Language-Team: Italian <fedora-trans-it at redhat.com>\n" @@ -19,51 +19,7 @@ msgstr "" "X-Generator: Lokalize 0.3\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../src/modules/alsa/alsa-util.c:532 -msgid "Analog Mono" -msgstr "Mono analogico" - -#: ../src/modules/alsa/alsa-util.c:540 -msgid "Analog Stereo" -msgstr "Stereo analogico" - -#: ../src/modules/alsa/alsa-util.c:548 -msgid "Digital Stereo (IEC958)" -msgstr "Stereo digitale (IEC958)" - -#: ../src/modules/alsa/alsa-util.c:556 -msgid "Digital Stereo (HDMI)" -msgstr "Stereo digitale (HDMI)" - -#: ../src/modules/alsa/alsa-util.c:565 -msgid "Analog Surround 4.0" -msgstr "Surround analogico 4.0" - -#: ../src/modules/alsa/alsa-util.c:574 -msgid "Digital Surround 4.0 (IEC958/AC3)" -msgstr "Surround digitale 4.0 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:584 -msgid "Analog Surround 4.1" -msgstr "Surround analogico 4.1" - -#: ../src/modules/alsa/alsa-util.c:594 -msgid "Analog Surround 5.0" -msgstr "Surround analogico 5.0" - -#: ../src/modules/alsa/alsa-util.c:604 -msgid "Analog Surround 5.1" -msgstr "Surround analogico 5.1" - -#: ../src/modules/alsa/alsa-util.c:614 -msgid "Digital Surround 5.1 (IEC958/AC3)" -msgstr "Surround digitale 5.1 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:625 -msgid "Analog Surround 7.1" -msgstr "Surround analogico 7.1" - -#: ../src/modules/alsa/alsa-util.c:1646 +#: ../src/modules/alsa/alsa-util.c:1015 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -75,7 +31,7 @@ msgstr "" "Molto probabilmente si tratta di un bug nel driver ALSA «%s». Segnalare " "questo problema agli sviluppatori ALSA." -#: ../src/modules/alsa/alsa-util.c:1687 +#: ../src/modules/alsa/alsa-util.c:1056 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -87,7 +43,7 @@ msgstr "" "Molto probabilmente si tratta di un bug nel driver ALSA «%s». Segnalare " "questo problema agli sviluppatori ALSA." -#: ../src/modules/alsa/alsa-util.c:1734 +#: ../src/modules/alsa/alsa-util.c:1103 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -100,11 +56,24 @@ msgstr "" "Molto probabilmente si tratta di un bug nel driver ALSA «%s». Segnalare " "questo problema agli sviluppatori ALSA." -#: ../src/pulsecore/sink.c:2141 +#: ../src/modules/module-ladspa-sink.c:49 +msgid "Virtual LADSPA sink" +msgstr "" + +#: ../src/modules/module-ladspa-sink.c:53 +msgid "" +"sink_name=<name for the sink> sink_properties=<properties for the sink> " +"master=<name of sink to filter> format=<sample format> rate=<sample rate> " +"channels=<number of channels> channel_map=<channel map> plugin=<ladspa " +"plugin name> label=<ladspa plugin label> control=<comma seperated list of " +"input control values>" +msgstr "" + +#: ../src/pulsecore/sink.c:2394 msgid "Internal Audio" msgstr "Audio interno" -#: ../src/pulsecore/sink.c:2147 +#: ../src/pulsecore/sink.c:2400 msgid "Modem" msgstr "Modem" @@ -174,105 +143,105 @@ msgstr "Impossibile ottenere l'autorizzazione: %s" msgid "PolicyKit responded with '%s'" msgstr "PolicyKit ha risposto con \"%s\"" -#: ../src/daemon/main.c:138 +#: ../src/daemon/main.c:142 #, c-format msgid "Got signal %s." msgstr "Ottenuto il segnale %s." -#: ../src/daemon/main.c:165 +#: ../src/daemon/main.c:169 msgid "Exiting." msgstr "Uscita." -#: ../src/daemon/main.c:183 +#: ../src/daemon/main.c:187 #, c-format msgid "Failed to find user '%s'." msgstr "Ricerca dell'utente \"%s\" non riuscita." -#: ../src/daemon/main.c:188 +#: ../src/daemon/main.c:192 #, c-format msgid "Failed to find group '%s'." msgstr "Ricerca del gruppo \"%s\" non riuscita." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:196 #, 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:197 +#: ../src/daemon/main.c:201 #, 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:202 +#: ../src/daemon/main.c:206 #, 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:205 ../src/daemon/main.c:210 +#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 #, c-format msgid "Failed to create '%s': %s" msgstr "Creazione di \"%s\" non riuscita: %s" # group list ???? -#: ../src/daemon/main.c:217 +#: ../src/daemon/main.c:221 #, c-format msgid "Failed to change group list: %s" msgstr "Cambio dell'elenco di gruppo non riuscito: %s" -#: ../src/daemon/main.c:233 +#: ../src/daemon/main.c:237 #, c-format msgid "Failed to change GID: %s" msgstr "Cambio di GID non riuscito: %s" -#: ../src/daemon/main.c:249 +#: ../src/daemon/main.c:253 #, c-format msgid "Failed to change UID: %s" msgstr "Cambio di UID non riuscito: %s" -#: ../src/daemon/main.c:263 +#: ../src/daemon/main.c:267 msgid "Successfully dropped root privileges." msgstr "Privilegi di root abbandonati con successo." -#: ../src/daemon/main.c:271 +#: ../src/daemon/main.c:275 msgid "System wide mode unsupported on this platform." msgstr "Modalità \"system wide\" non supportata su questa piattaforma." -#: ../src/daemon/main.c:289 +#: ../src/daemon/main.c:293 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) non riuscita: %s" -#: ../src/daemon/main.c:477 +#: ../src/daemon/main.c:481 msgid "Failed to parse command line." msgstr "Analisi della riga di comando non riuscita." -#: ../src/daemon/main.c:501 +#: ../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:508 +#: ../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:516 +#: ../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:519 +#: ../src/daemon/main.c:523 msgid "PolicyKit refuses acquire-high-priority privilege." msgstr "Privilegi acquire-high-priority rifiutati da PolicyKit." -#: ../src/daemon/main.c:524 +#: ../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:527 +#: ../src/daemon/main.c:531 msgid "PolicyKit refuses acquire-real-time privilege." msgstr "Privilegi acquire-real-time rifiutati da PolicyKit." -#: ../src/daemon/main.c:556 +#: ../src/daemon/main.c:560 #, c-format msgid "" "Called SUID root and real-time and/or high-priority scheduling was requested " @@ -293,49 +262,49 @@ msgstr "" "PolicyKit appropriati, diventare un membro di «%s» oppure incrementare i " "limiti RLIMIT_NICE/RLIMIT_RTPRIO della risorsa per questo utente." -#: ../src/daemon/main.c:581 +#: ../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:610 +#: ../src/daemon/main.c:614 msgid "Successfully increased RLIMIT_RTPRIO" msgstr "Incremento di RLIMIT_RTPRIO riuscito" -#: ../src/daemon/main.c:613 +#: ../src/daemon/main.c:617 #, c-format msgid "RLIMIT_RTPRIO failed: %s" msgstr "RLIMIT_RTPRIO non riuscito: %s" # abbandono?? -#: ../src/daemon/main.c:620 +#: ../src/daemon/main.c:624 msgid "Giving up CAP_NICE" msgstr "Abbandono del CAP_NICE" -#: ../src/daemon/main.c:627 +#: ../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:688 +#: ../src/daemon/main.c:692 msgid "Daemon not running" msgstr "Demone non in esecuzione" -#: ../src/daemon/main.c:690 +#: ../src/daemon/main.c:694 #, c-format msgid "Daemon running as PID %u" msgstr "Demone in esecuzione con PID %u" -#: ../src/daemon/main.c:700 +#: ../src/daemon/main.c:704 #, c-format msgid "Failed to kill daemon: %s" msgstr "Terminazione del demone non riuscita: %s" -#: ../src/daemon/main.c:718 +#: ../src/daemon/main.c:722 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -343,168 +312,178 @@ msgstr "" "Questo programma non è pensato per essere eseguito come root (a meno di " "specificare --system)." -#: ../src/daemon/main.c:720 +#: ../src/daemon/main.c:724 msgid "Root privileges required." msgstr "Richiesti privilegi di root." -#: ../src/daemon/main.c:725 +#: ../src/daemon/main.c:729 msgid "--start not supported for system instances." msgstr "--start non supportato per le istanze di sistema." -#: ../src/daemon/main.c:730 +#: ../src/daemon/main.c:734 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:733 +#: ../src/daemon/main.c:737 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:736 +#: ../src/daemon/main.c:740 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:741 +#: ../src/daemon/main.c:745 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:768 +#: ../src/daemon/main.c:772 msgid "Failed to acquire stdio." msgstr "Acquisizione di STDIO non riuscita." -#: ../src/daemon/main.c:774 +#: ../src/daemon/main.c:778 #, c-format msgid "pipe failed: %s" msgstr "pipe non riuscita: %s" -#: ../src/daemon/main.c:779 +#: ../src/daemon/main.c:783 #, c-format msgid "fork() failed: %s" msgstr "fork() non riuscita: %s" -#: ../src/daemon/main.c:793 +#: ../src/daemon/main.c:797 #, c-format msgid "read() failed: %s" msgstr "read() non riuscita: %s" -#: ../src/daemon/main.c:799 +#: ../src/daemon/main.c:803 msgid "Daemon startup failed." msgstr "Avvio del demone non riuscito." -#: ../src/daemon/main.c:801 +#: ../src/daemon/main.c:805 msgid "Daemon startup successful." msgstr "Avvio del demone riuscito." -#: ../src/daemon/main.c:871 +#: ../src/daemon/main.c:875 #, c-format msgid "This is PulseAudio %s" msgstr "Questo è PulseAudio %s" -#: ../src/daemon/main.c:872 +#: ../src/daemon/main.c:876 #, c-format msgid "Compilation host: %s" msgstr "Host di compilazione: %s" -#: ../src/daemon/main.c:873 +#: ../src/daemon/main.c:877 #, c-format msgid "Compilation CFLAGS: %s" msgstr "CFLAGS di compilazione: %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:880 #, c-format msgid "Running on host: %s" msgstr "In esecuzione sull'host: %s" # evviva il rispetto della l10n!!! -#: ../src/daemon/main.c:879 +#: ../src/daemon/main.c:883 #, c-format msgid "Found %u CPUs." msgstr "Trovate %u CPU." -#: ../src/daemon/main.c:881 +#: ../src/daemon/main.c:885 #, c-format msgid "Page size is %lu bytes" msgstr "La dimensione di pagina è %lu byte" -#: ../src/daemon/main.c:884 +#: ../src/daemon/main.c:888 msgid "Compiled with Valgrind support: yes" msgstr "Compilato con supporto a Valgrind: sì" -#: ../src/daemon/main.c:886 +#: ../src/daemon/main.c:890 msgid "Compiled with Valgrind support: no" msgstr "Compilato con supporto a Valgrind: no" -#: ../src/daemon/main.c:889 +#: ../src/daemon/main.c:893 #, c-format msgid "Running in valgrind mode: %s" msgstr "In esecuzione in modalità valgrind: %s" -#: ../src/daemon/main.c:892 +#: ../src/daemon/main.c:896 msgid "Optimized build: yes" msgstr "Build ottimizzata: sì" -#: ../src/daemon/main.c:894 +#: ../src/daemon/main.c:898 msgid "Optimized build: no" msgstr "Build ottimizzata: no" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:902 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG definito, tutte le dichiarazioni sono disabilitate." -#: ../src/daemon/main.c:900 +#: ../src/daemon/main.c:904 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "" "FASTPATH definito, solo le dichiarazioni veloci di path sono disabilitate." -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:906 msgid "All asserts enabled." msgstr "Tutte le dichiarazioni sono abilitate." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:910 msgid "Failed to get machine ID" msgstr "Recupero dell'ID della macchina non riuscito" -#: ../src/daemon/main.c:909 +#: ../src/daemon/main.c:913 #, c-format msgid "Machine ID is %s." msgstr "L'ID della macchina è %s" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:917 #, fuzzy, c-format msgid "Session ID is %s." msgstr "L'ID della macchina è %s" -#: ../src/daemon/main.c:919 +#: ../src/daemon/main.c:923 #, c-format msgid "Using runtime directory %s." msgstr "In uso directory di runtime %s." -#: ../src/daemon/main.c:924 +#: ../src/daemon/main.c:928 #, c-format msgid "Using state directory %s." msgstr "In uso directory di stato %s." -#: ../src/daemon/main.c:927 +#: ../src/daemon/main.c:931 #, c-format msgid "Running in system mode: %s" msgstr "In esecuzione in modalità sistema: %s" -#: ../src/daemon/main.c:942 +#: ../src/daemon/main.c:934 +msgid "" +"OK, so you are running PA in system mode. Please note that you most likely " +"shouldn't be doing that.\n" +"If you do it nonetheless then it's your own fault if things don't work as " +"expected.\n" +"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " +"explanation why system mode is usually a bad idea." +msgstr "" + +#: ../src/daemon/main.c:951 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() non riuscita." # io mi domando e dico..... mah! -#: ../src/daemon/main.c:954 +#: ../src/daemon/main.c:961 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "Disponibili timer high-resolution freschi freschi! Buon appetito!" # $REPEAT_PREVIOUS_COMMENT_HERE -#: ../src/daemon/main.c:956 +#: ../src/daemon/main.c:963 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -512,32 +491,32 @@ msgstr "" "Hey, questo kernel è andato a male! Lo chef oggi raccomanda Linux con i " "timer high-resolution abilitati!" -#: ../src/daemon/main.c:970 +#: ../src/daemon/main.c:988 msgid "pa_core_new() failed." msgstr "pa_core_new() non riuscita." -#: ../src/daemon/main.c:1032 +#: ../src/daemon/main.c:1050 msgid "Failed to initialize daemon." msgstr "Inizializzazione del demone non riuscita." -#: ../src/daemon/main.c:1037 +#: ../src/daemon/main.c:1055 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "Avvio del demone senza alcun modulo caricato, rifiuta di lavorare." -#: ../src/daemon/main.c:1054 +#: ../src/daemon/main.c:1072 msgid "Daemon startup complete." msgstr "Completato l'avvio del demone." -#: ../src/daemon/main.c:1060 +#: ../src/daemon/main.c:1078 msgid "Daemon shutdown initiated." msgstr "Iniziato l'arresto del demone." -#: ../src/daemon/main.c:1082 +#: ../src/daemon/main.c:1100 msgid "Daemon terminated." msgstr "Demone terminato." # mamma mia che impressione -#: ../src/daemon/cmdline.c:121 +#: ../src/daemon/cmdline.c:115 #, c-format msgid "" "%s [options]\n" @@ -709,15 +688,15 @@ msgstr "" " -n Non carica il file script " "predefinito\n" -#: ../src/daemon/cmdline.c:252 +#: ../src/daemon/cmdline.c:247 msgid "--daemonize expects boolean argument" msgstr "--daemonize richiede un argomento booleano" -#: ../src/daemon/cmdline.c:259 +#: ../src/daemon/cmdline.c:254 msgid "--fail expects boolean argument" msgstr "--fail richiede un argomento booleano" -#: ../src/daemon/cmdline.c:269 +#: ../src/daemon/cmdline.c:264 msgid "" "--log-level expects log level argument (either numeric in range 0..4 or one " "of debug, info, notice, warn, error)." @@ -726,54 +705,54 @@ msgstr "" "nell'intervallo numerico 0..4 oppure uno tra debug, info, notice, warn, " "error)." -#: ../src/daemon/cmdline.c:281 +#: ../src/daemon/cmdline.c:276 msgid "--high-priority expects boolean argument" msgstr "--high-priority richiede un argomento booleano" -#: ../src/daemon/cmdline.c:288 +#: ../src/daemon/cmdline.c:283 msgid "--realtime expects boolean argument" msgstr "--realtime richiede un argomento booleano" -#: ../src/daemon/cmdline.c:295 +#: ../src/daemon/cmdline.c:290 msgid "--disallow-module-loading expects boolean argument" msgstr "--disallow-module-loading richiede un argomento booleano" -#: ../src/daemon/cmdline.c:302 +#: ../src/daemon/cmdline.c:297 msgid "--disallow-exit expects boolean argument" msgstr "--disallow-exit richiede un argomento booleano" -#: ../src/daemon/cmdline.c:309 +#: ../src/daemon/cmdline.c:304 msgid "--use-pid-file expects boolean argument" msgstr "--use-pid-file richiede un argomento booleano" -#: ../src/daemon/cmdline.c:326 +#: ../src/daemon/cmdline.c:321 msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgstr "" "Destinazione del registro non valida: usare \"syslog\", \"stderr\" o \"auto" "\"." -#: ../src/daemon/cmdline.c:333 +#: ../src/daemon/cmdline.c:328 msgid "--log-time expects boolean argument" msgstr "--log-time richiede un argomento booleano" -#: ../src/daemon/cmdline.c:340 +#: ../src/daemon/cmdline.c:335 msgid "--log-meta expects boolean argument" msgstr "--log-meta richiede un argomento booleano" -#: ../src/daemon/cmdline.c:359 +#: ../src/daemon/cmdline.c:354 #, c-format msgid "Invalid resample method '%s'." msgstr "Metodo di ricampionamento \"%s\" non valido." -#: ../src/daemon/cmdline.c:366 +#: ../src/daemon/cmdline.c:361 msgid "--system expects boolean argument" msgstr "--system richiede un argomento booleano" -#: ../src/daemon/cmdline.c:373 +#: ../src/daemon/cmdline.c:368 msgid "--no-cpu-limit expects boolean argument" msgstr "--no-cpu-limit richiede un argomento booleano" -#: ../src/daemon/cmdline.c:380 +#: ../src/daemon/cmdline.c:375 msgid "--disable-shm expects boolean argument" msgstr "--disable-shm richiede un argomento booleano" @@ -813,78 +792,83 @@ msgstr "Uso: %s\n" msgid "Load Once: %s\n" msgstr "Caricato una sola volta: %s\n" -#: ../src/daemon/dumpmodules.c:77 +#: ../src/daemon/dumpmodules.c:75 +#, c-format +msgid "DEPRECATION WARNING: %s\n" +msgstr "" + +#: ../src/daemon/dumpmodules.c:79 #, c-format msgid "Path: %s\n" msgstr "Percorso: %s\n" -#: ../src/daemon/daemon-conf.c:215 +#: ../src/daemon/daemon-conf.c:216 #, c-format msgid "[%s:%u] Invalid log target '%s'." msgstr "[%s:%u] Destinazione di registro \"%s\" non valida." -#: ../src/daemon/daemon-conf.c:231 +#: ../src/daemon/daemon-conf.c:232 #, c-format msgid "[%s:%u] Invalid log level '%s'." msgstr "[%s:%u] Livello di registro \"%s\" non valido." -#: ../src/daemon/daemon-conf.c:247 +#: ../src/daemon/daemon-conf.c:248 #, c-format msgid "[%s:%u] Invalid resample method '%s'." msgstr "[%s:%u] Metodo di ricampionamento \"%s\" non valido." -#: ../src/daemon/daemon-conf.c:270 +#: ../src/daemon/daemon-conf.c:271 #, c-format msgid "[%s:%u] Invalid rlimit '%s'." msgstr "[%s:%u] rlimit \"%s\" non valido." -#: ../src/daemon/daemon-conf.c:277 +#: ../src/daemon/daemon-conf.c:278 #, c-format msgid "[%s:%u] rlimit not supported on this platform." msgstr "[%s:%u] rlimit non supportato su questa piattaforma." # o campionamento?? ma campionamento non è sampling? -#: ../src/daemon/daemon-conf.c:293 +#: ../src/daemon/daemon-conf.c:294 #, c-format msgid "[%s:%u] Invalid sample format '%s'." msgstr "[%s:%u] Formato di campionamento \"%s\" non valido." -#: ../src/daemon/daemon-conf.c:311 +#: ../src/daemon/daemon-conf.c:312 #, c-format msgid "[%s:%u] Invalid sample rate '%s'." msgstr "[%s:%u] Frequenza di campionamento '%s' non valida." -#: ../src/daemon/daemon-conf.c:335 +#: ../src/daemon/daemon-conf.c:336 #, c-format msgid "[%s:%u] Invalid sample channels '%s'." msgstr "[%s:%u] Canali di campionamento \"%s\" non validi." -#: ../src/daemon/daemon-conf.c:353 +#: ../src/daemon/daemon-conf.c:354 #, c-format msgid "[%s:%u] Invalid channel map '%s'." msgstr "[%s:%u] Mappa del canale \"%s\" non valida." -#: ../src/daemon/daemon-conf.c:371 +#: ../src/daemon/daemon-conf.c:372 #, c-format msgid "[%s:%u] Invalid number of fragments '%s'." msgstr "[%s:%u] Numero di frammenti \"%s\" non valido." -#: ../src/daemon/daemon-conf.c:389 +#: ../src/daemon/daemon-conf.c:390 #, c-format msgid "[%s:%u] Invalid fragment size '%s'." msgstr "[%s:%u] Dimensione dei frammenti \"%s\" non valida." -#: ../src/daemon/daemon-conf.c:407 +#: ../src/daemon/daemon-conf.c:408 #, c-format msgid "[%s:%u] Invalid nice level '%s'." msgstr "[%s:%u] Livello di nice \"%s\" non valido." -#: ../src/daemon/daemon-conf.c:522 +#: ../src/daemon/daemon-conf.c:524 #, c-format msgid "Failed to open configuration file: %s" msgstr "Apertura del file di configurazione non riuscita: %s" -#: ../src/daemon/daemon-conf.c:538 +#: ../src/daemon/daemon-conf.c:540 msgid "" "The specified default channel map has a different number of channels than " "the specified default number of channels." @@ -937,239 +921,239 @@ msgstr "" "La politica di sistema previene PulseAudio dall'ottenere lo scheduling real-" "time." -#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804 +#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Mono" # frontale centrale non si usa in HiFi # solo centrale. -#: ../src/pulse/channelmap.c:105 +#: ../src/pulse/channelmap.c:107 msgid "Front Center" msgstr "Centrale" -#: ../src/pulse/channelmap.c:106 +#: ../src/pulse/channelmap.c:108 msgid "Front Left" msgstr "Frontale sinistro" -#: ../src/pulse/channelmap.c:107 +#: ../src/pulse/channelmap.c:109 msgid "Front Right" msgstr "Frontale destro" -#: ../src/pulse/channelmap.c:109 +#: ../src/pulse/channelmap.c:111 msgid "Rear Center" msgstr "Centrale posteriore" -#: ../src/pulse/channelmap.c:110 +#: ../src/pulse/channelmap.c:112 msgid "Rear Left" msgstr "Posteriore sinistro" -#: ../src/pulse/channelmap.c:111 +#: ../src/pulse/channelmap.c:113 msgid "Rear Right" msgstr "Posteriore destro" -#: ../src/pulse/channelmap.c:113 +#: ../src/pulse/channelmap.c:115 msgid "Low Frequency Emmiter" msgstr "Emettitore basse frequenze" -#: ../src/pulse/channelmap.c:115 +#: ../src/pulse/channelmap.c:117 msgid "Front Left-of-center" msgstr "Frontale sinistra-del-centro" -#: ../src/pulse/channelmap.c:116 +#: ../src/pulse/channelmap.c:118 msgid "Front Right-of-center" msgstr "Frontale destra-del-centro" -#: ../src/pulse/channelmap.c:118 +#: ../src/pulse/channelmap.c:120 msgid "Side Left" msgstr "Laterale sinistro" -#: ../src/pulse/channelmap.c:119 +#: ../src/pulse/channelmap.c:121 msgid "Side Right" msgstr "Laterale destro" -#: ../src/pulse/channelmap.c:121 +#: ../src/pulse/channelmap.c:123 msgid "Auxiliary 0" msgstr "Ausiliario 0" -#: ../src/pulse/channelmap.c:122 +#: ../src/pulse/channelmap.c:124 msgid "Auxiliary 1" msgstr "Ausiliario 1" -#: ../src/pulse/channelmap.c:123 +#: ../src/pulse/channelmap.c:125 msgid "Auxiliary 2" msgstr "Ausiliario 2" -#: ../src/pulse/channelmap.c:124 +#: ../src/pulse/channelmap.c:126 msgid "Auxiliary 3" msgstr "Ausiliario 3" -#: ../src/pulse/channelmap.c:125 +#: ../src/pulse/channelmap.c:127 msgid "Auxiliary 4" msgstr "Ausiliario 4" -#: ../src/pulse/channelmap.c:126 +#: ../src/pulse/channelmap.c:128 msgid "Auxiliary 5" msgstr "Ausiliario 5" -#: ../src/pulse/channelmap.c:127 +#: ../src/pulse/channelmap.c:129 msgid "Auxiliary 6" msgstr "Ausiliario 6" -#: ../src/pulse/channelmap.c:128 +#: ../src/pulse/channelmap.c:130 msgid "Auxiliary 7" msgstr "Ausiliario 7" -#: ../src/pulse/channelmap.c:129 +#: ../src/pulse/channelmap.c:131 msgid "Auxiliary 8" msgstr "Ausiliario 8" -#: ../src/pulse/channelmap.c:130 +#: ../src/pulse/channelmap.c:132 msgid "Auxiliary 9" msgstr "Ausiliario 9" -#: ../src/pulse/channelmap.c:131 +#: ../src/pulse/channelmap.c:133 msgid "Auxiliary 10" msgstr "Ausiliario 10" -#: ../src/pulse/channelmap.c:132 +#: ../src/pulse/channelmap.c:134 msgid "Auxiliary 11" msgstr "Ausiliario 11" -#: ../src/pulse/channelmap.c:133 +#: ../src/pulse/channelmap.c:135 msgid "Auxiliary 12" msgstr "Ausiliario 12" -#: ../src/pulse/channelmap.c:134 +#: ../src/pulse/channelmap.c:136 msgid "Auxiliary 13" msgstr "Ausiliario 13" -#: ../src/pulse/channelmap.c:135 +#: ../src/pulse/channelmap.c:137 msgid "Auxiliary 14" msgstr "Ausiliario 14" -#: ../src/pulse/channelmap.c:136 +#: ../src/pulse/channelmap.c:138 msgid "Auxiliary 15" msgstr "Ausiliario 15" -#: ../src/pulse/channelmap.c:137 +#: ../src/pulse/channelmap.c:139 msgid "Auxiliary 16" msgstr "Ausiliario 16" -#: ../src/pulse/channelmap.c:138 +#: ../src/pulse/channelmap.c:140 msgid "Auxiliary 17" msgstr "Ausiliario 17" -#: ../src/pulse/channelmap.c:139 +#: ../src/pulse/channelmap.c:141 msgid "Auxiliary 18" msgstr "Ausiliario 18" -#: ../src/pulse/channelmap.c:140 +#: ../src/pulse/channelmap.c:142 msgid "Auxiliary 19" msgstr "Ausiliario 19" -#: ../src/pulse/channelmap.c:141 +#: ../src/pulse/channelmap.c:143 msgid "Auxiliary 20" msgstr "Ausiliario 20" -#: ../src/pulse/channelmap.c:142 +#: ../src/pulse/channelmap.c:144 msgid "Auxiliary 21" msgstr "Ausiliario 21" -#: ../src/pulse/channelmap.c:143 +#: ../src/pulse/channelmap.c:145 msgid "Auxiliary 22" msgstr "Ausiliario 22" -#: ../src/pulse/channelmap.c:144 +#: ../src/pulse/channelmap.c:146 msgid "Auxiliary 23" msgstr "Ausiliario 23" -#: ../src/pulse/channelmap.c:145 +#: ../src/pulse/channelmap.c:147 msgid "Auxiliary 24" msgstr "Ausiliario 24" -#: ../src/pulse/channelmap.c:146 +#: ../src/pulse/channelmap.c:148 msgid "Auxiliary 25" msgstr "Ausiliario 25" -#: ../src/pulse/channelmap.c:147 +#: ../src/pulse/channelmap.c:149 msgid "Auxiliary 26" msgstr "Ausiliario 26" -#: ../src/pulse/channelmap.c:148 +#: ../src/pulse/channelmap.c:150 msgid "Auxiliary 27" msgstr "Ausiliario 27" -#: ../src/pulse/channelmap.c:149 +#: ../src/pulse/channelmap.c:151 msgid "Auxiliary 28" msgstr "Ausiliario 28" -#: ../src/pulse/channelmap.c:150 +#: ../src/pulse/channelmap.c:152 msgid "Auxiliary 29" msgstr "Ausiliario 29" -#: ../src/pulse/channelmap.c:151 +#: ../src/pulse/channelmap.c:153 msgid "Auxiliary 30" msgstr "Ausiliario 30" -#: ../src/pulse/channelmap.c:152 +#: ../src/pulse/channelmap.c:154 msgid "Auxiliary 31" msgstr "Ausiliario 31" -#: ../src/pulse/channelmap.c:154 +#: ../src/pulse/channelmap.c:156 msgid "Top Center" msgstr "Centrale superiore" -#: ../src/pulse/channelmap.c:156 +#: ../src/pulse/channelmap.c:158 msgid "Top Front Center" msgstr "Superiore frontale centrale" -#: ../src/pulse/channelmap.c:157 +#: ../src/pulse/channelmap.c:159 msgid "Top Front Left" msgstr "Superiore frontale sinistro" -#: ../src/pulse/channelmap.c:158 +#: ../src/pulse/channelmap.c:160 msgid "Top Front Right" msgstr "Superiore frontale destro" -#: ../src/pulse/channelmap.c:160 +#: ../src/pulse/channelmap.c:162 msgid "Top Rear Center" msgstr "Superiore posteriore centrale" -#: ../src/pulse/channelmap.c:161 +#: ../src/pulse/channelmap.c:163 msgid "Top Rear Left" msgstr "Superiore posteriore sinistro" -#: ../src/pulse/channelmap.c:162 +#: ../src/pulse/channelmap.c:164 msgid "Top Rear Right" msgstr "Superiore posteriore destro" -#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167 -#: ../src/pulse/volume.c:170 ../src/pulse/volume.c:196 -#: ../src/pulse/volume.c:216 ../src/pulse/volume.c:246 +#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167 +#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265 +#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315 msgid "(invalid)" msgstr "(non valido)" -#: ../src/pulse/channelmap.c:808 +#: ../src/pulse/channelmap.c:751 msgid "Stereo" msgstr "Stereo" -#: ../src/pulse/channelmap.c:813 +#: ../src/pulse/channelmap.c:756 msgid "Surround 4.0" msgstr "Surround 4.0" -#: ../src/pulse/channelmap.c:819 +#: ../src/pulse/channelmap.c:762 msgid "Surround 4.1" msgstr "Surround 4.1" -#: ../src/pulse/channelmap.c:825 +#: ../src/pulse/channelmap.c:768 msgid "Surround 5.0" msgstr "Surround 5.0" -#: ../src/pulse/channelmap.c:831 +#: ../src/pulse/channelmap.c:774 msgid "Surround 5.1" msgstr "Surround 5.1" -#: ../src/pulse/channelmap.c:838 +#: ../src/pulse/channelmap.c:781 msgid "Surround 7.1" msgstr "Surround 7.1" @@ -1330,176 +1314,171 @@ msgstr "waitpid(): %s" msgid "Received message for unknown extension '%s'" msgstr "Ricevuto messaggio per l'estensione sconosciuta \"%s\"" -#: ../src/utils/pacat.c:94 +#: ../src/utils/pacat.c:107 +#, c-format +msgid "Failed to drain stream: %s\n" +msgstr "Svuotamento dello stream non riuscito: %s\n" + +#: ../src/utils/pacat.c:112 +msgid "Playback stream drained.\n" +msgstr "Stream di riproduzione svuotato.\n" + +#: ../src/utils/pacat.c:122 +msgid "Draining connection to server.\n" +msgstr "Svuotamento della connessione sul server.\n" + +#: ../src/utils/pacat.c:135 +#, c-format +msgid "pa_stream_drain(): %s\n" +msgstr "pa_stream_drain(): %s\n" + +#: ../src/utils/pacat.c:158 #, c-format msgid "pa_stream_write() failed: %s\n" msgstr "pa_stream_write() non riuscita: %s\n" -#: ../src/utils/pacat.c:133 +#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 #, c-format msgid "pa_stream_peek() failed: %s\n" msgstr "pa_stream_peek() non riuscita: %s\n" -#: ../src/utils/pacat.c:169 -#, c-format +#: ../src/utils/pacat.c:302 msgid "Stream successfully created.\n" msgstr "Creazione dello stream riuscita.\n" -#: ../src/utils/pacat.c:172 +#: ../src/utils/pacat.c:305 #, c-format msgid "pa_stream_get_buffer_attr() failed: %s\n" msgstr "pa_stream_get_buffer_attr() non riuscita: %s\n" # maxlength, fragsize e gli altri non so se vanno tradotti... -#: ../src/utils/pacat.c:176 +#: ../src/utils/pacat.c:309 #, c-format msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgstr "Metriche del buffer: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" # maxlength e fragsize non so se vanno tradotti... -#: ../src/utils/pacat.c:179 +#: ../src/utils/pacat.c:312 #, c-format msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgstr "Metriche del buffer: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:183 +#: ../src/utils/pacat.c:316 #, c-format msgid "Using sample spec '%s', channel map '%s'.\n" msgstr "In uso specifica di campionamento \"%s\", mappa di canali \"%s\".\n" -#: ../src/utils/pacat.c:187 +#: ../src/utils/pacat.c:320 #, c-format msgid "Connected to device %s (%u, %ssuspended).\n" msgstr "Connesso al device %s (%u, %ssospeso).\n" -#: ../src/utils/pacat.c:197 +#: ../src/utils/pacat.c:330 #, c-format msgid "Stream error: %s\n" msgstr "Errore di stream: %s\n" -#: ../src/utils/pacat.c:207 +#: ../src/utils/pacat.c:340 #, c-format msgid "Stream device suspended.%s \n" msgstr "Device stream sospeso.%s \n" -#: ../src/utils/pacat.c:209 +#: ../src/utils/pacat.c:342 #, c-format msgid "Stream device resumed.%s \n" msgstr "Device stream ripristinato.%s \n" -#: ../src/utils/pacat.c:217 +#: ../src/utils/pacat.c:350 #, c-format msgid "Stream underrun.%s \n" msgstr "Underrun dello stream.%s\n" -#: ../src/utils/pacat.c:224 +#: ../src/utils/pacat.c:357 #, c-format msgid "Stream overrun.%s \n" msgstr "Overrun dello stream.%s\n" -#: ../src/utils/pacat.c:231 +#: ../src/utils/pacat.c:364 #, c-format msgid "Stream started.%s \n" msgstr "Stream avviato.%s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 #, c-format msgid "Stream moved to device %s (%u, %ssuspended).%s \n" msgstr "Stream spostato sul device %s (%u, %ssospeso).%s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 msgid "not " msgstr "non " -#: ../src/utils/pacat.c:245 +#: ../src/utils/pacat.c:378 #, c-format msgid "Stream buffer attributes changed.%s \n" msgstr "Attributi del buffer di stream cambiati.%s \n" -#: ../src/utils/pacat.c:278 +#: ../src/utils/pacat.c:411 #, c-format msgid "Connection established.%s \n" msgstr "Connessione stabilita.%s \n" -#: ../src/utils/pacat.c:281 +#: ../src/utils/pacat.c:414 #, c-format msgid "pa_stream_new() failed: %s\n" msgstr "pa_stream_new() non riuscita: %s\n" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:442 #, c-format msgid "pa_stream_connect_playback() failed: %s\n" msgstr "pa_stream_connect_playback() non riuscita: %s\n" -#: ../src/utils/pacat.c:315 +#: ../src/utils/pacat.c:448 #, c-format msgid "pa_stream_connect_record() failed: %s\n" msgstr "pa_stream_connect_record() non riuscita: %s\n" -#: ../src/utils/pacat.c:329 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:762 ../src/utils/paplay.c:183 +#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 #, c-format msgid "Connection failure: %s\n" msgstr "Connessione non riuscita: %s\n" -#: ../src/utils/pacat.c:349 ../src/utils/paplay.c:75 -#, c-format -msgid "Failed to drain stream: %s\n" -msgstr "Svuotamento dello stream non riuscito: %s\n" - -#: ../src/utils/pacat.c:354 ../src/utils/paplay.c:80 -#, c-format -msgid "Playback stream drained.\n" -msgstr "Stream di riproduzione svuotato.\n" - -#: ../src/utils/pacat.c:364 ../src/utils/paplay.c:92 -#, c-format -msgid "Draining connection to server.\n" -msgstr "Svuotamento della connessione sul server.\n" - -#: ../src/utils/pacat.c:390 -#, c-format +#: ../src/utils/pacat.c:495 msgid "Got EOF.\n" msgstr "Ricevuto EOF.\n" -#: ../src/utils/pacat.c:396 -#, c-format -msgid "pa_stream_drain(): %s\n" -msgstr "pa_stream_drain(): %s\n" - -#: ../src/utils/pacat.c:406 +#: ../src/utils/pacat.c:500 #, c-format msgid "read() failed: %s\n" msgstr "read() non riuscita: %s\n" -#: ../src/utils/pacat.c:438 +#: ../src/utils/pacat.c:532 #, c-format msgid "write() failed: %s\n" msgstr "write() non riuscita: %s\n" -#: ../src/utils/pacat.c:459 -#, c-format +#: ../src/utils/pacat.c:553 msgid "Got signal, exiting.\n" msgstr "Ricevuto il segnale, uscita.\n" -#: ../src/utils/pacat.c:473 +#: ../src/utils/pacat.c:567 #, c-format msgid "Failed to get latency: %s\n" msgstr "Recupero della latenza non riuscito: %s\n" # dubbio: tempo o durata?? -#: ../src/utils/pacat.c:478 +#: ../src/utils/pacat.c:572 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "Tempo: %0.3f sec; Latenza: %0.0f microsec. \\r" -#: ../src/utils/pacat.c:498 +#: ../src/utils/pacat.c:592 #, c-format msgid "pa_stream_update_timing_info() failed: %s\n" msgstr "pa_stream_update_timing_info() non riuscita: %s\n" -#: ../src/utils/pacat.c:511 -#, c-format +#: ../src/utils/pacat.c:605 +#, fuzzy, c-format msgid "" "%s [options]\n" "\n" @@ -1525,8 +1504,10 @@ msgid "" "44100)\n" " --format=SAMPLEFORMAT The sample type, one of s16le, " "s16be, u8, float32le,\n" -" float32be, ulaw, alaw, s32le, s32be " -"(defaults to s16ne)\n" +" float32be, ulaw, alaw, s32le, s32be, " +"s24le, s24be,\n" +" s24-32le, s24-32be (defaults to " +"s16ne)\n" " --channels=CHANNELS The number of channels, 1 for mono, " "2 for stereo\n" " (defaults to 2)\n" @@ -1549,6 +1530,11 @@ msgid "" "bytes.\n" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" +" --property=PROPERTY=VALUE Set the specified property to the " +"specified value.\n" +" --raw Record/play raw PCM data.\n" +" --file-format=FFORMAT Record/play formatted PCM data.\n" +" --list-file-formats List available file formats.\n" msgstr "" "%s [OPZIONI]\n" "\n" @@ -1611,7 +1597,7 @@ msgstr "" "per\n" " richiesta specificato in byte.\n" -#: ../src/utils/pacat.c:612 +#: ../src/utils/pacat.c:727 #, c-format msgid "" "pacat %s\n" @@ -1622,89 +1608,134 @@ msgstr "" "Compilato con libpulse %s\n" "Link eseguito con libpulse %s\n" -#: ../src/utils/pacat.c:669 +#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "Mappa di canali \"%s\" non valida\n" + +#: ../src/utils/pacat.c:776 +#, fuzzy, c-format +msgid "Invalid stream name '%s'\n" +msgstr "Metodo di ricampionamento \"%s\" non valido." + +#: ../src/utils/pacat.c:813 #, c-format msgid "Invalid channel map '%s'\n" msgstr "Mappa di canali \"%s\" non valida\n" -#: ../src/utils/pacat.c:698 +#: ../src/utils/pacat.c:842 #, c-format msgid "Invalid latency specification '%s'\n" msgstr "Specifica di latenza \"%s\" non valida\n" # esecuzione??? -#: ../src/utils/pacat.c:705 +#: ../src/utils/pacat.c:849 #, c-format msgid "Invalid process time specification '%s'\n" msgstr "Specifica di tempo di elaborazione \"%s\" non valida\n" -#: ../src/utils/pacat.c:716 +#: ../src/utils/pacat.c:861 +#, fuzzy, c-format +msgid "Invalid property '%s'\n" +msgstr "Metodo di ricampionamento \"%s\" non valido." + +#: ../src/utils/pacat.c:878 #, c-format +msgid "Unknown file format %s." +msgstr "" + +#: ../src/utils/pacat.c:897 msgid "Invalid sample specification\n" msgstr "Specifica di campionamento non valida\n" -#: ../src/utils/pacat.c:721 +#: ../src/utils/pacat.c:907 +#, c-format +msgid "open(): %s\n" +msgstr "open(): %s\n" + +#: ../src/utils/pacat.c:912 #, c-format +msgid "dup2(): %s\n" +msgstr "dup2(): %s\n" + +#: ../src/utils/pacat.c:919 +msgid "Too many arguments.\n" +msgstr "Troppi argomenti.\n" + +#: ../src/utils/pacat.c:930 +#, fuzzy +msgid "Failed to generate sample specification for file.\n" +msgstr "Recupero delle informazioni del campione non riuscito: %s\n" + +#: ../src/utils/pacat.c:950 +#, fuzzy +msgid "Failed to open audio file.\n" +msgstr "Apertura del file audio non riuscita.\n" + +#: ../src/utils/pacat.c:956 +msgid "" +"Warning: specified sample specification will be overwritten with " +"specification from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "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 "" + +#: ../src/utils/pacat.c:979 msgid "Channel map doesn't match sample specification\n" msgstr "La mappa di canali non corrisponde alla specifica di campionamento\n" -#: ../src/utils/pacat.c:728 -#, c-format -msgid "Opening a %s stream with sample specification '%s'.\n" +#: ../src/utils/pacat.c:990 +msgid "Warning: failed to write channel map to file.\n" +msgstr "" + +#: ../src/utils/pacat.c:1005 +#, fuzzy, c-format +msgid "" +"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" msgstr "Apertura di uno stream %s con specifica di campionamento \"%s\".\n" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "recording" msgstr "registrazione" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "playback" msgstr "riproduzione" -#: ../src/utils/pacat.c:736 -#, c-format -msgid "open(): %s\n" -msgstr "open(): %s\n" - -#: ../src/utils/pacat.c:741 -#, c-format -msgid "dup2(): %s\n" -msgstr "dup2(): %s\n" - -#: ../src/utils/pacat.c:751 -#, c-format -msgid "Too many arguments.\n" -msgstr "Troppi argomenti.\n" - -#: ../src/utils/pacat.c:764 ../src/utils/pasuspender.c:280 -#: ../src/utils/pactl.c:1017 ../src/utils/paplay.c:381 +#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 +#: ../src/utils/pactl.c:1104 #, c-format msgid "pa_mainloop_new() failed.\n" msgstr "pa_mainloop_new() non riuscita.\n" -#: ../src/utils/pacat.c:785 -#, c-format +#: ../src/utils/pacat.c:1051 msgid "io_new() failed.\n" msgstr "io_new() non riuscita.\n" -#: ../src/utils/pacat.c:791 ../src/utils/pasuspender.c:293 -#: ../src/utils/pactl.c:1031 ../src/utils/paplay.c:396 +#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 +#: ../src/utils/pactl.c:1116 #, c-format msgid "pa_context_new() failed.\n" msgstr "pa_context_new() non riuscita.\n" -#: ../src/utils/pacat.c:799 +#: ../src/utils/pacat.c:1066 #, fuzzy, c-format msgid "pa_context_connect() failed: %s\n" msgstr "pa_context_connect() non riuscita: %s" -#: ../src/utils/pacat.c:810 -#, c-format +#: ../src/utils/pacat.c:1077 msgid "time_new() failed.\n" msgstr "time_new() non riuscita.\n" -#: ../src/utils/pacat.c:817 ../src/utils/pasuspender.c:301 -#: ../src/utils/pactl.c:1042 ../src/utils/paplay.c:410 +#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 +#: ../src/utils/pactl.c:1127 #, c-format msgid "pa_mainloop_run() failed.\n" msgstr "pa_mainloop_run() non riuscita.\n" @@ -1735,8 +1766,7 @@ msgstr "Ripristino non riuscito: %s\n" msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "ATTENZIONE: server audio non locale, impossibile sospendere.\n" -#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:768 -#: ../src/utils/paplay.c:191 +#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" msgstr "Ricevuto SIGINT, in uscita.\n" @@ -1765,7 +1795,7 @@ msgstr "" "connettersi\n" "\n" -#: ../src/utils/pasuspender.c:251 +#: ../src/utils/pasuspender.c:248 #, c-format msgid "" "pasuspender %s\n" @@ -1776,34 +1806,34 @@ msgstr "" "Compilato con libpulse %s\n" "Link eseguito con libpulse %s\n" -#: ../src/utils/pactl.c:108 +#: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" msgstr "Recupero delle statistiche non riuscito: %s\n" -#: ../src/utils/pactl.c:114 +#: ../src/utils/pactl.c:134 #, c-format msgid "Currently in use: %u blocks containing %s bytes total.\n" msgstr "Attualmente in uso: %u blocchi contenenti %s byte in totale.\n" -#: ../src/utils/pactl.c:117 +#: ../src/utils/pactl.c:137 #, c-format msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n" msgstr "" "Allocati durante l'intera esecuzione: %u blocchi contenenti %s byte in " "totale.\n" -#: ../src/utils/pactl.c:120 +#: ../src/utils/pactl.c:140 #, c-format msgid "Sample cache size: %s\n" msgstr "Dimensione della cache dei campioni: %s\n" -#: ../src/utils/pactl.c:129 +#: ../src/utils/pactl.c:149 #, c-format msgid "Failed to get server information: %s\n" msgstr "Recupero delle informazioni del server non riuscito: %s\n" -#: ../src/utils/pactl.c:137 +#: ../src/utils/pactl.c:157 #, c-format msgid "" "User name: %s\n" @@ -1826,7 +1856,7 @@ msgstr "" "Sorgente predefinita: %s\n" "Cookie: %08x\n" -#: ../src/utils/pactl.c:178 +#: ../src/utils/pactl.c:198 #, c-format msgid "Failed to get sink information: %s\n" msgstr "Recupero delle informazioni del sink non riuscito: %s\n" @@ -1834,7 +1864,7 @@ msgstr "Recupero delle informazioni del sink non riuscito: %s\n" # nel relativo messaggio per il source # c'è "monitor of sink", quindi assumo che # qui dovesse essere "monitor of source" -#: ../src/utils/pactl.c:194 +#: ../src/utils/pactl.c:214 #, c-format msgid "" "Sink #%u\n" @@ -1873,12 +1903,22 @@ msgstr "" "\tProprietà :\n" "\t\t%s\n" -#: ../src/utils/pactl.c:258 +#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 +#, fuzzy, c-format +msgid "\tPorts:\n" +msgstr "\tProfili:\n" + +#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 +#, fuzzy, c-format +msgid "\tActive Port: %s\n" +msgstr "\tProfilo attivo: %s\n" + +#: ../src/utils/pactl.c:290 #, c-format msgid "Failed to get source information: %s\n" msgstr "Recupero delle informazioni della sorgente non riuscito: %s\n" -#: ../src/utils/pactl.c:274 +#: ../src/utils/pactl.c:306 #, c-format msgid "" "Source #%u\n" @@ -1917,20 +1957,20 @@ msgstr "" "\tProprietà :\n" "\t\t%s\n" -#: ../src/utils/pactl.c:306 ../src/utils/pactl.c:350 ../src/utils/pactl.c:385 -#: ../src/utils/pactl.c:422 ../src/utils/pactl.c:481 ../src/utils/pactl.c:482 -#: ../src/utils/pactl.c:492 ../src/utils/pactl.c:536 ../src/utils/pactl.c:537 -#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:586 ../src/utils/pactl.c:587 -#: ../src/utils/pactl.c:594 +#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429 +#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526 +#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581 +#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631 +#: ../src/utils/pactl.c:638 msgid "n/a" msgstr "N/D" -#: ../src/utils/pactl.c:324 +#: ../src/utils/pactl.c:368 #, c-format msgid "Failed to get module information: %s\n" msgstr "Recupero delle informazioni del modulo non riuscito: %s\n" -#: ../src/utils/pactl.c:342 +#: ../src/utils/pactl.c:386 #, c-format msgid "" "Module #%u\n" @@ -1947,12 +1987,12 @@ msgstr "" "\tProprietà :\n" "\t\t%s\n" -#: ../src/utils/pactl.c:361 +#: ../src/utils/pactl.c:405 #, c-format msgid "Failed to get client information: %s\n" msgstr "Recupero delle informazioni del client non riuscito: %s\n" -#: ../src/utils/pactl.c:379 +#: ../src/utils/pactl.c:423 #, c-format msgid "" "Client #%u\n" @@ -1967,12 +2007,12 @@ msgstr "" "\tProprietà :\n" "\t\t%s\n" -#: ../src/utils/pactl.c:396 +#: ../src/utils/pactl.c:440 #, c-format msgid "Failed to get card information: %s\n" msgstr "Recupero delle informazioni della scheda non riuscito: %s\n" -#: ../src/utils/pactl.c:414 +#: ../src/utils/pactl.c:458 #, c-format msgid "" "Card #%u\n" @@ -1989,12 +2029,12 @@ msgstr "" "\tProprietà :\n" "\t\t%s\n" -#: ../src/utils/pactl.c:428 +#: ../src/utils/pactl.c:472 #, c-format msgid "\tProfiles:\n" msgstr "\tProfili:\n" -#: ../src/utils/pactl.c:434 +#: ../src/utils/pactl.c:478 #, c-format msgid "\tActive Profile: %s\n" msgstr "\tProfilo attivo: %s\n" @@ -2003,13 +2043,13 @@ msgstr "\tProfilo attivo: %s\n" # A stream that is connected to an output device, i.e. an input for a sink. # # from http://pulseaudio.org/wiki/WritingVolumeControlUIs -#: ../src/utils/pactl.c:445 +#: ../src/utils/pactl.c:489 #, c-format msgid "Failed to get sink input information: %s\n" msgstr "" "Recupero delle informazioni dell'ingresso per il sink non riuscito: %s\n" -#: ../src/utils/pactl.c:464 +#: ../src/utils/pactl.c:508 #, c-format msgid "" "Sink Input #%u\n" @@ -2050,13 +2090,13 @@ msgstr "" # A stream that is connected to an input device, i.e. an output of a source. # # from http://pulseaudio.org/wiki/WritingVolumeControlUIs -#: ../src/utils/pactl.c:503 +#: ../src/utils/pactl.c:547 #, c-format msgid "Failed to get source output information: %s\n" msgstr "" "Recupero delle informazioni dell'uscita per la sorgente non riuscito: %s\n" -#: ../src/utils/pactl.c:523 +#: ../src/utils/pactl.c:567 #, c-format msgid "" "Source Output #%u\n" @@ -2085,13 +2125,13 @@ msgstr "" "\tProprietà :\n" "\t\t%s\n" -#: ../src/utils/pactl.c:554 +#: ../src/utils/pactl.c:598 #, c-format msgid "Failed to get sample information: %s\n" msgstr "Recupero delle informazioni del campione non riuscito: %s\n" # campiona lazy?? -#: ../src/utils/pactl.c:572 +#: ../src/utils/pactl.c:616 #, c-format msgid "" "Sample #%u\n" @@ -2122,23 +2162,22 @@ msgstr "" "\tProprietà :\n" "\t\t%s\n" -#: ../src/utils/pactl.c:602 ../src/utils/pactl.c:612 +#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 #, c-format msgid "Failure: %s\n" msgstr "Fallimento: %s\n" -#: ../src/utils/pactl.c:636 +#: ../src/utils/pactl.c:680 #, c-format msgid "Failed to upload sample: %s\n" msgstr "Caricamento del campione non riuscito: %s\n" -#: ../src/utils/pactl.c:653 -#, c-format +#: ../src/utils/pactl.c:697 msgid "Premature end of file\n" msgstr "Fine del file prematura\n" -#: ../src/utils/pactl.c:774 -#, c-format +#: ../src/utils/pactl.c:826 +#, fuzzy, c-format msgid "" "%s [options] stat\n" "%s [options] list\n" @@ -2153,6 +2192,8 @@ msgid "" "%s [options] suspend-sink [SINK] 1|0\n" "%s [options] suspend-source [SOURCE] 1|0\n" "%s [options] set-card-profile [CARD] [PROFILE] \n" +"%s [options] set-sink-port [SINK] [PORT] \n" +"%s [options] set-source-port [SOURCE] [PORT] \n" "\n" " -h, --help Show this help\n" " --version Show version\n" @@ -2182,7 +2223,7 @@ msgstr "" " -s, --server=SERVER Il nome del server a cui connettersi\n" " -n, --client-name=NOME Come chiamare questo client sul server\n" -#: ../src/utils/pactl.c:826 +#: ../src/utils/pactl.c:880 #, c-format msgid "" "pactl %s\n" @@ -2193,48 +2234,44 @@ msgstr "" "Compilato con libpulse %s\n" "Link eseguito con libpulse %s\n" -#: ../src/utils/pactl.c:865 -#, c-format +#: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "Specificare un file campione da caricare\n" -#: ../src/utils/pactl.c:887 -#, c-format +#: ../src/utils/pactl.c:939 msgid "Failed to open sound file.\n" msgstr "Apertura del file audio non riuscita.\n" -#: ../src/utils/pactl.c:899 -#, c-format +#: ../src/utils/pactl.c:951 +#, fuzzy +msgid "Warning: Failed to determine sample specification from file.\n" +msgstr "Apertura di uno stream %s con specifica di campionamento \"%s\".\n" + +#: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" msgstr "È necessario specificare un nome di campione da riprodurre\n" -#: ../src/utils/pactl.c:911 -#, c-format +#: ../src/utils/pactl.c:973 msgid "You have to specify a sample name to remove\n" msgstr "È necessario specificare un nome di campione da rimuovere\n" -#: ../src/utils/pactl.c:919 -#, c-format +#: ../src/utils/pactl.c:982 msgid "You have to specify a sink input index and a sink\n" msgstr "È necessario specificare un ingresso per sink e un sink\n" -#: ../src/utils/pactl.c:928 -#, c-format +#: ../src/utils/pactl.c:992 msgid "You have to specify a source output index and a source\n" msgstr "È necessario specificare una uscita per sorgente e una sorgente\n" -#: ../src/utils/pactl.c:942 -#, c-format +#: ../src/utils/pactl.c:1007 msgid "You have to specify a module name and arguments.\n" msgstr "È necessario specificare un nome di modulo e gli argomenti.\n" -#: ../src/utils/pactl.c:962 -#, c-format +#: ../src/utils/pactl.c:1027 msgid "You have to specify a module index\n" msgstr "È necessario specificare un indice di modulo\n" -#: ../src/utils/pactl.c:972 -#, c-format +#: ../src/utils/pactl.c:1037 msgid "" "You may not specify more than one sink. You have to specify a boolean " "value.\n" @@ -2242,8 +2279,7 @@ msgstr "" "Non è possibile specificare più di un sink. È necessario specificare un " "valore booleano.\n" -#: ../src/utils/pactl.c:985 -#, c-format +#: ../src/utils/pactl.c:1050 msgid "" "You may not specify more than one source. You have to specify a boolean " "value.\n" @@ -2251,18 +2287,28 @@ msgstr "" "Non è possibile specificare più di una sorgente. È necessario specificare un " "valore booleano.\n" -#: ../src/utils/pactl.c:997 -#, c-format +#: ../src/utils/pactl.c:1062 msgid "You have to specify a card name/index and a profile name\n" msgstr "" "È necessario specificare un nome/indice di scheda e un nome di profilo.\n" -#: ../src/utils/pactl.c:1012 -#, c-format +#: ../src/utils/pactl.c:1073 +#, fuzzy +msgid "You have to specify a sink name/index and a port name\n" +msgstr "" +"È necessario specificare un nome/indice di scheda e un nome di profilo.\n" + +#: ../src/utils/pactl.c:1084 +#, fuzzy +msgid "You have to specify a source name/index and a port name\n" +msgstr "" +"È necessario specificare un nome/indice di scheda e un nome di profilo.\n" + +#: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "Nessun comando valido specificato.\n" -#: ../src/utils/pactl.c:1037 ../src/utils/paplay.c:404 +#: ../src/utils/pactl.c:1122 #, c-format msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect() non riuscita: %s" @@ -2348,131 +2394,48 @@ msgstr "Caricamento dei dati cookie non riuscito\n" msgid "Not yet implemented.\n" msgstr "Non ancora implementato.\n" -#: ../src/utils/pacmd.c:64 +#: ../src/utils/pacmd.c:61 +msgid "No PulseAudio daemon running, or not running as session daemon." +msgstr "" + +#: ../src/utils/pacmd.c:66 #, c-format msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s" msgstr "socket(PF_UNIX, SOCK_STREAM, 0): %s" -#: ../src/utils/pacmd.c:81 +#: ../src/utils/pacmd.c:83 #, c-format msgid "connect(): %s" msgstr "connect(): %s" -#: ../src/utils/pacmd.c:89 +#: ../src/utils/pacmd.c:91 msgid "Failed to kill PulseAudio daemon." msgstr "Uccisione del demone PulseAudio non riuscita." -#: ../src/utils/pacmd.c:97 +#: ../src/utils/pacmd.c:99 msgid "Daemon not responding." msgstr "Il demone non sta rispondendo." -#: ../src/utils/pacmd.c:144 +#: ../src/utils/pacmd.c:146 #, c-format msgid "select(): %s" msgstr "select(): %s" -#: ../src/utils/pacmd.c:154 ../src/utils/pacmd.c:171 +#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173 #, c-format msgid "read(): %s" msgstr "read(): %s" -#: ../src/utils/pacmd.c:187 ../src/utils/pacmd.c:201 +#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203 #, c-format msgid "write(): %s" msgstr "write(): %s" -#: ../src/utils/paplay.c:139 -#, c-format -msgid "Stream successfully created\n" -msgstr "Creazione dello stream riuscita\n" - -# fixme!!! errror -#: ../src/utils/paplay.c:144 -#, c-format -msgid "Stream errror: %s\n" -msgstr "Errore nello stream: %s\n" - -#: ../src/utils/paplay.c:165 -#, c-format -msgid "Connection established.\n" -msgstr "Connessione stabilita.\n" - -#: ../src/utils/paplay.c:198 -#, c-format -msgid "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" -msgstr "" -"%s [OPZIONI] [FILE]\n" -"\n" -" -h, --help Mostra questo aiuto\n" -" --version Mostra la versione\n" -"\n" -" -v, --verbose Abilita la modalità prolissa\n" -"\n" -" -s, --server=SERVER Il nome del server a cui " -"connettersi\n" -" -d, --device=DEVICE Il nome del sink a cui connettersi\n" -" -n, --client-name=NOME Come chiamare questo client sul " -"server\n" -" --stream-name=NOME Come chiamare questo stream sul " -"server\n" -" --volume=VOLUME Specifica il volume iniziale " -"(lineare) \n" -" nell'intervallo 0...65536\n" -" --channel-map=MAPPA_CANALI Imposta la mappa di canali da usare\n" - -#: ../src/utils/paplay.c:255 -#, c-format -msgid "" -"paplay %s\n" -"Compiled with libpulse %s\n" -"Linked with libpulse %s\n" -msgstr "" -"paplay %s\n" -"Compilato con libpulse %s\n" -"Link eseguito con libpulse %s\n" - -#: ../src/utils/paplay.c:292 -#, c-format -msgid "Invalid channel map\n" -msgstr "Mappa dei canali non valida\n" - -#: ../src/utils/paplay.c:314 -#, c-format -msgid "Failed to open file '%s'\n" -msgstr "Apertura del file \"%s\" non riuscita\n" - -#: ../src/utils/paplay.c:350 -#, c-format -msgid "Channel map doesn't match file.\n" -msgstr "La mappa dei canali non corrisponde al file.\n" - -#: ../src/utils/paplay.c:376 -#, c-format -msgid "Using sample spec '%s'\n" -msgstr "In uso la specifica di campionamento \"%s\"\n" - #: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 msgid "Cannot access autospawn lock." msgstr "Impossibile accedere al lock di autospawn." -#: ../src/modules/alsa/alsa-sink.c:393 ../src/modules/alsa/alsa-sink.c:541 +#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2489,7 +2452,7 @@ msgstr "" "Ci si è alzati con impostato POLLOUT -- come sempre un subsequent " "snd_pcm_avail() ritorna 0 o un altro valore < min_avail." -#: ../src/modules/alsa/alsa-source.c:377 ../src/modules/alsa/alsa-source.c:516 +#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2506,34 +2469,133 @@ msgstr "" "Ci si è alzati con impostato POLLIN -- come sempre un subsequent " "snd_pcm_avail() ritorna 0 o un altro valore < min_avail." -#: ../src/modules/alsa/module-alsa-card.c:114 -#, c-format -msgid "Output %s + Input %s" -msgstr "Output %s + Input %s" - -#: ../src/modules/alsa/module-alsa-card.c:117 -#, c-format -msgid "Output %s" -msgstr "Output %s" - -#: ../src/modules/alsa/module-alsa-card.c:121 -#, c-format -msgid "Input %s" -msgstr "Input %s" - -#: ../src/modules/alsa/module-alsa-card.c:170 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2006 +#: ../src/modules/alsa/module-alsa-card.c:152 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 msgid "Off" msgstr "Spento" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1976 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 msgid "High Fidelity Playback (A2DP)" msgstr "Playback ad alta fidabilità (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1991 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 msgid "Telephony Duplex (HSP/HFP)" msgstr "Doppino Telefonico (HSP/HFP)" -#: ../src/modules/reserve-wrap.c:139 +#: ../src/modules/reserve-wrap.c:151 msgid "PulseAudio Sound Server" msgstr "Server sonoro PulseAudio" + +#~ msgid "Analog Mono" +#~ msgstr "Mono analogico" + +#~ msgid "Analog Stereo" +#~ msgstr "Stereo analogico" + +#~ msgid "Digital Stereo (IEC958)" +#~ msgstr "Stereo digitale (IEC958)" + +#~ msgid "Digital Stereo (HDMI)" +#~ msgstr "Stereo digitale (HDMI)" + +#~ msgid "Analog Surround 4.0" +#~ msgstr "Surround analogico 4.0" + +#~ msgid "Digital Surround 4.0 (IEC958/AC3)" +#~ msgstr "Surround digitale 4.0 (IEC958/AC3)" + +#~ msgid "Analog Surround 4.1" +#~ msgstr "Surround analogico 4.1" + +#~ msgid "Analog Surround 5.0" +#~ msgstr "Surround analogico 5.0" + +#~ msgid "Analog Surround 5.1" +#~ msgstr "Surround analogico 5.1" + +#~ msgid "Digital Surround 5.1 (IEC958/AC3)" +#~ msgstr "Surround digitale 5.1 (IEC958/AC3)" + +#~ msgid "Analog Surround 7.1" +#~ msgstr "Surround analogico 7.1" + +#~ msgid "Output %s + Input %s" +#~ msgstr "Output %s + Input %s" + +#~ msgid "Output %s" +#~ msgstr "Output %s" + +#~ msgid "Input %s" +#~ msgstr "Input %s" + +#~ msgid "Stream successfully created\n" +#~ msgstr "Creazione dello stream riuscita\n" + +# fixme!!! errror +#~ msgid "Stream errror: %s\n" +#~ msgstr "Errore nello stream: %s\n" + +#~ msgid "Connection established.\n" +#~ msgstr "Connessione stabilita.\n" + +#~ msgid "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Show this help\n" +#~ " --version Show version\n" +#~ "\n" +#~ " -v, --verbose Enable verbose operation\n" +#~ "\n" +#~ " -s, --server=SERVER The name of the server to connect " +#~ "to\n" +#~ " -d, --device=DEVICE The name of the sink to connect " +#~ "to\n" +#~ " -n, --client-name=NAME How to call this client on the " +#~ "server\n" +#~ " --stream-name=NAME How to call this stream on the " +#~ "server\n" +#~ " --volume=VOLUME Specify the initial (linear) " +#~ "volume in range 0...65536\n" +#~ " --channel-map=CHANNELMAP Set the channel map to the use\n" +#~ msgstr "" +#~ "%s [OPZIONI] [FILE]\n" +#~ "\n" +#~ " -h, --help Mostra questo aiuto\n" +#~ " --version Mostra la versione\n" +#~ "\n" +#~ " -v, --verbose Abilita la modalità prolissa\n" +#~ "\n" +#~ " -s, --server=SERVER Il nome del server a cui " +#~ "connettersi\n" +#~ " -d, --device=DEVICE Il nome del sink a cui " +#~ "connettersi\n" +#~ " -n, --client-name=NOME Come chiamare questo client sul " +#~ "server\n" +#~ " --stream-name=NOME Come chiamare questo stream sul " +#~ "server\n" +#~ " --volume=VOLUME Specifica il volume iniziale " +#~ "(lineare) \n" +#~ " nell'intervallo 0...65536\n" +#~ " --channel-map=MAPPA_CANALI Imposta la mappa di canali da " +#~ "usare\n" + +#~ msgid "" +#~ "paplay %s\n" +#~ "Compiled with libpulse %s\n" +#~ "Linked with libpulse %s\n" +#~ msgstr "" +#~ "paplay %s\n" +#~ "Compilato con libpulse %s\n" +#~ "Link eseguito con libpulse %s\n" + +#~ msgid "Invalid channel map\n" +#~ msgstr "Mappa dei canali non valida\n" + +#~ msgid "Failed to open file '%s'\n" +#~ msgstr "Apertura del file \"%s\" non riuscita\n" + +#~ msgid "Channel map doesn't match file.\n" +#~ msgstr "La mappa dei canali non corrisponde al file.\n" + +#~ msgid "Using sample spec '%s'\n" +#~ msgstr "In uso la specifica di campionamento \"%s\"\n" @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio.master-tx.pulseaudio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-21 23:02+0200\n" +"POT-Creation-Date: 2009-06-17 23:42+0200\n" "PO-Revision-Date: 2009-04-07 11:13+0530\n" "Last-Translator: Shankar Prasad <svenkate@redhat.com>\n" "Language-Team: Kannada <en@li.org>\n" @@ -17,51 +17,7 @@ msgstr "" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../src/modules/alsa/alsa-util.c:532 -msgid "Analog Mono" -msgstr "ಅನಲಾಗೠಮೊನೊ" - -#: ../src/modules/alsa/alsa-util.c:540 -msgid "Analog Stereo" -msgstr "ಅನಲಾಗೠಸà³à²Ÿà³€à²°à²¿à²¯à³‹" - -#: ../src/modules/alsa/alsa-util.c:548 -msgid "Digital Stereo (IEC958)" -msgstr "ಡಿಜಿಟಲೠಸà³à²Ÿà³€à²°à²¿à²¯à³‹ (IEC958)" - -#: ../src/modules/alsa/alsa-util.c:556 -msgid "Digital Stereo (HDMI)" -msgstr "ಡಿಜಿಟಲೠಸà³à²Ÿà³€à²°à²¿à²¯à³‹ (HDMI)" - -#: ../src/modules/alsa/alsa-util.c:565 -msgid "Analog Surround 4.0" -msgstr "ಅನಲಾಗೠ4.0" - -#: ../src/modules/alsa/alsa-util.c:574 -msgid "Digital Surround 4.0 (IEC958/AC3)" -msgstr "ಡಿಜಿಟಲೠಸರೌಂಡೠ4.0 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:584 -msgid "Analog Surround 4.1" -msgstr "ಅನಲಾಗೠಸರೌಂಡೠ4.1" - -#: ../src/modules/alsa/alsa-util.c:594 -msgid "Analog Surround 5.0" -msgstr "ಅನಲಾಗೠಸರೌಂಡೠ5.0" - -#: ../src/modules/alsa/alsa-util.c:604 -msgid "Analog Surround 5.1" -msgstr "ಅನಲಾಗೠಸರೌಂಡೠ5.1" - -#: ../src/modules/alsa/alsa-util.c:614 -msgid "Digital Surround 5.1 (IEC958/AC3)" -msgstr "ಡಿಜಿಟಲೠಸರೌಂಡೠ5.1 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:625 -msgid "Analog Surround 7.1" -msgstr "ಡಿಜಿಟಲೠಸರೌಂಡೠ7.1" - -#: ../src/modules/alsa/alsa-util.c:1646 +#: ../src/modules/alsa/alsa-util.c:1015 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -73,7 +29,7 @@ msgstr "" "ಇದಕà³à²•à³† ALSA ಚಾಲಕ '%s' ದಲà³à²²à²¿à²¨ ಒಂದೠದೋಷದ ಕಾರಣವಿರಬಹà³à²¦à³. ದಯವಿಟà³à²Ÿà³à²ˆ ತೊಂದರೆಯನà³à²¨à³ ALSA " "ವಿಕಸನಗಾರರ ಗಮನಕà³à²•à³† ತನà³à²¨à²¿." -#: ../src/modules/alsa/alsa-util.c:1687 +#: ../src/modules/alsa/alsa-util.c:1056 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -85,7 +41,7 @@ msgstr "" "ಇದಕà³à²•à³† ALSA ಚಾಲಕ '%s' ದಲà³à²²à²¿à²¨ ಒಂದೠದೋಷದ ಕಾರಣವಿರಬಹà³à²¦à³. ದಯವಿಟà³à²Ÿà³à²ˆ ತೊಂದರೆಯನà³à²¨à³ ALSA " "ವಿಕಸನಗಾರರ ಗಮನಕà³à²•à³† ತನà³à²¨à²¿." -#: ../src/modules/alsa/alsa-util.c:1734 +#: ../src/modules/alsa/alsa-util.c:1103 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -97,11 +53,24 @@ msgstr "" "ಇದಕà³à²•à³† ALSA ಚಾಲಕ '%s' ದಲà³à²²à²¿à²¨ ಒಂದೠದೋಷದ ಕಾರಣವಿರಬಹà³à²¦à³. ದಯವಿಟà³à²Ÿà³à²ˆ ತೊಂದರೆಯನà³à²¨à³ ALSA " "ವಿಕಸನಗಾರರ ಗಮನಕà³à²•à³† ತನà³à²¨à²¿." -#: ../src/pulsecore/sink.c:2141 +#: ../src/modules/module-ladspa-sink.c:49 +msgid "Virtual LADSPA sink" +msgstr "" + +#: ../src/modules/module-ladspa-sink.c:53 +msgid "" +"sink_name=<name for the sink> sink_properties=<properties for the sink> " +"master=<name of sink to filter> format=<sample format> rate=<sample rate> " +"channels=<number of channels> channel_map=<channel map> plugin=<ladspa " +"plugin name> label=<ladspa plugin label> control=<comma seperated list of " +"input control values>" +msgstr "" + +#: ../src/pulsecore/sink.c:2394 msgid "Internal Audio" msgstr "ಆಂತರಿಕ ಆಡಿಯೊ" -#: ../src/pulsecore/sink.c:2147 +#: ../src/pulsecore/sink.c:2400 msgid "Modem" msgstr "ಮಾಡೆಮà³:" @@ -171,105 +140,105 @@ msgstr "auth ಅನà³à²¨à³ ಪಡೆಯಲೠಸಾಧà³à²¯à²µà²¾à²—ಿಲೠmsgid "PolicyKit responded with '%s'" msgstr "PolicyKit '%s' ನೊಂದಿಗೆ ಪà³à²°à²¤à³à²¯à³à²¤à³à²¤à²°à²¿à²¸à²¿à²¦à³†" -#: ../src/daemon/main.c:138 +#: ../src/daemon/main.c:142 #, c-format msgid "Got signal %s." msgstr "%s ನಿಂದ ಸಂಕೇತವೠದೊರೆತಿದೆ." -#: ../src/daemon/main.c:165 +#: ../src/daemon/main.c:169 msgid "Exiting." msgstr "ನಿರà³à²—ಮಿಸà³à²¤à³à²¤à²¿à²¦à³†." -#: ../src/daemon/main.c:183 +#: ../src/daemon/main.c:187 #, c-format msgid "Failed to find user '%s'." msgstr "ಬಳಕೆದಾರ '%s' ಅನà³à²¨à³ ಪತà³à²¤à³† ಮಾಡಲೠವಿಫಲಗೊಂಡಿದೆ." -#: ../src/daemon/main.c:188 +#: ../src/daemon/main.c:192 #, c-format msgid "Failed to find group '%s'." msgstr "ಗà³à²‚ಪೠ'%s' ಅನà³à²¨à³ ಪತà³à²¤à³† ಮಾಡಲೠವಿಫಲಗೊಂಡಿದೆ." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:196 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "ಬಳಕೆದಾರ '%s' (UID %lu) ಹಾಗೠಗà³à²‚ಪೠ'%s' (GID %lu) ಕಂಡà³à²¬à²‚ದಿದೆ." -#: ../src/daemon/main.c:197 +#: ../src/daemon/main.c:201 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "ಬಳಕೆದಾರ '%s' ರ GID ಹಾಗೠಗà³à²‚ಪೠ'%s' ತಾಳೆಯಾಗà³à²¤à³à²¤à²¿à²²à³à²²." -#: ../src/daemon/main.c:202 +#: ../src/daemon/main.c:206 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "ಬಳಕೆದಾರ '%s' ರ ನೆಲೆ ಕೋಶವೠ'%s' ಆಗಿಲà³à²², ಆಲಕà³à²·à²¿à²¸à²²à²¾à²—à³à²¤à³à²¤à²¿à²¦à³†." -#: ../src/daemon/main.c:205 ../src/daemon/main.c:210 +#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 #, c-format msgid "Failed to create '%s': %s" msgstr "'%s' ಅನà³à²¨à³ ರಚಿಸà³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ: %s" -#: ../src/daemon/main.c:217 +#: ../src/daemon/main.c:221 #, c-format msgid "Failed to change group list: %s" msgstr "ಗà³à²‚ಪಿನ ಪಟà³à²Ÿà²¿à²¯à²¨à³à²¨à³ ಬದಲಾಯಿಸಲೠವಿಫಲಗೊಂಡಿದೆ: %s" -#: ../src/daemon/main.c:233 +#: ../src/daemon/main.c:237 #, c-format msgid "Failed to change GID: %s" msgstr "GID ಅನà³à²¨à³ ಬದಲಾಯಿಸಲೠವಿಫಲಗೊಂಡಿದೆ: %s" -#: ../src/daemon/main.c:249 +#: ../src/daemon/main.c:253 #, c-format msgid "Failed to change UID: %s" msgstr "UID ಅನà³à²¨à³ ಬದಲಾಯಿಸಲೠವಿಫಲಗೊಂಡಿದೆ: %s" -#: ../src/daemon/main.c:263 +#: ../src/daemon/main.c:267 msgid "Successfully dropped root privileges." msgstr "ರೂಟೠಸವಲತà³à²¤à³à²—ಳನà³à²¨à³ ಯಶಸà³à²µà²¿à²¯à²¾à²—ಿ ಬಿಡಲಾಗಿದೆ." -#: ../src/daemon/main.c:271 +#: ../src/daemon/main.c:275 msgid "System wide mode unsupported on this platform." msgstr "ವà³à²¯à²µà²¸à³à²¥à³†à²¯à²¾à²¦à³à²¯à²‚ತದ ಕà³à²°à²®à²•à³à²•à³† ಈ ಪà³à²²à²¾à²Ÿà³â€Œà²«à²¾à²°à³à²®à²¿à²¨à²²à³à²²à²¿ ಬೆಂಬಲವಿಲà³à²²." -#: ../src/daemon/main.c:289 +#: ../src/daemon/main.c:293 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) ವಿಫಲಗೊಂಡಿದೆ: %s" -#: ../src/daemon/main.c:477 +#: ../src/daemon/main.c:481 msgid "Failed to parse command line." msgstr "ಆಜà³à²žà²¾ ಸಾಲನà³à²¨à³ ಪಾರà³à²¸à³ ಮಾಡà³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ." -#: ../src/daemon/main.c:501 +#: ../src/daemon/main.c:505 #, c-format msgid "We're in the group '%s', allowing high-priority scheduling." msgstr "" "ನಾವೠ'%s' ಗà³à²‚ಪಿನಲà³à²²à²¿à²¦à³à²¦à³‡à²µà³†, ಹಾಗೠಹೆಚà³à²šà³-ಆದà³à²¯à²¤à³† ಶೆಡà³à²¯à³‚ಲಿಂಗೠಅನà³à²¨à³ ಅನà³à²®à²¤à²¿à²¸à³à²¤à³à²¤à³‡à²µà³†." -#: ../src/daemon/main.c:508 +#: ../src/daemon/main.c:512 #, c-format msgid "We're in the group '%s', allowing real-time scheduling." msgstr "ನಾವೠ'%s' ಗà³à²‚ಪಿನಲà³à²²à²¿à²¦à³à²¦à³‡à²µà³†, ಹಾಗೠರಿಯಲà³-ಟೈಮೠಶೆಡà³à²¯à³‚ಲಿಂಗೠಅನà³à²¨à³ ಅನà³à²®à²¤à²¿à²¸à³à²¤à³à²¤à³‡à²µà³†." -#: ../src/daemon/main.c:516 +#: ../src/daemon/main.c:520 msgid "PolicyKit grants us acquire-high-priority privilege." msgstr "ಹೆಚà³à²šà³-ಆದà³à²¯à²¤à³† ಸವಲತà³à²¤à²¨à³à²¨à³ ಪಡೆದà³à²•à³Š ಅನà³à²¨à³ PolicyKit ಅನà³à²®à²¤à²¿à²¸à³à²¤à³à²¤à²¦à³†." -#: ../src/daemon/main.c:519 +#: ../src/daemon/main.c:523 msgid "PolicyKit refuses acquire-high-priority privilege." msgstr "ಹೆಚà³à²šà³-ಆದà³à²¯à²¤à³† ಸವಲತà³à²¤à²¨à³à²¨à³ ಪಡೆದà³à²•à³Š ಅನà³à²¨à³ PolicyKit ನಿರಾಕರಿಸà³à²¤à³à²¤à²¦à³†." -#: ../src/daemon/main.c:524 +#: ../src/daemon/main.c:528 msgid "PolicyKit grants us acquire-real-time privilege." msgstr "ರಿಯಲà³-ಟೈಮೠಸವಲತà³à²¤à²¨à³à²¨à³ ಪಡೆದà³à²•à³Š ಅನà³à²¨à³ PolicyKit ಅನà³à²®à²¤à²¿à²¸à³à²¤à³à²¤à²¦à³†." -#: ../src/daemon/main.c:527 +#: ../src/daemon/main.c:531 msgid "PolicyKit refuses acquire-real-time privilege." msgstr "ರಿಯಲà³-ಟೈಮೠಸವಲತà³à²¤à²¨à³à²¨à³ ಪಡೆದà³à²•à³Š ಅನà³à²¨à³ PolicyKit ನಿರಾಕರಿಸà³à²¤à³à²¤à²¦à³†." -#: ../src/daemon/main.c:556 +#: ../src/daemon/main.c:560 #, c-format msgid "" "Called SUID root and real-time and/or high-priority scheduling was requested " @@ -290,47 +259,47 @@ msgstr "" "PolicyKit ಸವಲತà³à²¤à³à²—ಳನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à²¿, ಅಥವ '%s' ನ ಸದಸà³à²¯à²°à²¾à²—ಿ, ಅಥವ ಈ ಬಳಕೆದಾರನಿಗಾಗಿ " "RLIMIT_NICE/RLIMIT_RTPRIO ಸಂಪನà³à²®à³‚ಲ ಮಿತಿಯನà³à²¨à³ ಹೆಚà³à²šà²¿à²¸à²¿." -#: ../src/daemon/main.c:581 +#: ../src/daemon/main.c:585 msgid "" "High-priority scheduling enabled in configuration but not allowed by policy." msgstr "" "ಸಂರಚನೆಯಲà³à²²à²¿ ಹೆಚà³à²šà³-ಆದà³à²¯à²¤à³†à²¯ ಶೆಡà³à²¯à³‚ಲಿಂಗೠಅನà³à²¨à³ ಶಕà³à²¤à²—ೊಳಿಸಲಾಗಿದೆ ಆದರೆ ಪಾಲಿಸಿಯಿಂದ ಅನà³à²®à²¤à²¿ " "ಇಲà³à²²." -#: ../src/daemon/main.c:610 +#: ../src/daemon/main.c:614 msgid "Successfully increased RLIMIT_RTPRIO" msgstr "RLIMIT_RTPRIO ಅನà³à²¨à³ ಯಶಸà³à²µà²¿à²¯à²¾à²—ಿ ಹೆಚà³à²šà²¿à²¸à²²à²¾à²—ಿದೆ" -#: ../src/daemon/main.c:613 +#: ../src/daemon/main.c:617 #, c-format msgid "RLIMIT_RTPRIO failed: %s" msgstr "RLIMIT_RTPRIO ವಿಫಲಗೊಂಡಿದೆ: %s" -#: ../src/daemon/main.c:620 +#: ../src/daemon/main.c:624 msgid "Giving up CAP_NICE" msgstr "CAP_NICE ಅನà³à²¨à³ ಬಿಡಲಾಗà³à²¤à³à²¤à²¿à²¦à³†" -#: ../src/daemon/main.c:627 +#: ../src/daemon/main.c:631 msgid "" "Real-time scheduling enabled in configuration but not allowed by policy." msgstr "" "ಸಂರಚನೆಯಲà³à²²à²¿ ರಿಯಲà³-ಟೈಮೠಶೆಡà³à²¯à³‚ಲಿಂಗೠಅನà³à²¨à³ ಶಕà³à²¤à²—ೊಳಿಸಲಾಗಿದೆ ಆದರೆ ಪಾಲಿಸಿಯಿಂದ ಅನà³à²®à²¤à²¿ ಇಲà³à²²." -#: ../src/daemon/main.c:688 +#: ../src/daemon/main.c:692 msgid "Daemon not running" msgstr "ಡೀಮನೠಚಲಾಯಿತಗೊಳà³à²³à³à²¤à³à²¤à²¿à²¦à³†" -#: ../src/daemon/main.c:690 +#: ../src/daemon/main.c:694 #, c-format msgid "Daemon running as PID %u" msgstr "ಡೀಮನೠPID %u ಯಾಗಿ ಚಲಾಯಿಗೊಳà³à²³à³à²¤à³à²¤à²¿à²¦à³†" -#: ../src/daemon/main.c:700 +#: ../src/daemon/main.c:704 #, c-format msgid "Failed to kill daemon: %s" msgstr "ಡೀಮನೠಅನà³à²¨à³ ಕೊಲà³à²²à²²à³ ವಿಫಲಗೊಂಡಿದೆ: %s" -#: ../src/daemon/main.c:718 +#: ../src/daemon/main.c:722 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -338,166 +307,176 @@ msgstr "" "ಈ ಪà³à²°à³‹à²—à³à²°à²¾à²®à²¨à³à²¨à³ ರೂಟà³â€Œ ಆಗಿ ಚಲಾಯಿಸà³à²µ ಉದà³à²§à³‡à²¶à²µà²¨à³à²¨à³ ಹೊಂದಿಲà³à²² (--system ಅನà³à²¨à³ ಸೂಚಿಸದೆ " "ಇದà³à²¦à²²à³à²²à²¿ ಮಾತà³à²°)." -#: ../src/daemon/main.c:720 +#: ../src/daemon/main.c:724 msgid "Root privileges required." msgstr "ನಿರà³à²µà²¾à²¹à²• ಸವಲತà³à²¤à³à²—ಳ ಅಗತà³à²¯à²µà²¿à²¦à³†." -#: ../src/daemon/main.c:725 +#: ../src/daemon/main.c:729 msgid "--start not supported for system instances." msgstr "ವà³à²¯à²µà²¸à³à²¥à³†à²¯ ಸನà³à²¨à²¿à²µà³‡à²¶à²¦à²¿à²‚ದ --start ಬೆಂಬಲಿತವಾಗಿಲà³à²²." -#: ../src/daemon/main.c:730 +#: ../src/daemon/main.c:734 msgid "Running in system mode, but --disallow-exit not set!" msgstr "" "ವà³à²¯à²µà²¸à³à²¥à³†à²¯ ಕà³à²°à²®à²¦à²²à³à²²à²¿ ಚಲಾಯಿತಗೊಳà³à²³à³à²¤à³à²¤à²¿à²¦à³†, ಆದರೆ --disallow-exit ಅನà³à²¨à³ ಹೊಂದಿಸಲಾಗಿಲà³à²²!" -#: ../src/daemon/main.c:733 +#: ../src/daemon/main.c:737 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "" "ವà³à²¯à²µà²¸à³à²¥à³†à²¯ ಕà³à²°à²®à²¦à²²à³à²²à²¿ ಚಲಾಯಿತಗೊಳà³à²³à³à²¤à³à²¤à²¿à²¦à³†, ಆದರೆ --disallow-module-loading ಅನà³à²¨à³ " "ಹೊಂದಿಸಲಾಗಿಲà³à²²!" -#: ../src/daemon/main.c:736 +#: ../src/daemon/main.c:740 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "" "ವà³à²¯à²µà²¸à³à²¥à³†à²¯ ಕà³à²°à²®à²¦à²²à³à²²à²¿ ಚಲಾಯಿತಗೊಳà³à²³à³à²¤à³à²¤à²¿à²¦à³à²¦à³, SHM ಕà³à²°à²®à²µà²¨à³à²¨à³ ಒತà³à²¤à²¾à²¯à²ªà³‚ರà³à²µà²•à²µà²¾à²—ಿ " "ಅಶಕà³à²¤à²—ೊಳಿಸà³à²¤à³à²¤à²¿à²¦à³†!" -#: ../src/daemon/main.c:741 +#: ../src/daemon/main.c:745 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "" "ವà³à²¯à²µà²¸à³à²¥à³†à²¯ ಕà³à²°à²®à²¦à²²à³à²²à²¿ ಚಲಾಯಿತಗೊಳà³à²³à³à²¤à³à²¤à²¿à²¦à³à²¦à³, ನಿರà³à²—ಮಿಸà³à²µ ಜಡ ಸಮಯವನà³à²¨à³ ಒತà³à²¤à²¾à²¯à²ªà³‚ರà³à²µà²•à²µà²¾à²—ಿ " "ಅಶಕà³à²¤à²—ೊಳಿಸà³à²¤à³à²¤à²¿à²¦à³†!" -#: ../src/daemon/main.c:768 +#: ../src/daemon/main.c:772 msgid "Failed to acquire stdio." msgstr "stdio ಅನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ." -#: ../src/daemon/main.c:774 +#: ../src/daemon/main.c:778 #, c-format msgid "pipe failed: %s" msgstr "ಪೈಪà³â€Œ ವಿಫಲಗೊಂಡಿದೆ: %s" -#: ../src/daemon/main.c:779 +#: ../src/daemon/main.c:783 #, c-format msgid "fork() failed: %s" msgstr "fork() ವಿಫಲಗೊಂಡಿದೆ: %s" -#: ../src/daemon/main.c:793 +#: ../src/daemon/main.c:797 #, c-format msgid "read() failed: %s" msgstr "read() ವಿಫಲಗೊಂಡಿದೆ: %s" -#: ../src/daemon/main.c:799 +#: ../src/daemon/main.c:803 msgid "Daemon startup failed." msgstr "ಡೀಮನೠಆರಂà²à²—ೊಳà³à²³à³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ." -#: ../src/daemon/main.c:801 +#: ../src/daemon/main.c:805 msgid "Daemon startup successful." msgstr "ಡೀಮನೠಅನà³à²¨à³ ಯಶಸà³à²µà²¿à²¯à²¾à²—ಿ ಆರಂà²à²¿à²¸à²²à²¾à²—ಿದೆ." -#: ../src/daemon/main.c:871 +#: ../src/daemon/main.c:875 #, c-format msgid "This is PulseAudio %s" msgstr "ಇದೠPulseAudio %s" -#: ../src/daemon/main.c:872 +#: ../src/daemon/main.c:876 #, c-format msgid "Compilation host: %s" msgstr "ಕಂಪೈಲೠಮಾಡà³à²µ ಅತಿಥೇಯ: %s" -#: ../src/daemon/main.c:873 +#: ../src/daemon/main.c:877 #, c-format msgid "Compilation CFLAGS: %s" msgstr "ಕಂಪೈಲೠಮಾಡà³à²µ CFLAGS: %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:880 #, c-format msgid "Running on host: %s" msgstr "ಅತಿಥೇಯದಲà³à²²à²¿ ಚಲಾಯಿತಗೊಳà³à²³à³à²¤à³à²¤à²¿à²¦à³†: %s" -#: ../src/daemon/main.c:879 +#: ../src/daemon/main.c:883 #, c-format msgid "Found %u CPUs." msgstr "%u CPUಗಳೠಕಂಡà³à²¬à²‚ದಿವೆ." -#: ../src/daemon/main.c:881 +#: ../src/daemon/main.c:885 #, c-format msgid "Page size is %lu bytes" msgstr "ಪà³à²Ÿà²¦ ಗಾತà³à²°à²µà³ %lu ಬೈಟà³â€Œà²—ಳಾಗಿವೆ" -#: ../src/daemon/main.c:884 +#: ../src/daemon/main.c:888 msgid "Compiled with Valgrind support: yes" msgstr "Valgrind ಬೆಂಬಲದೊಂದಿಗೆ ಕಂಪೈಲೠಮಾಡಲಾಗಿದೆ: ಹೌದà³" -#: ../src/daemon/main.c:886 +#: ../src/daemon/main.c:890 msgid "Compiled with Valgrind support: no" msgstr "Valgrind ಬೆಂಬಲದೊಂದಿಗೆ ಕಂಪೈಲೠಮಾಡಲಾಗಿದೆ: ಇಲà³à²²" -#: ../src/daemon/main.c:889 +#: ../src/daemon/main.c:893 #, c-format msgid "Running in valgrind mode: %s" msgstr "valgrind ಕà³à²°à²®à²¦à²²à³à²²à²¿ ಚಲಾಯಿಸಲಾಗà³à²¤à³à²¤à²¿à²¦à³†: %s" -#: ../src/daemon/main.c:892 +#: ../src/daemon/main.c:896 msgid "Optimized build: yes" msgstr "ಪà³à²°à²¶à²¸à³à²¤à²µà²¾à²¦ ನಿರà³à²®à²¾à²£: ಹೌದà³" -#: ../src/daemon/main.c:894 +#: ../src/daemon/main.c:898 msgid "Optimized build: no" msgstr "ಪà³à²°à²¶à²¸à³à²¤à²µà²¾à²¦ ನಿರà³à²®à²¾à²£: ಇಲà³à²²" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:902 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG ಅನà³à²¨à³ ಸೂಚಿಸಲಾಗಿದೆ, ಎಲà³à²²à²¾ ಪà³à²°à²¤à²¿à²ªà²¾à²¦à²¨à³†à²—ಳನà³à²¨à³‚ ಅಶಕà³à²¤à²—ೊಳಿಸಲಾಗಿದೆ." -#: ../src/daemon/main.c:900 +#: ../src/daemon/main.c:904 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "" "FASTPATH ಅನà³à²¨à³ ಸೂಚಿಸಲಾಗಿದೆ, ಕೇವಲ ವೇಗ ಮಾರà³à²—ದ ಪà³à²°à²¤à²¿à²ªà²¾à²¦à²¨à³†à²—ಳನà³à²¨à³‚ ಅಶಕà³à²¤à²—ೊಳಿಸಲಾಗಿದೆ." -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:906 msgid "All asserts enabled." msgstr "ಎಲà³à²²à²¾ ಪà³à²°à²¤à²¿à²ªà²¾à²¦à²¨à³†à²—ಳನà³à²¨à³‚ ಶಕà³à²¤à²—ೊಳಿಸಲಾಗಿದೆ." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:910 msgid "Failed to get machine ID" msgstr "ಮೆಶೀನೠID ಯನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ" -#: ../src/daemon/main.c:909 +#: ../src/daemon/main.c:913 #, c-format msgid "Machine ID is %s." msgstr "ಮೆಶೀನೠID ಯೠ%s ಆಗಿದೆ." -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:917 #, fuzzy, c-format msgid "Session ID is %s." msgstr "ಮೆಶೀನೠID ಯೠ%s ಆಗಿದೆ." -#: ../src/daemon/main.c:919 +#: ../src/daemon/main.c:923 #, c-format msgid "Using runtime directory %s." msgstr "ಚಲಾವಣಾಸಮಯ(ರನà³â€Œà²Ÿà³ˆà²®à³) ಕೋಶ %s ಅನà³à²¨à³ ಬಳಸಿಕೊಂಡà³." -#: ../src/daemon/main.c:924 +#: ../src/daemon/main.c:928 #, c-format msgid "Using state directory %s." msgstr "ಸà³à²¥à²¿à²¤à²¿ ಕೋಶ %s ಅನà³à²¨à³ ಬಳಸಿಕೊಂಡà³." -#: ../src/daemon/main.c:927 +#: ../src/daemon/main.c:931 #, c-format msgid "Running in system mode: %s" msgstr "ವà³à²¯à²µà²¸à³à²¥à³†à²¯ ಕà³à²°à²®à²¦à²²à³à²²à²¿ ಚಲಾಯಿಸಲಾಗà³à²¤à³à²¤à²¿à²¦à³†: %s" -#: ../src/daemon/main.c:942 +#: ../src/daemon/main.c:934 +msgid "" +"OK, so you are running PA in system mode. Please note that you most likely " +"shouldn't be doing that.\n" +"If you do it nonetheless then it's your own fault if things don't work as " +"expected.\n" +"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " +"explanation why system mode is usually a bad idea." +msgstr "" + +#: ../src/daemon/main.c:951 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() ವಿಫಲಗೊಂಡಿದೆ." -#: ../src/daemon/main.c:954 +#: ../src/daemon/main.c:961 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "ತಾಜಾ ರೆಸಲà³à²¯à³‚ಶನೠಟೈಮರೠಲà²à³à²¯à²µà²¿à²¦à³†! Bon appetit!" -#: ../src/daemon/main.c:956 +#: ../src/daemon/main.c:963 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -505,31 +484,31 @@ msgstr "" "ಮಹಾಶಯರೆ, ನಿಮà³à²® ಕರà³à²¨à²²à³ ಕೊಳೆತà³à²¹à³‹à²—ಿದೆ! ಅತà³à²¯à³à²¤à³à²¤à²® ರೆಸಲà³à²¯à³‚ಶನೠಟೈಮರೠಅನà³à²¨à³ ಶಕà³à²¤à²—ೊಳಿಸಲಾದ " "ಲಿನಕà³à²¸à²¨à³à²¨à³ ಬಳಸà³à²µà²‚ತೆ ಅಡà³à²—ೆಯವರೠಸಲಹೆ ಮಾಡà³à²¤à³à²¤à²¿à²¦à³à²¦à²¾à²°à³†!" -#: ../src/daemon/main.c:970 +#: ../src/daemon/main.c:988 msgid "pa_core_new() failed." msgstr "pa_core_new() ವಿಫಲಗೊಂಡಿದೆ." -#: ../src/daemon/main.c:1032 +#: ../src/daemon/main.c:1050 msgid "Failed to initialize daemon." msgstr "ಡೀಮನೠಅನà³à²¨à³ ಆರಂà²à²¿à²¸à²²à³ ವಿಫಲಗೊಂಡಿದೆ." -#: ../src/daemon/main.c:1037 +#: ../src/daemon/main.c:1055 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "ಲೋಡೠಮಾಡಲಾದ ಯಾವà³à²¦à³† ಡೀಮನೠಇಲà³à²²à²¦à³† ಆರಂà²à²—ೊಂಡಿದೆ, ಕೆಲಸ ಮಾಡಲೠನಿರಾಕರಿಸಿದೆ." -#: ../src/daemon/main.c:1054 +#: ../src/daemon/main.c:1072 msgid "Daemon startup complete." msgstr "ಡೀಮನೠಆರಂà²à²—ೊಳಿಕೆ ಪೂರà³à²£à²—ೊಂಡಿದೆ." -#: ../src/daemon/main.c:1060 +#: ../src/daemon/main.c:1078 msgid "Daemon shutdown initiated." msgstr "ಡೀಮನೠಸà³à²¥à²—ಿತಗೊಳಿಕೆಯನà³à²¨à³ ಆರಂà²à²¿à²¸à²²à²¾à²—ಿದೆ." -#: ../src/daemon/main.c:1082 +#: ../src/daemon/main.c:1100 msgid "Daemon terminated." msgstr "ಡೀಮನೠಅನà³à²¨à³ ಅಂತà³à²¯à²—ೊಳಿಸಲಾಗಿದೆ." -#: ../src/daemon/cmdline.c:121 +#: ../src/daemon/cmdline.c:115 #, c-format msgid "" "%s [options]\n" @@ -677,15 +656,15 @@ msgstr "" " -n ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಸà³à²•à³à²°à²¿à²ªà³à²Ÿà²¿à²¨ ಕಡತವನà³à²¨à³ ಲೋಡೠ" "ಮಾಡಬೇಡ\n" -#: ../src/daemon/cmdline.c:252 +#: ../src/daemon/cmdline.c:247 msgid "--daemonize expects boolean argument" msgstr "--daemonize ಬೂಲಿಯನೠಆರà³à²—à³à²®à³†à²‚ಟನà³à²¨à³ ನಿರೀಕà³à²·à²¿à²¸à³à²¤à³à²¤à²¦à³†" -#: ../src/daemon/cmdline.c:259 +#: ../src/daemon/cmdline.c:254 msgid "--fail expects boolean argument" msgstr "--fail ಬೂಲಿಯನೠಆರà³à²—à³à²®à³†à²‚ಟನà³à²¨à³ ನಿರೀಕà³à²·à²¿à²¸à³à²¤à³à²¤à²¦à³†" -#: ../src/daemon/cmdline.c:269 +#: ../src/daemon/cmdline.c:264 msgid "" "--log-level expects log level argument (either numeric in range 0..4 or one " "of debug, info, notice, warn, error)." @@ -693,52 +672,52 @@ msgstr "" "--log-level ದಾಖಲೆ ಮಟà³à²Ÿà²¦ ಆರà³à²—à³à²®à³†à²‚ಟನà³à²¨à³ ನಿರೀಕà³à²·à²¿à²¸à³à²¤à³à²¤à²¦à³† (0..4 ವà³à²¯à²¾à²ªà³à²¤à²¿à²¯à²²à³à²²à²¿à²¨ ಅಂಕೆಯನà³à²¨à³ " "ಅಥವ debug, info, notice, warn, error ಅನà³à²¨à³)." -#: ../src/daemon/cmdline.c:281 +#: ../src/daemon/cmdline.c:276 msgid "--high-priority expects boolean argument" msgstr "--high-priority ಬೂಲಿಯನೠಆರà³à²—à³à²®à³†à²‚ಟನà³à²¨à³ ನಿರೀಕà³à²·à²¿à²¸à³à²¤à³à²¤à²¦à³†" -#: ../src/daemon/cmdline.c:288 +#: ../src/daemon/cmdline.c:283 msgid "--realtime expects boolean argument" msgstr "--realtime ಬೂಲಿಯನೠಆರà³à²—à³à²®à³†à²‚ಟನà³à²¨à³ ನಿರೀಕà³à²·à²¿à²¸à³à²¤à³à²¤à²¦à³†" -#: ../src/daemon/cmdline.c:295 +#: ../src/daemon/cmdline.c:290 msgid "--disallow-module-loading expects boolean argument" msgstr "--disallow-module-loading ಬೂಲಿಯನೠಆರà³à²—à³à²®à³†à²‚ಟನà³à²¨à³ ನಿರೀಕà³à²·à²¿à²¸à³à²¤à³à²¤à²¦à³†" -#: ../src/daemon/cmdline.c:302 +#: ../src/daemon/cmdline.c:297 msgid "--disallow-exit expects boolean argument" msgstr "--disallow-exit ಬೂಲಿಯನೠಆರà³à²—à³à²®à³†à²‚ಟನà³à²¨à³ ನಿರೀಕà³à²·à²¿à²¸à³à²¤à³à²¤à²¦à³†" -#: ../src/daemon/cmdline.c:309 +#: ../src/daemon/cmdline.c:304 msgid "--use-pid-file expects boolean argument" msgstr "--use-pid-file ಬೂಲಿಯನೠಆರà³à²—à³à²®à³†à²‚ಟನà³à²¨à³ ನಿರೀಕà³à²·à²¿à²¸à³à²¤à³à²¤à²¦à³†" -#: ../src/daemon/cmdline.c:326 +#: ../src/daemon/cmdline.c:321 msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgstr "ಅಮಾನà³à²¯à²µà²¾à²¦ ದಾಖಲೆ ಗà³à²°à²¿: 'syslog', 'stderr' ಅಥವ 'auto' ಅನà³à²¨à³ ಬಳಸಿ." -#: ../src/daemon/cmdline.c:333 +#: ../src/daemon/cmdline.c:328 msgid "--log-time expects boolean argument" msgstr "--log-time ಬೂಲಿಯನೠಆರà³à²—à³à²®à³†à²‚ಟನà³à²¨à³ ನಿರೀಕà³à²·à²¿à²¸à³à²¤à³à²¤à²¦à³†" -#: ../src/daemon/cmdline.c:340 +#: ../src/daemon/cmdline.c:335 msgid "--log-meta expects boolean argument" msgstr "--log-meta ಬೂಲಿಯನೠಆರà³à²—à³à²®à³†à²‚ಟನà³à²¨à³ ನಿರೀಕà³à²·à²¿à²¸à³à²¤à³à²¤à²¦à³†" -#: ../src/daemon/cmdline.c:359 +#: ../src/daemon/cmdline.c:354 #, c-format msgid "Invalid resample method '%s'." msgstr "ಅಮಾನà³à²¯à²µà²¾à²¦ ಮರà³à²¨à²®à³‚ನೆ ವಿಧಾನ '%s'." -#: ../src/daemon/cmdline.c:366 +#: ../src/daemon/cmdline.c:361 msgid "--system expects boolean argument" msgstr "--system ಬೂಲಿಯನೠಆರà³à²—à³à²®à³†à²‚ಟನà³à²¨à³ ನಿರೀಕà³à²·à²¿à²¸à³à²¤à³à²¤à²¦à³†" -#: ../src/daemon/cmdline.c:373 +#: ../src/daemon/cmdline.c:368 msgid "--no-cpu-limit expects boolean argument" msgstr "--no-cpu-limit ಬೂಲಿಯನೠಆರà³à²—à³à²®à³†à²‚ಟನà³à²¨à³ ನಿರೀಕà³à²·à²¿à²¸à³à²¤à³à²¤à²¦à³†" -#: ../src/daemon/cmdline.c:380 +#: ../src/daemon/cmdline.c:375 msgid "--disable-shm expects boolean argument" msgstr "--disable-shm ಬೂಲಿಯನೠಆರà³à²—à³à²®à³†à²‚ಟನà³à²¨à³ ನಿರೀಕà³à²·à²¿à²¸à³à²¤à³à²¤à²¦à³†" @@ -777,77 +756,82 @@ msgstr "ಬಳಕೆ: %s\n" msgid "Load Once: %s\n" msgstr "ಒಮà³à²®à³† ಲೋಡೠಮಾಡà³: %s\n" -#: ../src/daemon/dumpmodules.c:77 +#: ../src/daemon/dumpmodules.c:75 +#, c-format +msgid "DEPRECATION WARNING: %s\n" +msgstr "" + +#: ../src/daemon/dumpmodules.c:79 #, c-format msgid "Path: %s\n" msgstr "ಮಾರà³à²—: %s\n" -#: ../src/daemon/daemon-conf.c:215 +#: ../src/daemon/daemon-conf.c:216 #, c-format msgid "[%s:%u] Invalid log target '%s'." msgstr "[%s:%u] ಅಮಾನà³à²¯à²µà²¾à²¦ ದಾಖಲೆ ಗà³à²°à²¿ '%s'." -#: ../src/daemon/daemon-conf.c:231 +#: ../src/daemon/daemon-conf.c:232 #, c-format msgid "[%s:%u] Invalid log level '%s'." msgstr "[%s:%u] ಅಮಾನà³à²¯à²µà²¾à²¦ ದಾಖಲೆ ಮಟà³à²Ÿ '%s'." -#: ../src/daemon/daemon-conf.c:247 +#: ../src/daemon/daemon-conf.c:248 #, c-format msgid "[%s:%u] Invalid resample method '%s'." msgstr "[%s:%u] ಅಮಾನà³à²¯à²µà²¾à²¦ ಮರà³à²¨à²®à³‚ನೆ ವಿಧಾನ '%s'." -#: ../src/daemon/daemon-conf.c:270 +#: ../src/daemon/daemon-conf.c:271 #, c-format msgid "[%s:%u] Invalid rlimit '%s'." msgstr "[%s:%u] ಅಮಾನà³à²¯à²µà²¾à²¦ rlimit '%s'." -#: ../src/daemon/daemon-conf.c:277 +#: ../src/daemon/daemon-conf.c:278 #, c-format msgid "[%s:%u] rlimit not supported on this platform." msgstr "[%s:%u] rlimit ಗೆ ಈ ಪà³à²²à²¾à²Ÿà³â€Œà²«à²¾à²°à³à²®à²¿à²¨à²²à³à²²à²¿ ಬೆಂಬಲವಿಲà³à²²." -#: ../src/daemon/daemon-conf.c:293 +#: ../src/daemon/daemon-conf.c:294 #, c-format msgid "[%s:%u] Invalid sample format '%s'." msgstr "[%s:%u] ಅಮಾನà³à²¯à²µà²¾à²¦ ನಮೂನೆ ರಚನೆ '%s'." -#: ../src/daemon/daemon-conf.c:311 +#: ../src/daemon/daemon-conf.c:312 #, c-format msgid "[%s:%u] Invalid sample rate '%s'." msgstr "[%s:%u] ಅಮಾನà³à²¯à²µà²¾à²¦ ನಮೂನೆ ದರ '%s'." -#: ../src/daemon/daemon-conf.c:335 +#: ../src/daemon/daemon-conf.c:336 #, c-format msgid "[%s:%u] Invalid sample channels '%s'." msgstr "[%s:%u] ಅಮಾನà³à²¯à²µà²¾à²¦ ನಮೂನೆ ಚಾನಲà³â€Œà²—ಳೠ'%s'." -#: ../src/daemon/daemon-conf.c:353 +#: ../src/daemon/daemon-conf.c:354 #, c-format msgid "[%s:%u] Invalid channel map '%s'." msgstr "[%s:%u] ಅಮಾನà³à²¯à²µà²¾à²¦ ಚಾನಲೠನಕà³à²·à³† '%s'." -#: ../src/daemon/daemon-conf.c:371 +#: ../src/daemon/daemon-conf.c:372 #, c-format msgid "[%s:%u] Invalid number of fragments '%s'." msgstr "[%s:%u] ಅಮಾನà³à²¤à²µà²¾à²¦ ಫà³à²°à²¾à²—à³à²®à³†à²‚ಟà³à²—ಳ ಸಂಖà³à²¯à³† '%s'." -#: ../src/daemon/daemon-conf.c:389 +#: ../src/daemon/daemon-conf.c:390 #, c-format msgid "[%s:%u] Invalid fragment size '%s'." msgstr "[%s:%u] ಅಮಾನà³à²¯à²µà²¾à²¦ ಫà³à²°à²¾à²—à³à²®à³†à²‚ಟೠಗಾತà³à²° '%s'." -#: ../src/daemon/daemon-conf.c:407 +#: ../src/daemon/daemon-conf.c:408 #, c-format msgid "[%s:%u] Invalid nice level '%s'." msgstr "[%s:%u] ಅಮಾನà³à²¯à²µà²¾à²¦ ನೈಸà³â€Œ ಹಂತ '%s'." -#: ../src/daemon/daemon-conf.c:522 +#: ../src/daemon/daemon-conf.c:524 #, c-format msgid "Failed to open configuration file: %s" msgstr "ಸಂರಚನಾ ಕಡತವನà³à²¨à³ ತೆರೆಯಲೠವಿಫಲಗೊಂಡಿದೆ: %s" -#: ../src/daemon/daemon-conf.c:538 +#: ../src/daemon/daemon-conf.c:540 msgid "" "The specified default channel map has a different number of channels than " "the specified default number of channels." @@ -897,237 +881,237 @@ msgid "System policy prevents PulseAudio from acquiring real-time scheduling." msgstr "" "PulseAudio ರಿಯಲà³-ಟೈಮà³â€Œ ಶೆಡà³à²¯à³‚ಲಿಂಗೠಅನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à²¦à²‚ತೆ ವà³à²¯à²µà²¸à³à²¥à³†à²¯ ಪಾಲಿಸಿಯೠತಡೆಯà³à²¤à³à²¤à²¦à³†." -#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804 +#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "ಮೊನೊ" -#: ../src/pulse/channelmap.c:105 +#: ../src/pulse/channelmap.c:107 msgid "Front Center" msgstr "ಎದà³à²°à²¿à²¨ ಮಧà³à²¯à²à²¾à²—" -#: ../src/pulse/channelmap.c:106 +#: ../src/pulse/channelmap.c:108 msgid "Front Left" msgstr "ಎದà³à²°à²¿à²¨ ಎಡà²à²¾à²—" -#: ../src/pulse/channelmap.c:107 +#: ../src/pulse/channelmap.c:109 msgid "Front Right" msgstr "ಎದà³à²°à²¿à²¨ ಬಲà²à²¾à²—" -#: ../src/pulse/channelmap.c:109 +#: ../src/pulse/channelmap.c:111 msgid "Rear Center" msgstr "ಹಿಂಬದಿಯ ಮಧà³à²¯à²à²¾à²—" -#: ../src/pulse/channelmap.c:110 +#: ../src/pulse/channelmap.c:112 msgid "Rear Left" msgstr "ಹಿಂಬದಿಯ ಎಡà²à²¾à²—" -#: ../src/pulse/channelmap.c:111 +#: ../src/pulse/channelmap.c:113 msgid "Rear Right" msgstr "ಹಿಂಬದಿಯ ಬಲà²à²¾à²—" -#: ../src/pulse/channelmap.c:113 +#: ../src/pulse/channelmap.c:115 msgid "Low Frequency Emmiter" msgstr "ಕೆಳಮಟà³à²Ÿà²¦ ಫà³à²°à³€à²•à³à²µà³†à²¨à³à²¸à²¿ ಉತà³à²ªà²¾à²¦à²•" -#: ../src/pulse/channelmap.c:115 +#: ../src/pulse/channelmap.c:117 msgid "Front Left-of-center" msgstr "ಮಧà³à²¯à²¦ ಎಡà²à²¾à²—ದ ಎದà³à²°à³à²à²¾à²—" -#: ../src/pulse/channelmap.c:116 +#: ../src/pulse/channelmap.c:118 msgid "Front Right-of-center" msgstr "ಮಧà³à²¯à²¦ ಬಲà²à²¾à²—ದ ಎದà³à²°à³à²à²¾à²—" -#: ../src/pulse/channelmap.c:118 +#: ../src/pulse/channelmap.c:120 msgid "Side Left" msgstr "ಬದಿಯ ಎಡà²à²¾à²—" -#: ../src/pulse/channelmap.c:119 +#: ../src/pulse/channelmap.c:121 msgid "Side Right" msgstr "ಬದಿಯ ಬಲà²à²¾à²—" -#: ../src/pulse/channelmap.c:121 +#: ../src/pulse/channelmap.c:123 msgid "Auxiliary 0" msgstr "ಸಹಾಯಕ 0" -#: ../src/pulse/channelmap.c:122 +#: ../src/pulse/channelmap.c:124 msgid "Auxiliary 1" msgstr "ಸಹಾಯಕ 1" -#: ../src/pulse/channelmap.c:123 +#: ../src/pulse/channelmap.c:125 msgid "Auxiliary 2" msgstr "ಸಹಾಯಕ 2" -#: ../src/pulse/channelmap.c:124 +#: ../src/pulse/channelmap.c:126 msgid "Auxiliary 3" msgstr "ಸಹಾಯಕ 3" -#: ../src/pulse/channelmap.c:125 +#: ../src/pulse/channelmap.c:127 msgid "Auxiliary 4" msgstr "ಸಹಾಯಕ 4" -#: ../src/pulse/channelmap.c:126 +#: ../src/pulse/channelmap.c:128 msgid "Auxiliary 5" msgstr "ಸಹಾಯಕ 5" -#: ../src/pulse/channelmap.c:127 +#: ../src/pulse/channelmap.c:129 msgid "Auxiliary 6" msgstr "ಸಹಾಯಕ 6" -#: ../src/pulse/channelmap.c:128 +#: ../src/pulse/channelmap.c:130 msgid "Auxiliary 7" msgstr "ಸಹಾಯಕ 7" -#: ../src/pulse/channelmap.c:129 +#: ../src/pulse/channelmap.c:131 msgid "Auxiliary 8" msgstr "ಸಹಾಯಕ 8" -#: ../src/pulse/channelmap.c:130 +#: ../src/pulse/channelmap.c:132 msgid "Auxiliary 9" msgstr "ಸಹಾಯಕ 9" -#: ../src/pulse/channelmap.c:131 +#: ../src/pulse/channelmap.c:133 msgid "Auxiliary 10" msgstr "ಸಹಾಯಕ 10" -#: ../src/pulse/channelmap.c:132 +#: ../src/pulse/channelmap.c:134 msgid "Auxiliary 11" msgstr "ಸಹಾಯಕ 11" -#: ../src/pulse/channelmap.c:133 +#: ../src/pulse/channelmap.c:135 msgid "Auxiliary 12" msgstr "ಸಹಾಯಕ 12" -#: ../src/pulse/channelmap.c:134 +#: ../src/pulse/channelmap.c:136 msgid "Auxiliary 13" msgstr "ಸಹಾಯಕ 13" -#: ../src/pulse/channelmap.c:135 +#: ../src/pulse/channelmap.c:137 msgid "Auxiliary 14" msgstr "ಸಹಾಯಕ 14" -#: ../src/pulse/channelmap.c:136 +#: ../src/pulse/channelmap.c:138 msgid "Auxiliary 15" msgstr "ಸಹಾಯಕ 15" -#: ../src/pulse/channelmap.c:137 +#: ../src/pulse/channelmap.c:139 msgid "Auxiliary 16" msgstr "ಸಹಾಯಕ 16" -#: ../src/pulse/channelmap.c:138 +#: ../src/pulse/channelmap.c:140 msgid "Auxiliary 17" msgstr "ಸಹಾಯಕ 17" -#: ../src/pulse/channelmap.c:139 +#: ../src/pulse/channelmap.c:141 msgid "Auxiliary 18" msgstr "ಸಹಾಯಕ 18" -#: ../src/pulse/channelmap.c:140 +#: ../src/pulse/channelmap.c:142 msgid "Auxiliary 19" msgstr "ಸಹಾಯಕ 19" -#: ../src/pulse/channelmap.c:141 +#: ../src/pulse/channelmap.c:143 msgid "Auxiliary 20" msgstr "ಸಹಾಯಕ 20" -#: ../src/pulse/channelmap.c:142 +#: ../src/pulse/channelmap.c:144 msgid "Auxiliary 21" msgstr "ಸಹಾಯಕ 21" -#: ../src/pulse/channelmap.c:143 +#: ../src/pulse/channelmap.c:145 msgid "Auxiliary 22" msgstr "ಸಹಾಯಕ 22" -#: ../src/pulse/channelmap.c:144 +#: ../src/pulse/channelmap.c:146 msgid "Auxiliary 23" msgstr "ಸಹಾಯಕ 23" -#: ../src/pulse/channelmap.c:145 +#: ../src/pulse/channelmap.c:147 msgid "Auxiliary 24" msgstr "ಸಹಾಯಕ 24" -#: ../src/pulse/channelmap.c:146 +#: ../src/pulse/channelmap.c:148 msgid "Auxiliary 25" msgstr "ಸಹಾಯಕ 25" -#: ../src/pulse/channelmap.c:147 +#: ../src/pulse/channelmap.c:149 msgid "Auxiliary 26" msgstr "ಸಹಾಯಕ 26" -#: ../src/pulse/channelmap.c:148 +#: ../src/pulse/channelmap.c:150 msgid "Auxiliary 27" msgstr "ಸಹಾಯಕ 27" -#: ../src/pulse/channelmap.c:149 +#: ../src/pulse/channelmap.c:151 msgid "Auxiliary 28" msgstr "ಸಹಾಯಕ 28" -#: ../src/pulse/channelmap.c:150 +#: ../src/pulse/channelmap.c:152 msgid "Auxiliary 29" msgstr "ಸಹಾಯಕ 29" -#: ../src/pulse/channelmap.c:151 +#: ../src/pulse/channelmap.c:153 msgid "Auxiliary 30" msgstr "ಸಹಾಯಕ 30" -#: ../src/pulse/channelmap.c:152 +#: ../src/pulse/channelmap.c:154 msgid "Auxiliary 31" msgstr "ಸಹಾಯಕ 31" -#: ../src/pulse/channelmap.c:154 +#: ../src/pulse/channelmap.c:156 msgid "Top Center" msgstr "ಮೇಲಿನ ಮಧà³à²¯à²à²¾à²—" -#: ../src/pulse/channelmap.c:156 +#: ../src/pulse/channelmap.c:158 msgid "Top Front Center" msgstr "ಮೇಲಿನ ಎದà³à²°à²¿à²¨ ಮಧà³à²¯à²à²¾à²—" -#: ../src/pulse/channelmap.c:157 +#: ../src/pulse/channelmap.c:159 msgid "Top Front Left" msgstr "ಮೇಲಿನ ಎದà³à²°à²¿à²¨ ಎಡà²à²¾à²—" -#: ../src/pulse/channelmap.c:158 +#: ../src/pulse/channelmap.c:160 msgid "Top Front Right" msgstr "ಮೇಲಿನ ಎದà³à²°à²¿à²¨ ಬಲà²à²¾à²—" -#: ../src/pulse/channelmap.c:160 +#: ../src/pulse/channelmap.c:162 msgid "Top Rear Center" msgstr "ಮೇಲಿನ ಹಿಂಬದಿಯ ಮಧà³à²¯à²à²¾à²—" -#: ../src/pulse/channelmap.c:161 +#: ../src/pulse/channelmap.c:163 msgid "Top Rear Left" msgstr "ಮೇಲಿನ ಹಿಂಬದಿಯ ಎಡà²à²¾à²—" -#: ../src/pulse/channelmap.c:162 +#: ../src/pulse/channelmap.c:164 msgid "Top Rear Right" msgstr "ಮೇಲಿನ ಹಿಂಬದಿಯ ಬಲà²à²¾à²—" -#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167 -#: ../src/pulse/volume.c:170 ../src/pulse/volume.c:196 -#: ../src/pulse/volume.c:216 ../src/pulse/volume.c:246 +#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167 +#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265 +#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315 msgid "(invalid)" msgstr "(ಅಮಾನà³à²¯)" -#: ../src/pulse/channelmap.c:808 +#: ../src/pulse/channelmap.c:751 msgid "Stereo" msgstr "ಸà³à²Ÿà³€à²°à²¿à²¯à³‹" -#: ../src/pulse/channelmap.c:813 +#: ../src/pulse/channelmap.c:756 msgid "Surround 4.0" msgstr "ಸರೌಂಡà³â€Œ 4.0" -#: ../src/pulse/channelmap.c:819 +#: ../src/pulse/channelmap.c:762 msgid "Surround 4.1" msgstr "ಸರೌಂಡà³â€Œ 4.1" -#: ../src/pulse/channelmap.c:825 +#: ../src/pulse/channelmap.c:768 msgid "Surround 5.0" msgstr "ಸರೌಂಡà³â€Œ 5.0" -#: ../src/pulse/channelmap.c:831 +#: ../src/pulse/channelmap.c:774 msgid "Surround 5.1" msgstr "ಸರೌಂಡà³â€Œ 5.1" -#: ../src/pulse/channelmap.c:838 +#: ../src/pulse/channelmap.c:781 msgid "Surround 7.1" msgstr "ಸರೌಂಡà³â€Œ 7.1" @@ -1289,173 +1273,168 @@ msgstr "waitpid(): %s" msgid "Received message for unknown extension '%s'" msgstr "ಅಜà³à²žà²¾à²¤ ವಿಸà³à²¤à²°à²£à³† '%s' ಇಂದ ಸಂದೇಶವನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à²²à²¾à²—ಿದೆ" -#: ../src/utils/pacat.c:94 +#: ../src/utils/pacat.c:107 +#, c-format +msgid "Failed to drain stream: %s\n" +msgstr "ಸà³à²Ÿà³à²°à³€à²®à²¨à³à²¨à³ ಬರಿದಾಗಿಸà³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ: %s\n" + +#: ../src/utils/pacat.c:112 +msgid "Playback stream drained.\n" +msgstr "ಪà³à²²à³‡à²¬à³à²¯à²¾à²•à³ ಸà³à²Ÿà³à²°à³€à²®à²¨à³à²¨à³ ಬರಿದಾಗಿಸಲಾಗಿದೆ.\n" + +#: ../src/utils/pacat.c:122 +msgid "Draining connection to server.\n" +msgstr "ಪರಿಚಾರಕಕà³à²•à³† ಬರಿದಾಗಿಸà³à²µ ಸಂಪರà³à²•.\n" + +#: ../src/utils/pacat.c:135 +#, c-format +msgid "pa_stream_drain(): %s\n" +msgstr "pa_stream_drain(): %s\n" + +#: ../src/utils/pacat.c:158 #, c-format msgid "pa_stream_write() failed: %s\n" msgstr "pa_stream_write() failed: %s\n" -#: ../src/utils/pacat.c:133 +#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 #, c-format msgid "pa_stream_peek() failed: %s\n" msgstr "pa_stream_peek() failed: %s\n" -#: ../src/utils/pacat.c:169 -#, c-format +#: ../src/utils/pacat.c:302 msgid "Stream successfully created.\n" msgstr "ಸà³à²Ÿà³à²°à³€à²®à²¨à³à²¨à³ ಯಶಸà³à²µà²¿à²¯à²¾à²—ಿ ನಿರà³à²®à²¿à²¸à²²à²¾à²—ಿದೆ.\n" -#: ../src/utils/pacat.c:172 +#: ../src/utils/pacat.c:305 #, c-format msgid "pa_stream_get_buffer_attr() failed: %s\n" msgstr "pa_stream_get_buffer_attr() failed: %s\n" -#: ../src/utils/pacat.c:176 +#: ../src/utils/pacat.c:309 #, c-format msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgstr "ಬಫರೠಮೆಟà³à²°à²¿à²•à³â€Œà²—ಳà³: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:179 +#: ../src/utils/pacat.c:312 #, c-format msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgstr "ಬಫರೠಮೆಟà³à²°à²¿à²•à³â€Œà²—ಳà³: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:183 +#: ../src/utils/pacat.c:316 #, c-format msgid "Using sample spec '%s', channel map '%s'.\n" msgstr "ನಮೂನೆಯ ವಿವರ '%s' ಅನà³à²¨à³ ಬಳಸಿಕೊಂಡà³, ಚಾನಲà³â€Œ ನಕà³à²·à³† '%s'.\n" -#: ../src/utils/pacat.c:187 +#: ../src/utils/pacat.c:320 #, c-format msgid "Connected to device %s (%u, %ssuspended).\n" msgstr "ಸಾಧನ %s ಕà³à²•à³† ಸಂಪರà³à²• ಜೋಡಿಸಲಾಗಿದೆ (%u, %ssuspended).\n" -#: ../src/utils/pacat.c:197 +#: ../src/utils/pacat.c:330 #, c-format msgid "Stream error: %s\n" msgstr "ಸà³à²Ÿà³à²°à³€à²®à³ ದೋಷ: %s\n" -#: ../src/utils/pacat.c:207 +#: ../src/utils/pacat.c:340 #, c-format msgid "Stream device suspended.%s \n" msgstr "ಸà³à²Ÿà³à²°à³€à²®à³ ಸಾಧನವನà³à²¨à³ ತಾತà³à²•à²¾à²²à²¿à²•à²µà²¾à²—ಿ ತಡೆಹಿಡಿಯಲಾಗಿದೆ.%s \n" -#: ../src/utils/pacat.c:209 +#: ../src/utils/pacat.c:342 #, c-format msgid "Stream device resumed.%s \n" msgstr "ಸà³à²Ÿà³à²°à³€à²®à³ ಸಾಧನವನà³à²¨à³ ಮರಳಿ ಆರಂà²à²¿à²¸à²²à²¾à²—ಿದೆ.%s \n" -#: ../src/utils/pacat.c:217 +#: ../src/utils/pacat.c:350 #, c-format msgid "Stream underrun.%s \n" msgstr "ಸà³à²Ÿà³à²°à³€à²®à³ ಅನà³à²¨à³ ಕಡಿಮೆ ಚಲಾಯಿಸಲಾಗಿದೆ.%s \n" -#: ../src/utils/pacat.c:224 +#: ../src/utils/pacat.c:357 #, c-format msgid "Stream overrun.%s \n" msgstr "ಸà³à²Ÿà³à²°à³€à²®à³ ಅನà³à²¨à³ ಹೆಚà³à²šà³ ಚಲಾಯಿಸಲಾಗಿದೆ.%s \n" -#: ../src/utils/pacat.c:231 +#: ../src/utils/pacat.c:364 #, c-format msgid "Stream started.%s \n" msgstr "ಸà³à²Ÿà³à²°à³€à²®à³ ಅನà³à²¨à³ ಆರಂà²à²¿à²¸à²²à²¾à²—ಿದೆ.%s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 #, c-format msgid "Stream moved to device %s (%u, %ssuspended).%s \n" msgstr "ಸಾಧನ %s ಅನà³à²¨à³ ಸà³à²Ÿà³à²°à³€à²®à³â€Œ ಸà³à²¥à²³à²¾à²‚ತರಿಸಲಾಗಿದೆ (%u, %ssuspended).%s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 msgid "not " msgstr "ಇಲà³à²² " -#: ../src/utils/pacat.c:245 +#: ../src/utils/pacat.c:378 #, c-format msgid "Stream buffer attributes changed.%s \n" msgstr "ಸà³à²Ÿà³à²°à³€à²®à³ ಬಫರೠಗà³à²£à²µà²¿à²¶à³‡à²·à²¤à³†à²—ಳನà³à²¨à³ ಬದಲಾಯಿಸಲಾಗಿದೆ.%s \n" -#: ../src/utils/pacat.c:278 +#: ../src/utils/pacat.c:411 #, c-format msgid "Connection established.%s \n" msgstr "ಸಂಪರà³à²•à²µà²¨à³à²¨à³ ಸಾಧಿಸಲಾಗಿದೆ.%s \n" -#: ../src/utils/pacat.c:281 +#: ../src/utils/pacat.c:414 #, c-format msgid "pa_stream_new() failed: %s\n" msgstr "pa_stream_new() failed: %s\n" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:442 #, c-format msgid "pa_stream_connect_playback() failed: %s\n" msgstr "pa_stream_connect_playback() failed: %s\n" -#: ../src/utils/pacat.c:315 +#: ../src/utils/pacat.c:448 #, c-format msgid "pa_stream_connect_record() failed: %s\n" msgstr "pa_stream_connect_record() failed: %s\n" -#: ../src/utils/pacat.c:329 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:762 ../src/utils/paplay.c:183 +#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 #, c-format msgid "Connection failure: %s\n" msgstr "ಸಂಪರà³à²•à²¦ ವಿಫಲತೆ: %s\n" -#: ../src/utils/pacat.c:349 ../src/utils/paplay.c:75 -#, c-format -msgid "Failed to drain stream: %s\n" -msgstr "ಸà³à²Ÿà³à²°à³€à²®à²¨à³à²¨à³ ಬರಿದಾಗಿಸà³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ: %s\n" - -#: ../src/utils/pacat.c:354 ../src/utils/paplay.c:80 -#, c-format -msgid "Playback stream drained.\n" -msgstr "ಪà³à²²à³‡à²¬à³à²¯à²¾à²•à³ ಸà³à²Ÿà³à²°à³€à²®à²¨à³à²¨à³ ಬರಿದಾಗಿಸಲಾಗಿದೆ.\n" - -#: ../src/utils/pacat.c:364 ../src/utils/paplay.c:92 -#, c-format -msgid "Draining connection to server.\n" -msgstr "ಪರಿಚಾರಕಕà³à²•à³† ಬರಿದಾಗಿಸà³à²µ ಸಂಪರà³à²•.\n" - -#: ../src/utils/pacat.c:390 -#, c-format +#: ../src/utils/pacat.c:495 msgid "Got EOF.\n" msgstr "EOF ಅನà³à²¨à³ ಪಡೆಯಲಾಗಿದೆ.\n" -#: ../src/utils/pacat.c:396 -#, c-format -msgid "pa_stream_drain(): %s\n" -msgstr "pa_stream_drain(): %s\n" - -#: ../src/utils/pacat.c:406 +#: ../src/utils/pacat.c:500 #, c-format msgid "read() failed: %s\n" msgstr "ಓದà³à²µà²¿à²•à³†() ವಿಫಲಗೊಂಡಿದೆ: %s\n" -#: ../src/utils/pacat.c:438 +#: ../src/utils/pacat.c:532 #, c-format msgid "write() failed: %s\n" msgstr "ಬರೆಯà³à²µà²¿à²•à³†() ವಿಫಲಗೊಂಡಿದೆ: %s\n" -#: ../src/utils/pacat.c:459 -#, c-format +#: ../src/utils/pacat.c:553 msgid "Got signal, exiting.\n" msgstr "ಸಂಕೇತ ದೊರೆತಿದೆ, ನಿರà³à²—ಮಿಸà³à²¤à³à²¤à²¿à²¦à³†.\n" -#: ../src/utils/pacat.c:473 +#: ../src/utils/pacat.c:567 #, c-format msgid "Failed to get latency: %s\n" msgstr "ಅಗೋಚರತೆಯನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ: %s\n" -#: ../src/utils/pacat.c:478 +#: ../src/utils/pacat.c:572 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "ಸಮಯ: %0.3f sec; ಅಗೋಚರತೆ: %0.0f usec. \r" -#: ../src/utils/pacat.c:498 +#: ../src/utils/pacat.c:592 #, c-format msgid "pa_stream_update_timing_info() failed: %s\n" msgstr "pa_stream_update_timing_info() failed: %s\n" -#: ../src/utils/pacat.c:511 -#, c-format +#: ../src/utils/pacat.c:605 +#, fuzzy, c-format msgid "" "%s [options]\n" "\n" @@ -1481,8 +1460,10 @@ msgid "" "44100)\n" " --format=SAMPLEFORMAT The sample type, one of s16le, " "s16be, u8, float32le,\n" -" float32be, ulaw, alaw, s32le, s32be " -"(defaults to s16ne)\n" +" float32be, ulaw, alaw, s32le, s32be, " +"s24le, s24be,\n" +" s24-32le, s24-32be (defaults to " +"s16ne)\n" " --channels=CHANNELS The number of channels, 1 for mono, " "2 for stereo\n" " (defaults to 2)\n" @@ -1505,6 +1486,11 @@ msgid "" "bytes.\n" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" +" --property=PROPERTY=VALUE Set the specified property to the " +"specified value.\n" +" --raw Record/play raw PCM data.\n" +" --file-format=FFORMAT Record/play formatted PCM data.\n" +" --list-file-formats List available file formats.\n" msgstr "" "%s [ಆಯà³à²•à³†à²—ಳà³]\n" "\n" @@ -1552,7 +1538,7 @@ msgstr "" " --process-time=BYTES ಸೂಚಿಸಲಾದ ಪà³à²°à²¤à²¿ ಮನವಿಯ ಪà³à²°à²•à³à²°à²¿à²¯à³†à²¯ ಸಮಯವನà³à²¨à³ " "ಬೈಟà³â€Œà²—ಳಲà³à²²à²¿ ಮನವಿ ಮಾಡà³.\n" -#: ../src/utils/pacat.c:612 +#: ../src/utils/pacat.c:727 #, c-format msgid "" "pacat %s\n" @@ -1563,88 +1549,133 @@ msgstr "" "libpulse %s ನೊಂದಿಗೆ ಕಂಪೈಲೠಮಾಡಲಾಗಿದೆ\n" "libpulse %s ನೊಂದಿಗೆ ಜೋಡಿಸಲಾಗಿದೆ\n" -#: ../src/utils/pacat.c:669 +#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "ಅಮಾನà³à²¯à²µà²¾à²¦ ಚಾನಲೠನಕà³à²·à³† '%s'\n" + +#: ../src/utils/pacat.c:776 +#, fuzzy, c-format +msgid "Invalid stream name '%s'\n" +msgstr "ಅಮಾನà³à²¯à²µà²¾à²¦ ಮರà³à²¨à²®à³‚ನೆ ವಿಧಾನ '%s'." + +#: ../src/utils/pacat.c:813 #, c-format msgid "Invalid channel map '%s'\n" msgstr "ಅಮಾನà³à²¯à²µà²¾à²¦ ಚಾನಲೠನಕà³à²·à³† '%s'\n" -#: ../src/utils/pacat.c:698 +#: ../src/utils/pacat.c:842 #, c-format msgid "Invalid latency specification '%s'\n" msgstr "ಅಮಾನà³à²¯à²µà²¾à²¦ ಅಗೋಚರತೆ ವಿವರಣೆ '%s'\n" -#: ../src/utils/pacat.c:705 +#: ../src/utils/pacat.c:849 #, c-format msgid "Invalid process time specification '%s'\n" msgstr "ಅಮಾನà³à²¯à²µà²¾à²¦ ಪà³à²°à²•à³à²°à²¿à²¯à³† ಸಮಯದ ವಿವರಣೆ '%s'\n" -#: ../src/utils/pacat.c:716 +#: ../src/utils/pacat.c:861 +#, fuzzy, c-format +msgid "Invalid property '%s'\n" +msgstr "ಅಮಾನà³à²¯à²µà²¾à²¦ ಮರà³à²¨à²®à³‚ನೆ ವಿಧಾನ '%s'." + +#: ../src/utils/pacat.c:878 #, c-format +msgid "Unknown file format %s." +msgstr "" + +#: ../src/utils/pacat.c:897 msgid "Invalid sample specification\n" msgstr "ಅಮಾನà³à²¯à²µà²¾à²¦ ನಮೂನೆ ವಿವರ\n" -#: ../src/utils/pacat.c:721 +#: ../src/utils/pacat.c:907 +#, c-format +msgid "open(): %s\n" +msgstr "ತೆರೆ(): %s\n" + +#: ../src/utils/pacat.c:912 #, c-format +msgid "dup2(): %s\n" +msgstr "dup2(): %s\n" + +#: ../src/utils/pacat.c:919 +msgid "Too many arguments.\n" +msgstr "ಬಹಳಷà³à²Ÿà³ ಆರà³à²—à³à²®à³†à²‚ಟà³â€Œà²—ಳà³.\n" + +#: ../src/utils/pacat.c:930 +#, fuzzy +msgid "Failed to generate sample specification for file.\n" +msgstr "ನಮೂನೆಯ ಮಾಹಿತಿಯನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ: %s\n" + +#: ../src/utils/pacat.c:950 +#, fuzzy +msgid "Failed to open audio file.\n" +msgstr "ಧà³à²µà²¨à²¿ ಕಡತವನà³à²¨à³ ತೆರೆಯà³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ.\n" + +#: ../src/utils/pacat.c:956 +msgid "" +"Warning: specified sample specification will be overwritten with " +"specification from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "ನಮೂನೆಯ ಮಾಹಿತಿಯನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ: %s\n" + +#: ../src/utils/pacat.c:968 +msgid "Warning: Failed to determine channel map from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:979 msgid "Channel map doesn't match sample specification\n" msgstr "ಚಾನಲೠನಕà³à²·à³†à²¯à³ ನಮೂನೆಯ ವಿವರಣೆಯೊಂದಿಗೆ ತಾಳೆಯಾಗà³à²¤à³à²¤à²¿à²²à³à²²\n" -#: ../src/utils/pacat.c:728 -#, c-format -msgid "Opening a %s stream with sample specification '%s'.\n" +#: ../src/utils/pacat.c:990 +msgid "Warning: failed to write channel map to file.\n" +msgstr "" + +#: ../src/utils/pacat.c:1005 +#, fuzzy, c-format +msgid "" +"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" msgstr "ಒಂದೠ%s ಸà³à²Ÿà³à²°à³€à²®à³â€Œ ಅನà³à²¨à³ ನಮೂನೆ ವಿವರಣೆ '%s' ಯೊಂದಿಗೆ ತೆರೆಯಲಾಗà³à²¤à³à²¤à²¿à²¦à³†.\n" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "recording" msgstr "ರೆಕಾರà³à²¡à²¿à²‚ಗà³" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "playback" msgstr "ಪà³à²²à³‡à²¬à³à²¯à²¾à²•à³â€Œ" -#: ../src/utils/pacat.c:736 -#, c-format -msgid "open(): %s\n" -msgstr "ತೆರೆ(): %s\n" - -#: ../src/utils/pacat.c:741 -#, c-format -msgid "dup2(): %s\n" -msgstr "dup2(): %s\n" - -#: ../src/utils/pacat.c:751 -#, c-format -msgid "Too many arguments.\n" -msgstr "ಬಹಳಷà³à²Ÿà³ ಆರà³à²—à³à²®à³†à²‚ಟà³â€Œà²—ಳà³.\n" - -#: ../src/utils/pacat.c:764 ../src/utils/pasuspender.c:280 -#: ../src/utils/pactl.c:1017 ../src/utils/paplay.c:381 +#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 +#: ../src/utils/pactl.c:1104 #, c-format msgid "pa_mainloop_new() failed.\n" msgstr "pa_mainloop_new() failed.\n" -#: ../src/utils/pacat.c:785 -#, c-format +#: ../src/utils/pacat.c:1051 msgid "io_new() failed.\n" msgstr "io_new() ವಿಫಲಗೊಂಡಿದೆ.\n" -#: ../src/utils/pacat.c:791 ../src/utils/pasuspender.c:293 -#: ../src/utils/pactl.c:1031 ../src/utils/paplay.c:396 +#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 +#: ../src/utils/pactl.c:1116 #, c-format msgid "pa_context_new() failed.\n" msgstr "pa_context_new() failed.\n" -#: ../src/utils/pacat.c:799 +#: ../src/utils/pacat.c:1066 #, fuzzy, c-format msgid "pa_context_connect() failed: %s\n" msgstr "pa_context_connect() failed: %s" -#: ../src/utils/pacat.c:810 -#, c-format +#: ../src/utils/pacat.c:1077 msgid "time_new() failed.\n" msgstr "time_new() failed.\n" -#: ../src/utils/pacat.c:817 ../src/utils/pasuspender.c:301 -#: ../src/utils/pactl.c:1042 ../src/utils/paplay.c:410 +#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 +#: ../src/utils/pactl.c:1127 #, c-format msgid "pa_mainloop_run() failed.\n" msgstr "pa_mainloop_run() failed.\n" @@ -1674,8 +1705,7 @@ msgstr "ಮರಳಿ ಆರಂà²à²¿à²¸à²²à³ ವಿಫಲಗೊಂಡಿದೆ: msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "ಎಚà³à²šà²°à²¿à²•à³†: ಧà³à²µà²¨à²¿ ಪರಿಚಾರಕವೠಸà³à²¥à²³à³€à²¯à²µà²¾à²—ಿಲà³à²², ತಾತà³à²•à²¾à²²à²¿à²•à²µà²¾à²—ಿ ತಡೆಹಿಡಿಯಲಾಗà³à²¤à³à²¤à²¿à²²à³à²².\n" -#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:768 -#: ../src/utils/paplay.c:191 +#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" msgstr "SIGINT ದೊರೆತಿದೆ, ನಿರà³à²—ಮಿಸà³à²¤à³à²¤à²¿à²¦à³†.\n" @@ -1703,7 +1733,7 @@ msgstr "" " -s, --server=SERVER ಸಂಪರà³à²•à²¸à²¾à²§à²¿à²¸à²¬à³‡à²•à²¿à²°à³à²µ ಪರಿಚಾರಕದ ಹೆಸರà³\n" "\n" -#: ../src/utils/pasuspender.c:251 +#: ../src/utils/pasuspender.c:248 #, c-format msgid "" "pasuspender %s\n" @@ -1714,34 +1744,34 @@ msgstr "" "libpulse %s ನೊಂದಿಗೆ ಕಂಪೈಲೠಮಾಡಲಾಗಿದೆ\n" "libpulse %s ನೊಂದಿಗೆ ಜೋಡಿಸಲಾಗಿದೆ\n" -#: ../src/utils/pactl.c:108 +#: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" msgstr "ಅಂಕಿಅಂಶಗಳನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ: %s\n" -#: ../src/utils/pactl.c:114 +#: ../src/utils/pactl.c:134 #, c-format msgid "Currently in use: %u blocks containing %s bytes total.\n" msgstr "ಪà³à²°à²¸à²•à³à²¤ ಬಳಕೆಯಲà³à²²à²¿à²°à³à²µà³à²¦à³: %u ಖಂಡಗಳೠಒಟà³à²Ÿà³ %s ಬೈಟà³â€Œà²—ಳನà³à²¨à³ ಹೊಂದಿದೆ.\n" -#: ../src/utils/pactl.c:117 +#: ../src/utils/pactl.c:137 #, c-format msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n" msgstr "" "ಸಂಪೂರà³à²£ ಜೀವಿತಾವಧಿಯ ಸಮಯದಲà³à²²à²¿ ನಿಯೋಜಿಸಲಾಗಿದà³à²¦à³: %u ಖಂಡಗಳೠಒಟà³à²Ÿà³ %s ಬೈಟà³â€Œà²—ಳನà³à²¨à³ " "ಹೊಂದಿದೆ.\n" -#: ../src/utils/pactl.c:120 +#: ../src/utils/pactl.c:140 #, c-format msgid "Sample cache size: %s\n" msgstr "ನಮೂನೆಯ ಕà³à²¯à²¾à²¶à³† ಗಾತà³à²°: %s\n" -#: ../src/utils/pactl.c:129 +#: ../src/utils/pactl.c:149 #, c-format msgid "Failed to get server information: %s\n" msgstr "ಪರಿಚಾರಕದ ಮಾಹಿತಿಯನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ: %s\n" -#: ../src/utils/pactl.c:137 +#: ../src/utils/pactl.c:157 #, c-format msgid "" "User name: %s\n" @@ -1764,12 +1794,12 @@ msgstr "" "ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಆಕರ: %s\n" "ಕà³à²•à²¿: %08x\n" -#: ../src/utils/pactl.c:178 +#: ../src/utils/pactl.c:198 #, c-format msgid "Failed to get sink information: %s\n" msgstr "ಸಿಂಕà³â€Œ ಮಾಹಿತಿಯನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ: %s\n" -#: ../src/utils/pactl.c:194 +#: ../src/utils/pactl.c:214 #, c-format msgid "" "Sink #%u\n" @@ -1808,12 +1838,22 @@ msgstr "" "\tಗà³à²£à²—ಳà³:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:258 +#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 +#, fuzzy, c-format +msgid "\tPorts:\n" +msgstr "\tಪà³à²°à³Šà²«à³ˆà²²à³à²—ಳà³:\n" + +#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 +#, fuzzy, c-format +msgid "\tActive Port: %s\n" +msgstr "\tಸಕà³à²°à²¿à²¯ ಪà³à²°à³Šà²«à³ˆà²²à³à²—ಳà³: %s\n" + +#: ../src/utils/pactl.c:290 #, c-format msgid "Failed to get source information: %s\n" msgstr "ಆಕರದ ಮಾಹಿತಿಯನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ: %s\n" -#: ../src/utils/pactl.c:274 +#: ../src/utils/pactl.c:306 #, c-format msgid "" "Source #%u\n" @@ -1852,20 +1892,20 @@ msgstr "" "\tಗà³à²£à²—ಳà³:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:306 ../src/utils/pactl.c:350 ../src/utils/pactl.c:385 -#: ../src/utils/pactl.c:422 ../src/utils/pactl.c:481 ../src/utils/pactl.c:482 -#: ../src/utils/pactl.c:492 ../src/utils/pactl.c:536 ../src/utils/pactl.c:537 -#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:586 ../src/utils/pactl.c:587 -#: ../src/utils/pactl.c:594 +#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429 +#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526 +#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581 +#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631 +#: ../src/utils/pactl.c:638 msgid "n/a" msgstr "ಅನà³à²µà²¯à²¿à²¸à³à²µà³à²¦à²¿à²²à³à²²" -#: ../src/utils/pactl.c:324 +#: ../src/utils/pactl.c:368 #, c-format msgid "Failed to get module information: %s\n" msgstr "ಘಟಕದ ಮಾಹಿತಿಯನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ: %s\n" -#: ../src/utils/pactl.c:342 +#: ../src/utils/pactl.c:386 #, c-format msgid "" "Module #%u\n" @@ -1882,12 +1922,12 @@ msgstr "" "\tಗà³à²£à²—ಳà³:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:361 +#: ../src/utils/pactl.c:405 #, c-format msgid "Failed to get client information: %s\n" msgstr "ಕà³à²²à³ˆà²‚ಟಿನ ಮಾಹಿತಿಯನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ: %s\n" -#: ../src/utils/pactl.c:379 +#: ../src/utils/pactl.c:423 #, c-format msgid "" "Client #%u\n" @@ -1902,12 +1942,12 @@ msgstr "" "\tಗà³à²£à²—ಳà³:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:396 +#: ../src/utils/pactl.c:440 #, c-format msgid "Failed to get card information: %s\n" msgstr "ಕಾರà³à²¡à²¿à²¨ ಮಾಹಿತಿಯನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ: %s\n" -#: ../src/utils/pactl.c:414 +#: ../src/utils/pactl.c:458 #, c-format msgid "" "Card #%u\n" @@ -1924,22 +1964,22 @@ msgstr "" "\tಗà³à²£à²—ಳà³:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:428 +#: ../src/utils/pactl.c:472 #, c-format msgid "\tProfiles:\n" msgstr "\tಪà³à²°à³Šà²«à³ˆà²²à³à²—ಳà³:\n" -#: ../src/utils/pactl.c:434 +#: ../src/utils/pactl.c:478 #, c-format msgid "\tActive Profile: %s\n" msgstr "\tಸಕà³à²°à²¿à²¯ ಪà³à²°à³Šà²«à³ˆà²²à³à²—ಳà³: %s\n" -#: ../src/utils/pactl.c:445 +#: ../src/utils/pactl.c:489 #, c-format msgid "Failed to get sink input information: %s\n" msgstr "ಸಿಂಕà³â€Œ ಇನà³â€Œà²ªà³à²Ÿà³ ಮಾಹಿತಿಯನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ: %s\n" -#: ../src/utils/pactl.c:464 +#: ../src/utils/pactl.c:508 #, c-format msgid "" "Sink Input #%u\n" @@ -1976,12 +2016,12 @@ msgstr "" "\tಗà³à²£à²—ಳà³:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:503 +#: ../src/utils/pactl.c:547 #, c-format msgid "Failed to get source output information: %s\n" msgstr "ಆಕರದ ಔಟà³â€Œà²ªà³à²Ÿà³ ಮಾಹಿತಿಯನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ: %s\n" -#: ../src/utils/pactl.c:523 +#: ../src/utils/pactl.c:567 #, c-format msgid "" "Source Output #%u\n" @@ -2010,12 +2050,12 @@ msgstr "" "\tಗà³à²£à²—ಳà³:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:554 +#: ../src/utils/pactl.c:598 #, c-format msgid "Failed to get sample information: %s\n" msgstr "ನಮೂನೆಯ ಮಾಹಿತಿಯನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ: %s\n" -#: ../src/utils/pactl.c:572 +#: ../src/utils/pactl.c:616 #, c-format msgid "" "Sample #%u\n" @@ -2046,23 +2086,22 @@ msgstr "" "\tಗà³à²£à²—ಳà³:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:602 ../src/utils/pactl.c:612 +#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 #, c-format msgid "Failure: %s\n" msgstr "ವಿಫಲತೆ: %s\n" -#: ../src/utils/pactl.c:636 +#: ../src/utils/pactl.c:680 #, c-format msgid "Failed to upload sample: %s\n" msgstr "ನಮೂನೆಯನà³à²¨à³ ಅಪà³â€Œà²²à³‹à²¡à³ ಮಾಡà³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ: %s\n" -#: ../src/utils/pactl.c:653 -#, c-format +#: ../src/utils/pactl.c:697 msgid "Premature end of file\n" msgstr "ಕಡತದ ಅಪà³à²°à²¾à²ªà³à²¤ ಸಮಯದಲà³à²²à²¿ ಅಂತà³à²¯\n" -#: ../src/utils/pactl.c:774 -#, c-format +#: ../src/utils/pactl.c:826 +#, fuzzy, c-format msgid "" "%s [options] stat\n" "%s [options] list\n" @@ -2077,6 +2116,8 @@ msgid "" "%s [options] suspend-sink [SINK] 1|0\n" "%s [options] suspend-source [SOURCE] 1|0\n" "%s [options] set-card-profile [CARD] [PROFILE] \n" +"%s [options] set-sink-port [SINK] [PORT] \n" +"%s [options] set-source-port [SOURCE] [PORT] \n" "\n" " -h, --help Show this help\n" " --version Show version\n" @@ -2107,7 +2148,7 @@ msgstr "" " -n, --client-name=NAME ಪರಿಚಾರಕದಲà³à²²à²¿ ಈ ಕà³à²²à³ˆà²‚ಟಿನಲà³à²²à²¿ à²à²¨à³†à²‚ದೠ" "ಕರೆಯಬೇಕà³\n" -#: ../src/utils/pactl.c:826 +#: ../src/utils/pactl.c:880 #, c-format msgid "" "pactl %s\n" @@ -2118,48 +2159,44 @@ msgstr "" "libpulse %s ನೊಂದಿಗೆ ಕಂಪೈಲೠಮಾಡಲಾಗಿದೆ\n" "libpulse %s ನೊಂದಿಗೆ ಜೋಡಿಸಲಾಗಿದೆ\n" -#: ../src/utils/pactl.c:865 -#, c-format +#: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "ಲೋಡೠಮಾಡಬೇಕಿರà³à²µ ಒಂದೠಕಡತದ ನಮೂನೆಯನà³à²¨à³ ಸೂಚಿಸಿ\n" -#: ../src/utils/pactl.c:887 -#, c-format +#: ../src/utils/pactl.c:939 msgid "Failed to open sound file.\n" msgstr "ಧà³à²µà²¨à²¿ ಕಡತವನà³à²¨à³ ತೆರೆಯà³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ.\n" -#: ../src/utils/pactl.c:899 -#, c-format +#: ../src/utils/pactl.c:951 +#, fuzzy +msgid "Warning: Failed to determine sample specification from file.\n" +msgstr "ಒಂದೠ%s ಸà³à²Ÿà³à²°à³€à²®à³â€Œ ಅನà³à²¨à³ ನಮೂನೆ ವಿವರಣೆ '%s' ಯೊಂದಿಗೆ ತೆರೆಯಲಾಗà³à²¤à³à²¤à²¿à²¦à³†.\n" + +#: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" msgstr "ಚಲಾಯಿಸಲೠನೀವೠಒಂದೠನಮೂನೆಯ ಹೆಸರನà³à²¨à³ ಸೂಚಿಸಬೇಕಾಗà³à²¤à³à²¤à²¦à³†\n" -#: ../src/utils/pactl.c:911 -#, c-format +#: ../src/utils/pactl.c:973 msgid "You have to specify a sample name to remove\n" msgstr "ತೆಗೆದೠಹಾಕಲೠನೀವೠಒಂದೠನಮೂನೆಯ ಹೆಸರನà³à²¨à³ ಸೂಚಿಸಬೇಕà³\n" -#: ../src/utils/pactl.c:919 -#, c-format +#: ../src/utils/pactl.c:982 msgid "You have to specify a sink input index and a sink\n" msgstr "ನೀವೠಒಂದೠಸಿಂಕೠಇನà³â€Œà²ªà³à²Ÿà³ ಸೂಚಿಯನà³à²¨à³ ಹಾಗೠಒಂದೠಸಿಂಕà³â€Œ ಅನà³à²¨à³ ಸೂಚಿಸಬೇಕà³.\n" -#: ../src/utils/pactl.c:928 -#, c-format +#: ../src/utils/pactl.c:992 msgid "You have to specify a source output index and a source\n" msgstr "ನೀವೠಒಂದೠಆಕರ ಔಟà³â€Œà²ªà³à²Ÿà³ ಸೂಚಿಯನà³à²¨à³ ಹಾಗೠಒಂದೠಆಕರವನà³à²¨à³ ಸೂಚಿಸಬೇಕà³.\n" -#: ../src/utils/pactl.c:942 -#, c-format +#: ../src/utils/pactl.c:1007 msgid "You have to specify a module name and arguments.\n" msgstr "ನೀವೠಒಂದೠಘಟಕದ ಹೆಸರನà³à²¨à³ ಹಾಗೠಆರà³à²—à³à²®à³†à²‚ಟà³à²—ಳನà³à²¨à³ ಸೂಚಿಸಬೇಕà³\n" -#: ../src/utils/pactl.c:962 -#, c-format +#: ../src/utils/pactl.c:1027 msgid "You have to specify a module index\n" msgstr "ನೀವೠಒಂದೠಘಟಕ ಸೂಚಿಯನà³à²¨à³ ಸೂಚಿಸಬೇಕà³\n" -#: ../src/utils/pactl.c:972 -#, c-format +#: ../src/utils/pactl.c:1037 msgid "" "You may not specify more than one sink. You have to specify a boolean " "value.\n" @@ -2167,8 +2204,7 @@ msgstr "" "ನೀವೠಒಂದಕà³à²•à²¿à²‚ತ ಹೆಚà³à²šà²¿à²¨ ಸಿಂಕನà³à²¨à³ ಸೂಚಿಸಲಾಗà³à²µà³à²¦à²¿à²²à³à²². ನೀವೠಒಂದೠಬೂಲಿಯನà³â€Œ ಮೌಲà³à²¯à²µà²¨à³à²¨à³ " "ಸೂಚಿಸಬೇಕಾಗà³à²¤à³à²¤à²¦à³†.\n" -#: ../src/utils/pactl.c:985 -#, c-format +#: ../src/utils/pactl.c:1050 msgid "" "You may not specify more than one source. You have to specify a boolean " "value.\n" @@ -2176,17 +2212,25 @@ msgstr "" "ನೀವೠಒಂದಕà³à²•à²¿à²‚ತ ಹೆಚà³à²šà²¿à²¨ ಆಕರವನà³à²¨à³ ಸೂಚಿಸಲಾಗà³à²µà³à²¦à²¿à²²à³à²². ನೀವೠಒಂದೠಬೂಲಿಯನà³â€Œ ಮೌಲà³à²¯à²µà²¨à³à²¨à³ " "ಸೂಚಿಸಬೇಕಾಗà³à²¤à³à²¤à²¦à³†.\n" -#: ../src/utils/pactl.c:997 -#, c-format +#: ../src/utils/pactl.c:1062 msgid "You have to specify a card name/index and a profile name\n" msgstr "ಒಂದೠಕಾರà³à²¡à²¿à²¨ ಹೆಸರà³/ಸೂಚಿಯನà³à²¨à³ ಹಾಗೠಪà³à²°à³Šà²«à³ˆà²²à³â€Œ ಹೆಸರನà³à²¨à³ ಸೂಚಿಸಬೇಕà³\n" -#: ../src/utils/pactl.c:1012 -#, c-format +#: ../src/utils/pactl.c:1073 +#, fuzzy +msgid "You have to specify a sink name/index and a port name\n" +msgstr "ಒಂದೠಕಾರà³à²¡à²¿à²¨ ಹೆಸರà³/ಸೂಚಿಯನà³à²¨à³ ಹಾಗೠಪà³à²°à³Šà²«à³ˆà²²à³â€Œ ಹೆಸರನà³à²¨à³ ಸೂಚಿಸಬೇಕà³\n" + +#: ../src/utils/pactl.c:1084 +#, fuzzy +msgid "You have to specify a source name/index and a port name\n" +msgstr "ಒಂದೠಕಾರà³à²¡à²¿à²¨ ಹೆಸರà³/ಸೂಚಿಯನà³à²¨à³ ಹಾಗೠಪà³à²°à³Šà²«à³ˆà²²à³â€Œ ಹೆಸರನà³à²¨à³ ಸೂಚಿಸಬೇಕà³\n" + +#: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "ಯಾವà³à²¦à³† ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ ಸೂಚಿಸಲಾಗಿಲà³à²².\n" -#: ../src/utils/pactl.c:1037 ../src/utils/paplay.c:404 +#: ../src/utils/pactl.c:1122 #, c-format msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect() failed: %s" @@ -2271,128 +2315,48 @@ msgstr "ಕà³à²•à²¿ ದತà³à²¤à²¾à²‚ಶವನà³à²¨à³ ಲೋಡೠಮಾಡ msgid "Not yet implemented.\n" msgstr "ಇನà³à²¨à³‚ ಸಹ ಅನà³à²µà²¯à²¿à²¸à²²à²¾à²—ಿಲà³à²².\n" -#: ../src/utils/pacmd.c:64 +#: ../src/utils/pacmd.c:61 +msgid "No PulseAudio daemon running, or not running as session daemon." +msgstr "" + +#: ../src/utils/pacmd.c:66 #, c-format msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s" msgstr "ಸಾಕೆಟà³(PF_UNIX, SOCK_STREAM, 0): %s" -#: ../src/utils/pacmd.c:81 +#: ../src/utils/pacmd.c:83 #, c-format msgid "connect(): %s" msgstr "ಸಂಪರà³à²•à²¿à²¸à³(): %s" -#: ../src/utils/pacmd.c:89 +#: ../src/utils/pacmd.c:91 msgid "Failed to kill PulseAudio daemon." msgstr "PulseAudio ಡೀಮನೠಅನà³à²¨à³ ಕೊಲà³à²²à³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ." -#: ../src/utils/pacmd.c:97 +#: ../src/utils/pacmd.c:99 msgid "Daemon not responding." msgstr "ಡೀಮನೠಪà³à²°à²¤à²¿à²•à³à²°à²¿à²¯à²¿à²¸à³à²¤à³à²¤à²¿à²²à³à²²." -#: ../src/utils/pacmd.c:144 +#: ../src/utils/pacmd.c:146 #, c-format msgid "select(): %s" msgstr "ಆಯà³à²•à³†à²®à²¾à²¡à³(): %s" -#: ../src/utils/pacmd.c:154 ../src/utils/pacmd.c:171 +#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173 #, c-format msgid "read(): %s" msgstr "ಓದà³(): %s" -#: ../src/utils/pacmd.c:187 ../src/utils/pacmd.c:201 +#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203 #, c-format msgid "write(): %s" msgstr "ಬರೆ(): %s" -#: ../src/utils/paplay.c:139 -#, c-format -msgid "Stream successfully created\n" -msgstr "ಸà³à²Ÿà³à²°à³€à²®à²¨à³à²¨à³ ಯಶಸà³à²µà²¿à²¯à²¾à²—ಿ ನಿರà³à²®à²¿à²¸à²²à²¾à²—ಿದೆ\n" - -#: ../src/utils/paplay.c:144 -#, c-format -msgid "Stream errror: %s\n" -msgstr "ಸà³à²Ÿà³à²°à³€à²®à³ ದೋಷ: %s\n" - -#: ../src/utils/paplay.c:165 -#, c-format -msgid "Connection established.\n" -msgstr "ಸಂಪರà³à²•à²µà²¨à³à²¨à³ ಸಾಧಿಸಲಾಗಿದೆ.\n" - -#: ../src/utils/paplay.c:198 -#, c-format -msgid "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" -msgstr "" -"%s [ಆಯà³à²•à³†à²—ಳà³] [FILE]\n" -"\n" -" -h, --help ಈ ನೆರವನà³à²¨à³ ತೋರಿಸà³\n" -" --version ಆವೃತà³à²¤à²¿à²¯à²¨à³à²¨à³ ತೋರಿಸà³\n" -"\n" -" -v, --verbose ವರà³à²¬à³‹à²¸à³ ಕಾರà³à²¯à²µà²¨à³à²¨à³ ಶಕà³à²¤à²—ೊಳಿಸà³\n" -"\n" -" -s, --server=SERVER ಸಂಪರà³à²•à²¸à²¾à²§à²¿à²¸à²¬à³‡à²•à²¿à²°à³à²µ ಪರಿಚಾರಕದ ಹೆಸರà³\n" -" -d, --device=DEVICE ಸಂಪರà³à²•à²¸à²¾à²§à²¿à²¸à²¬à³‡à²•à²¿à²°à³à²µ ಸಿಂಕಿನ ಹೆಸರà³\n" -" -n, --client-name=NAME ಪರಿಚಾರಕದಲà³à²²à²¿ ಈ ಕà³à²²à³ˆà²‚ಟಿನಲà³à²²à²¿ à²à²¨à³†à²‚ದೠ" -"ಕರೆಯಬೇಕà³\n" -" --stream-name=NAME ಪರಿಚಾರಕದಲà³à²²à²¿ ಈ ಸà³à²Ÿà³à²°à³€à²®à²¿à²¨à²²à³à²²à²¿ à²à²¨à³†à²‚ದೠ" -"ಕರೆಯಬೇಕà³\n" -" --volume=VOLUME ಆರಂà²à²¿à²• (ರೇಖೀಯ) ಪರಿಮಾಣವನà³à²¨à³ 0...65536 " -"ವà³à²¯à²¾à²ªà³à²¤à²¿à²¯à²²à³à²²à²¿ ತೋರಿಸà³\n" -" --channel-map=CHANNELMAP ಬಳಕೆಗಾಗಿ ಚಾನಲೠನಕà³à²·à³†à²¯à²¨à³à²¨à³ ಹೊಂದಿಸà³\n" - -#: ../src/utils/paplay.c:255 -#, c-format -msgid "" -"paplay %s\n" -"Compiled with libpulse %s\n" -"Linked with libpulse %s\n" -msgstr "" -"paplay %s\n" -"libpulse %s ನೊಂದಿಗೆ ಕಂಪೈಲೠಮಾಡಲಾಗಿದೆ\n" -"libpulse %s ನೊಂದಿಗೆ ಜೋಡಿಸಲಾಗಿದೆ\n" - -#: ../src/utils/paplay.c:292 -#, c-format -msgid "Invalid channel map\n" -msgstr "ಅಮಾನà³à²¯à²µà²¾à²¦ ಚಾನಲೠನಕà³à²·à³†\n" - -#: ../src/utils/paplay.c:314 -#, c-format -msgid "Failed to open file '%s'\n" -msgstr "ಕಡತ '%s' ಅನà³à²¨à³ ತೆರೆಯà³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ\n" - -#: ../src/utils/paplay.c:350 -#, c-format -msgid "Channel map doesn't match file.\n" -msgstr "ಮಾರà³à²—ದ ನಕà³à²·à³†à²¯à³ ಕಡತಕೆ ಹೊಂದಿಕೆಯಾಗà³à²¤à³à²¤à²¿à²²à³à²².\n" - -#: ../src/utils/paplay.c:376 -#, c-format -msgid "Using sample spec '%s'\n" -msgstr "ಸರಳ ವಿವರಣೆ(ಸà³à²ªà³†à²•à³) '%s' ಅನà³à²¨à³ ಬಳಸಿಕೊಂಡà³\n" - #: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 msgid "Cannot access autospawn lock." msgstr "ಸà³à²µà²¯à²‚ಹೆಚà³à²šà²¿à²¸à³à²µà²¿à²•à³†à²¯ ಲಾಕೠಅನà³à²¨à³ ನಿಲà³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à³ ಸಾಧà³à²¯à²µà²¿à²²à³à²²." -#: ../src/modules/alsa/alsa-sink.c:393 ../src/modules/alsa/alsa-sink.c:541 +#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2407,7 +2371,7 @@ msgstr "" "ವಿಕಸನಗಾರರ ಗಮನಕà³à²•à³† ತನà³à²¨à²¿.POLLOUT ಸೆಟà³â€Œà²¨à²¿à²‚ದ ನಾವೠಎಚà³à²šà³†à²¤à³à²¤à³à²—ೊಂಡಿದà³à²¦à³‡à²µà³† -- ಆದರೆ ನಂತರದ " "snd_pcm_avail() 0 ಅಥವ min_avail ಕà³à²•à²¿à²‚ತ ಚಿಕà³à²•à²¦à²¾à²¦ ಇನà³à²¨à³Šà²‚ದೠಮೌಲà³à²¯à²µà²¨à³à²¨à³ ಮರಳಿಸಿದೆ." -#: ../src/modules/alsa/alsa-source.c:377 ../src/modules/alsa/alsa-source.c:516 +#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2422,34 +2386,128 @@ msgstr "" "ವಿಕಸನಗಾರರ ಗಮನಕà³à²•à³† ತನà³à²¨à²¿.POLLIN ಸೆಟà³â€Œà²¨à²¿à²‚ದ ನಾವೠಎಚà³à²šà³†à²¤à³à²¤à³à²—ೊಂಡಿದà³à²¦à³‡à²µà³† -- ಆದರೆ ನಂತರದ " "snd_pcm_avail() 0 ಅಥವ min_avail ಕà³à²•à²¿à²‚ತ ಚಿಕà³à²•à²¦à²¾à²¦ ಇನà³à²¨à³Šà²‚ದೠಮೌಲà³à²¯à²µà²¨à³à²¨à³ ಮರಳಿಸಿದೆ." -#: ../src/modules/alsa/module-alsa-card.c:114 -#, c-format -msgid "Output %s + Input %s" -msgstr "ಔಟà³â€Œà²ªà³à²Ÿà³ %s + ಇನà³â€Œà²ªà³à²Ÿà³ %s" - -#: ../src/modules/alsa/module-alsa-card.c:117 -#, c-format -msgid "Output %s" -msgstr "ಔಟà³â€Œà²ªà³à²Ÿà³ %s" - -#: ../src/modules/alsa/module-alsa-card.c:121 -#, c-format -msgid "Input %s" -msgstr "ಇನà³â€Œà²ªà³à²Ÿà³ %s" - -#: ../src/modules/alsa/module-alsa-card.c:170 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2006 +#: ../src/modules/alsa/module-alsa-card.c:152 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 msgid "Off" msgstr "ಜಡ" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1976 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 msgid "High Fidelity Playback (A2DP)" msgstr "ಹೈ ಫಿಡಿಲಿಟಿ ಪà³à²²à³‡à²¬à³à²¯à²¾à²•à³ (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1991 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 msgid "Telephony Duplex (HSP/HFP)" msgstr "ಟೆಲಿಫೋನಿ ಡà³à²¯à³‚ಪà³à²²à³†à²•à³à²¸à³â€Œ (HSP/HFP)" -#: ../src/modules/reserve-wrap.c:139 +#: ../src/modules/reserve-wrap.c:151 msgid "PulseAudio Sound Server" msgstr "ಪಲà³à²¸à³â€à²†à²¡à²¿à²¯à³‹ ಧà³à²µà²¨à²¿ ಪರಿಚಾರಕ" + +#~ msgid "Analog Mono" +#~ msgstr "ಅನಲಾಗೠಮೊನೊ" + +#~ msgid "Analog Stereo" +#~ msgstr "ಅನಲಾಗೠಸà³à²Ÿà³€à²°à²¿à²¯à³‹" + +#~ msgid "Digital Stereo (IEC958)" +#~ msgstr "ಡಿಜಿಟಲೠಸà³à²Ÿà³€à²°à²¿à²¯à³‹ (IEC958)" + +#~ msgid "Digital Stereo (HDMI)" +#~ msgstr "ಡಿಜಿಟಲೠಸà³à²Ÿà³€à²°à²¿à²¯à³‹ (HDMI)" + +#~ msgid "Analog Surround 4.0" +#~ msgstr "ಅನಲಾಗೠ4.0" + +#~ msgid "Digital Surround 4.0 (IEC958/AC3)" +#~ msgstr "ಡಿಜಿಟಲೠಸರೌಂಡೠ4.0 (IEC958/AC3)" + +#~ msgid "Analog Surround 4.1" +#~ msgstr "ಅನಲಾಗೠಸರೌಂಡೠ4.1" + +#~ msgid "Analog Surround 5.0" +#~ msgstr "ಅನಲಾಗೠಸರೌಂಡೠ5.0" + +#~ msgid "Analog Surround 5.1" +#~ msgstr "ಅನಲಾಗೠಸರೌಂಡೠ5.1" + +#~ msgid "Digital Surround 5.1 (IEC958/AC3)" +#~ msgstr "ಡಿಜಿಟಲೠಸರೌಂಡೠ5.1 (IEC958/AC3)" + +#~ msgid "Analog Surround 7.1" +#~ msgstr "ಡಿಜಿಟಲೠಸರೌಂಡೠ7.1" + +#~ msgid "Output %s + Input %s" +#~ msgstr "ಔಟà³â€Œà²ªà³à²Ÿà³ %s + ಇನà³â€Œà²ªà³à²Ÿà³ %s" + +#~ msgid "Output %s" +#~ msgstr "ಔಟà³â€Œà²ªà³à²Ÿà³ %s" + +#~ msgid "Input %s" +#~ msgstr "ಇನà³â€Œà²ªà³à²Ÿà³ %s" + +#~ msgid "Stream successfully created\n" +#~ msgstr "ಸà³à²Ÿà³à²°à³€à²®à²¨à³à²¨à³ ಯಶಸà³à²µà²¿à²¯à²¾à²—ಿ ನಿರà³à²®à²¿à²¸à²²à²¾à²—ಿದೆ\n" + +#~ msgid "Stream errror: %s\n" +#~ msgstr "ಸà³à²Ÿà³à²°à³€à²®à³ ದೋಷ: %s\n" + +#~ msgid "Connection established.\n" +#~ msgstr "ಸಂಪರà³à²•à²µà²¨à³à²¨à³ ಸಾಧಿಸಲಾಗಿದೆ.\n" + +#~ msgid "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Show this help\n" +#~ " --version Show version\n" +#~ "\n" +#~ " -v, --verbose Enable verbose operation\n" +#~ "\n" +#~ " -s, --server=SERVER The name of the server to connect " +#~ "to\n" +#~ " -d, --device=DEVICE The name of the sink to connect " +#~ "to\n" +#~ " -n, --client-name=NAME How to call this client on the " +#~ "server\n" +#~ " --stream-name=NAME How to call this stream on the " +#~ "server\n" +#~ " --volume=VOLUME Specify the initial (linear) " +#~ "volume in range 0...65536\n" +#~ " --channel-map=CHANNELMAP Set the channel map to the use\n" +#~ msgstr "" +#~ "%s [ಆಯà³à²•à³†à²—ಳà³] [FILE]\n" +#~ "\n" +#~ " -h, --help ಈ ನೆರವನà³à²¨à³ ತೋರಿಸà³\n" +#~ " --version ಆವೃತà³à²¤à²¿à²¯à²¨à³à²¨à³ ತೋರಿಸà³\n" +#~ "\n" +#~ " -v, --verbose ವರà³à²¬à³‹à²¸à³ ಕಾರà³à²¯à²µà²¨à³à²¨à³ ಶಕà³à²¤à²—ೊಳಿಸà³\n" +#~ "\n" +#~ " -s, --server=SERVER ಸಂಪರà³à²•à²¸à²¾à²§à²¿à²¸à²¬à³‡à²•à²¿à²°à³à²µ ಪರಿಚಾರಕದ ಹೆಸರà³\n" +#~ " -d, --device=DEVICE ಸಂಪರà³à²•à²¸à²¾à²§à²¿à²¸à²¬à³‡à²•à²¿à²°à³à²µ ಸಿಂಕಿನ ಹೆಸರà³\n" +#~ " -n, --client-name=NAME ಪರಿಚಾರಕದಲà³à²²à²¿ ಈ ಕà³à²²à³ˆà²‚ಟಿನಲà³à²²à²¿ à²à²¨à³†à²‚ದೠ" +#~ "ಕರೆಯಬೇಕà³\n" +#~ " --stream-name=NAME ಪರಿಚಾರಕದಲà³à²²à²¿ ಈ ಸà³à²Ÿà³à²°à³€à²®à²¿à²¨à²²à³à²²à²¿ à²à²¨à³†à²‚ದೠ" +#~ "ಕರೆಯಬೇಕà³\n" +#~ " --volume=VOLUME ಆರಂà²à²¿à²• (ರೇಖೀಯ) ಪರಿಮಾಣವನà³à²¨à³ " +#~ "0...65536 ವà³à²¯à²¾à²ªà³à²¤à²¿à²¯à²²à³à²²à²¿ ತೋರಿಸà³\n" +#~ " --channel-map=CHANNELMAP ಬಳಕೆಗಾಗಿ ಚಾನಲೠನಕà³à²·à³†à²¯à²¨à³à²¨à³ ಹೊಂದಿಸà³\n" + +#~ msgid "" +#~ "paplay %s\n" +#~ "Compiled with libpulse %s\n" +#~ "Linked with libpulse %s\n" +#~ msgstr "" +#~ "paplay %s\n" +#~ "libpulse %s ನೊಂದಿಗೆ ಕಂಪೈಲೠಮಾಡಲಾಗಿದೆ\n" +#~ "libpulse %s ನೊಂದಿಗೆ ಜೋಡಿಸಲಾಗಿದೆ\n" + +#~ msgid "Invalid channel map\n" +#~ msgstr "ಅಮಾನà³à²¯à²µà²¾à²¦ ಚಾನಲೠನಕà³à²·à³†\n" + +#~ msgid "Failed to open file '%s'\n" +#~ msgstr "ಕಡತ '%s' ಅನà³à²¨à³ ತೆರೆಯà³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ\n" + +#~ msgid "Channel map doesn't match file.\n" +#~ msgstr "ಮಾರà³à²—ದ ನಕà³à²·à³†à²¯à³ ಕಡತಕೆ ಹೊಂದಿಕೆಯಾಗà³à²¤à³à²¤à²¿à²²à³à²².\n" + +#~ msgid "Using sample spec '%s'\n" +#~ msgstr "ಸರಳ ವಿವರಣೆ(ಸà³à²ªà³†à²•à³) '%s' ಅನà³à²¨à³ ಬಳಸಿಕೊಂಡà³\n" @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio.master-tx.pulseaudio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-21 23:02+0200\n" +"POT-Creation-Date: 2009-06-17 23:42+0200\n" "PO-Revision-Date: 2009-04-06 13:43+0530\n" "Last-Translator: Sandeep Shedmake <sandeep.shedmake@gmail.com>\n" "Language-Team: marathi\n" @@ -17,51 +17,7 @@ msgstr "" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" -#: ../src/modules/alsa/alsa-util.c:532 -msgid "Analog Mono" -msgstr "à¤à¤¨à¤²à¥‰à¤— मोनो" - -#: ../src/modules/alsa/alsa-util.c:540 -msgid "Analog Stereo" -msgstr "à¤à¤¨à¤²à¥‰à¤— सà¥à¤Ÿà¤¿à¤°à¥€à¤“" - -#: ../src/modules/alsa/alsa-util.c:548 -msgid "Digital Stereo (IEC958)" -msgstr "डिजीटल सà¥à¤Ÿà¤¿à¤°à¥€à¤“ (IEC958)" - -#: ../src/modules/alsa/alsa-util.c:556 -msgid "Digital Stereo (HDMI)" -msgstr "डिजीटल सà¥à¤Ÿà¤¿à¤°à¥€à¤“ (HDMI)" - -#: ../src/modules/alsa/alsa-util.c:565 -msgid "Analog Surround 4.0" -msgstr "à¤à¤¨à¤²à¥‰à¤— सराऊनà¥à¤¡ 4.0" - -#: ../src/modules/alsa/alsa-util.c:574 -msgid "Digital Surround 4.0 (IEC958/AC3)" -msgstr "डिजीटल सराऊनà¥à¤¡ 4.0 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:584 -msgid "Analog Surround 4.1" -msgstr "à¤à¤¨à¤²à¥‰à¤— सराऊनà¥à¤¡ 4.1" - -#: ../src/modules/alsa/alsa-util.c:594 -msgid "Analog Surround 5.0" -msgstr "à¤à¤¨à¤²à¥‰à¤— सराऊनà¥à¤¡ 5.0" - -#: ../src/modules/alsa/alsa-util.c:604 -msgid "Analog Surround 5.1" -msgstr "à¤à¤¨à¤²à¥‰à¤— सराऊनà¥à¤¡ 5.1" - -#: ../src/modules/alsa/alsa-util.c:614 -msgid "Digital Surround 5.1 (IEC958/AC3)" -msgstr "डिजीटल सराऊनà¥à¤¡ 5.1 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:625 -msgid "Analog Surround 7.1" -msgstr "à¤à¤¨à¤²à¥‰à¤— सराऊनà¥à¤¡ 7.1" - -#: ../src/modules/alsa/alsa-util.c:1646 +#: ../src/modules/alsa/alsa-util.c:1015 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -73,7 +29,7 @@ msgstr "" "हे सहसा ALSA डà¥à¤°à¤¾à¤‡à¤µà¤° '%s' अंतरà¥à¤—त बग अशू शकते. कृपया या अडचणीस ALSA डेवà¥à¤¹à¤²à¤ªà¤° करीता " "कळवा." -#: ../src/modules/alsa/alsa-util.c:1687 +#: ../src/modules/alsa/alsa-util.c:1056 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -85,7 +41,7 @@ msgstr "" "हे सहसा ALSA डà¥à¤°à¤¾à¤‡à¤µà¤° '%s' अंतरà¥à¤—त बग अशू शकते. कृपया या अडचणीस ALSA डेवà¥à¤¹à¤²à¤ªà¤° करीता " "कळवा." -#: ../src/modules/alsa/alsa-util.c:1734 +#: ../src/modules/alsa/alsa-util.c:1103 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -97,11 +53,24 @@ msgstr "" "हे सहसा ALSA डà¥à¤°à¤¾à¤‡à¤µà¤° '%s' अंतरà¥à¤—त बग अशू शकते. कृपया या अडचणीस ALSA डेवà¥à¤¹à¤²à¤ªà¤° करीता " "कळवा." -#: ../src/pulsecore/sink.c:2141 +#: ../src/modules/module-ladspa-sink.c:49 +msgid "Virtual LADSPA sink" +msgstr "" + +#: ../src/modules/module-ladspa-sink.c:53 +msgid "" +"sink_name=<name for the sink> sink_properties=<properties for the sink> " +"master=<name of sink to filter> format=<sample format> rate=<sample rate> " +"channels=<number of channels> channel_map=<channel map> plugin=<ladspa " +"plugin name> label=<ladspa plugin label> control=<comma seperated list of " +"input control values>" +msgstr "" + +#: ../src/pulsecore/sink.c:2394 msgid "Internal Audio" msgstr "आंतरीक ऑडिओ" -#: ../src/pulsecore/sink.c:2147 +#: ../src/pulsecore/sink.c:2400 msgid "Modem" msgstr "मोडेम" @@ -171,104 +140,104 @@ msgstr "परवानगी पà¥à¤°à¤¾à¤ªà¥à¤¤ करणे अशकà¥à¤¯ msgid "PolicyKit responded with '%s'" msgstr "PolicyKit ने '%s' सह पà¥à¤°à¤¤à¤¿à¤¸à¤¾à¤¦ दिला" -#: ../src/daemon/main.c:138 +#: ../src/daemon/main.c:142 #, c-format msgid "Got signal %s." msgstr "संकेत %s पà¥à¤°à¤¾à¤ªà¥à¤¤ à¤à¤¾à¤²à¥‡." -#: ../src/daemon/main.c:165 +#: ../src/daemon/main.c:169 msgid "Exiting." msgstr "बाहेर पडत आहे." -#: ../src/daemon/main.c:183 +#: ../src/daemon/main.c:187 #, c-format msgid "Failed to find user '%s'." msgstr "वापरकरà¥à¤¤à¤¾ '%s' शोधणे अशकà¥à¤¯." -#: ../src/daemon/main.c:188 +#: ../src/daemon/main.c:192 #, c-format msgid "Failed to find group '%s'." msgstr "गट '%s' शोधणà¥à¤¯à¤¾à¤¸ अपयशी." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:196 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "वापरकरà¥à¤¤à¤¾ '%s' (UID %lu) व गट '%s' (GID %lu) आढळले." -#: ../src/daemon/main.c:197 +#: ../src/daemon/main.c:201 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "वापरकरà¥à¤¤à¤¾ '%s' व गट '%s' चे GID जà¥à¤³à¤¤ नाही." -#: ../src/daemon/main.c:202 +#: ../src/daemon/main.c:206 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "वापरकरà¥à¤¤à¤¾ '%s' ची मà¥à¤–à¥à¤¯ डिरेकà¥à¤Ÿà¥à¤°à¥€ '%s' नाही, दà¥à¤°à¥à¤²à¤•à¥à¤· करत आहे." -#: ../src/daemon/main.c:205 ../src/daemon/main.c:210 +#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 #, c-format msgid "Failed to create '%s': %s" msgstr "'%s' बनवणà¥à¤¯à¤¾à¤¸ अपयशी: %s" -#: ../src/daemon/main.c:217 +#: ../src/daemon/main.c:221 #, c-format msgid "Failed to change group list: %s" msgstr "गट यादी बदलवणà¥à¤¯à¤¾à¤¸ अपयशी: %s" -#: ../src/daemon/main.c:233 +#: ../src/daemon/main.c:237 #, c-format msgid "Failed to change GID: %s" msgstr "GID बदलवणà¥à¤¯à¤¾à¤¸ अपयशी: %s" -#: ../src/daemon/main.c:249 +#: ../src/daemon/main.c:253 #, c-format msgid "Failed to change UID: %s" msgstr "UID बदलवणà¥à¤¯à¤¾à¤¸ अपयशी: %s" -#: ../src/daemon/main.c:263 +#: ../src/daemon/main.c:267 msgid "Successfully dropped root privileges." msgstr "रूट परवानगी यशसà¥à¤µà¥€à¤°à¤¿à¤¤à¥à¤¯à¤¾ वगळले." -#: ../src/daemon/main.c:271 +#: ../src/daemon/main.c:275 msgid "System wide mode unsupported on this platform." msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€ à¤à¤° पदà¥à¤§à¤¤ या पà¥à¤²à¥…टफॉरà¥à¤® करीता समरà¥à¤¥à¥€à¤¤ नाही." -#: ../src/daemon/main.c:289 +#: ../src/daemon/main.c:293 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) अपयशी: %s" -#: ../src/daemon/main.c:477 +#: ../src/daemon/main.c:481 msgid "Failed to parse command line." msgstr "आदेश ओळ वाचणà¥à¤¯à¤¾à¤¸ अपयशी." -#: ../src/daemon/main.c:501 +#: ../src/daemon/main.c:505 #, c-format msgid "We're in the group '%s', allowing high-priority scheduling." msgstr "आपण गट '%s' अंतरà¥à¤—त आहोत, उचà¥à¤š-पà¥à¤°à¤¾à¤§à¤¨à¥à¤¯à¤•à¥à¤°à¤® वेळपतà¥à¤°à¤• करीता परवानगी देते." -#: ../src/daemon/main.c:508 +#: ../src/daemon/main.c:512 #, c-format msgid "We're in the group '%s', allowing real-time scheduling." msgstr "आपण गट '%s' अंतरà¥à¤—त आहोत, रियल-टाईम वेळपतà¥à¤°à¤• करीता परवानगी देते." -#: ../src/daemon/main.c:516 +#: ../src/daemon/main.c:520 msgid "PolicyKit grants us acquire-high-priority privilege." msgstr "PolicyKit आपलà¥à¤¯à¤¾à¤²à¤¾ acquire-high-priority परवानगी देतो." -#: ../src/daemon/main.c:519 +#: ../src/daemon/main.c:523 msgid "PolicyKit refuses acquire-high-priority privilege." msgstr "PolicyKit acquire-high-priority परवानगी नकारतो." -#: ../src/daemon/main.c:524 +#: ../src/daemon/main.c:528 msgid "PolicyKit grants us acquire-real-time privilege." msgstr "PolicyKit acquire-real-time परवानगी पà¥à¤°à¤µà¤¿à¤¤à¥‹." -#: ../src/daemon/main.c:527 +#: ../src/daemon/main.c:531 msgid "PolicyKit refuses acquire-real-time privilege." msgstr "PolicyKit acquire-real-time परवानगी नकारतो." -#: ../src/daemon/main.c:556 +#: ../src/daemon/main.c:560 #, c-format msgid "" "Called SUID root and real-time and/or high-priority scheduling was requested " @@ -288,204 +257,214 @@ msgstr "" "परवानगी पà¥à¤°à¤¾à¤ªà¥à¤¤ करा, किंवा '%s' चे सदसà¥à¤¯ बनवा, किंवा या वापरकरà¥à¤¤à¤¾ करीताRLIMIT_NICE/" "RLIMIT_RTPRIO सà¥à¤¤à¥à¤°à¥‹à¤¤ मरà¥à¤¯à¤¾à¤¦à¤¾ वाढवा." -#: ../src/daemon/main.c:581 +#: ../src/daemon/main.c:585 msgid "" "High-priority scheduling enabled in configuration but not allowed by policy." msgstr "" "संयोजना अंतरà¥à¤—त उचà¥à¤š-पà¥à¤°à¤¾à¤§à¤¾à¤¨à¥à¤¯à¤•à¥à¤°à¤® वेळपतà¥à¤°à¤• कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ केले करार दà¥à¤µà¤¾à¤°à¥‡ सà¥à¤µà¥€à¤•à¤¾à¤°à¥à¤¯ नाही." -#: ../src/daemon/main.c:610 +#: ../src/daemon/main.c:614 msgid "Successfully increased RLIMIT_RTPRIO" msgstr "यशसà¥à¤µà¥€à¤°à¤¿à¤¤à¥à¤¯à¤¾ RLIMIT_RTPRIO वाढवले" -#: ../src/daemon/main.c:613 +#: ../src/daemon/main.c:617 #, c-format msgid "RLIMIT_RTPRIO failed: %s" msgstr "RLIMIT_RTPRIO अपयशी: %s" -#: ../src/daemon/main.c:620 +#: ../src/daemon/main.c:624 msgid "Giving up CAP_NICE" msgstr "CAP_NICE करीता पà¥à¤°à¤¯à¤¤à¥à¤¨ बंद केले" -#: ../src/daemon/main.c:627 +#: ../src/daemon/main.c:631 msgid "" "Real-time scheduling enabled in configuration but not allowed by policy." msgstr "" "संयोजना अंतरà¥à¤—त रियल-टाईम वेळपतà¥à¤° कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ करत आहे परंतॠकरार दà¥à¤µà¤¾à¤°à¥‡ सà¥à¤µà¥€à¤•à¤¾à¤°à¥à¤¯ नाही." -#: ../src/daemon/main.c:688 +#: ../src/daemon/main.c:692 msgid "Daemon not running" msgstr "डिमन कारà¥à¤¯à¤°à¤¤ नाही" -#: ../src/daemon/main.c:690 +#: ../src/daemon/main.c:694 #, c-format msgid "Daemon running as PID %u" msgstr "डिमन PID %u नà¥à¤°à¥‚प कारà¥à¤¯à¤°à¤¤ आहे" -#: ../src/daemon/main.c:700 +#: ../src/daemon/main.c:704 #, c-format msgid "Failed to kill daemon: %s" msgstr "डिमन नषà¥à¤Ÿ करणà¥à¤¯à¤¾à¤¸ अपयशी: %s" -#: ../src/daemon/main.c:718 +#: ../src/daemon/main.c:722 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." msgstr "हा कारà¥à¤¯à¤•à¥à¤°à¤® रूट नà¥à¤°à¥‚प चालविणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ नाही (जोपरà¥à¤¯à¤‚त --system निशà¥à¤šà¤¿à¤¤ नाही)." -#: ../src/daemon/main.c:720 +#: ../src/daemon/main.c:724 msgid "Root privileges required." msgstr "रूट परवानगी आवशà¥à¤¯à¤•." -#: ../src/daemon/main.c:725 +#: ../src/daemon/main.c:729 msgid "--start not supported for system instances." msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€ घटनांकरीता --start समरà¥à¤¥à¥€à¤¤ नाही." -#: ../src/daemon/main.c:730 +#: ../src/daemon/main.c:734 msgid "Running in system mode, but --disallow-exit not set!" msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€ पदà¥à¤§à¤¤à¥€ अंतरà¥à¤—त कारà¥à¤¯à¤°à¤¤, परंतॠ--disallow-exit निशà¥à¤šà¤¿à¤¤ केले नाही!" -#: ../src/daemon/main.c:733 +#: ../src/daemon/main.c:737 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "" "पà¥à¤°à¤£à¤¾à¤²à¥€ पदà¥à¤§à¤¤à¥€ अंतरà¥à¤—त कारà¥à¤¯à¤°à¤¤, परंतॠ--disallow-module-loading निशà¥à¤šà¤¿à¤¤ केले नाही!" -#: ../src/daemon/main.c:736 +#: ../src/daemon/main.c:740 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€ पदà¥à¤§à¤¤à¥€ अंतरà¥à¤—त कारà¥à¤¯à¤°à¤¤, SHM पदà¥à¤§à¤¤ जबरनरितà¥à¤¯à¤¾ अकारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ करत आहे!" -#: ../src/daemon/main.c:741 +#: ../src/daemon/main.c:745 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€ पदà¥à¤§à¤¤à¥€ अंतरà¥à¤—त कारà¥à¤¯à¤°à¤¤, रिकामे वेळ जबरनरितà¥à¤¯à¤¾ अकारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ करत आहे!" -#: ../src/daemon/main.c:768 +#: ../src/daemon/main.c:772 msgid "Failed to acquire stdio." msgstr "stdio पà¥à¤°à¤¾à¤ªà¥à¤¤ करणà¥à¤¯à¤¾à¤¸ अपयशी." -#: ../src/daemon/main.c:774 +#: ../src/daemon/main.c:778 #, c-format msgid "pipe failed: %s" msgstr "पाइप अपयशी: %s" -#: ../src/daemon/main.c:779 +#: ../src/daemon/main.c:783 #, c-format msgid "fork() failed: %s" msgstr "fork() अपयशी: %s" -#: ../src/daemon/main.c:793 +#: ../src/daemon/main.c:797 #, c-format msgid "read() failed: %s" msgstr "read() अपयशी: %s" -#: ../src/daemon/main.c:799 +#: ../src/daemon/main.c:803 msgid "Daemon startup failed." msgstr "डिमन सà¥à¤Ÿà¤¾à¤°à¥à¤Ÿà¤…प अपयशी." -#: ../src/daemon/main.c:801 +#: ../src/daemon/main.c:805 msgid "Daemon startup successful." msgstr "डिमन सà¥à¤Ÿà¤¾à¤°à¥à¤Ÿà¤…प यशसà¥à¤µà¥€." -#: ../src/daemon/main.c:871 +#: ../src/daemon/main.c:875 #, c-format msgid "This is PulseAudio %s" msgstr "हे PulseAudio %s आहे" -#: ../src/daemon/main.c:872 +#: ../src/daemon/main.c:876 #, c-format msgid "Compilation host: %s" msgstr "कंपाइलेशन यजमान: %s" -#: ../src/daemon/main.c:873 +#: ../src/daemon/main.c:877 #, c-format msgid "Compilation CFLAGS: %s" msgstr "कंपाइलेशन CFLAGS: %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:880 #, c-format msgid "Running on host: %s" msgstr "यजमान वर कारà¥à¤¯à¤°à¤¤: %s" -#: ../src/daemon/main.c:879 +#: ../src/daemon/main.c:883 #, c-format msgid "Found %u CPUs." msgstr "%u CPUs आढळले." -#: ../src/daemon/main.c:881 +#: ../src/daemon/main.c:885 #, c-format msgid "Page size is %lu bytes" msgstr "पान आकार %lu बाईटसॠआहे" -#: ../src/daemon/main.c:884 +#: ../src/daemon/main.c:888 msgid "Compiled with Valgrind support: yes" msgstr "Valgrind समरà¥à¤¥à¤¨à¤¶à¥€ कंपाईल केले: होय" -#: ../src/daemon/main.c:886 +#: ../src/daemon/main.c:890 msgid "Compiled with Valgrind support: no" msgstr "Valgrind समरà¥à¤¥à¤¨à¤¶à¥€ कंपाईल केले: नाही" -#: ../src/daemon/main.c:889 +#: ../src/daemon/main.c:893 #, c-format msgid "Running in valgrind mode: %s" msgstr "valgrind पदà¥à¤§à¤¤à¥€à¤¤ कारà¥à¤¯à¤°à¤¤: %s" -#: ../src/daemon/main.c:892 +#: ../src/daemon/main.c:896 msgid "Optimized build: yes" msgstr "अनà¥à¤•à¥‚ल बिलà¥à¤¡: होय" -#: ../src/daemon/main.c:894 +#: ../src/daemon/main.c:898 msgid "Optimized build: no" msgstr "अनà¥à¤•à¥‚ल बिलà¥à¤¡: नाही" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:902 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG वरà¥à¤£à¥€à¤•à¥ƒà¤¤, सरà¥à¤µ asserts अकारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤." -#: ../src/daemon/main.c:900 +#: ../src/daemon/main.c:904 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "FASTPATH वरà¥à¤£à¥€à¤•à¥ƒà¤¤, फकà¥à¤¤ जलद मारà¥à¤—ीय asserts अकारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ केले." -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:906 msgid "All asserts enabled." msgstr "सरà¥à¤µ asserts कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ केले." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:910 msgid "Failed to get machine ID" msgstr "मशीन ID पà¥à¤°à¤¾à¤ªà¥à¤¤ करणà¥à¤¯à¤¾à¤¸ अपयशी" -#: ../src/daemon/main.c:909 +#: ../src/daemon/main.c:913 #, c-format msgid "Machine ID is %s." msgstr "मशीन ID %s आहे." -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:917 #, fuzzy, c-format msgid "Session ID is %s." msgstr "मशीन ID %s आहे." -#: ../src/daemon/main.c:919 +#: ../src/daemon/main.c:923 #, c-format msgid "Using runtime directory %s." msgstr "रनटाईम डिरेकà¥à¤Ÿà¥à¤°à¥€ %s वापरत आहे." -#: ../src/daemon/main.c:924 +#: ../src/daemon/main.c:928 #, c-format msgid "Using state directory %s." msgstr "सà¥à¤¥à¤¿à¤¤à¥€ डिरेकà¥à¤Ÿà¥à¤°à¥€ %s वापरत आहे." -#: ../src/daemon/main.c:927 +#: ../src/daemon/main.c:931 #, c-format msgid "Running in system mode: %s" msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€ पदà¥à¤§à¤¤à¥€à¤¤ कारà¥à¤¯à¤°à¤¤: %s" -#: ../src/daemon/main.c:942 +#: ../src/daemon/main.c:934 +msgid "" +"OK, so you are running PA in system mode. Please note that you most likely " +"shouldn't be doing that.\n" +"If you do it nonetheless then it's your own fault if things don't work as " +"expected.\n" +"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " +"explanation why system mode is usually a bad idea." +msgstr "" + +#: ../src/daemon/main.c:951 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() अपयशी." -#: ../src/daemon/main.c:954 +#: ../src/daemon/main.c:961 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "नवीन उचà¥à¤š-बिंदूता टाइमर उपलबà¥à¤§! Bon appetit!" -#: ../src/daemon/main.c:956 +#: ../src/daemon/main.c:963 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -493,31 +472,31 @@ msgstr "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" -#: ../src/daemon/main.c:970 +#: ../src/daemon/main.c:988 msgid "pa_core_new() failed." msgstr "pa_core_new() अपयशी." -#: ../src/daemon/main.c:1032 +#: ../src/daemon/main.c:1050 msgid "Failed to initialize daemon." msgstr "डिमन पà¥à¤°à¤¾à¤°à¤‚ठकरणà¥à¤¯à¤¾à¤¸ अपयशी." -#: ../src/daemon/main.c:1037 +#: ../src/daemon/main.c:1055 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "विना विà¤à¤¾à¤— दाखल केलà¥à¤¯à¤¾à¤¸ डिमन पà¥à¤°à¤¾à¤°à¤‚ठà¤à¤¾à¤²à¥‡, कारà¥à¤¯ करणà¥à¤¯à¤¾à¤¸ नकार." -#: ../src/daemon/main.c:1054 +#: ../src/daemon/main.c:1072 msgid "Daemon startup complete." msgstr "डिमन सà¥à¤Ÿà¤¾à¤°à¥à¤Ÿà¤…प पूरà¥à¤£ à¤à¤¾à¤²à¥‡." -#: ../src/daemon/main.c:1060 +#: ../src/daemon/main.c:1078 msgid "Daemon shutdown initiated." msgstr "डिमन पूरà¥à¤£à¤ªà¤£à¥‡ बंद करणà¥à¤¯à¤¾à¤¸ पà¥à¤°à¤¾à¤°à¤‚ठकेले." -#: ../src/daemon/main.c:1082 +#: ../src/daemon/main.c:1100 msgid "Daemon terminated." msgstr "डिमन नषà¥à¤Ÿ केले." -#: ../src/daemon/cmdline.c:121 +#: ../src/daemon/cmdline.c:115 #, c-format msgid "" "%s [options]\n" @@ -660,15 +639,15 @@ msgstr "" "\n" " -n Don't load default script file\n" -#: ../src/daemon/cmdline.c:252 +#: ../src/daemon/cmdline.c:247 msgid "--daemonize expects boolean argument" msgstr "--daemonize यास बूलीयन बाब अपेकà¥à¤·à¥€à¤¤ आहे" -#: ../src/daemon/cmdline.c:259 +#: ../src/daemon/cmdline.c:254 msgid "--fail expects boolean argument" msgstr "--fail यास बूलीयन बाब अपेकà¥à¤·à¥€à¤¤ आहे" -#: ../src/daemon/cmdline.c:269 +#: ../src/daemon/cmdline.c:264 msgid "" "--log-level expects log level argument (either numeric in range 0..4 or one " "of debug, info, notice, warn, error)." @@ -676,52 +655,52 @@ msgstr "" "--log-level यास लॉग सà¥à¤¤à¤°à¥€à¤¯ बाब अपेकà¥à¤·à¥€à¤¤ आहे (à¤à¤•à¤¤à¤° कà¥à¤·à¥‡à¤¤à¥à¤° 0..4 अंतरà¥à¤—त संखà¥à¤¯à¤¾à¤¯à¥€ किंवा " "debug, info, notice, warn, error पैकी à¤à¤•)." -#: ../src/daemon/cmdline.c:281 +#: ../src/daemon/cmdline.c:276 msgid "--high-priority expects boolean argument" msgstr "--high-priority यास बूलीयन बाब अपेकà¥à¤·à¥€à¤¤ आहे" -#: ../src/daemon/cmdline.c:288 +#: ../src/daemon/cmdline.c:283 msgid "--realtime expects boolean argument" msgstr "--realtime यास बूलीयन बाब अपेकà¥à¤·à¥€à¤¤ आहे" -#: ../src/daemon/cmdline.c:295 +#: ../src/daemon/cmdline.c:290 msgid "--disallow-module-loading expects boolean argument" msgstr "--disallow-module-loading यास बूलीयन बाब अपेकà¥à¤·à¥€à¤¤ आहे" -#: ../src/daemon/cmdline.c:302 +#: ../src/daemon/cmdline.c:297 msgid "--disallow-exit expects boolean argument" msgstr "--disallow-exit यास बूलीयन बाब अपेकà¥à¤·à¥€à¤¤ आहे" -#: ../src/daemon/cmdline.c:309 +#: ../src/daemon/cmdline.c:304 msgid "--use-pid-file expects boolean argument" msgstr "--use-pid-file यास बूलीयन बाब अपेकà¥à¤·à¥€à¤¤ आहे" -#: ../src/daemon/cmdline.c:326 +#: ../src/daemon/cmdline.c:321 msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgstr "अवैध लॉग लकà¥à¤·à¥à¤¯: 'syslog', 'stderr' किंवा 'auto' पैकी à¤à¤• वापरा." -#: ../src/daemon/cmdline.c:333 +#: ../src/daemon/cmdline.c:328 msgid "--log-time expects boolean argument" msgstr "--log-time यास बूलीयन बाब अपेकà¥à¤·à¥€à¤¤ आहे" -#: ../src/daemon/cmdline.c:340 +#: ../src/daemon/cmdline.c:335 msgid "--log-meta expects boolean argument" msgstr "--log-meta यास बूलीयन बाब अपेकà¥à¤·à¥€à¤¤ आहे" -#: ../src/daemon/cmdline.c:359 +#: ../src/daemon/cmdline.c:354 #, c-format msgid "Invalid resample method '%s'." msgstr "अवैध पà¥à¤¨à¥à¤¹ सॅमà¥à¤ªà¤² पदà¥à¤§à¤¤ '%s'." -#: ../src/daemon/cmdline.c:366 +#: ../src/daemon/cmdline.c:361 msgid "--system expects boolean argument" msgstr "--system यास बूलीयन बाब अपेकà¥à¤·à¥€à¤¤ आहे" -#: ../src/daemon/cmdline.c:373 +#: ../src/daemon/cmdline.c:368 msgid "--no-cpu-limit expects boolean argument" msgstr "--no-cpu-limit यास बूलीयन बाब अपेकà¥à¤·à¥€à¤¤ आहे" -#: ../src/daemon/cmdline.c:380 +#: ../src/daemon/cmdline.c:375 msgid "--disable-shm expects boolean argument" msgstr "--disable-shm यास बूलीयन बाब अपेकà¥à¤·à¥€à¤¤ आहे" @@ -760,77 +739,82 @@ msgstr "वापरणी: %s\n" msgid "Load Once: %s\n" msgstr "à¤à¤•à¤¦à¤¾ दाखल करा: %s\n" -#: ../src/daemon/dumpmodules.c:77 +#: ../src/daemon/dumpmodules.c:75 +#, c-format +msgid "DEPRECATION WARNING: %s\n" +msgstr "" + +#: ../src/daemon/dumpmodules.c:79 #, c-format msgid "Path: %s\n" msgstr "मारà¥à¤—: %s\n" -#: ../src/daemon/daemon-conf.c:215 +#: ../src/daemon/daemon-conf.c:216 #, c-format msgid "[%s:%u] Invalid log target '%s'." msgstr "[%s:%u] अवैध लॉग लकà¥à¤·à¥à¤¯ '%s'." -#: ../src/daemon/daemon-conf.c:231 +#: ../src/daemon/daemon-conf.c:232 #, c-format msgid "[%s:%u] Invalid log level '%s'." msgstr "[%s:%u] अवैध लॉग सà¥à¤¤à¤° '%s'." -#: ../src/daemon/daemon-conf.c:247 +#: ../src/daemon/daemon-conf.c:248 #, c-format msgid "[%s:%u] Invalid resample method '%s'." msgstr "[%s:%u] अवैध पà¥à¤¨à¥à¤¹ सॅमà¥à¤ªà¤² पदà¥à¤§à¤¤ '%s'." -#: ../src/daemon/daemon-conf.c:270 +#: ../src/daemon/daemon-conf.c:271 #, c-format msgid "[%s:%u] Invalid rlimit '%s'." msgstr "[%s:%u] अवैध rlimit '%s'." -#: ../src/daemon/daemon-conf.c:277 +#: ../src/daemon/daemon-conf.c:278 #, c-format msgid "[%s:%u] rlimit not supported on this platform." msgstr "[%s:%u] rlimit या पà¥à¤²à¥…टफॉरà¥à¤® वर समरà¥à¤¥à¥€à¤¤ नाही." -#: ../src/daemon/daemon-conf.c:293 +#: ../src/daemon/daemon-conf.c:294 #, c-format msgid "[%s:%u] Invalid sample format '%s'." msgstr "[%s:%u] अवैध सॅमà¥à¤ªà¤² सà¥à¤µà¤°à¥‚प '%s'." -#: ../src/daemon/daemon-conf.c:311 +#: ../src/daemon/daemon-conf.c:312 #, c-format msgid "[%s:%u] Invalid sample rate '%s'." msgstr "[%s:%u] अवैध सॅमà¥à¤ªà¤² दर '%s'." -#: ../src/daemon/daemon-conf.c:335 +#: ../src/daemon/daemon-conf.c:336 #, c-format msgid "[%s:%u] Invalid sample channels '%s'." msgstr "[%s:%u] अवैध सॅमà¥à¤ªà¤² मारà¥à¤— '%s'." -#: ../src/daemon/daemon-conf.c:353 +#: ../src/daemon/daemon-conf.c:354 #, c-format msgid "[%s:%u] Invalid channel map '%s'." msgstr "[%s:%u] अवैध मारà¥à¤— मॅप '%s'." -#: ../src/daemon/daemon-conf.c:371 +#: ../src/daemon/daemon-conf.c:372 #, c-format msgid "[%s:%u] Invalid number of fragments '%s'." msgstr "[%s:%u] अवैध तà¥à¤•à¤¡à¥‡ '%s' यांची à¤à¤•à¥‚ण संखà¥à¤¯à¤¾." -#: ../src/daemon/daemon-conf.c:389 +#: ../src/daemon/daemon-conf.c:390 #, c-format msgid "[%s:%u] Invalid fragment size '%s'." msgstr "[%s:%u] अवैध तà¥à¤•à¤¡à¥à¤¯à¤¾à¤šà¥‡ आकार '%s'." -#: ../src/daemon/daemon-conf.c:407 +#: ../src/daemon/daemon-conf.c:408 #, c-format msgid "[%s:%u] Invalid nice level '%s'." msgstr "[%s:%u] अवैध nice सà¥à¤¤à¤° '%s'." -#: ../src/daemon/daemon-conf.c:522 +#: ../src/daemon/daemon-conf.c:524 #, c-format msgid "Failed to open configuration file: %s" msgstr "संयोजना फाइल उघडणà¥à¤¯à¤¾à¤¸ अपयशी: %s" -#: ../src/daemon/daemon-conf.c:538 +#: ../src/daemon/daemon-conf.c:540 msgid "" "The specified default channel map has a different number of channels than " "the specified default number of channels." @@ -877,237 +861,237 @@ msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€ करार PulseAudio ला उचà¥à¤š-पॠmsgid "System policy prevents PulseAudio from acquiring real-time scheduling." msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€ करार PulseAudio ला रियल-टाइम वेळपतà¥à¤°à¤• पà¥à¤°à¤¾à¤ªà¥à¤¤ करणà¥à¤¯à¤¾à¤ªà¤¾à¤¸à¥‚न रोखते." -#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804 +#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "मोनो" -#: ../src/pulse/channelmap.c:105 +#: ../src/pulse/channelmap.c:107 msgid "Front Center" msgstr "समोर मधà¥à¤¯à¤à¤¾à¤—ी" -#: ../src/pulse/channelmap.c:106 +#: ../src/pulse/channelmap.c:108 msgid "Front Left" msgstr "समोर डावीकडे" -#: ../src/pulse/channelmap.c:107 +#: ../src/pulse/channelmap.c:109 msgid "Front Right" msgstr "समोर उजवीकडे" -#: ../src/pulse/channelmap.c:109 +#: ../src/pulse/channelmap.c:111 msgid "Rear Center" msgstr "पाठीमागे à¤à¤§à¥à¤¯à¤à¤¾à¤—ी" -#: ../src/pulse/channelmap.c:110 +#: ../src/pulse/channelmap.c:112 msgid "Rear Left" msgstr "पाठीमागे डावीकडे" -#: ../src/pulse/channelmap.c:111 +#: ../src/pulse/channelmap.c:113 msgid "Rear Right" msgstr "पाठीमागे उजवीकडे" -#: ../src/pulse/channelmap.c:113 +#: ../src/pulse/channelmap.c:115 msgid "Low Frequency Emmiter" msgstr "कमी कà¥à¤°à¤¿à¤•à¥à¤µà¥‡à¤¨à¥à¤¸à¥€ सà¥à¤¤à¥à¤°à¥‹à¤¤" -#: ../src/pulse/channelmap.c:115 +#: ../src/pulse/channelmap.c:117 msgid "Front Left-of-center" msgstr "समोर डावी-कडील-मधà¥à¤¯à¤à¤¾à¤—ी" -#: ../src/pulse/channelmap.c:116 +#: ../src/pulse/channelmap.c:118 msgid "Front Right-of-center" msgstr "समोर उजवी-कडील-मधà¥à¤¯à¤à¤¾à¤—ी" -#: ../src/pulse/channelmap.c:118 +#: ../src/pulse/channelmap.c:120 msgid "Side Left" msgstr "डावी बाजू" -#: ../src/pulse/channelmap.c:119 +#: ../src/pulse/channelmap.c:121 msgid "Side Right" msgstr "उजवी बाजू" -#: ../src/pulse/channelmap.c:121 +#: ../src/pulse/channelmap.c:123 msgid "Auxiliary 0" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 0" -#: ../src/pulse/channelmap.c:122 +#: ../src/pulse/channelmap.c:124 msgid "Auxiliary 1" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 1" -#: ../src/pulse/channelmap.c:123 +#: ../src/pulse/channelmap.c:125 msgid "Auxiliary 2" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 2" -#: ../src/pulse/channelmap.c:124 +#: ../src/pulse/channelmap.c:126 msgid "Auxiliary 3" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 3" -#: ../src/pulse/channelmap.c:125 +#: ../src/pulse/channelmap.c:127 msgid "Auxiliary 4" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 4" -#: ../src/pulse/channelmap.c:126 +#: ../src/pulse/channelmap.c:128 msgid "Auxiliary 5" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 5" -#: ../src/pulse/channelmap.c:127 +#: ../src/pulse/channelmap.c:129 msgid "Auxiliary 6" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 6" -#: ../src/pulse/channelmap.c:128 +#: ../src/pulse/channelmap.c:130 msgid "Auxiliary 7" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 7" -#: ../src/pulse/channelmap.c:129 +#: ../src/pulse/channelmap.c:131 msgid "Auxiliary 8" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 8" -#: ../src/pulse/channelmap.c:130 +#: ../src/pulse/channelmap.c:132 msgid "Auxiliary 9" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 9" -#: ../src/pulse/channelmap.c:131 +#: ../src/pulse/channelmap.c:133 msgid "Auxiliary 10" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 10" -#: ../src/pulse/channelmap.c:132 +#: ../src/pulse/channelmap.c:134 msgid "Auxiliary 11" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 11" -#: ../src/pulse/channelmap.c:133 +#: ../src/pulse/channelmap.c:135 msgid "Auxiliary 12" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 12" -#: ../src/pulse/channelmap.c:134 +#: ../src/pulse/channelmap.c:136 msgid "Auxiliary 13" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 13" -#: ../src/pulse/channelmap.c:135 +#: ../src/pulse/channelmap.c:137 msgid "Auxiliary 14" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 14" -#: ../src/pulse/channelmap.c:136 +#: ../src/pulse/channelmap.c:138 msgid "Auxiliary 15" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 15" -#: ../src/pulse/channelmap.c:137 +#: ../src/pulse/channelmap.c:139 msgid "Auxiliary 16" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 16" -#: ../src/pulse/channelmap.c:138 +#: ../src/pulse/channelmap.c:140 msgid "Auxiliary 17" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 17" -#: ../src/pulse/channelmap.c:139 +#: ../src/pulse/channelmap.c:141 msgid "Auxiliary 18" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 18" -#: ../src/pulse/channelmap.c:140 +#: ../src/pulse/channelmap.c:142 msgid "Auxiliary 19" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 19" -#: ../src/pulse/channelmap.c:141 +#: ../src/pulse/channelmap.c:143 msgid "Auxiliary 20" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 20" -#: ../src/pulse/channelmap.c:142 +#: ../src/pulse/channelmap.c:144 msgid "Auxiliary 21" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 21" -#: ../src/pulse/channelmap.c:143 +#: ../src/pulse/channelmap.c:145 msgid "Auxiliary 22" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 22" -#: ../src/pulse/channelmap.c:144 +#: ../src/pulse/channelmap.c:146 msgid "Auxiliary 23" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 23" -#: ../src/pulse/channelmap.c:145 +#: ../src/pulse/channelmap.c:147 msgid "Auxiliary 24" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 24" -#: ../src/pulse/channelmap.c:146 +#: ../src/pulse/channelmap.c:148 msgid "Auxiliary 25" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 25" -#: ../src/pulse/channelmap.c:147 +#: ../src/pulse/channelmap.c:149 msgid "Auxiliary 26" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 26" -#: ../src/pulse/channelmap.c:148 +#: ../src/pulse/channelmap.c:150 msgid "Auxiliary 27" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 27" -#: ../src/pulse/channelmap.c:149 +#: ../src/pulse/channelmap.c:151 msgid "Auxiliary 28" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 28" -#: ../src/pulse/channelmap.c:150 +#: ../src/pulse/channelmap.c:152 msgid "Auxiliary 29" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 29" -#: ../src/pulse/channelmap.c:151 +#: ../src/pulse/channelmap.c:153 msgid "Auxiliary 30" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 30" -#: ../src/pulse/channelmap.c:152 +#: ../src/pulse/channelmap.c:154 msgid "Auxiliary 31" msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 31" -#: ../src/pulse/channelmap.c:154 +#: ../src/pulse/channelmap.c:156 msgid "Top Center" msgstr "वरील मधà¥à¤¯" -#: ../src/pulse/channelmap.c:156 +#: ../src/pulse/channelmap.c:158 msgid "Top Front Center" msgstr "वरील समोरचे मधà¥à¤¯" -#: ../src/pulse/channelmap.c:157 +#: ../src/pulse/channelmap.c:159 msgid "Top Front Left" msgstr "वरील समोरचे डावे" -#: ../src/pulse/channelmap.c:158 +#: ../src/pulse/channelmap.c:160 msgid "Top Front Right" msgstr "वरील समोरचे उजवे" -#: ../src/pulse/channelmap.c:160 +#: ../src/pulse/channelmap.c:162 msgid "Top Rear Center" msgstr "वरील पाठीमागचे मधà¥à¤¯" -#: ../src/pulse/channelmap.c:161 +#: ../src/pulse/channelmap.c:163 msgid "Top Rear Left" msgstr "वरील पाठीमागचे डावे" -#: ../src/pulse/channelmap.c:162 +#: ../src/pulse/channelmap.c:164 msgid "Top Rear Right" msgstr "वरील पाठीमागचे उजवे" -#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167 -#: ../src/pulse/volume.c:170 ../src/pulse/volume.c:196 -#: ../src/pulse/volume.c:216 ../src/pulse/volume.c:246 +#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167 +#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265 +#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315 msgid "(invalid)" msgstr "(अवैध)" -#: ../src/pulse/channelmap.c:808 +#: ../src/pulse/channelmap.c:751 msgid "Stereo" msgstr "सà¥à¤Ÿà¤¿à¤°à¥€à¤“" -#: ../src/pulse/channelmap.c:813 +#: ../src/pulse/channelmap.c:756 msgid "Surround 4.0" msgstr "सराऊनà¥à¤¡ 4.0" -#: ../src/pulse/channelmap.c:819 +#: ../src/pulse/channelmap.c:762 msgid "Surround 4.1" msgstr "सराऊनà¥à¤¡ 4.1" -#: ../src/pulse/channelmap.c:825 +#: ../src/pulse/channelmap.c:768 msgid "Surround 5.0" msgstr "सराऊनà¥à¤¡ 5.0" -#: ../src/pulse/channelmap.c:831 +#: ../src/pulse/channelmap.c:774 msgid "Surround 5.1" msgstr "सराऊनà¥à¤¡ 5.1" -#: ../src/pulse/channelmap.c:838 +#: ../src/pulse/channelmap.c:781 msgid "Surround 7.1" msgstr "सराऊनà¥à¤¡ 7.1" @@ -1268,173 +1252,168 @@ msgstr "waitpid(): %s" msgid "Received message for unknown extension '%s'" msgstr "अपरिचीत वाढ '%s' करीता संदेश पà¥à¤°à¤¾à¤ªà¥à¤¤ à¤à¤¾à¤²à¥‡" -#: ../src/utils/pacat.c:94 +#: ../src/utils/pacat.c:107 +#, c-format +msgid "Failed to drain stream: %s\n" +msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® रिकामे करणà¥à¤¯à¤¾à¤¸ अपयशी: %s\n" + +#: ../src/utils/pacat.c:112 +msgid "Playback stream drained.\n" +msgstr "पà¥à¤²à¥‡à¤¬à¥…क सà¥à¤Ÿà¥à¤°à¥€à¤® रिकामे केले.\n" + +#: ../src/utils/pacat.c:122 +msgid "Draining connection to server.\n" +msgstr "सरà¥à¤µà¤° करीता जà¥à¤³à¤µà¤£à¥€ डà¥à¤°à¥‡à¤¨ केली.\n" + +#: ../src/utils/pacat.c:135 +#, c-format +msgid "pa_stream_drain(): %s\n" +msgstr "pa_stream_drain(): %s\n" + +#: ../src/utils/pacat.c:158 #, c-format msgid "pa_stream_write() failed: %s\n" msgstr "pa_stream_write() अपयशी: %s\n" -#: ../src/utils/pacat.c:133 +#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 #, c-format msgid "pa_stream_peek() failed: %s\n" msgstr "pa_stream_peek() अपयशी: %s\n" -#: ../src/utils/pacat.c:169 -#, c-format +#: ../src/utils/pacat.c:302 msgid "Stream successfully created.\n" msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® यशसà¥à¤µà¥€à¤°à¤¿à¤¤à¥à¤¯à¤¾ बनवले.\n" -#: ../src/utils/pacat.c:172 +#: ../src/utils/pacat.c:305 #, c-format msgid "pa_stream_get_buffer_attr() failed: %s\n" msgstr "pa_stream_get_buffer_attr() अपयशी: %s\n" -#: ../src/utils/pacat.c:176 +#: ../src/utils/pacat.c:309 #, c-format msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgstr "बफर मेटà¥à¤°à¥€à¤•: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:179 +#: ../src/utils/pacat.c:312 #, c-format msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgstr "बफर मेटà¥à¤°à¥€à¤•: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:183 +#: ../src/utils/pacat.c:316 #, c-format msgid "Using sample spec '%s', channel map '%s'.\n" msgstr "उदाहरणतया spec '%s', वाहिनी नकाशा '%s' वापरत आहे.\n" -#: ../src/utils/pacat.c:187 +#: ../src/utils/pacat.c:320 #, c-format msgid "Connected to device %s (%u, %ssuspended).\n" msgstr "साधन %s शी जà¥à¤³à¤²à¥‡ (%u, %s ससà¥à¤ªà¥‡à¤‚ड केले).\n" -#: ../src/utils/pacat.c:197 +#: ../src/utils/pacat.c:330 #, c-format msgid "Stream error: %s\n" msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® तà¥à¤°à¥à¤Ÿà¥€: %s\n" -#: ../src/utils/pacat.c:207 +#: ../src/utils/pacat.c:340 #, c-format msgid "Stream device suspended.%s \n" msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® साधन ससà¥à¤ªà¥‡à¤‚ड केले.%s \n" -#: ../src/utils/pacat.c:209 +#: ../src/utils/pacat.c:342 #, c-format msgid "Stream device resumed.%s \n" msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® साधन पà¥à¤¨à¥à¤¹à¤¾ सà¥à¤°à¥‚ केले.%s \n" -#: ../src/utils/pacat.c:217 +#: ../src/utils/pacat.c:350 #, c-format msgid "Stream underrun.%s \n" msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® underrun.%s \n" -#: ../src/utils/pacat.c:224 +#: ../src/utils/pacat.c:357 #, c-format msgid "Stream overrun.%s \n" msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® overrun.%s \n" -#: ../src/utils/pacat.c:231 +#: ../src/utils/pacat.c:364 #, c-format msgid "Stream started.%s \n" msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® सà¥à¤°à¥‚ केले.%s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 #, c-format msgid "Stream moved to device %s (%u, %ssuspended).%s \n" msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® साधन %s कडे सà¥à¤¥à¤¾à¤¨à¤¾à¤‚तरीत केले (%u, %ssuspended).%s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 msgid "not " msgstr "नाही " -#: ../src/utils/pacat.c:245 +#: ../src/utils/pacat.c:378 #, c-format msgid "Stream buffer attributes changed.%s \n" msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® बफर गà¥à¤£à¤§à¤°à¥à¤® बदलले.%s \n" -#: ../src/utils/pacat.c:278 +#: ../src/utils/pacat.c:411 #, c-format msgid "Connection established.%s \n" msgstr "जà¥à¤³à¤µà¤£à¥€ सà¥à¤¥à¤¾à¤ªà¥€à¤¤ केली.%s \n" -#: ../src/utils/pacat.c:281 +#: ../src/utils/pacat.c:414 #, c-format msgid "pa_stream_new() failed: %s\n" msgstr "pa_stream_new() अपयशी: %s\n" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:442 #, c-format msgid "pa_stream_connect_playback() failed: %s\n" msgstr "pa_stream_connect_playback() अपयशी: %s\n" -#: ../src/utils/pacat.c:315 +#: ../src/utils/pacat.c:448 #, c-format msgid "pa_stream_connect_record() failed: %s\n" msgstr "pa_stream_connect_record() अपयशी: %s\n" -#: ../src/utils/pacat.c:329 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:762 ../src/utils/paplay.c:183 +#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 #, c-format msgid "Connection failure: %s\n" msgstr "जà¥à¤³à¤µà¤£à¥€ अपयशी: %s\n" -#: ../src/utils/pacat.c:349 ../src/utils/paplay.c:75 -#, c-format -msgid "Failed to drain stream: %s\n" -msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® रिकामे करणà¥à¤¯à¤¾à¤¸ अपयशी: %s\n" - -#: ../src/utils/pacat.c:354 ../src/utils/paplay.c:80 -#, c-format -msgid "Playback stream drained.\n" -msgstr "पà¥à¤²à¥‡à¤¬à¥…क सà¥à¤Ÿà¥à¤°à¥€à¤® रिकामे केले.\n" - -#: ../src/utils/pacat.c:364 ../src/utils/paplay.c:92 -#, c-format -msgid "Draining connection to server.\n" -msgstr "सरà¥à¤µà¤° करीता जà¥à¤³à¤µà¤£à¥€ डà¥à¤°à¥‡à¤¨ केली.\n" - -#: ../src/utils/pacat.c:390 -#, c-format +#: ../src/utils/pacat.c:495 msgid "Got EOF.\n" msgstr "EOF पà¥à¤°à¤¾à¤ªà¥à¤¤ à¤à¤¾à¤²à¥‡.\n" -#: ../src/utils/pacat.c:396 -#, c-format -msgid "pa_stream_drain(): %s\n" -msgstr "pa_stream_drain(): %s\n" - -#: ../src/utils/pacat.c:406 +#: ../src/utils/pacat.c:500 #, c-format msgid "read() failed: %s\n" msgstr "read() अपयशी: %s\n" -#: ../src/utils/pacat.c:438 +#: ../src/utils/pacat.c:532 #, c-format msgid "write() failed: %s\n" msgstr "write() अपयशी: %s\n" -#: ../src/utils/pacat.c:459 -#, c-format +#: ../src/utils/pacat.c:553 msgid "Got signal, exiting.\n" msgstr "संकेत पà¥à¤°à¤¾à¤ªà¥à¤¤ à¤à¤¾à¤²à¥‡, बाहेर पडत आहे.\n" -#: ../src/utils/pacat.c:473 +#: ../src/utils/pacat.c:567 #, c-format msgid "Failed to get latency: %s\n" msgstr "विलंब पà¥à¤°à¤¾à¤ªà¥à¤¤ करणà¥à¤¯à¤¾à¤¸ अपयशी: %s\n" -#: ../src/utils/pacat.c:478 +#: ../src/utils/pacat.c:572 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "वेळ: %0.3f sec; विलंब: %0.0f usec. \r" -#: ../src/utils/pacat.c:498 +#: ../src/utils/pacat.c:592 #, c-format msgid "pa_stream_update_timing_info() failed: %s\n" msgstr "pa_stream_update_timing_info() अपयशी: %s\n" -#: ../src/utils/pacat.c:511 -#, c-format +#: ../src/utils/pacat.c:605 +#, fuzzy, c-format msgid "" "%s [options]\n" "\n" @@ -1460,8 +1439,10 @@ msgid "" "44100)\n" " --format=SAMPLEFORMAT The sample type, one of s16le, " "s16be, u8, float32le,\n" -" float32be, ulaw, alaw, s32le, s32be " -"(defaults to s16ne)\n" +" float32be, ulaw, alaw, s32le, s32be, " +"s24le, s24be,\n" +" s24-32le, s24-32be (defaults to " +"s16ne)\n" " --channels=CHANNELS The number of channels, 1 for mono, " "2 for stereo\n" " (defaults to 2)\n" @@ -1484,6 +1465,11 @@ msgid "" "bytes.\n" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" +" --property=PROPERTY=VALUE Set the specified property to the " +"specified value.\n" +" --raw Record/play raw PCM data.\n" +" --file-format=FFORMAT Record/play formatted PCM data.\n" +" --list-file-formats List available file formats.\n" msgstr "" "%s [options]\n" "\n" @@ -1534,7 +1520,7 @@ msgstr "" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" -#: ../src/utils/pacat.c:612 +#: ../src/utils/pacat.c:727 #, c-format msgid "" "pacat %s\n" @@ -1545,88 +1531,133 @@ msgstr "" "libpulse %s शी कंपाई केले\n" "libpulse %s शी लिंक केले\n" -#: ../src/utils/pacat.c:669 +#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "अवैध वाहिनी नकाशा '%s'\n" + +#: ../src/utils/pacat.c:776 +#, fuzzy, c-format +msgid "Invalid stream name '%s'\n" +msgstr "अवैध पà¥à¤¨à¥à¤¹ सॅमà¥à¤ªà¤² पदà¥à¤§à¤¤ '%s'." + +#: ../src/utils/pacat.c:813 #, c-format msgid "Invalid channel map '%s'\n" msgstr "अवैध वाहिनी नकाशा '%s'\n" -#: ../src/utils/pacat.c:698 +#: ../src/utils/pacat.c:842 #, c-format msgid "Invalid latency specification '%s'\n" msgstr "अवैध विलंब संयोजना '%s'\n" -#: ../src/utils/pacat.c:705 +#: ../src/utils/pacat.c:849 #, c-format msgid "Invalid process time specification '%s'\n" msgstr "अवैध कारà¥à¤¯ वेळ संयोजना '%s'\n" -#: ../src/utils/pacat.c:716 +#: ../src/utils/pacat.c:861 +#, fuzzy, c-format +msgid "Invalid property '%s'\n" +msgstr "अवैध पà¥à¤¨à¥à¤¹ सॅमà¥à¤ªà¤² पदà¥à¤§à¤¤ '%s'." + +#: ../src/utils/pacat.c:878 #, c-format +msgid "Unknown file format %s." +msgstr "" + +#: ../src/utils/pacat.c:897 msgid "Invalid sample specification\n" msgstr "अवैध सॅमà¥à¤ªà¤² संयोजना\n" -#: ../src/utils/pacat.c:721 +#: ../src/utils/pacat.c:907 +#, c-format +msgid "open(): %s\n" +msgstr "open(): %s\n" + +#: ../src/utils/pacat.c:912 #, c-format +msgid "dup2(): %s\n" +msgstr "dup2(): %s\n" + +#: ../src/utils/pacat.c:919 +msgid "Too many arguments.\n" +msgstr "खूप जासà¥à¤¤ बाब.\n" + +#: ../src/utils/pacat.c:930 +#, fuzzy +msgid "Failed to generate sample specification for file.\n" +msgstr "सॅमà¥à¤ªà¤² माहिती पà¥à¤°à¤¾à¤ªà¥à¤¤ करणà¥à¤¯à¤¾à¤¸ अपयशी: %s\n" + +#: ../src/utils/pacat.c:950 +#, fuzzy +msgid "Failed to open audio file.\n" +msgstr "आवाज फाइल उघडणà¥à¤¯à¤¾à¤¸ अपयशी.\n" + +#: ../src/utils/pacat.c:956 +msgid "" +"Warning: specified sample specification will be overwritten with " +"specification from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "सॅमà¥à¤ªà¤² माहिती पà¥à¤°à¤¾à¤ªà¥à¤¤ करणà¥à¤¯à¤¾à¤¸ अपयशी: %s\n" + +#: ../src/utils/pacat.c:968 +msgid "Warning: Failed to determine channel map from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:979 msgid "Channel map doesn't match sample specification\n" msgstr "वाहिनी नकाशा सॅमà¥à¤ªà¤² संयोजनाशी जà¥à¤³à¤¤ नाही\n" -#: ../src/utils/pacat.c:728 -#, c-format -msgid "Opening a %s stream with sample specification '%s'.\n" +#: ../src/utils/pacat.c:990 +msgid "Warning: failed to write channel map to file.\n" +msgstr "" + +#: ../src/utils/pacat.c:1005 +#, fuzzy, c-format +msgid "" +"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" msgstr "%s सà¥à¤Ÿà¥à¤°à¥€à¤® सॅमà¥à¤ªà¤² संयोजना '%s' शी उघडत आहे.\n" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "recording" msgstr "रेकॉरà¥à¤¡à¥€à¤‚ग" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "playback" msgstr "पà¥à¤²à¥‡à¤¬à¥…क" -#: ../src/utils/pacat.c:736 -#, c-format -msgid "open(): %s\n" -msgstr "open(): %s\n" - -#: ../src/utils/pacat.c:741 -#, c-format -msgid "dup2(): %s\n" -msgstr "dup2(): %s\n" - -#: ../src/utils/pacat.c:751 -#, c-format -msgid "Too many arguments.\n" -msgstr "खूप जासà¥à¤¤ बाब.\n" - -#: ../src/utils/pacat.c:764 ../src/utils/pasuspender.c:280 -#: ../src/utils/pactl.c:1017 ../src/utils/paplay.c:381 +#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 +#: ../src/utils/pactl.c:1104 #, c-format msgid "pa_mainloop_new() failed.\n" msgstr "pa_mainloop_new() अपयशी.\n" -#: ../src/utils/pacat.c:785 -#, c-format +#: ../src/utils/pacat.c:1051 msgid "io_new() failed.\n" msgstr "io_new() अपयशी.\n" -#: ../src/utils/pacat.c:791 ../src/utils/pasuspender.c:293 -#: ../src/utils/pactl.c:1031 ../src/utils/paplay.c:396 +#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 +#: ../src/utils/pactl.c:1116 #, c-format msgid "pa_context_new() failed.\n" msgstr "pa_context_new() अपयशी.\n" -#: ../src/utils/pacat.c:799 +#: ../src/utils/pacat.c:1066 #, fuzzy, c-format msgid "pa_context_connect() failed: %s\n" msgstr "pa_context_connect() अपयशी: %s" -#: ../src/utils/pacat.c:810 -#, c-format +#: ../src/utils/pacat.c:1077 msgid "time_new() failed.\n" msgstr "time_new() अपयशी.\n" -#: ../src/utils/pacat.c:817 ../src/utils/pasuspender.c:301 -#: ../src/utils/pactl.c:1042 ../src/utils/paplay.c:410 +#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 +#: ../src/utils/pactl.c:1127 #, c-format msgid "pa_mainloop_run() failed.\n" msgstr "pa_mainloop_run() अपयशी.\n" @@ -1656,8 +1687,7 @@ msgstr "पà¥à¤¨à¥à¤¹à¤¾ चालू करणà¥à¤¯à¤¾à¤¸ अपयशी: % msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "सावधानता: आवाज सरà¥à¤µà¤° सà¥à¤¥à¤¾à¤¨à¥€à¤¯ नाही, ससà¥à¤ªà¥‡à¤‚ड करत नाही.\n" -#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:768 -#: ../src/utils/paplay.c:191 +#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" msgstr "SIGINT पà¥à¤°à¤¾à¤ªà¥à¤¤ à¤à¤¾à¤²à¥‡, बाहेर पडत आहे.\n" @@ -1686,7 +1716,7 @@ msgstr "" "to\n" "\n" -#: ../src/utils/pasuspender.c:251 +#: ../src/utils/pasuspender.c:248 #, c-format msgid "" "pasuspender %s\n" @@ -1697,32 +1727,32 @@ msgstr "" "libpulse %s शी कंपाई केले\n" "libpulse %s शी लिंक केले\n" -#: ../src/utils/pactl.c:108 +#: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" msgstr "आकडेवारी पà¥à¤°à¤¾à¤ªà¥à¤¤ करणà¥à¤¯à¤¾à¤¸ अपयशी: %s\n" -#: ../src/utils/pactl.c:114 +#: ../src/utils/pactl.c:134 #, c-format msgid "Currently in use: %u blocks containing %s bytes total.\n" msgstr "वरà¥à¤¤à¤®à¤¾à¤¨à¤•à¥à¤·à¤£à¥€ वापरणीत आहे: %2$s बाईटसॠसमाविषà¥à¤Ÿà¥€à¤¤ à¤à¤•à¥‚ण %1$u बà¥à¤²à¥‰à¤•à¥à¤¸à¥ .\n" -#: ../src/utils/pactl.c:117 +#: ../src/utils/pactl.c:137 #, c-format msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n" msgstr "संपूरà¥à¤£ कारà¥à¤¯à¤•à¤¾à¤³à¤µà¥‡à¤³à¥€ लागू केले: %2$s बाईटसॠसमाविषà¥à¤Ÿà¥€à¤¤ à¤à¤•à¥‚ण %1$u बà¥à¤²à¥‰à¤•à¥à¤¸à¥ .\n" -#: ../src/utils/pactl.c:120 +#: ../src/utils/pactl.c:140 #, c-format msgid "Sample cache size: %s\n" msgstr "सॅपल कॅशे आकार: %s\n" -#: ../src/utils/pactl.c:129 +#: ../src/utils/pactl.c:149 #, c-format msgid "Failed to get server information: %s\n" msgstr "सरà¥à¤µà¤° माहिती पà¥à¤°à¤¾à¤ªà¥à¤¤ करणà¥à¤¯à¤¾à¤¸ अपयशी: %s\n" -#: ../src/utils/pactl.c:137 +#: ../src/utils/pactl.c:157 #, c-format msgid "" "User name: %s\n" @@ -1745,12 +1775,12 @@ msgstr "" "मà¥à¤²à¤à¥‚त सà¥à¤¤à¥à¤°à¥‹à¤¤: %s\n" "कà¥à¤•à¥€à¤œ: %08x\n" -#: ../src/utils/pactl.c:178 +#: ../src/utils/pactl.c:198 #, c-format msgid "Failed to get sink information: %s\n" msgstr "sink माहिती पà¥à¤°à¤¾à¤ªà¥à¤¤ करणà¥à¤¯à¤¾à¤¸ अपयशी: %s\n" -#: ../src/utils/pactl.c:194 +#: ../src/utils/pactl.c:214 #, c-format msgid "" "Sink #%u\n" @@ -1789,12 +1819,22 @@ msgstr "" "\tProperties:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:258 +#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 +#, fuzzy, c-format +msgid "\tPorts:\n" +msgstr "\tसंकà¥à¤·à¤¿à¤ªà¥à¤¤ माहिती:\n" + +#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 +#, fuzzy, c-format +msgid "\tActive Port: %s\n" +msgstr "\tसकà¥à¤°à¥€à¤¯ संकà¥à¤·à¤¿à¤ªà¥à¤¤ माहिती: %s\n" + +#: ../src/utils/pactl.c:290 #, c-format msgid "Failed to get source information: %s\n" msgstr "सà¥à¤¤à¥à¤°à¥‹à¤¤ माहिती पà¥à¤°à¤¾à¤ªà¥à¤¤ करणà¥à¤¯à¤¾à¤¸ अपयशी: %s\n" -#: ../src/utils/pactl.c:274 +#: ../src/utils/pactl.c:306 #, c-format msgid "" "Source #%u\n" @@ -1833,20 +1873,20 @@ msgstr "" "\tProperties:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:306 ../src/utils/pactl.c:350 ../src/utils/pactl.c:385 -#: ../src/utils/pactl.c:422 ../src/utils/pactl.c:481 ../src/utils/pactl.c:482 -#: ../src/utils/pactl.c:492 ../src/utils/pactl.c:536 ../src/utils/pactl.c:537 -#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:586 ../src/utils/pactl.c:587 -#: ../src/utils/pactl.c:594 +#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429 +#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526 +#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581 +#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631 +#: ../src/utils/pactl.c:638 msgid "n/a" msgstr "n/a" -#: ../src/utils/pactl.c:324 +#: ../src/utils/pactl.c:368 #, c-format msgid "Failed to get module information: %s\n" msgstr "विà¤à¤¾à¤— माहिती पà¥à¤°à¤¾à¤ªà¥à¤¤ करणà¥à¤¯à¤¾à¤¸ अपयशी: %s\n" -#: ../src/utils/pactl.c:342 +#: ../src/utils/pactl.c:386 #, c-format msgid "" "Module #%u\n" @@ -1863,12 +1903,12 @@ msgstr "" "\tProperties:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:361 +#: ../src/utils/pactl.c:405 #, c-format msgid "Failed to get client information: %s\n" msgstr "कà¥à¤²à¤¾à¤à¤‚ट माहिती पà¥à¤°à¤¾à¤ªà¥à¤¤ करणà¥à¤¯à¤¾à¤¸ अपयशी: %s\n" -#: ../src/utils/pactl.c:379 +#: ../src/utils/pactl.c:423 #, c-format msgid "" "Client #%u\n" @@ -1883,12 +1923,12 @@ msgstr "" "\tProperties:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:396 +#: ../src/utils/pactl.c:440 #, c-format msgid "Failed to get card information: %s\n" msgstr "कारà¥à¤¡ माहिती पà¥à¤°à¤¾à¤ªà¥à¤¤ करणà¥à¤¯à¤¾à¤¸ अपयशी: %s\n" -#: ../src/utils/pactl.c:414 +#: ../src/utils/pactl.c:458 #, c-format msgid "" "Card #%u\n" @@ -1905,22 +1945,22 @@ msgstr "" "\tProperties:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:428 +#: ../src/utils/pactl.c:472 #, c-format msgid "\tProfiles:\n" msgstr "\tसंकà¥à¤·à¤¿à¤ªà¥à¤¤ माहिती:\n" -#: ../src/utils/pactl.c:434 +#: ../src/utils/pactl.c:478 #, c-format msgid "\tActive Profile: %s\n" msgstr "\tसकà¥à¤°à¥€à¤¯ संकà¥à¤·à¤¿à¤ªà¥à¤¤ माहिती: %s\n" -#: ../src/utils/pactl.c:445 +#: ../src/utils/pactl.c:489 #, c-format msgid "Failed to get sink input information: %s\n" msgstr "सिंक इनपà¥à¤Ÿ माहिती पà¥à¤°à¤¾à¤ªà¥à¤¤ करणà¥à¤¯à¤¾à¤¸ अपयशी: %s\n" -#: ../src/utils/pactl.c:464 +#: ../src/utils/pactl.c:508 #, c-format msgid "" "Sink Input #%u\n" @@ -1957,12 +1997,12 @@ msgstr "" "\tProperties:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:503 +#: ../src/utils/pactl.c:547 #, c-format msgid "Failed to get source output information: %s\n" msgstr "सà¥à¤¤à¥à¤°à¥‹à¤¤ आऊटपà¥à¤Ÿ माहिती पà¥à¤°à¤¾à¤ªà¥à¤¤ करणà¥à¤¯à¤¾à¤¸ अपयशी: %s\n" -#: ../src/utils/pactl.c:523 +#: ../src/utils/pactl.c:567 #, c-format msgid "" "Source Output #%u\n" @@ -1991,12 +2031,12 @@ msgstr "" "\tProperties:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:554 +#: ../src/utils/pactl.c:598 #, c-format msgid "Failed to get sample information: %s\n" msgstr "सॅमà¥à¤ªà¤² माहिती पà¥à¤°à¤¾à¤ªà¥à¤¤ करणà¥à¤¯à¤¾à¤¸ अपयशी: %s\n" -#: ../src/utils/pactl.c:572 +#: ../src/utils/pactl.c:616 #, c-format msgid "" "Sample #%u\n" @@ -2027,23 +2067,22 @@ msgstr "" "\tProperties:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:602 ../src/utils/pactl.c:612 +#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 #, c-format msgid "Failure: %s\n" msgstr "अपयशी: %s\n" -#: ../src/utils/pactl.c:636 +#: ../src/utils/pactl.c:680 #, c-format msgid "Failed to upload sample: %s\n" msgstr "सॅमà¥à¤ªà¤² अपलोड करणà¥à¤¯à¤¾à¤¸ अपयशी: %s\n" -#: ../src/utils/pactl.c:653 -#, c-format +#: ../src/utils/pactl.c:697 msgid "Premature end of file\n" msgstr "फाइलची अयोगà¥à¤¯ समापà¥à¤¤à¥€\n" -#: ../src/utils/pactl.c:774 -#, c-format +#: ../src/utils/pactl.c:826 +#, fuzzy, c-format msgid "" "%s [options] stat\n" "%s [options] list\n" @@ -2058,6 +2097,8 @@ msgid "" "%s [options] suspend-sink [SINK] 1|0\n" "%s [options] suspend-source [SOURCE] 1|0\n" "%s [options] set-card-profile [CARD] [PROFILE] \n" +"%s [options] set-sink-port [SINK] [PORT] \n" +"%s [options] set-source-port [SOURCE] [PORT] \n" "\n" " -h, --help Show this help\n" " --version Show version\n" @@ -2089,7 +2130,7 @@ msgstr "" " -n, --client-name=NAME How to call this client on the " "server\n" -#: ../src/utils/pactl.c:826 +#: ../src/utils/pactl.c:880 #, c-format msgid "" "pactl %s\n" @@ -2100,48 +2141,44 @@ msgstr "" "libpulse %s सह कंपाईल केले\n" "libpulse %s सह जà¥à¤³à¤²à¥‡\n" -#: ../src/utils/pactl.c:865 -#, c-format +#: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "कृपया दाखल करणà¥à¤¯à¤¾à¤œà¥‹à¤—ी तातà¥à¤ªà¥‚रà¥à¤¤à¥€ फाइल निशà¥à¤šà¤¿à¤¤ करा\n" -#: ../src/utils/pactl.c:887 -#, c-format +#: ../src/utils/pactl.c:939 msgid "Failed to open sound file.\n" msgstr "आवाज फाइल उघडणà¥à¤¯à¤¾à¤¸ अपयशी.\n" -#: ../src/utils/pactl.c:899 -#, c-format +#: ../src/utils/pactl.c:951 +#, fuzzy +msgid "Warning: Failed to determine sample specification from file.\n" +msgstr "%s सà¥à¤Ÿà¥à¤°à¥€à¤® सॅमà¥à¤ªà¤² संयोजना '%s' शी उघडत आहे.\n" + +#: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" msgstr "चालविणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ तातà¥à¤ªà¥‚रà¥à¤¤à¥‡ नाव निशà¥à¤šà¤¿à¤¤ करावे लागेल\n" -#: ../src/utils/pactl.c:911 -#, c-format +#: ../src/utils/pactl.c:973 msgid "You have to specify a sample name to remove\n" msgstr "काढूण टाकणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ तातà¥à¤ªà¥‚रà¥à¤¤à¥‡ नाव निशà¥à¤šà¤¿à¤¤ करावे लागेल\n" -#: ../src/utils/pactl.c:919 -#, c-format +#: ../src/utils/pactl.c:982 msgid "You have to specify a sink input index and a sink\n" msgstr "तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ सिंक इनपà¥à¤Ÿ निरà¥à¤¦à¥‡à¤¶à¤¾à¤‚क व सिंक निशà¥à¤šà¤¿à¤¤ करावे लागेल\n" -#: ../src/utils/pactl.c:928 -#, c-format +#: ../src/utils/pactl.c:992 msgid "You have to specify a source output index and a source\n" msgstr "तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ आऊट इनडेकà¥à¤¸ सà¥à¤¤à¥à¤°à¥‹à¤¤ व सà¥à¤¤à¥à¤°à¥‹à¤¤ निशà¥à¤šà¤¿à¤¤ करावे लागेल\n" -#: ../src/utils/pactl.c:942 -#, c-format +#: ../src/utils/pactl.c:1007 msgid "You have to specify a module name and arguments.\n" msgstr "तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ विà¤à¤¾à¤—ाचे नाव व बाब निशà¥à¤šà¤¿à¤¤ करावे लागेल.\n" -#: ../src/utils/pactl.c:962 -#, c-format +#: ../src/utils/pactl.c:1027 msgid "You have to specify a module index\n" msgstr "तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ विà¤à¤¾à¤— निरà¥à¤¦à¥‡à¤¶à¤¾à¤‚क निशà¥à¤šà¤¿à¤¤ करावे लागेल\n" -#: ../src/utils/pactl.c:972 -#, c-format +#: ../src/utils/pactl.c:1037 msgid "" "You may not specify more than one sink. You have to specify a boolean " "value.\n" @@ -2149,8 +2186,7 @@ msgstr "" "तà¥à¤®à¥à¤¹à¥€ à¤à¤•à¤¾à¤ªà¥‡à¤•à¥à¤·à¤¾ जासà¥à¤¤ सिंक निशà¥à¤šà¤¿à¤¤ करू शकत नाही. तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ बूलीयन मूलà¥à¤¯ निशà¥à¤šà¤¿à¤¤ करावे " "लागेल.\n" -#: ../src/utils/pactl.c:985 -#, c-format +#: ../src/utils/pactl.c:1050 msgid "" "You may not specify more than one source. You have to specify a boolean " "value.\n" @@ -2158,17 +2194,25 @@ msgstr "" "तà¥à¤®à¥à¤¹à¥€ à¤à¤•à¤¾à¤ªà¥‡à¤•à¥à¤·à¤¾ जासà¥à¤¤ सà¥à¤¤à¥à¤°à¥‹à¤¤ निशà¥à¤šà¤¿à¤¤ करू शकत नाही. तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ बूलीयन मूलà¥à¤¯ निशà¥à¤šà¤¿à¤¤ करावे " "लागेल.\n" -#: ../src/utils/pactl.c:997 -#, c-format +#: ../src/utils/pactl.c:1062 msgid "You have to specify a card name/index and a profile name\n" msgstr "तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ कारà¥à¤¡ नाव/निरà¥à¤¦à¥‡à¤¶à¤¾à¤‚क व संकà¥à¤·à¤¿à¤ªà¥à¤¤ नाव निशà¥à¤šà¤¿à¤¤ करावे\n" -#: ../src/utils/pactl.c:1012 -#, c-format +#: ../src/utils/pactl.c:1073 +#, fuzzy +msgid "You have to specify a sink name/index and a port name\n" +msgstr "तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ कारà¥à¤¡ नाव/निरà¥à¤¦à¥‡à¤¶à¤¾à¤‚क व संकà¥à¤·à¤¿à¤ªà¥à¤¤ नाव निशà¥à¤šà¤¿à¤¤ करावे\n" + +#: ../src/utils/pactl.c:1084 +#, fuzzy +msgid "You have to specify a source name/index and a port name\n" +msgstr "तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ कारà¥à¤¡ नाव/निरà¥à¤¦à¥‡à¤¶à¤¾à¤‚क व संकà¥à¤·à¤¿à¤ªà¥à¤¤ नाव निशà¥à¤šà¤¿à¤¤ करावे\n" + +#: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "वैध आदेश निशà¥à¤šà¤¿à¤¤ केले नाही.\n" -#: ../src/utils/pactl.c:1037 ../src/utils/paplay.c:404 +#: ../src/utils/pactl.c:1122 #, c-format msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect() अपयशी: %s" @@ -2252,129 +2296,48 @@ msgstr "कà¥à¤•à¥€ डेटा दाखल करणà¥à¤¯à¤¾à¤¸ अपयठmsgid "Not yet implemented.\n" msgstr "अजूनही लागू केले नाही.\n" -#: ../src/utils/pacmd.c:64 +#: ../src/utils/pacmd.c:61 +msgid "No PulseAudio daemon running, or not running as session daemon." +msgstr "" + +#: ../src/utils/pacmd.c:66 #, c-format msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s" msgstr "socket(PF_UNIX, SOCK_STREAM, 0): %s" -#: ../src/utils/pacmd.c:81 +#: ../src/utils/pacmd.c:83 #, c-format msgid "connect(): %s" msgstr "connect(): %s" -#: ../src/utils/pacmd.c:89 +#: ../src/utils/pacmd.c:91 msgid "Failed to kill PulseAudio daemon." msgstr "PulseAudio डिमन पूरà¥à¤£à¤ªà¤£à¥‡ नषà¥à¤Ÿ करणà¥à¤¯à¤¾à¤¸ अपयशी." -#: ../src/utils/pacmd.c:97 +#: ../src/utils/pacmd.c:99 msgid "Daemon not responding." msgstr "डिमन पà¥à¤°à¤¤à¤¿à¤¸à¤¾à¤¦ देत नाही." -#: ../src/utils/pacmd.c:144 +#: ../src/utils/pacmd.c:146 #, c-format msgid "select(): %s" msgstr "select(): %s" -#: ../src/utils/pacmd.c:154 ../src/utils/pacmd.c:171 +#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173 #, c-format msgid "read(): %s" msgstr "read(): %s" -#: ../src/utils/pacmd.c:187 ../src/utils/pacmd.c:201 +#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203 #, c-format msgid "write(): %s" msgstr "write(): %s" -#: ../src/utils/paplay.c:139 -#, c-format -msgid "Stream successfully created\n" -msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® यशसà¥à¤µà¥€à¤°à¤¿à¤¤à¥à¤¯à¤¾ बनवले\n" - -#: ../src/utils/paplay.c:144 -#, c-format -msgid "Stream errror: %s\n" -msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® तà¥à¤°à¥à¤Ÿà¥€: %s\n" - -#: ../src/utils/paplay.c:165 -#, c-format -msgid "Connection established.\n" -msgstr "जà¥à¤³à¤µà¤£à¥€ सà¥à¤¥à¤¾à¤ªà¥€à¤¤.\n" - -#: ../src/utils/paplay.c:198 -#, c-format -msgid "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" -msgstr "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" - -#: ../src/utils/paplay.c:255 -#, c-format -msgid "" -"paplay %s\n" -"Compiled with libpulse %s\n" -"Linked with libpulse %s\n" -msgstr "" -"paplay %s\n" -"%s शी कंपाई केले\n" -"libpulse %s शी जà¥à¤³à¤²à¥‡\n" - -#: ../src/utils/paplay.c:292 -#, c-format -msgid "Invalid channel map\n" -msgstr "अवैध वाहिनी नकाशा\n" - -#: ../src/utils/paplay.c:314 -#, c-format -msgid "Failed to open file '%s'\n" -msgstr "फाइल '%s' उघडणà¥à¤¯à¤¾à¤¸ अपयशी\n" - -#: ../src/utils/paplay.c:350 -#, c-format -msgid "Channel map doesn't match file.\n" -msgstr "वाहिनी नकाशा फाइलशी जà¥à¤³à¤¤ नाही.\n" - -#: ../src/utils/paplay.c:376 -#, c-format -msgid "Using sample spec '%s'\n" -msgstr "तातà¥à¤ªà¥‚रà¥à¤¤à¥‡ spec '%s' वापरत आहे\n" - #: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 msgid "Cannot access autospawn lock." msgstr "autospawn कà¥à¤²à¥‚प करीता पà¥à¤°à¤µà¥‡à¤¶ पà¥à¤°à¤¾à¤ªà¥à¤¯ अशकà¥à¤¯." -#: ../src/modules/alsa/alsa-sink.c:393 ../src/modules/alsa/alsa-sink.c:541 +#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2389,7 +2352,7 @@ msgstr "" "POLLOUT दà¥à¤µà¤¾à¤°à¥‡ सजà¥à¤œ होणे शकà¥à¤¯ आहे -- तरी परसà¥à¤ªà¤° snd_pcm_avail() ने 0 पूरविले किंवा इतर " "मूलà¥à¤¯ < min_avail असावे." -#: ../src/modules/alsa/alsa-source.c:377 ../src/modules/alsa/alsa-source.c:516 +#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2404,34 +2367,130 @@ msgstr "" "POLLIN दà¥à¤µà¤¾à¤°à¥‡ सजà¥à¤œ होणे शकà¥à¤¯ आहे -- तरी परसà¥à¤ªà¤° snd_pcm_avail() ने 0 पूरविले किंवा इतर " "मूलà¥à¤¯ < min_avail असावे." -#: ../src/modules/alsa/module-alsa-card.c:114 -#, c-format -msgid "Output %s + Input %s" -msgstr "आऊटपà¥à¤Ÿ %s + इनपà¥à¤Ÿ %s" - -#: ../src/modules/alsa/module-alsa-card.c:117 -#, c-format -msgid "Output %s" -msgstr "आऊटपà¥à¤Ÿ %s" - -#: ../src/modules/alsa/module-alsa-card.c:121 -#, c-format -msgid "Input %s" -msgstr "इनपà¥à¤Ÿ %s" - -#: ../src/modules/alsa/module-alsa-card.c:170 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2006 +#: ../src/modules/alsa/module-alsa-card.c:152 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 msgid "Off" msgstr "बंद करा" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1976 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 msgid "High Fidelity Playback (A2DP)" msgstr "High Fidelity Playback (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1991 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 msgid "Telephony Duplex (HSP/HFP)" msgstr "Telephony Duplex (HSP/HFP)" -#: ../src/modules/reserve-wrap.c:139 +#: ../src/modules/reserve-wrap.c:151 msgid "PulseAudio Sound Server" msgstr "PulseAudio आवाज सरà¥à¤µà¤°" + +#~ msgid "Analog Mono" +#~ msgstr "à¤à¤¨à¤²à¥‰à¤— मोनो" + +#~ msgid "Analog Stereo" +#~ msgstr "à¤à¤¨à¤²à¥‰à¤— सà¥à¤Ÿà¤¿à¤°à¥€à¤“" + +#~ msgid "Digital Stereo (IEC958)" +#~ msgstr "डिजीटल सà¥à¤Ÿà¤¿à¤°à¥€à¤“ (IEC958)" + +#~ msgid "Digital Stereo (HDMI)" +#~ msgstr "डिजीटल सà¥à¤Ÿà¤¿à¤°à¥€à¤“ (HDMI)" + +#~ msgid "Analog Surround 4.0" +#~ msgstr "à¤à¤¨à¤²à¥‰à¤— सराऊनà¥à¤¡ 4.0" + +#~ msgid "Digital Surround 4.0 (IEC958/AC3)" +#~ msgstr "डिजीटल सराऊनà¥à¤¡ 4.0 (IEC958/AC3)" + +#~ msgid "Analog Surround 4.1" +#~ msgstr "à¤à¤¨à¤²à¥‰à¤— सराऊनà¥à¤¡ 4.1" + +#~ msgid "Analog Surround 5.0" +#~ msgstr "à¤à¤¨à¤²à¥‰à¤— सराऊनà¥à¤¡ 5.0" + +#~ msgid "Analog Surround 5.1" +#~ msgstr "à¤à¤¨à¤²à¥‰à¤— सराऊनà¥à¤¡ 5.1" + +#~ msgid "Digital Surround 5.1 (IEC958/AC3)" +#~ msgstr "डिजीटल सराऊनà¥à¤¡ 5.1 (IEC958/AC3)" + +#~ msgid "Analog Surround 7.1" +#~ msgstr "à¤à¤¨à¤²à¥‰à¤— सराऊनà¥à¤¡ 7.1" + +#~ msgid "Output %s + Input %s" +#~ msgstr "आऊटपà¥à¤Ÿ %s + इनपà¥à¤Ÿ %s" + +#~ msgid "Output %s" +#~ msgstr "आऊटपà¥à¤Ÿ %s" + +#~ msgid "Input %s" +#~ msgstr "इनपà¥à¤Ÿ %s" + +#~ msgid "Stream successfully created\n" +#~ msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® यशसà¥à¤µà¥€à¤°à¤¿à¤¤à¥à¤¯à¤¾ बनवले\n" + +#~ msgid "Stream errror: %s\n" +#~ msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® तà¥à¤°à¥à¤Ÿà¥€: %s\n" + +#~ msgid "Connection established.\n" +#~ msgstr "जà¥à¤³à¤µà¤£à¥€ सà¥à¤¥à¤¾à¤ªà¥€à¤¤.\n" + +#~ msgid "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Show this help\n" +#~ " --version Show version\n" +#~ "\n" +#~ " -v, --verbose Enable verbose operation\n" +#~ "\n" +#~ " -s, --server=SERVER The name of the server to connect " +#~ "to\n" +#~ " -d, --device=DEVICE The name of the sink to connect " +#~ "to\n" +#~ " -n, --client-name=NAME How to call this client on the " +#~ "server\n" +#~ " --stream-name=NAME How to call this stream on the " +#~ "server\n" +#~ " --volume=VOLUME Specify the initial (linear) " +#~ "volume in range 0...65536\n" +#~ " --channel-map=CHANNELMAP Set the channel map to the use\n" +#~ msgstr "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Show this help\n" +#~ " --version Show version\n" +#~ "\n" +#~ " -v, --verbose Enable verbose operation\n" +#~ "\n" +#~ " -s, --server=SERVER The name of the server to connect " +#~ "to\n" +#~ " -d, --device=DEVICE The name of the sink to connect " +#~ "to\n" +#~ " -n, --client-name=NAME How to call this client on the " +#~ "server\n" +#~ " --stream-name=NAME How to call this stream on the " +#~ "server\n" +#~ " --volume=VOLUME Specify the initial (linear) " +#~ "volume in range 0...65536\n" +#~ " --channel-map=CHANNELMAP Set the channel map to the use\n" + +#~ msgid "" +#~ "paplay %s\n" +#~ "Compiled with libpulse %s\n" +#~ "Linked with libpulse %s\n" +#~ msgstr "" +#~ "paplay %s\n" +#~ "%s शी कंपाई केले\n" +#~ "libpulse %s शी जà¥à¤³à¤²à¥‡\n" + +#~ msgid "Invalid channel map\n" +#~ msgstr "अवैध वाहिनी नकाशा\n" + +#~ msgid "Failed to open file '%s'\n" +#~ msgstr "फाइल '%s' उघडणà¥à¤¯à¤¾à¤¸ अपयशी\n" + +#~ msgid "Channel map doesn't match file.\n" +#~ msgstr "वाहिनी नकाशा फाइलशी जà¥à¤³à¤¤ नाही.\n" + +#~ msgid "Using sample spec '%s'\n" +#~ msgstr "तातà¥à¤ªà¥‚रà¥à¤¤à¥‡ spec '%s' वापरत आहे\n" @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio.master-tx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-21 23:02+0200\n" +"POT-Creation-Date: 2009-06-17 23:42+0200\n" "PO-Revision-Date: 2009-04-15 21:04+0200\n" "Last-Translator: Geert Warrink <geert.warrink@onsnet.nu>\n" "Language-Team: Dutch <nl@li.org>\n" @@ -17,51 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../src/modules/alsa/alsa-util.c:532 -msgid "Analog Mono" -msgstr "Analoog mono" - -#: ../src/modules/alsa/alsa-util.c:540 -msgid "Analog Stereo" -msgstr "Analoog stereo" - -#: ../src/modules/alsa/alsa-util.c:548 -msgid "Digital Stereo (IEC958)" -msgstr "Digitaal stereo (IEC958)" - -#: ../src/modules/alsa/alsa-util.c:556 -msgid "Digital Stereo (HDMI)" -msgstr "Digitaal stereo (HDMI)" - -#: ../src/modules/alsa/alsa-util.c:565 -msgid "Analog Surround 4.0" -msgstr "Analoog surround 4.0" - -#: ../src/modules/alsa/alsa-util.c:574 -msgid "Digital Surround 4.0 (IEC958/AC3)" -msgstr "Digitaal surround 4.0 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:584 -msgid "Analog Surround 4.1" -msgstr "Analoog surround 4.1" - -#: ../src/modules/alsa/alsa-util.c:594 -msgid "Analog Surround 5.0" -msgstr "Analoog surround 5.0" - -#: ../src/modules/alsa/alsa-util.c:604 -msgid "Analog Surround 5.1" -msgstr "Analoog surround 5.1" - -#: ../src/modules/alsa/alsa-util.c:614 -msgid "Digital Surround 5.1 (IEC958/AC3)" -msgstr "Digitaal surround 5.1 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:625 -msgid "Analog Surround 7.1" -msgstr "Analoog surround 7.1" - -#: ../src/modules/alsa/alsa-util.c:1646 +#: ../src/modules/alsa/alsa-util.c:1015 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -74,7 +30,7 @@ msgstr "" "Waarschijnlijk is dit een bug in de ALSA driver '%s'. Rapporteer dit " "probleem a.u.b. aan de ALSA ontwikkelaars." -#: ../src/modules/alsa/alsa-util.c:1687 +#: ../src/modules/alsa/alsa-util.c:1056 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -87,7 +43,7 @@ msgstr "" "Waarschijnlijk is dit een bug in de ALSA driver '%s'. Rapporteer dit " "probleem a.u.b. aan de ALSA ontwikkelaars." -#: ../src/modules/alsa/alsa-util.c:1734 +#: ../src/modules/alsa/alsa-util.c:1103 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -100,11 +56,24 @@ msgstr "" "Waarschijnlijk is dit een bug in de ALSA driver '%s'. Rapporteer dit " "probleem a.u.b aan de ALSA ontwikkelaars." -#: ../src/pulsecore/sink.c:2141 +#: ../src/modules/module-ladspa-sink.c:49 +msgid "Virtual LADSPA sink" +msgstr "" + +#: ../src/modules/module-ladspa-sink.c:53 +msgid "" +"sink_name=<name for the sink> sink_properties=<properties for the sink> " +"master=<name of sink to filter> format=<sample format> rate=<sample rate> " +"channels=<number of channels> channel_map=<channel map> plugin=<ladspa " +"plugin name> label=<ladspa plugin label> control=<comma seperated list of " +"input control values>" +msgstr "" + +#: ../src/pulsecore/sink.c:2394 msgid "Internal Audio" msgstr "Intern geluid" -#: ../src/pulsecore/sink.c:2147 +#: ../src/pulsecore/sink.c:2400 msgid "Modem" msgstr "Modem" @@ -174,104 +143,104 @@ msgstr "Kan geen authorisatie krijgen: %s" msgid "PolicyKit responded with '%s'" msgstr "PolicyKit antwoordde met '%s'" -#: ../src/daemon/main.c:138 +#: ../src/daemon/main.c:142 #, c-format msgid "Got signal %s." msgstr "Ontving signaal %s." -#: ../src/daemon/main.c:165 +#: ../src/daemon/main.c:169 msgid "Exiting." msgstr "Afsluiten." -#: ../src/daemon/main.c:183 +#: ../src/daemon/main.c:187 #, c-format msgid "Failed to find user '%s'." msgstr "Kon gebruiker '%s' niet vinden." -#: ../src/daemon/main.c:188 +#: ../src/daemon/main.c:192 #, c-format msgid "Failed to find group '%s'." msgstr "Kon groep '%s' niet vinden." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:196 #, 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:197 +#: ../src/daemon/main.c:201 #, 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:202 +#: ../src/daemon/main.c:206 #, 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:205 ../src/daemon/main.c:210 +#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 #, c-format msgid "Failed to create '%s': %s" msgstr "Aanmaken van '%s': %s mislukte" -#: ../src/daemon/main.c:217 +#: ../src/daemon/main.c:221 #, c-format msgid "Failed to change group list: %s" msgstr "Veranderen van groeps lijst: '%s' mislukte" -#: ../src/daemon/main.c:233 +#: ../src/daemon/main.c:237 #, c-format msgid "Failed to change GID: %s" msgstr "Veranderen van GID: %s mislukte" -#: ../src/daemon/main.c:249 +#: ../src/daemon/main.c:253 #, c-format msgid "Failed to change UID: %s" msgstr "Veranderen van UID: %s mislukte" -#: ../src/daemon/main.c:263 +#: ../src/daemon/main.c:267 msgid "Successfully dropped root privileges." msgstr "Root rechten met succes laten vervallen." -#: ../src/daemon/main.c:271 +#: ../src/daemon/main.c:275 msgid "System wide mode unsupported on this platform." msgstr "Systeem brede mode wordt op dit platform niet ondersteund." -#: ../src/daemon/main.c:289 +#: ../src/daemon/main.c:293 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) mislukte: %s" -#: ../src/daemon/main.c:477 +#: ../src/daemon/main.c:481 msgid "Failed to parse command line." msgstr "Analyseren van de commandoregel mislukte." -#: ../src/daemon/main.c:501 +#: ../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:508 +#: ../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:516 +#: ../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:519 +#: ../src/daemon/main.c:523 msgid "PolicyKit refuses acquire-high-priority privilege." msgstr "PolicyKit weigert ons acquire-high-priority rechten." -#: ../src/daemon/main.c:524 +#: ../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:527 +#: ../src/daemon/main.c:531 msgid "PolicyKit refuses acquire-real-time privilege." msgstr "PolicyKit weigert ons acquire-real-time rechten." -#: ../src/daemon/main.c:556 +#: ../src/daemon/main.c:560 #, c-format msgid "" "Called SUID root and real-time and/or high-priority scheduling was requested " @@ -292,48 +261,48 @@ msgstr "" "PolicyKit privileges hebben, of lid van '%s\" worden, of de RLIMIT_NICE/" "RLIMIT_RTPRIO limieten voor deze gebruiker verhogen." -#: ../src/daemon/main.c:581 +#: ../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:610 +#: ../src/daemon/main.c:614 msgid "Successfully increased RLIMIT_RTPRIO" msgstr "RLIMIT_RTPRIO met succes verhoogd" -#: ../src/daemon/main.c:613 +#: ../src/daemon/main.c:617 #, c-format msgid "RLIMIT_RTPRIO failed: %s" msgstr "RLIMIT_RTPRIO mislukte: %s" -#: ../src/daemon/main.c:620 +#: ../src/daemon/main.c:624 msgid "Giving up CAP_NICE" msgstr "Opgeven CAP_NICE" -#: ../src/daemon/main.c:627 +#: ../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:688 +#: ../src/daemon/main.c:692 msgid "Daemon not running" msgstr "Daemon draait niet" -#: ../src/daemon/main.c:690 +#: ../src/daemon/main.c:694 #, c-format msgid "Daemon running as PID %u" msgstr "Daemon draait met PID %u" -#: ../src/daemon/main.c:700 +#: ../src/daemon/main.c:704 #, c-format msgid "Failed to kill daemon: %s" msgstr "Afschieten mislukt van daemon: '%s'" -#: ../src/daemon/main.c:718 +#: ../src/daemon/main.c:722 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -341,159 +310,169 @@ msgstr "" "Dit programma is niet bedoeld om als root gedraaid te worden (behalve als --" "system is opgegeven)." -#: ../src/daemon/main.c:720 +#: ../src/daemon/main.c:724 msgid "Root privileges required." msgstr "Root rechten vereisd" -#: ../src/daemon/main.c:725 +#: ../src/daemon/main.c:729 msgid "--start not supported for system instances." msgstr "--start wordt niet ondersteund voor systeem instances" -#: ../src/daemon/main.c:730 +#: ../src/daemon/main.c:734 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:733 +#: ../src/daemon/main.c:737 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:736 +#: ../src/daemon/main.c:740 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "Draaiend in systeem mode, geforceerd uitzetten van SHM mode!" -#: ../src/daemon/main.c:741 +#: ../src/daemon/main.c:745 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:768 +#: ../src/daemon/main.c:772 msgid "Failed to acquire stdio." msgstr "Verkrijgen van stdio mislukte." -#: ../src/daemon/main.c:774 +#: ../src/daemon/main.c:778 #, c-format msgid "pipe failed: %s" msgstr "pipe mislukte: %s" -#: ../src/daemon/main.c:779 +#: ../src/daemon/main.c:783 #, c-format msgid "fork() failed: %s" msgstr "fork() mislukte: %s" -#: ../src/daemon/main.c:793 +#: ../src/daemon/main.c:797 #, c-format msgid "read() failed: %s" msgstr "read() mislukte: %s" -#: ../src/daemon/main.c:799 +#: ../src/daemon/main.c:803 msgid "Daemon startup failed." msgstr "Daemon opstarten mislukte." -#: ../src/daemon/main.c:801 +#: ../src/daemon/main.c:805 msgid "Daemon startup successful." msgstr "Daemon met succes opgestart." -#: ../src/daemon/main.c:871 +#: ../src/daemon/main.c:875 #, c-format msgid "This is PulseAudio %s" msgstr "Dit is PulseAudio %s" -#: ../src/daemon/main.c:872 +#: ../src/daemon/main.c:876 #, c-format msgid "Compilation host: %s" msgstr "Compilatie host: %s" -#: ../src/daemon/main.c:873 +#: ../src/daemon/main.c:877 #, c-format msgid "Compilation CFLAGS: %s" msgstr "Compilatie CFLAGS: %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:880 #, c-format msgid "Running on host: %s" msgstr "Draaiend op host: %s" -#: ../src/daemon/main.c:879 +#: ../src/daemon/main.c:883 #, c-format msgid "Found %u CPUs." msgstr "%u CPU's gevonden." -#: ../src/daemon/main.c:881 +#: ../src/daemon/main.c:885 #, c-format msgid "Page size is %lu bytes" msgstr "Pagina grootte is %lu bytes" -#: ../src/daemon/main.c:884 +#: ../src/daemon/main.c:888 msgid "Compiled with Valgrind support: yes" msgstr "Gecompileerd met Valgrind ondersteuning: ja" -#: ../src/daemon/main.c:886 +#: ../src/daemon/main.c:890 msgid "Compiled with Valgrind support: no" msgstr "Gecompileerd met Valgrind ondersteuning: nee" -#: ../src/daemon/main.c:889 +#: ../src/daemon/main.c:893 #, c-format msgid "Running in valgrind mode: %s" msgstr "Draaiend in valgrind mode: %s" -#: ../src/daemon/main.c:892 +#: ../src/daemon/main.c:896 msgid "Optimized build: yes" msgstr "Optimaal gebouwd: ja" -#: ../src/daemon/main.c:894 +#: ../src/daemon/main.c:898 msgid "Optimized build: no" msgstr "Optimaak gebouwd: nee" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:902 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG gedefinieerd, alle verklaringen uitgezet." -#: ../src/daemon/main.c:900 +#: ../src/daemon/main.c:904 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "FASTPATH gedefinieerd, alleen snel pad verklaringen uitgezet." -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:906 msgid "All asserts enabled." msgstr "Alle verklaringen aangezet." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:910 msgid "Failed to get machine ID" msgstr "Machine ID verkrijgen mislukte" -#: ../src/daemon/main.c:909 +#: ../src/daemon/main.c:913 #, c-format msgid "Machine ID is %s." msgstr "Machine ID is: %s." -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:917 #, fuzzy, c-format msgid "Session ID is %s." msgstr "Machine ID is: %s." -#: ../src/daemon/main.c:919 +#: ../src/daemon/main.c:923 #, c-format msgid "Using runtime directory %s." msgstr "Gebruik van runtime map %s." -#: ../src/daemon/main.c:924 +#: ../src/daemon/main.c:928 #, c-format msgid "Using state directory %s." msgstr "Verbruik van state map %s." -#: ../src/daemon/main.c:927 +#: ../src/daemon/main.c:931 #, c-format msgid "Running in system mode: %s" msgstr "Draaiend in systeem mode: %s" -#: ../src/daemon/main.c:942 +#: ../src/daemon/main.c:934 +msgid "" +"OK, so you are running PA in system mode. Please note that you most likely " +"shouldn't be doing that.\n" +"If you do it nonetheless then it's your own fault if things don't work as " +"expected.\n" +"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " +"explanation why system mode is usually a bad idea." +msgstr "" + +#: ../src/daemon/main.c:951 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() mislukte." -#: ../src/daemon/main.c:954 +#: ../src/daemon/main.c:961 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "Verse high-resolution timers beschikbaar! Smakelijk eten!" -#: ../src/daemon/main.c:956 +#: ../src/daemon/main.c:963 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -501,31 +480,31 @@ msgstr "" "Kerel, je kernel stinkt! De aanbeveling van de chef is vandaag Linux met " "aangezette high-resolution timers!" -#: ../src/daemon/main.c:970 +#: ../src/daemon/main.c:988 msgid "pa_core_new() failed." msgstr "pa_core_new() mislukte." -#: ../src/daemon/main.c:1032 +#: ../src/daemon/main.c:1050 msgid "Failed to initialize daemon." msgstr "Initialiseren van de daemon mislukte." -#: ../src/daemon/main.c:1037 +#: ../src/daemon/main.c:1055 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "Daemon opgestart zonder geladen modules, dat werkt niet." -#: ../src/daemon/main.c:1054 +#: ../src/daemon/main.c:1072 msgid "Daemon startup complete." msgstr "Daemon opstarten is klaar." -#: ../src/daemon/main.c:1060 +#: ../src/daemon/main.c:1078 msgid "Daemon shutdown initiated." msgstr "Daemon afsluiten is begonnen." -#: ../src/daemon/main.c:1082 +#: ../src/daemon/main.c:1100 msgid "Daemon terminated." msgstr "Daemon is afgesloten." -#: ../src/daemon/cmdline.c:121 +#: ../src/daemon/cmdline.c:115 #, c-format msgid "" "%s [options]\n" @@ -678,15 +657,15 @@ msgstr "" " -n Laad het standaard script bestand " "niet\n" -#: ../src/daemon/cmdline.c:252 +#: ../src/daemon/cmdline.c:247 msgid "--daemonize expects boolean argument" msgstr "--daemonize verwacht een boolean argument" -#: ../src/daemon/cmdline.c:259 +#: ../src/daemon/cmdline.c:254 msgid "--fail expects boolean argument" msgstr "--fail verwacht een boolean argument" -#: ../src/daemon/cmdline.c:269 +#: ../src/daemon/cmdline.c:264 msgid "" "--log-level expects log level argument (either numeric in range 0..4 or one " "of debug, info, notice, warn, error)." @@ -694,52 +673,52 @@ msgstr "" "--log-level verwacht een log level argument (numeriek uit de reeks 0..4 of " "een van type debug, info, notice, warn, error)." -#: ../src/daemon/cmdline.c:281 +#: ../src/daemon/cmdline.c:276 msgid "--high-priority expects boolean argument" msgstr "--high-priority verwacht een boolean argument" -#: ../src/daemon/cmdline.c:288 +#: ../src/daemon/cmdline.c:283 msgid "--realtime expects boolean argument" msgstr "--realtime verwacht een boolean argument" -#: ../src/daemon/cmdline.c:295 +#: ../src/daemon/cmdline.c:290 msgid "--disallow-module-loading expects boolean argument" msgstr "--disallow-module-loading verwacht een boolean argument" -#: ../src/daemon/cmdline.c:302 +#: ../src/daemon/cmdline.c:297 msgid "--disallow-exit expects boolean argument" msgstr "--disallow-exit verwacht een bolean argument" -#: ../src/daemon/cmdline.c:309 +#: ../src/daemon/cmdline.c:304 msgid "--use-pid-file expects boolean argument" msgstr "--use-pid-file verwacht een boolean argument" -#: ../src/daemon/cmdline.c:326 +#: ../src/daemon/cmdline.c:321 msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgstr "Ongeldig log doel: gebruik een van 'syslog', 'stderr', 'auto'." -#: ../src/daemon/cmdline.c:333 +#: ../src/daemon/cmdline.c:328 msgid "--log-time expects boolean argument" msgstr "--log-time verwacht een boolean argument" -#: ../src/daemon/cmdline.c:340 +#: ../src/daemon/cmdline.c:335 msgid "--log-meta expects boolean argument" msgstr "--log-meta verwacht een boolean argument" -#: ../src/daemon/cmdline.c:359 +#: ../src/daemon/cmdline.c:354 #, c-format msgid "Invalid resample method '%s'." msgstr "Ongeldige resample methode '%s'." -#: ../src/daemon/cmdline.c:366 +#: ../src/daemon/cmdline.c:361 msgid "--system expects boolean argument" msgstr "--system verwacht een boolean argument" -#: ../src/daemon/cmdline.c:373 +#: ../src/daemon/cmdline.c:368 msgid "--no-cpu-limit expects boolean argument" msgstr "--no-cpu-limit verwacht een boolean argument" -#: ../src/daemon/cmdline.c:380 +#: ../src/daemon/cmdline.c:375 msgid "--disable-shm expects boolean argument" msgstr "--disable-shm verwacht een boolean argument" @@ -778,77 +757,82 @@ msgstr "Gebruik: %s\n" msgid "Load Once: %s\n" msgstr "Laad eenmaal: %s\n" -#: ../src/daemon/dumpmodules.c:77 +#: ../src/daemon/dumpmodules.c:75 +#, c-format +msgid "DEPRECATION WARNING: %s\n" +msgstr "" + +#: ../src/daemon/dumpmodules.c:79 #, c-format msgid "Path: %s\n" msgstr "Pad: %s\n" -#: ../src/daemon/daemon-conf.c:215 +#: ../src/daemon/daemon-conf.c:216 #, c-format msgid "[%s:%u] Invalid log target '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:231 +#: ../src/daemon/daemon-conf.c:232 #, c-format msgid "[%s:%u] Invalid log level '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:247 +#: ../src/daemon/daemon-conf.c:248 #, c-format msgid "[%s:%u] Invalid resample method '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:270 +#: ../src/daemon/daemon-conf.c:271 #, c-format msgid "[%s:%u] Invalid rlimit '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:277 +#: ../src/daemon/daemon-conf.c:278 #, c-format msgid "[%s:%u] rlimit not supported on this platform." msgstr "" -#: ../src/daemon/daemon-conf.c:293 +#: ../src/daemon/daemon-conf.c:294 #, c-format msgid "[%s:%u] Invalid sample format '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:311 +#: ../src/daemon/daemon-conf.c:312 #, c-format msgid "[%s:%u] Invalid sample rate '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:335 +#: ../src/daemon/daemon-conf.c:336 #, c-format msgid "[%s:%u] Invalid sample channels '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:353 +#: ../src/daemon/daemon-conf.c:354 #, c-format msgid "[%s:%u] Invalid channel map '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:371 +#: ../src/daemon/daemon-conf.c:372 #, c-format msgid "[%s:%u] Invalid number of fragments '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:389 +#: ../src/daemon/daemon-conf.c:390 #, c-format msgid "[%s:%u] Invalid fragment size '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:407 +#: ../src/daemon/daemon-conf.c:408 #, c-format msgid "[%s:%u] Invalid nice level '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:522 +#: ../src/daemon/daemon-conf.c:524 #, c-format msgid "Failed to open configuration file: %s" msgstr "" -#: ../src/daemon/daemon-conf.c:538 +#: ../src/daemon/daemon-conf.c:540 msgid "" "The specified default channel map has a different number of channels than " "the specified default number of channels." @@ -893,237 +877,237 @@ msgstr "" msgid "System policy prevents PulseAudio from acquiring real-time scheduling." msgstr "" -#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804 +#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Mono" -#: ../src/pulse/channelmap.c:105 +#: ../src/pulse/channelmap.c:107 msgid "Front Center" msgstr "Voor midden" -#: ../src/pulse/channelmap.c:106 +#: ../src/pulse/channelmap.c:108 msgid "Front Left" msgstr "Voor links" -#: ../src/pulse/channelmap.c:107 +#: ../src/pulse/channelmap.c:109 msgid "Front Right" msgstr "Voor rechts" -#: ../src/pulse/channelmap.c:109 +#: ../src/pulse/channelmap.c:111 msgid "Rear Center" msgstr "Achter midden" -#: ../src/pulse/channelmap.c:110 +#: ../src/pulse/channelmap.c:112 msgid "Rear Left" msgstr "Achter links" -#: ../src/pulse/channelmap.c:111 +#: ../src/pulse/channelmap.c:113 msgid "Rear Right" msgstr "Achter rechta" -#: ../src/pulse/channelmap.c:113 +#: ../src/pulse/channelmap.c:115 msgid "Low Frequency Emmiter" msgstr "Lage frequentie zender" -#: ../src/pulse/channelmap.c:115 +#: ../src/pulse/channelmap.c:117 msgid "Front Left-of-center" msgstr "Voor links-van-het-midden" -#: ../src/pulse/channelmap.c:116 +#: ../src/pulse/channelmap.c:118 msgid "Front Right-of-center" msgstr "Voor rechts-van-het-midden" -#: ../src/pulse/channelmap.c:118 +#: ../src/pulse/channelmap.c:120 msgid "Side Left" msgstr "Zijkant links" -#: ../src/pulse/channelmap.c:119 +#: ../src/pulse/channelmap.c:121 msgid "Side Right" msgstr "Zijkant rechts" -#: ../src/pulse/channelmap.c:121 +#: ../src/pulse/channelmap.c:123 msgid "Auxiliary 0" msgstr "Auxiliary 0" -#: ../src/pulse/channelmap.c:122 +#: ../src/pulse/channelmap.c:124 msgid "Auxiliary 1" msgstr "Auxiliary 1" -#: ../src/pulse/channelmap.c:123 +#: ../src/pulse/channelmap.c:125 msgid "Auxiliary 2" msgstr "Auxiliary 2" -#: ../src/pulse/channelmap.c:124 +#: ../src/pulse/channelmap.c:126 msgid "Auxiliary 3" msgstr "Auxiliary 3" -#: ../src/pulse/channelmap.c:125 +#: ../src/pulse/channelmap.c:127 msgid "Auxiliary 4" msgstr "Auxiliary 4" -#: ../src/pulse/channelmap.c:126 +#: ../src/pulse/channelmap.c:128 msgid "Auxiliary 5" msgstr "Auxiliary 5" -#: ../src/pulse/channelmap.c:127 +#: ../src/pulse/channelmap.c:129 msgid "Auxiliary 6" msgstr "Auxiliary 6" -#: ../src/pulse/channelmap.c:128 +#: ../src/pulse/channelmap.c:130 msgid "Auxiliary 7" msgstr "Auxiliary 7" -#: ../src/pulse/channelmap.c:129 +#: ../src/pulse/channelmap.c:131 msgid "Auxiliary 8" msgstr "Auxiliary 8" -#: ../src/pulse/channelmap.c:130 +#: ../src/pulse/channelmap.c:132 msgid "Auxiliary 9" msgstr "Auxiliary 9" -#: ../src/pulse/channelmap.c:131 +#: ../src/pulse/channelmap.c:133 msgid "Auxiliary 10" msgstr "Auxiliary 10" -#: ../src/pulse/channelmap.c:132 +#: ../src/pulse/channelmap.c:134 msgid "Auxiliary 11" msgstr "Auxiliary 11" -#: ../src/pulse/channelmap.c:133 +#: ../src/pulse/channelmap.c:135 msgid "Auxiliary 12" msgstr "Auxiliary 12" -#: ../src/pulse/channelmap.c:134 +#: ../src/pulse/channelmap.c:136 msgid "Auxiliary 13" msgstr "Auxiliary 13" -#: ../src/pulse/channelmap.c:135 +#: ../src/pulse/channelmap.c:137 msgid "Auxiliary 14" msgstr "Auxiliary 14" -#: ../src/pulse/channelmap.c:136 +#: ../src/pulse/channelmap.c:138 msgid "Auxiliary 15" msgstr "Auxiliary· 15" -#: ../src/pulse/channelmap.c:137 +#: ../src/pulse/channelmap.c:139 msgid "Auxiliary 16" msgstr "Auxiliary 16" -#: ../src/pulse/channelmap.c:138 +#: ../src/pulse/channelmap.c:140 msgid "Auxiliary 17" msgstr "Auxiliary 17" -#: ../src/pulse/channelmap.c:139 +#: ../src/pulse/channelmap.c:141 msgid "Auxiliary 18" msgstr "Auxiliary 18" -#: ../src/pulse/channelmap.c:140 +#: ../src/pulse/channelmap.c:142 msgid "Auxiliary 19" msgstr "Auxiliary 19" -#: ../src/pulse/channelmap.c:141 +#: ../src/pulse/channelmap.c:143 msgid "Auxiliary 20" msgstr "Auxiliary 20" -#: ../src/pulse/channelmap.c:142 +#: ../src/pulse/channelmap.c:144 msgid "Auxiliary 21" msgstr "Auxiliary 21" -#: ../src/pulse/channelmap.c:143 +#: ../src/pulse/channelmap.c:145 msgid "Auxiliary 22" msgstr "Auxiliary 22" -#: ../src/pulse/channelmap.c:144 +#: ../src/pulse/channelmap.c:146 msgid "Auxiliary 23" msgstr "Auxiliary 23" -#: ../src/pulse/channelmap.c:145 +#: ../src/pulse/channelmap.c:147 msgid "Auxiliary 24" msgstr "Auxiliary 24" -#: ../src/pulse/channelmap.c:146 +#: ../src/pulse/channelmap.c:148 msgid "Auxiliary 25" msgstr "Auxiliary 25" -#: ../src/pulse/channelmap.c:147 +#: ../src/pulse/channelmap.c:149 msgid "Auxiliary 26" msgstr "Auxiliary 26" -#: ../src/pulse/channelmap.c:148 +#: ../src/pulse/channelmap.c:150 msgid "Auxiliary 27" msgstr "Auxiliary 27" -#: ../src/pulse/channelmap.c:149 +#: ../src/pulse/channelmap.c:151 msgid "Auxiliary 28" msgstr "Auxiliary 28" -#: ../src/pulse/channelmap.c:150 +#: ../src/pulse/channelmap.c:152 msgid "Auxiliary 29" msgstr "Auxiliary 29" -#: ../src/pulse/channelmap.c:151 +#: ../src/pulse/channelmap.c:153 msgid "Auxiliary 30" msgstr "Auxiliary 30" -#: ../src/pulse/channelmap.c:152 +#: ../src/pulse/channelmap.c:154 msgid "Auxiliary 31" msgstr "Auxiliary 31" -#: ../src/pulse/channelmap.c:154 +#: ../src/pulse/channelmap.c:156 msgid "Top Center" msgstr "Boven midden" -#: ../src/pulse/channelmap.c:156 +#: ../src/pulse/channelmap.c:158 msgid "Top Front Center" msgstr "Boven voor midden" -#: ../src/pulse/channelmap.c:157 +#: ../src/pulse/channelmap.c:159 msgid "Top Front Left" msgstr "Boven voor links" -#: ../src/pulse/channelmap.c:158 +#: ../src/pulse/channelmap.c:160 msgid "Top Front Right" msgstr "Boven voor rechts" -#: ../src/pulse/channelmap.c:160 +#: ../src/pulse/channelmap.c:162 msgid "Top Rear Center" msgstr "Boven achter midden" -#: ../src/pulse/channelmap.c:161 +#: ../src/pulse/channelmap.c:163 msgid "Top Rear Left" msgstr "boven achter links" -#: ../src/pulse/channelmap.c:162 +#: ../src/pulse/channelmap.c:164 msgid "Top Rear Right" msgstr "boven achter rechts" -#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167 -#: ../src/pulse/volume.c:170 ../src/pulse/volume.c:196 -#: ../src/pulse/volume.c:216 ../src/pulse/volume.c:246 +#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167 +#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265 +#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315 msgid "(invalid)" msgstr "(ongeldig)" -#: ../src/pulse/channelmap.c:808 +#: ../src/pulse/channelmap.c:751 msgid "Stereo" msgstr "Stereo" -#: ../src/pulse/channelmap.c:813 +#: ../src/pulse/channelmap.c:756 msgid "Surround 4.0" msgstr "Surround 4.0" -#: ../src/pulse/channelmap.c:819 +#: ../src/pulse/channelmap.c:762 msgid "Surround 4.1" msgstr "Surround 4.1" -#: ../src/pulse/channelmap.c:825 +#: ../src/pulse/channelmap.c:768 msgid "Surround 5.0" msgstr "Surround 5.0" -#: ../src/pulse/channelmap.c:831 +#: ../src/pulse/channelmap.c:774 msgid "Surround 5.1" msgstr "Surround 5.1" -#: ../src/pulse/channelmap.c:838 +#: ../src/pulse/channelmap.c:781 msgid "Surround 7.1" msgstr "Surround 7.1" @@ -1284,172 +1268,167 @@ msgstr "waitpid(): %s" msgid "Received message for unknown extension '%s'" msgstr "" -#: ../src/utils/pacat.c:94 +#: ../src/utils/pacat.c:107 +#, c-format +msgid "Failed to drain stream: %s\n" +msgstr "" + +#: ../src/utils/pacat.c:112 +msgid "Playback stream drained.\n" +msgstr "" + +#: ../src/utils/pacat.c:122 +msgid "Draining connection to server.\n" +msgstr "" + +#: ../src/utils/pacat.c:135 +#, c-format +msgid "pa_stream_drain(): %s\n" +msgstr "" + +#: ../src/utils/pacat.c:158 #, c-format msgid "pa_stream_write() failed: %s\n" msgstr "" -#: ../src/utils/pacat.c:133 +#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 #, c-format msgid "pa_stream_peek() failed: %s\n" msgstr "" -#: ../src/utils/pacat.c:169 -#, c-format +#: ../src/utils/pacat.c:302 msgid "Stream successfully created.\n" msgstr "" -#: ../src/utils/pacat.c:172 +#: ../src/utils/pacat.c:305 #, c-format msgid "pa_stream_get_buffer_attr() failed: %s\n" msgstr "" -#: ../src/utils/pacat.c:176 +#: ../src/utils/pacat.c:309 #, c-format msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgstr "" -#: ../src/utils/pacat.c:179 +#: ../src/utils/pacat.c:312 #, c-format msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgstr "" -#: ../src/utils/pacat.c:183 +#: ../src/utils/pacat.c:316 #, c-format msgid "Using sample spec '%s', channel map '%s'.\n" msgstr "" -#: ../src/utils/pacat.c:187 +#: ../src/utils/pacat.c:320 #, c-format msgid "Connected to device %s (%u, %ssuspended).\n" msgstr "" -#: ../src/utils/pacat.c:197 +#: ../src/utils/pacat.c:330 #, c-format msgid "Stream error: %s\n" msgstr "" -#: ../src/utils/pacat.c:207 +#: ../src/utils/pacat.c:340 #, c-format msgid "Stream device suspended.%s \n" msgstr "" -#: ../src/utils/pacat.c:209 +#: ../src/utils/pacat.c:342 #, c-format msgid "Stream device resumed.%s \n" msgstr "" -#: ../src/utils/pacat.c:217 +#: ../src/utils/pacat.c:350 #, c-format msgid "Stream underrun.%s \n" msgstr "" -#: ../src/utils/pacat.c:224 +#: ../src/utils/pacat.c:357 #, c-format msgid "Stream overrun.%s \n" msgstr "" -#: ../src/utils/pacat.c:231 +#: ../src/utils/pacat.c:364 #, c-format msgid "Stream started.%s \n" msgstr "" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 #, c-format msgid "Stream moved to device %s (%u, %ssuspended).%s \n" msgstr "" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 msgid "not " msgstr "" -#: ../src/utils/pacat.c:245 +#: ../src/utils/pacat.c:378 #, c-format msgid "Stream buffer attributes changed.%s \n" msgstr "" -#: ../src/utils/pacat.c:278 +#: ../src/utils/pacat.c:411 #, c-format msgid "Connection established.%s \n" msgstr "" -#: ../src/utils/pacat.c:281 +#: ../src/utils/pacat.c:414 #, c-format msgid "pa_stream_new() failed: %s\n" msgstr "" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:442 #, c-format msgid "pa_stream_connect_playback() failed: %s\n" msgstr "" -#: ../src/utils/pacat.c:315 +#: ../src/utils/pacat.c:448 #, c-format msgid "pa_stream_connect_record() failed: %s\n" msgstr "" -#: ../src/utils/pacat.c:329 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:762 ../src/utils/paplay.c:183 +#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 #, c-format msgid "Connection failure: %s\n" msgstr "" -#: ../src/utils/pacat.c:349 ../src/utils/paplay.c:75 -#, c-format -msgid "Failed to drain stream: %s\n" -msgstr "" - -#: ../src/utils/pacat.c:354 ../src/utils/paplay.c:80 -#, c-format -msgid "Playback stream drained.\n" -msgstr "" - -#: ../src/utils/pacat.c:364 ../src/utils/paplay.c:92 -#, c-format -msgid "Draining connection to server.\n" -msgstr "" - -#: ../src/utils/pacat.c:390 -#, c-format +#: ../src/utils/pacat.c:495 msgid "Got EOF.\n" msgstr "" -#: ../src/utils/pacat.c:396 -#, c-format -msgid "pa_stream_drain(): %s\n" -msgstr "" - -#: ../src/utils/pacat.c:406 +#: ../src/utils/pacat.c:500 #, c-format msgid "read() failed: %s\n" msgstr "" -#: ../src/utils/pacat.c:438 +#: ../src/utils/pacat.c:532 #, c-format msgid "write() failed: %s\n" msgstr "" -#: ../src/utils/pacat.c:459 -#, c-format +#: ../src/utils/pacat.c:553 msgid "Got signal, exiting.\n" msgstr "" -#: ../src/utils/pacat.c:473 +#: ../src/utils/pacat.c:567 #, c-format msgid "Failed to get latency: %s\n" msgstr "" -#: ../src/utils/pacat.c:478 +#: ../src/utils/pacat.c:572 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "" -#: ../src/utils/pacat.c:498 +#: ../src/utils/pacat.c:592 #, c-format msgid "pa_stream_update_timing_info() failed: %s\n" msgstr "" -#: ../src/utils/pacat.c:511 +#: ../src/utils/pacat.c:605 #, c-format msgid "" "%s [options]\n" @@ -1476,8 +1455,10 @@ msgid "" "44100)\n" " --format=SAMPLEFORMAT The sample type, one of s16le, " "s16be, u8, float32le,\n" -" float32be, ulaw, alaw, s32le, s32be " -"(defaults to s16ne)\n" +" float32be, ulaw, alaw, s32le, s32be, " +"s24le, s24be,\n" +" s24-32le, s24-32be (defaults to " +"s16ne)\n" " --channels=CHANNELS The number of channels, 1 for mono, " "2 for stereo\n" " (defaults to 2)\n" @@ -1500,9 +1481,14 @@ msgid "" "bytes.\n" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" +" --property=PROPERTY=VALUE Set the specified property to the " +"specified value.\n" +" --raw Record/play raw PCM data.\n" +" --file-format=FFORMAT Record/play formatted PCM data.\n" +" --list-file-formats List available file formats.\n" msgstr "" -#: ../src/utils/pacat.c:612 +#: ../src/utils/pacat.c:727 #, c-format msgid "" "pacat %s\n" @@ -1510,88 +1496,131 @@ msgid "" "Linked with libpulse %s\n" msgstr "" -#: ../src/utils/pacat.c:669 +#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "Ongeldige resample methode '%s'." + +#: ../src/utils/pacat.c:776 +#, fuzzy, c-format +msgid "Invalid stream name '%s'\n" +msgstr "Ongeldige resample methode '%s'." + +#: ../src/utils/pacat.c:813 #, c-format msgid "Invalid channel map '%s'\n" msgstr "" -#: ../src/utils/pacat.c:698 +#: ../src/utils/pacat.c:842 #, c-format msgid "Invalid latency specification '%s'\n" msgstr "" -#: ../src/utils/pacat.c:705 +#: ../src/utils/pacat.c:849 #, c-format msgid "Invalid process time specification '%s'\n" msgstr "" -#: ../src/utils/pacat.c:716 +#: ../src/utils/pacat.c:861 +#, fuzzy, c-format +msgid "Invalid property '%s'\n" +msgstr "Ongeldige resample methode '%s'." + +#: ../src/utils/pacat.c:878 #, c-format +msgid "Unknown file format %s." +msgstr "" + +#: ../src/utils/pacat.c:897 msgid "Invalid sample specification\n" msgstr "" -#: ../src/utils/pacat.c:721 +#: ../src/utils/pacat.c:907 #, c-format -msgid "Channel map doesn't match sample specification\n" +msgid "open(): %s\n" msgstr "" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:912 #, c-format -msgid "Opening a %s stream with sample specification '%s'.\n" +msgid "dup2(): %s\n" msgstr "" -#: ../src/utils/pacat.c:728 -msgid "recording" +#: ../src/utils/pacat.c:919 +msgid "Too many arguments.\n" msgstr "" -#: ../src/utils/pacat.c:728 -msgid "playback" +#: ../src/utils/pacat.c:930 +msgid "Failed to generate sample specification for file.\n" msgstr "" -#: ../src/utils/pacat.c:736 -#, c-format -msgid "open(): %s\n" +#: ../src/utils/pacat.c:950 +#, fuzzy +msgid "Failed to open audio file.\n" +msgstr "Analyseren van de commandoregel mislukte." + +#: ../src/utils/pacat.c:956 +msgid "" +"Warning: specified sample specification will be overwritten with " +"specification from file.\n" msgstr "" -#: ../src/utils/pacat.c:741 -#, c-format -msgid "dup2(): %s\n" +#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +msgid "Failed to determine sample specification from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:968 +msgid "Warning: Failed to determine channel map from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:979 +msgid "Channel map doesn't match sample specification\n" +msgstr "" + +#: ../src/utils/pacat.c:990 +msgid "Warning: failed to write channel map to file.\n" msgstr "" -#: ../src/utils/pacat.c:751 +#: ../src/utils/pacat.c:1005 #, c-format -msgid "Too many arguments.\n" +msgid "" +"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +msgstr "" + +#: ../src/utils/pacat.c:1006 +msgid "recording" +msgstr "" + +#: ../src/utils/pacat.c:1006 +msgid "playback" msgstr "" -#: ../src/utils/pacat.c:764 ../src/utils/pasuspender.c:280 -#: ../src/utils/pactl.c:1017 ../src/utils/paplay.c:381 +#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 +#: ../src/utils/pactl.c:1104 #, c-format msgid "pa_mainloop_new() failed.\n" msgstr "" -#: ../src/utils/pacat.c:785 -#, c-format +#: ../src/utils/pacat.c:1051 msgid "io_new() failed.\n" msgstr "" -#: ../src/utils/pacat.c:791 ../src/utils/pasuspender.c:293 -#: ../src/utils/pactl.c:1031 ../src/utils/paplay.c:396 +#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 +#: ../src/utils/pactl.c:1116 #, c-format msgid "pa_context_new() failed.\n" msgstr "" -#: ../src/utils/pacat.c:799 +#: ../src/utils/pacat.c:1066 #, fuzzy, c-format msgid "pa_context_connect() failed: %s\n" msgstr "pa_core_new() mislukte." -#: ../src/utils/pacat.c:810 -#, c-format +#: ../src/utils/pacat.c:1077 msgid "time_new() failed.\n" msgstr "" -#: ../src/utils/pacat.c:817 ../src/utils/pasuspender.c:301 -#: ../src/utils/pactl.c:1042 ../src/utils/paplay.c:410 +#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 +#: ../src/utils/pactl.c:1127 #, c-format msgid "pa_mainloop_run() failed.\n" msgstr "" @@ -1621,8 +1650,7 @@ msgstr "" msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "" -#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:768 -#: ../src/utils/paplay.c:191 +#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" msgstr "" @@ -1644,7 +1672,7 @@ msgid "" "\n" msgstr "" -#: ../src/utils/pasuspender.c:251 +#: ../src/utils/pasuspender.c:248 #, c-format msgid "" "pasuspender %s\n" @@ -1652,32 +1680,32 @@ msgid "" "Linked with libpulse %s\n" msgstr "" -#: ../src/utils/pactl.c:108 +#: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" msgstr "" -#: ../src/utils/pactl.c:114 +#: ../src/utils/pactl.c:134 #, c-format msgid "Currently in use: %u blocks containing %s bytes total.\n" msgstr "" -#: ../src/utils/pactl.c:117 +#: ../src/utils/pactl.c:137 #, c-format msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n" msgstr "" -#: ../src/utils/pactl.c:120 +#: ../src/utils/pactl.c:140 #, c-format msgid "Sample cache size: %s\n" msgstr "" -#: ../src/utils/pactl.c:129 +#: ../src/utils/pactl.c:149 #, c-format msgid "Failed to get server information: %s\n" msgstr "" -#: ../src/utils/pactl.c:137 +#: ../src/utils/pactl.c:157 #, c-format msgid "" "User name: %s\n" @@ -1691,12 +1719,12 @@ msgid "" "Cookie: %08x\n" msgstr "" -#: ../src/utils/pactl.c:178 +#: ../src/utils/pactl.c:198 #, c-format msgid "Failed to get sink information: %s\n" msgstr "" -#: ../src/utils/pactl.c:194 +#: ../src/utils/pactl.c:214 #, c-format msgid "" "Sink #%u\n" @@ -1718,12 +1746,22 @@ msgid "" "\t\t%s\n" msgstr "" -#: ../src/utils/pactl.c:258 +#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 +#, c-format +msgid "\tPorts:\n" +msgstr "" + +#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 +#, fuzzy, c-format +msgid "\tActive Port: %s\n" +msgstr "Auteur: %s\n" + +#: ../src/utils/pactl.c:290 #, c-format msgid "Failed to get source information: %s\n" msgstr "" -#: ../src/utils/pactl.c:274 +#: ../src/utils/pactl.c:306 #, c-format msgid "" "Source #%u\n" @@ -1745,20 +1783,20 @@ msgid "" "\t\t%s\n" msgstr "" -#: ../src/utils/pactl.c:306 ../src/utils/pactl.c:350 ../src/utils/pactl.c:385 -#: ../src/utils/pactl.c:422 ../src/utils/pactl.c:481 ../src/utils/pactl.c:482 -#: ../src/utils/pactl.c:492 ../src/utils/pactl.c:536 ../src/utils/pactl.c:537 -#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:586 ../src/utils/pactl.c:587 -#: ../src/utils/pactl.c:594 +#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429 +#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526 +#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581 +#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631 +#: ../src/utils/pactl.c:638 msgid "n/a" msgstr "" -#: ../src/utils/pactl.c:324 +#: ../src/utils/pactl.c:368 #, c-format msgid "Failed to get module information: %s\n" msgstr "" -#: ../src/utils/pactl.c:342 +#: ../src/utils/pactl.c:386 #, c-format msgid "" "Module #%u\n" @@ -1769,12 +1807,12 @@ msgid "" "\t\t%s\n" msgstr "" -#: ../src/utils/pactl.c:361 +#: ../src/utils/pactl.c:405 #, c-format msgid "Failed to get client information: %s\n" msgstr "" -#: ../src/utils/pactl.c:379 +#: ../src/utils/pactl.c:423 #, c-format msgid "" "Client #%u\n" @@ -1784,12 +1822,12 @@ msgid "" "\t\t%s\n" msgstr "" -#: ../src/utils/pactl.c:396 +#: ../src/utils/pactl.c:440 #, c-format msgid "Failed to get card information: %s\n" msgstr "" -#: ../src/utils/pactl.c:414 +#: ../src/utils/pactl.c:458 #, c-format msgid "" "Card #%u\n" @@ -1800,22 +1838,22 @@ msgid "" "\t\t%s\n" msgstr "" -#: ../src/utils/pactl.c:428 +#: ../src/utils/pactl.c:472 #, c-format msgid "\tProfiles:\n" msgstr "" -#: ../src/utils/pactl.c:434 +#: ../src/utils/pactl.c:478 #, c-format msgid "\tActive Profile: %s\n" msgstr "" -#: ../src/utils/pactl.c:445 +#: ../src/utils/pactl.c:489 #, c-format msgid "Failed to get sink input information: %s\n" msgstr "" -#: ../src/utils/pactl.c:464 +#: ../src/utils/pactl.c:508 #, c-format msgid "" "Sink Input #%u\n" @@ -1836,12 +1874,12 @@ msgid "" "\t\t%s\n" msgstr "" -#: ../src/utils/pactl.c:503 +#: ../src/utils/pactl.c:547 #, c-format msgid "Failed to get source output information: %s\n" msgstr "" -#: ../src/utils/pactl.c:523 +#: ../src/utils/pactl.c:567 #, c-format msgid "" "Source Output #%u\n" @@ -1858,12 +1896,12 @@ msgid "" "\t\t%s\n" msgstr "" -#: ../src/utils/pactl.c:554 +#: ../src/utils/pactl.c:598 #, c-format msgid "Failed to get sample information: %s\n" msgstr "" -#: ../src/utils/pactl.c:572 +#: ../src/utils/pactl.c:616 #, c-format msgid "" "Sample #%u\n" @@ -1881,22 +1919,21 @@ msgid "" "\t\t%s\n" msgstr "" -#: ../src/utils/pactl.c:602 ../src/utils/pactl.c:612 +#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 #, c-format msgid "Failure: %s\n" msgstr "" -#: ../src/utils/pactl.c:636 +#: ../src/utils/pactl.c:680 #, c-format msgid "Failed to upload sample: %s\n" msgstr "" -#: ../src/utils/pactl.c:653 -#, c-format +#: ../src/utils/pactl.c:697 msgid "Premature end of file\n" msgstr "" -#: ../src/utils/pactl.c:774 +#: ../src/utils/pactl.c:826 #, c-format msgid "" "%s [options] stat\n" @@ -1912,6 +1949,8 @@ msgid "" "%s [options] suspend-sink [SINK] 1|0\n" "%s [options] suspend-source [SOURCE] 1|0\n" "%s [options] set-card-profile [CARD] [PROFILE] \n" +"%s [options] set-sink-port [SINK] [PORT] \n" +"%s [options] set-source-port [SOURCE] [PORT] \n" "\n" " -h, --help Show this help\n" " --version Show version\n" @@ -1922,7 +1961,7 @@ msgid "" "server\n" msgstr "" -#: ../src/utils/pactl.c:826 +#: ../src/utils/pactl.c:880 #, c-format msgid "" "pactl %s\n" @@ -1930,71 +1969,71 @@ msgid "" "Linked with libpulse %s\n" msgstr "" -#: ../src/utils/pactl.c:865 -#, c-format +#: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "" -#: ../src/utils/pactl.c:887 -#, c-format +#: ../src/utils/pactl.c:939 msgid "Failed to open sound file.\n" msgstr "" -#: ../src/utils/pactl.c:899 -#, c-format +#: ../src/utils/pactl.c:951 +msgid "Warning: Failed to determine sample specification from file.\n" +msgstr "" + +#: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" msgstr "" -#: ../src/utils/pactl.c:911 -#, c-format +#: ../src/utils/pactl.c:973 msgid "You have to specify a sample name to remove\n" msgstr "" -#: ../src/utils/pactl.c:919 -#, c-format +#: ../src/utils/pactl.c:982 msgid "You have to specify a sink input index and a sink\n" msgstr "" -#: ../src/utils/pactl.c:928 -#, c-format +#: ../src/utils/pactl.c:992 msgid "You have to specify a source output index and a source\n" msgstr "" -#: ../src/utils/pactl.c:942 -#, c-format +#: ../src/utils/pactl.c:1007 msgid "You have to specify a module name and arguments.\n" msgstr "" -#: ../src/utils/pactl.c:962 -#, c-format +#: ../src/utils/pactl.c:1027 msgid "You have to specify a module index\n" msgstr "" -#: ../src/utils/pactl.c:972 -#, c-format +#: ../src/utils/pactl.c:1037 msgid "" "You may not specify more than one sink. You have to specify a boolean " "value.\n" msgstr "" -#: ../src/utils/pactl.c:985 -#, c-format +#: ../src/utils/pactl.c:1050 msgid "" "You may not specify more than one source. You have to specify a boolean " "value.\n" msgstr "" -#: ../src/utils/pactl.c:997 -#, c-format +#: ../src/utils/pactl.c:1062 msgid "You have to specify a card name/index and a profile name\n" msgstr "" -#: ../src/utils/pactl.c:1012 -#, c-format +#: ../src/utils/pactl.c:1073 +msgid "You have to specify a sink name/index and a port name\n" +msgstr "" + +#: ../src/utils/pactl.c:1084 +msgid "You have to specify a source name/index and a port name\n" +msgstr "" + +#: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "" -#: ../src/utils/pactl.c:1037 ../src/utils/paplay.c:404 +#: ../src/utils/pactl.c:1122 #, c-format msgid "pa_context_connect() failed: %s" msgstr "" @@ -2071,109 +2110,48 @@ msgstr "" msgid "Not yet implemented.\n" msgstr "" -#: ../src/utils/pacmd.c:64 +#: ../src/utils/pacmd.c:61 +msgid "No PulseAudio daemon running, or not running as session daemon." +msgstr "" + +#: ../src/utils/pacmd.c:66 #, c-format msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s" msgstr "" -#: ../src/utils/pacmd.c:81 +#: ../src/utils/pacmd.c:83 #, c-format msgid "connect(): %s" msgstr "" -#: ../src/utils/pacmd.c:89 +#: ../src/utils/pacmd.c:91 msgid "Failed to kill PulseAudio daemon." msgstr "" -#: ../src/utils/pacmd.c:97 +#: ../src/utils/pacmd.c:99 msgid "Daemon not responding." msgstr "" -#: ../src/utils/pacmd.c:144 +#: ../src/utils/pacmd.c:146 #, c-format msgid "select(): %s" msgstr "" -#: ../src/utils/pacmd.c:154 ../src/utils/pacmd.c:171 +#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173 #, c-format msgid "read(): %s" msgstr "" -#: ../src/utils/pacmd.c:187 ../src/utils/pacmd.c:201 +#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203 #, c-format msgid "write(): %s" msgstr "" -#: ../src/utils/paplay.c:139 -#, c-format -msgid "Stream successfully created\n" -msgstr "" - -#: ../src/utils/paplay.c:144 -#, c-format -msgid "Stream errror: %s\n" -msgstr "" - -#: ../src/utils/paplay.c:165 -#, c-format -msgid "Connection established.\n" -msgstr "" - -#: ../src/utils/paplay.c:198 -#, c-format -msgid "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" -msgstr "" - -#: ../src/utils/paplay.c:255 -#, c-format -msgid "" -"paplay %s\n" -"Compiled with libpulse %s\n" -"Linked with libpulse %s\n" -msgstr "" - -#: ../src/utils/paplay.c:292 -#, c-format -msgid "Invalid channel map\n" -msgstr "" - -#: ../src/utils/paplay.c:314 -#, c-format -msgid "Failed to open file '%s'\n" -msgstr "" - -#: ../src/utils/paplay.c:350 -#, c-format -msgid "Channel map doesn't match file.\n" -msgstr "" - -#: ../src/utils/paplay.c:376 -#, c-format -msgid "Using sample spec '%s'\n" -msgstr "" - #: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 msgid "Cannot access autospawn lock." msgstr "" -#: ../src/modules/alsa/alsa-sink.c:393 ../src/modules/alsa/alsa-sink.c:541 +#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2184,7 +2162,7 @@ msgid "" "returned 0 or another value < min_avail." msgstr "" -#: ../src/modules/alsa/alsa-source.c:377 ../src/modules/alsa/alsa-source.c:516 +#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2195,34 +2173,52 @@ msgid "" "returned 0 or another value < min_avail." msgstr "" -#: ../src/modules/alsa/module-alsa-card.c:114 -#, c-format -msgid "Output %s + Input %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:117 -#, c-format -msgid "Output %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:121 -#, c-format -msgid "Input %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:170 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2006 +#: ../src/modules/alsa/module-alsa-card.c:152 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 msgid "Off" msgstr "" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1976 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 msgid "High Fidelity Playback (A2DP)" msgstr "" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1991 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 msgid "Telephony Duplex (HSP/HFP)" msgstr "" -#: ../src/modules/reserve-wrap.c:139 +#: ../src/modules/reserve-wrap.c:151 msgid "PulseAudio Sound Server" msgstr "" + +#~ msgid "Analog Mono" +#~ msgstr "Analoog mono" + +#~ msgid "Analog Stereo" +#~ msgstr "Analoog stereo" + +#~ msgid "Digital Stereo (IEC958)" +#~ msgstr "Digitaal stereo (IEC958)" + +#~ msgid "Digital Stereo (HDMI)" +#~ msgstr "Digitaal stereo (HDMI)" + +#~ msgid "Analog Surround 4.0" +#~ msgstr "Analoog surround 4.0" + +#~ msgid "Digital Surround 4.0 (IEC958/AC3)" +#~ msgstr "Digitaal surround 4.0 (IEC958/AC3)" + +#~ msgid "Analog Surround 4.1" +#~ msgstr "Analoog surround 4.1" + +#~ msgid "Analog Surround 5.0" +#~ msgstr "Analoog surround 5.0" + +#~ msgid "Analog Surround 5.1" +#~ msgstr "Analoog surround 5.1" + +#~ msgid "Digital Surround 5.1 (IEC958/AC3)" +#~ msgstr "Digitaal surround 5.1 (IEC958/AC3)" + +#~ msgid "Analog Surround 7.1" +#~ msgstr "Analoog surround 7.1" @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio.master-tx.pulseaudio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-21 23:02+0200\n" +"POT-Creation-Date: 2009-06-17 23:42+0200\n" "PO-Revision-Date: 2009-04-09 13:16+0530\n" "Last-Translator: Manoj Kumar Giri <mgiri@redhat.com>\n" "Language-Team: Oriya <oriya-it@googlegroups.com>\n" @@ -23,51 +23,7 @@ msgstr "" "\n" "\n" -#: ../src/modules/alsa/alsa-util.c:532 -msgid "Analog Mono" -msgstr "ଅନàରà‚ପ ମà‹à¬¨à‹" - -#: ../src/modules/alsa/alsa-util.c:540 -msgid "Analog Stereo" -msgstr "ଅନàରà‚ପ ଷàଟà‡à¬°à¬¿à¬“" - -#: ../src/modules/alsa/alsa-util.c:548 -msgid "Digital Stereo (IEC958)" -msgstr "ସାଂଖିକ ଷàଟà‡à¬°à¬¿à¬“ (IEC958)" - -#: ../src/modules/alsa/alsa-util.c:556 -msgid "Digital Stereo (HDMI)" -msgstr "ସାଂଖିକ ଷàଟà‡à¬°à¬¿à¬“ (HDMI)" - -#: ../src/modules/alsa/alsa-util.c:565 -msgid "Analog Surround 4.0" -msgstr "ଅନàରà‚ପ ଚତàରàପାରàଶàà± 4.0" - -#: ../src/modules/alsa/alsa-util.c:574 -msgid "Digital Surround 4.0 (IEC958/AC3)" -msgstr "ସାଂଖିକ ଚତàରàପାରàଶàà± 4.0 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:584 -msgid "Analog Surround 4.1" -msgstr "ଅନàରà‚ପ ଚତàରàପାରàଶàà± 4.1" - -#: ../src/modules/alsa/alsa-util.c:594 -msgid "Analog Surround 5.0" -msgstr "ଅନàରà‚ପ ଚତàରàପାରàଶàà± 5.0" - -#: ../src/modules/alsa/alsa-util.c:604 -msgid "Analog Surround 5.1" -msgstr "ଅନàରà‚ପ ଚତàରàପାରàଶàà± 5.1" - -#: ../src/modules/alsa/alsa-util.c:614 -msgid "Digital Surround 5.1 (IEC958/AC3)" -msgstr "ସାଂଖିକ ଚତàରàପାରàଶàà± 5.1 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:625 -msgid "Analog Surround 7.1" -msgstr "ଅନàରà‚ପ ଚତàରàପାରàଶàà± 7.1" - -#: ../src/modules/alsa/alsa-util.c:1646 +#: ../src/modules/alsa/alsa-util.c:1015 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -80,7 +36,7 @@ msgstr "" "Most likely this is a bug in the ALSA driver '%s'. Please report this issue " "to the ALSA developers." -#: ../src/modules/alsa/alsa-util.c:1687 +#: ../src/modules/alsa/alsa-util.c:1056 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -93,7 +49,7 @@ msgstr "" "Most likely this is a bug in the ALSA driver '%s'. Please report this issue " "to the ALSA developers." -#: ../src/modules/alsa/alsa-util.c:1734 +#: ../src/modules/alsa/alsa-util.c:1103 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -106,11 +62,24 @@ msgstr "" "Most likely this is a bug in the ALSA driver '%s'. Please report this issue " "to the ALSA developers." -#: ../src/pulsecore/sink.c:2141 +#: ../src/modules/module-ladspa-sink.c:49 +msgid "Virtual LADSPA sink" +msgstr "" + +#: ../src/modules/module-ladspa-sink.c:53 +msgid "" +"sink_name=<name for the sink> sink_properties=<properties for the sink> " +"master=<name of sink to filter> format=<sample format> rate=<sample rate> " +"channels=<number of channels> channel_map=<channel map> plugin=<ladspa " +"plugin name> label=<ladspa plugin label> control=<comma seperated list of " +"input control values>" +msgstr "" + +#: ../src/pulsecore/sink.c:2394 msgid "Internal Audio" msgstr "ଆà¬ààŸà¬¨àତରà€à¬£ ଧàà±à¬¨à¬¿" -#: ../src/pulsecore/sink.c:2147 +#: ../src/pulsecore/sink.c:2400 msgid "Modem" msgstr "ମଡà‡à¬®" @@ -180,104 +149,104 @@ msgstr "auth ପାଇଲା ନାହିà¬: %s" msgid "PolicyKit responded with '%s'" msgstr "PolicyKit '%s' ସହିତ ଉତàତର ଦà‡à¬‡à¬¥à¬¿à¬²à¬¾" -#: ../src/daemon/main.c:138 +#: ../src/daemon/main.c:142 #, c-format msgid "Got signal %s." msgstr "ସଂକà‡à¬¤ %s ପାଇଲା।" -#: ../src/daemon/main.c:165 +#: ../src/daemon/main.c:169 msgid "Exiting." msgstr "ଉତàତà‡à¬œà¬¿à¬¤ କରàଅଛି।" -#: ../src/daemon/main.c:183 +#: ../src/daemon/main.c:187 #, c-format msgid "Failed to find user '%s'." msgstr "ଚାଳକ '%s' କà ଖà‹à¬œà¬¿à¬¬à¬¾à¬°à‡ ବିଫଳ।" -#: ../src/daemon/main.c:188 +#: ../src/daemon/main.c:192 #, c-format msgid "Failed to find group '%s'." msgstr "ସମà‚ହ '%s' କà ଖà‹à¬œà¬¿ à¬ªà¬¾à¬‡à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³à¥¤" -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:196 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "ଚାଳକ '%s' (UID %lu) à¬à¬¬à¬‚ ସମà‚ହ '%s' (GID %lu) ମିଳିଲା।" -#: ../src/daemon/main.c:197 +#: ../src/daemon/main.c:201 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "ଚାଳକ '%s' à¬à¬¬à¬‚ ସମà‚ହ '%s' ର GID ମà‡à¬³à¬–ାà¬à¬¨à¬¾à¬¹à¬¿à¬à¥¤" -#: ../src/daemon/main.c:202 +#: ../src/daemon/main.c:206 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "ଚାଳକ '%s' ର ମà‚ଖààŸ à¬¡à¬¿à¬°à‡à¬•àଟà‹à¬°à€à¬Ÿà¬¿ '%s' ନàହà¬, ଅଗàରାହààŸ à¬•à¬°àଅଛି।" -#: ../src/daemon/main.c:205 ../src/daemon/main.c:210 +#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 #, c-format msgid "Failed to create '%s': %s" msgstr "'%s' ନିରàମାଣ à¬•à¬°à¬¿à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³: %s" -#: ../src/daemon/main.c:217 +#: ../src/daemon/main.c:221 #, c-format msgid "Failed to change group list: %s" msgstr "ସମà‚ହ ତାଲିକାକà ପରିବରàତàତନ à¬•à¬°à¬¿à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³: %s" -#: ../src/daemon/main.c:233 +#: ../src/daemon/main.c:237 #, c-format msgid "Failed to change GID: %s" msgstr "GID କà ପରିବରàତàତନ à¬•à¬°à¬¿à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³ ହà‹à¬‡à¬›à¬¿: %s" -#: ../src/daemon/main.c:249 +#: ../src/daemon/main.c:253 #, c-format msgid "Failed to change UID: %s" msgstr "UID କà ପରିବରàତàତନ à¬•à¬°à¬¿à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³ ହà‹à¬‡à¬›à¬¿: %s" -#: ../src/daemon/main.c:263 +#: ../src/daemon/main.c:267 msgid "Successfully dropped root privileges." msgstr "ମà‚ଖààŸ à¬šà¬¾à¬³à¬• ଅଧିକାରକà ସଫଳତାର ସହିତ ପକାଯାଇଛି।" -#: ../src/daemon/main.c:271 +#: ../src/daemon/main.c:275 msgid "System wide mode unsupported on this platform." msgstr "ତନàତàà¬°à¬®àŸ à¬§à¬¾à¬°à¬¾ à¬à¬¹à¬¿ ପàଲାଟଫରàà¬®à¬°à‡ à¬…à¬¸à¬®à¬°àଥିତ।" -#: ../src/daemon/main.c:289 +#: ../src/daemon/main.c:293 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) ବିଫଳ ହà‹à¬‡à¬›à¬¿: %s" -#: ../src/daemon/main.c:477 +#: ../src/daemon/main.c:481 msgid "Failed to parse command line." msgstr "ପାଠààŸ à¬¨à¬¿à¬°àଦàଦà‡à¬¶à¬•à ବିଶàଳà‡à¬·à¬£ à¬•à¬°à¬¿à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³à¥¤" -#: ../src/daemon/main.c:501 +#: ../src/daemon/main.c:505 #, c-format msgid "We're in the group '%s', allowing high-priority scheduling." msgstr "à¬†à¬®à‡ à¬®à¬¾à¬¨à‡ à¬¶àରà‡à¬£à€ '%s'à¬°à‡ à¬…à¬›à, ଉଚàଚ-ପàରାଥମିକତା ଯà‹à¬œà¬¨à¬¾à¬•à ଅନàମତି ଦà‡à¬‡à¥¤" -#: ../src/daemon/main.c:508 +#: ../src/daemon/main.c:512 #, c-format msgid "We're in the group '%s', allowing real-time scheduling." msgstr "à¬†à¬®à‡ à¬®à¬¾à¬¨à‡ à¬¶àରà‡à¬£à€ '%s'à¬°à‡ à¬…à¬›à, ପàରକàƒà¬¤- à¬¸à¬®àŸ à¬¯à‹à¬œà¬¨à¬¾à¬•à ଅନàମତି ଦà‡à¬‡à¥¤" -#: ../src/daemon/main.c:516 +#: ../src/daemon/main.c:520 msgid "PolicyKit grants us acquire-high-priority privilege." msgstr "PolicyKit ଆମକà acquire-high-priority ଅଧିକାର ଦà‡à¬‡à¬¥à¬¾à¬à¥¤" -#: ../src/daemon/main.c:519 +#: ../src/daemon/main.c:523 msgid "PolicyKit refuses acquire-high-priority privilege." msgstr "PolicyKit acquire-high-priority ଅଧିକାରକà ବାରଣ କରିଥାà¬à¥¤" -#: ../src/daemon/main.c:524 +#: ../src/daemon/main.c:528 msgid "PolicyKit grants us acquire-real-time privilege." msgstr "PolicyKit ଆମକà acquire-real-time ଅଧିକାର ଦà‡à¬‡à¬¥à¬¾à¬à¥¤" -#: ../src/daemon/main.c:527 +#: ../src/daemon/main.c:531 msgid "PolicyKit refuses acquire-real-time privilege." msgstr "PolicyKit acquire-real-time ଅଧିକାରକà ବାରଣ କରିଥାà¬à¥¤" -#: ../src/daemon/main.c:556 +#: ../src/daemon/main.c:560 #, c-format msgid "" "Called SUID root and real-time and/or high-priority scheduling was requested " @@ -298,44 +267,44 @@ msgstr "" "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:581 +#: ../src/daemon/main.c:585 msgid "" "High-priority scheduling enabled in configuration but not allowed by policy." msgstr "ଉଚàଚ-ପàରାଥମିକ ଯà‹à¬œà¬¨à¬¾ ବିନààŸà¬¾à¬¸à¬°à‡ ସକàà¬°à¬¿àŸ à¬•à¬¿à¬¨àତà ନà€à¬¤à¬¿ ଦàà±à¬¾à¬°à¬¾ ଅନàମà‹à¬¦à¬¿à¬¤ ନàହà¬à¥¤" -#: ../src/daemon/main.c:610 +#: ../src/daemon/main.c:614 msgid "Successfully increased RLIMIT_RTPRIO" msgstr "RLIMIT_RTPRIO କà ସଫଳତାର ସହିତ ବàƒà¬¦àଧିକରିଥାà¬" -#: ../src/daemon/main.c:613 +#: ../src/daemon/main.c:617 #, c-format msgid "RLIMIT_RTPRIO failed: %s" msgstr "RLIMIT_RTPRIO ବିଫଳ ହà‹à¬‡à¬›à¬¿: %s" -#: ../src/daemon/main.c:620 +#: ../src/daemon/main.c:624 msgid "Giving up CAP_NICE" msgstr "CAP_NICE କà ତààŸà¬¾à¬— କରିଥାà¬" -#: ../src/daemon/main.c:627 +#: ../src/daemon/main.c:631 msgid "" "Real-time scheduling enabled in configuration but not allowed by policy." msgstr "Real-time ଯà‹à¬œà¬¨à¬¾ ବିନààŸà¬¾à¬¸ à¬«à¬¾à¬‡à¬²à¬°à‡ à¬¸à¬•àà¬°à¬¿àŸ à¬¹à‹à¬‡à¬¥à¬¾à¬ କିନàତà à¬¨à¬¿à¬¤à€ à¬¦àà±à¬¾à¬°à¬¾ ଅନàମà‹à¬¦à¬¿à¬¤ ନàହà¬à¥¤" -#: ../src/daemon/main.c:688 +#: ../src/daemon/main.c:692 msgid "Daemon not running" msgstr "ଡà‡à¬®à¬¨ ଚାଲàନାହିà¬" -#: ../src/daemon/main.c:690 +#: ../src/daemon/main.c:694 #, c-format msgid "Daemon running as PID %u" msgstr "ଡà‡à¬®à¬¨ PID %u ପରି ଚାଲàଅଛି" -#: ../src/daemon/main.c:700 +#: ../src/daemon/main.c:704 #, c-format msgid "Failed to kill daemon: %s" msgstr "ଡà‡à¬®à¬¨à¬•à ବନàଦ à¬•à¬°à¬¿à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³: %s" -#: ../src/daemon/main.c:718 +#: ../src/daemon/main.c:722 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -343,158 +312,168 @@ msgstr "" "à¬à¬¹à¬¿ ପàରଗàରାମଟି ମà‚ଖààŸ à¬šà¬¾à¬³à¬• à¬à¬¾à¬¬à¬°à‡ ଚଲାଇବା ପାଇଠନିରàଦàଦିଷàଟ ହà‹à¬‡à¬¨à¬¾à¬¹à¬¿à¬ (unless --system is " "specified)।" -#: ../src/daemon/main.c:720 +#: ../src/daemon/main.c:724 msgid "Root privileges required." msgstr "ମà‚ଖààŸ à¬šà¬¾à¬³à¬• ଅଧିକାର ଆବଶààŸà¬•à¥¤" -#: ../src/daemon/main.c:725 +#: ../src/daemon/main.c:729 msgid "--start not supported for system instances." msgstr "--start ତନàତàର ସàଥିତି ପାଇଠସମରàଥିତ ନàହà¬à¥¤" -#: ../src/daemon/main.c:730 +#: ../src/daemon/main.c:734 msgid "Running in system mode, but --disallow-exit not set!" msgstr "ତନàତàର à¬§à¬¾à¬°à¬¾à¬°à‡ à¬šà¬¾à¬²àଅଛି, କିନàତà --disallow-exit କà ସà‡à¬Ÿ କରାଯାଇନାହିà¬!" -#: ../src/daemon/main.c:733 +#: ../src/daemon/main.c:737 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "ତନàତàର à¬§à¬¾à¬°à¬¾à¬°à‡ à¬šà¬¾à¬²àଅଛି, କିନàତà --disallow-module-loading କà ସà‡à¬Ÿ କରାଯାଇନାହିà¬!" -#: ../src/daemon/main.c:736 +#: ../src/daemon/main.c:740 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "ତନàତàର à¬§à¬¾à¬°à¬¾à¬°à‡ à¬šà¬¾à¬²àଅଛି, SHM ଧାରାକà ବାଧàଯତାମàଳକ à¬à¬¾à¬¬à¬°à‡ ନିଷàକàà¬°à¬¿àŸ à¬•à¬°à¬¿à¬¥à¬¾à¬!" -#: ../src/daemon/main.c:741 +#: ../src/daemon/main.c:745 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "ତନàତàର à¬§à¬¾à¬°à¬¾à¬°à‡ à¬šà¬¾à¬²àଅଛି, ପàରସàଥାନ ସàଥିର ସମàŸà¬•à ବାଧàଯତାମàଳକ à¬à¬¾à¬¬à¬°à‡ ନିଷàକàà¬°à¬¿àŸ à¬•à¬°à¬¿à¬¥à¬¾à¬!" -#: ../src/daemon/main.c:768 +#: ../src/daemon/main.c:772 msgid "Failed to acquire stdio." msgstr "stdio କà ଅଧିକାର à¬•à¬°à¬¿à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³à¥¤" -#: ../src/daemon/main.c:774 +#: ../src/daemon/main.c:778 #, c-format msgid "pipe failed: %s" msgstr "ପାଇପ ବିଫଳ ହà‹à¬‡à¬›à¬¿: %s" -#: ../src/daemon/main.c:779 +#: ../src/daemon/main.c:783 #, c-format msgid "fork() failed: %s" msgstr "fork() ବିଫଳ ହà‹à¬‡à¬›à¬¿: %s" -#: ../src/daemon/main.c:793 +#: ../src/daemon/main.c:797 #, c-format msgid "read() failed: %s" msgstr "read() ବିଫଳ ହà‹à¬‡à¬›à¬¿: %s" -#: ../src/daemon/main.c:799 +#: ../src/daemon/main.c:803 msgid "Daemon startup failed." msgstr "ଡà‡à¬®à¬¨ ଆରମàଠବିଫଳ ହà‹à¬‡à¬›à¬¿à¥¤" -#: ../src/daemon/main.c:801 +#: ../src/daemon/main.c:805 msgid "Daemon startup successful." msgstr "ଡà‡à¬®à¬¨ ଆରମàଠସଫଳ ହà‹à¬‡à¬›à¬¿à¥¤" -#: ../src/daemon/main.c:871 +#: ../src/daemon/main.c:875 #, c-format msgid "This is PulseAudio %s" msgstr "à¬à¬¹à¬¾ ହà‡à¬‰à¬›à¬¿ PulseAudio %s" -#: ../src/daemon/main.c:872 +#: ../src/daemon/main.c:876 #, c-format msgid "Compilation host: %s" msgstr "ସଂକଳନ ଆଧାର: %s" -#: ../src/daemon/main.c:873 +#: ../src/daemon/main.c:877 #, c-format msgid "Compilation CFLAGS: %s" msgstr "ସଂକଳନ CFLAGS: %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:880 #, c-format msgid "Running on host: %s" msgstr "à¬†à¬§à¬¾à¬°à¬°à‡ à¬šà¬¾à¬²àଅଛି: %s" -#: ../src/daemon/main.c:879 +#: ../src/daemon/main.c:883 #, c-format msgid "Found %u CPUs." msgstr "%u CPUs ମିଳିଛି।" -#: ../src/daemon/main.c:881 +#: ../src/daemon/main.c:885 #, c-format msgid "Page size is %lu bytes" msgstr "ପàƒà¬·àଠା ଆକାରଟି ହà‡à¬‰à¬›à¬¿ %lu ବାଇଟ" -#: ../src/daemon/main.c:884 +#: ../src/daemon/main.c:888 msgid "Compiled with Valgrind support: yes" msgstr "Valgrind ସମରàଥନ ସହିତ ସଂକଳନ ହà‹à¬‡à¬›à¬¿: yes" -#: ../src/daemon/main.c:886 +#: ../src/daemon/main.c:890 msgid "Compiled with Valgrind support: no" msgstr "Valgrind ସମରàଥନ ସହିତ ସଂକଳନ ହà‹à¬‡à¬›à¬¿: no" -#: ../src/daemon/main.c:889 +#: ../src/daemon/main.c:893 #, c-format msgid "Running in valgrind mode: %s" msgstr "valgrind à¬§à¬¾à¬°à¬¾à¬°à‡ à¬šà¬¾à¬²àଅଛି: %s" -#: ../src/daemon/main.c:892 +#: ../src/daemon/main.c:896 msgid "Optimized build: yes" msgstr "ଉପଯàକàତ ନିରàମାଣ: yes" -#: ../src/daemon/main.c:894 +#: ../src/daemon/main.c:898 msgid "Optimized build: no" msgstr "ଉପଯàକàତ ନିରàମାଣ: no" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:902 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG କà ବààŸà¬¾à¬–ààŸà¬¾ କରାଯାଇଛି, ସମସàତ ନିଶàଚàŸà¬•à ନିଷàକàà¬°à¬¿àŸ à¬•à¬°à¬¾à¬¯à¬¾à¬‡à¬›à¬¿à¥¤" -#: ../src/daemon/main.c:900 +#: ../src/daemon/main.c:904 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "FASTPATH କà ବààŸà¬¾à¬–ààŸà¬¾ କରାଯାଇଛି, କà‡à¬¬à¬³ ତà€à¬¬àର ପଥ ନିଶàଚàŸà¬•à ନିଷàକàà¬°à¬¿àŸ à¬•à¬°à¬¾à¬¯à¬¾à¬‡à¬›à¬¿à¥¤" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:906 msgid "All asserts enabled." msgstr "ସମସàତ ନିଶàଚàŸà¬•à ସକàà¬°à¬¿àŸ à¬•à¬°à¬¾à¬¯à¬¾à¬‡à¬›à¬¿à¥¤" -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:910 msgid "Failed to get machine ID" msgstr "ଯନàତàର ID à¬ªà¬¾à¬‡à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³" -#: ../src/daemon/main.c:909 +#: ../src/daemon/main.c:913 #, c-format msgid "Machine ID is %s." msgstr "ଯନàତàର ID ଟି ହà‡à¬‰à¬›à¬¿ %s।" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:917 #, fuzzy, c-format msgid "Session ID is %s." msgstr "ଯନàତàର ID ଟି ହà‡à¬‰à¬›à¬¿ %s।" -#: ../src/daemon/main.c:919 +#: ../src/daemon/main.c:923 #, c-format msgid "Using runtime directory %s." msgstr "ପàରଚଳିତ ଡିରà‡à¬•àଟà‹à¬°à€ %s କà ବààŸà¬¬à¬¹à¬¾à¬° କରàଅଛି।" -#: ../src/daemon/main.c:924 +#: ../src/daemon/main.c:928 #, c-format msgid "Using state directory %s." msgstr "ସàଥିତି ଡିରà‡à¬•àଟà‹à¬°à€ %s କà ବààŸà¬¬à¬¹à¬¾à¬° କରି।" -#: ../src/daemon/main.c:927 +#: ../src/daemon/main.c:931 #, c-format msgid "Running in system mode: %s" msgstr "ତନàତàର à¬§à¬¾à¬°à¬¾à¬°à‡ à¬šà¬¾à¬²àଅଛି: %s" -#: ../src/daemon/main.c:942 +#: ../src/daemon/main.c:934 +msgid "" +"OK, so you are running PA in system mode. Please note that you most likely " +"shouldn't be doing that.\n" +"If you do it nonetheless then it's your own fault if things don't work as " +"expected.\n" +"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " +"explanation why system mode is usually a bad idea." +msgstr "" + +#: ../src/daemon/main.c:951 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() ବିଫଳ ହà‹à¬‡à¬›à¬¿à¥¤" -#: ../src/daemon/main.c:954 +#: ../src/daemon/main.c:961 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "ସତà‡à¬œ ଉଚàଚ-ବିà¬à‡à¬¦à¬¨ à¬¸à¬®àŸ à¬®à¬¾à¬ªà¬• ଉପଲବàଧ! Bon appetit!" -#: ../src/daemon/main.c:956 +#: ../src/daemon/main.c:963 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -502,31 +481,31 @@ msgstr "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" -#: ../src/daemon/main.c:970 +#: ../src/daemon/main.c:988 msgid "pa_core_new() failed." msgstr "pa_core_new() ବିଫଳ ହà‹à¬‡à¬›à¬¿à¥¤" -#: ../src/daemon/main.c:1032 +#: ../src/daemon/main.c:1050 msgid "Failed to initialize daemon." msgstr "ଡà‡à¬®à¬¨à¬•à ଆରମàà¬ à¬•à¬°à¬¿à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³à¥¤" -#: ../src/daemon/main.c:1037 +#: ../src/daemon/main.c:1055 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "ଧାରଣ ହà‹à¬‡à¬¥à¬¿à¬¬à¬¾ à¬à¬•à¬•à¬¾à¬‚ଶଗàଡ଼ିକ ବିନା ଡà‡à¬®à¬¨ ଆରମàଠହà‹à¬‡à¬›à¬¿, କାରàଯààŸ à¬•à¬°à¬¿à¬¬à¬¾à¬•à ବାରଣ କରàଅଛି।" -#: ../src/daemon/main.c:1054 +#: ../src/daemon/main.c:1072 msgid "Daemon startup complete." msgstr "ଡà‡à¬®à¬¨ ଆରମàଠସମàପà‚ରàଣàଣ ହà‹à¬‡à¬›à¬¿à¥¤" -#: ../src/daemon/main.c:1060 +#: ../src/daemon/main.c:1078 msgid "Daemon shutdown initiated." msgstr "ଡà‡à¬®à¬¨ ବନàଦକà ଆରମàଠକରାଯାଇଛି।" -#: ../src/daemon/main.c:1082 +#: ../src/daemon/main.c:1100 msgid "Daemon terminated." msgstr "ଡà‡à¬®à¬¨à¬•à ସମାପàତ କରାଯାଇଛି।" -#: ../src/daemon/cmdline.c:121 +#: ../src/daemon/cmdline.c:115 #, c-format msgid "" "%s [options]\n" @@ -668,15 +647,15 @@ msgstr "" "\n" " -n Don't load default script file\n" -#: ../src/daemon/cmdline.c:252 +#: ../src/daemon/cmdline.c:247 msgid "--daemonize expects boolean argument" msgstr "--daemonize ବàଲିଆନ ସàà±à¬¤à¬¨àତàରଚର ଆଶା କରàଅଛି" -#: ../src/daemon/cmdline.c:259 +#: ../src/daemon/cmdline.c:254 msgid "--fail expects boolean argument" msgstr "--fail ବàଲିଆନ ସàà±à¬¤à¬¨àତàରଚର ଆଶା କରàଅଛି" -#: ../src/daemon/cmdline.c:269 +#: ../src/daemon/cmdline.c:264 msgid "" "--log-level expects log level argument (either numeric in range 0..4 or one " "of debug, info, notice, warn, error)." @@ -684,52 +663,52 @@ msgstr "" "--log-level expects log level argument (either numeric in range 0..4 or one " "of debug, info, notice, warn, error)." -#: ../src/daemon/cmdline.c:281 +#: ../src/daemon/cmdline.c:276 msgid "--high-priority expects boolean argument" msgstr "--high-priority ବàଲିଆନ ସàà±à¬¤à¬¨àତàରଚର ଆଶା କରàଅଛି" -#: ../src/daemon/cmdline.c:288 +#: ../src/daemon/cmdline.c:283 msgid "--realtime expects boolean argument" msgstr "--realtime ବàଲିଆନ ସàà±à¬¤à¬¨àତàରଚର ଆଶା କରàଅଛି" -#: ../src/daemon/cmdline.c:295 +#: ../src/daemon/cmdline.c:290 msgid "--disallow-module-loading expects boolean argument" msgstr "--disallow-module-loading ବàଲିଆନ ସàà±à¬¤à¬¨àତàରଚର ଆଶା କରàଅଛି" -#: ../src/daemon/cmdline.c:302 +#: ../src/daemon/cmdline.c:297 msgid "--disallow-exit expects boolean argument" msgstr "--disallow-exit ବàଲିଆନ ସàà±à¬¤à¬¨àତàରଚର ଆଶା କରàଅଛି" -#: ../src/daemon/cmdline.c:309 +#: ../src/daemon/cmdline.c:304 msgid "--use-pid-file expects boolean argument" msgstr "--use-pid-file ବàଲିଆନ ସàà±à¬¤à¬¨àତàରଚର ଆଶା କରàଅଛି" -#: ../src/daemon/cmdline.c:326 +#: ../src/daemon/cmdline.c:321 msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgstr "ଅବàˆà¬§ ଲଗ ଲକàଷàଯସàଥଳ: 'syslog', 'stderr' କିମàବା 'auto' କà ବààŸà¬¬à¬¹à¬¾à¬° କରନàତà।" -#: ../src/daemon/cmdline.c:333 +#: ../src/daemon/cmdline.c:328 msgid "--log-time expects boolean argument" msgstr "--log-time ବàଲିଆନ ସàà±à¬¤à¬¨àତàରଚର ଆଶା କରàଅଛି" -#: ../src/daemon/cmdline.c:340 +#: ../src/daemon/cmdline.c:335 msgid "--log-meta expects boolean argument" msgstr "--log-meta ବàଲିଆନ ସàà±à¬¤à¬¨àତàରଚର ଆଶା କରàଅଛି" -#: ../src/daemon/cmdline.c:359 +#: ../src/daemon/cmdline.c:354 #, c-format msgid "Invalid resample method '%s'." msgstr "ଅବàˆà¬§ ପàନଃ ପàରତିଦରàଶନ ଧାରା '%s'।" -#: ../src/daemon/cmdline.c:366 +#: ../src/daemon/cmdline.c:361 msgid "--system expects boolean argument" msgstr "--system ବàଲିଆନ ସàà±à¬¤à¬¨àତàରଚର ଆଶା କରàଅଛି" -#: ../src/daemon/cmdline.c:373 +#: ../src/daemon/cmdline.c:368 msgid "--no-cpu-limit expects boolean argument" msgstr "--no-cpu-limit ବàଲିଆନ ସàà±à¬¤à¬¨àତàରଚର ଆଶା କରàଅଛି" -#: ../src/daemon/cmdline.c:380 +#: ../src/daemon/cmdline.c:375 msgid "--disable-shm expects boolean argument" msgstr "--disable-shm ବàଲିଆନ ସàà±à¬¤à¬¨àତàରଚର ଆଶା କରàଅଛି" @@ -768,77 +747,82 @@ msgstr "ବààŸà¬¬à¬¹à¬¾à¬° ବିଧି: %s\n" msgid "Load Once: %s\n" msgstr "à¬¥à¬°à‡ à¬§à¬¾à¬°à¬£ କରନàତà: %s\n" -#: ../src/daemon/dumpmodules.c:77 +#: ../src/daemon/dumpmodules.c:75 +#, c-format +msgid "DEPRECATION WARNING: %s\n" +msgstr "" + +#: ../src/daemon/dumpmodules.c:79 #, c-format msgid "Path: %s\n" msgstr "ପଥ: %s\n" -#: ../src/daemon/daemon-conf.c:215 +#: ../src/daemon/daemon-conf.c:216 #, c-format msgid "[%s:%u] Invalid log target '%s'." msgstr "[%s:%u] ଅବàˆà¬§ ଲଗ ଲକàଷàଯସàଥଳ '%s'।" -#: ../src/daemon/daemon-conf.c:231 +#: ../src/daemon/daemon-conf.c:232 #, c-format msgid "[%s:%u] Invalid log level '%s'." msgstr "[%s:%u] ଅବàˆà¬§ ଲଗ ସàତର%s'." -#: ../src/daemon/daemon-conf.c:247 +#: ../src/daemon/daemon-conf.c:248 #, c-format msgid "[%s:%u] Invalid resample method '%s'." msgstr "[%s:%u] ଅବàˆà¬§ ପàନଃ ମିଶàରଣ ଧାରା '%s'।" -#: ../src/daemon/daemon-conf.c:270 +#: ../src/daemon/daemon-conf.c:271 #, c-format msgid "[%s:%u] Invalid rlimit '%s'." msgstr "[%s:%u] ଅବàˆà¬§ rlimit '%s'." -#: ../src/daemon/daemon-conf.c:277 +#: ../src/daemon/daemon-conf.c:278 #, c-format msgid "[%s:%u] rlimit not supported on this platform." msgstr "[%s:%u] rlimit à¬à¬¹à¬¿ ପàଲାଟଫରàà¬®à¬°à‡ à¬¸à¬®à¬°àଥିତ ନàହà¬à¥¤" -#: ../src/daemon/daemon-conf.c:293 +#: ../src/daemon/daemon-conf.c:294 #, c-format msgid "[%s:%u] Invalid sample format '%s'." msgstr "[%s:%u] ଅବàˆà¬§ ନମàନା ଶàˆà¬³à€ '%s'।" -#: ../src/daemon/daemon-conf.c:311 +#: ../src/daemon/daemon-conf.c:312 #, c-format msgid "[%s:%u] Invalid sample rate '%s'." msgstr "[%s:%u] ଅବàˆà¬§ ନମàନା ହାର '%s'।" -#: ../src/daemon/daemon-conf.c:335 +#: ../src/daemon/daemon-conf.c:336 #, c-format msgid "[%s:%u] Invalid sample channels '%s'." msgstr "[%s:%u] ଅବàˆà¬§ ନମàନା ଚààŸà¬¾à¬¨à‡à¬² '%s'।" -#: ../src/daemon/daemon-conf.c:353 +#: ../src/daemon/daemon-conf.c:354 #, c-format msgid "[%s:%u] Invalid channel map '%s'." msgstr "[%s:%u] ଅବàˆà¬§ ଚààŸà¬¾à¬¨à‡à¬² ମààŸà¬¾à¬ª '%s'." -#: ../src/daemon/daemon-conf.c:371 +#: ../src/daemon/daemon-conf.c:372 #, c-format msgid "[%s:%u] Invalid number of fragments '%s'." msgstr "[%s:%u] ଅବàˆà¬§ ସଂଖààŸà¬• ଖଣàଡଗàଡ଼ିକ '%s'." -#: ../src/daemon/daemon-conf.c:389 +#: ../src/daemon/daemon-conf.c:390 #, c-format msgid "[%s:%u] Invalid fragment size '%s'." msgstr "[%s:%u] ଅବàˆà¬§ ଖଣàଡ ଆକାର '%s'." -#: ../src/daemon/daemon-conf.c:407 +#: ../src/daemon/daemon-conf.c:408 #, c-format msgid "[%s:%u] Invalid nice level '%s'." msgstr "[%s:%u] ଅବàˆà¬§ ସàନàଦର ସàତର '%s'." -#: ../src/daemon/daemon-conf.c:522 +#: ../src/daemon/daemon-conf.c:524 #, c-format msgid "Failed to open configuration file: %s" msgstr "ବିନààŸà¬¾à¬¸ ଫାଇଲ ଖà‹à¬²à¬¿à¬¬à¬¾à¬°à‡ ବିଫଳ: %s" -#: ../src/daemon/daemon-conf.c:538 +#: ../src/daemon/daemon-conf.c:540 msgid "" "The specified default channel map has a different number of channels than " "the specified default number of channels." @@ -885,237 +869,237 @@ msgstr "ତନàତàର ନà€à¬¤à¬¿ PulseAudio କà ଉଚàଚ-ପàର msgid "System policy prevents PulseAudio from acquiring real-time scheduling." msgstr "ତନàତàର ନà€à¬¤à¬¿ PulseAudio କà ପàରକàƒà¬¤-à¬¸à¬®àŸ à¬¯à‹à¬œà¬¨à¬¾à¬•à ଗàରହଣ କରିବାରà ଅଟକାଇଥାà¬à¥¤" -#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804 +#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "ମà‹à¬¨à‹" -#: ../src/pulse/channelmap.c:105 +#: ../src/pulse/channelmap.c:107 msgid "Front Center" msgstr "ସାମàନା ପାଖ କà‡à¬¨àଦàର" -#: ../src/pulse/channelmap.c:106 +#: ../src/pulse/channelmap.c:108 msgid "Front Left" msgstr "ସାମàନା ବାମ ପାଖ" -#: ../src/pulse/channelmap.c:107 +#: ../src/pulse/channelmap.c:109 msgid "Front Right" msgstr "ସାମàନା ଡ଼ାହାଣ ପାଖ" -#: ../src/pulse/channelmap.c:109 +#: ../src/pulse/channelmap.c:111 msgid "Rear Center" msgstr "ପଛ ପାଖ କà‡à¬¨àଦàର" -#: ../src/pulse/channelmap.c:110 +#: ../src/pulse/channelmap.c:112 msgid "Rear Left" msgstr "ପଛ ବାମ ପାଖ" -#: ../src/pulse/channelmap.c:111 +#: ../src/pulse/channelmap.c:113 msgid "Rear Right" msgstr "ପଛ ଡ଼ାହାଣ ପାଖ" -#: ../src/pulse/channelmap.c:113 +#: ../src/pulse/channelmap.c:115 msgid "Low Frequency Emmiter" msgstr "ନିମàନ ଆବàƒà¬¤àତି ପରିତààŸà¬¾à¬— କାରà€" -#: ../src/pulse/channelmap.c:115 +#: ../src/pulse/channelmap.c:117 msgid "Front Left-of-center" msgstr "ସାମàନା କà‡à¬¨àଦàର-ର-ବାମ ପାଖ" -#: ../src/pulse/channelmap.c:116 +#: ../src/pulse/channelmap.c:118 msgid "Front Right-of-center" msgstr "ସାମàନା କà‡à¬¨àଦàର-ର-ଡ଼ାହାଣ ପାଖ" -#: ../src/pulse/channelmap.c:118 +#: ../src/pulse/channelmap.c:120 msgid "Side Left" msgstr "ବାମ ପାରàଶàà±" -#: ../src/pulse/channelmap.c:119 +#: ../src/pulse/channelmap.c:121 msgid "Side Right" msgstr "ଡ଼ାହାଣ ପାରàଶàà±" -#: ../src/pulse/channelmap.c:121 +#: ../src/pulse/channelmap.c:123 msgid "Auxiliary 0" msgstr "ସହାàŸà¬• 0" -#: ../src/pulse/channelmap.c:122 +#: ../src/pulse/channelmap.c:124 msgid "Auxiliary 1" msgstr "ସହାàŸà¬• 1" -#: ../src/pulse/channelmap.c:123 +#: ../src/pulse/channelmap.c:125 msgid "Auxiliary 2" msgstr "ସହାàŸà¬• 2" -#: ../src/pulse/channelmap.c:124 +#: ../src/pulse/channelmap.c:126 msgid "Auxiliary 3" msgstr "ସହାàŸà¬• 3" -#: ../src/pulse/channelmap.c:125 +#: ../src/pulse/channelmap.c:127 msgid "Auxiliary 4" msgstr "ସହାàŸà¬• 4" -#: ../src/pulse/channelmap.c:126 +#: ../src/pulse/channelmap.c:128 msgid "Auxiliary 5" msgstr "ସହାàŸà¬• 5" -#: ../src/pulse/channelmap.c:127 +#: ../src/pulse/channelmap.c:129 msgid "Auxiliary 6" msgstr "ସହାàŸà¬• 6" -#: ../src/pulse/channelmap.c:128 +#: ../src/pulse/channelmap.c:130 msgid "Auxiliary 7" msgstr "ସହାàŸà¬• 7" -#: ../src/pulse/channelmap.c:129 +#: ../src/pulse/channelmap.c:131 msgid "Auxiliary 8" msgstr "ସହାàŸà¬• 8" -#: ../src/pulse/channelmap.c:130 +#: ../src/pulse/channelmap.c:132 msgid "Auxiliary 9" msgstr "ସହାàŸà¬• 9" -#: ../src/pulse/channelmap.c:131 +#: ../src/pulse/channelmap.c:133 msgid "Auxiliary 10" msgstr "ସହାàŸà¬• 10" -#: ../src/pulse/channelmap.c:132 +#: ../src/pulse/channelmap.c:134 msgid "Auxiliary 11" msgstr "ସହାàŸà¬• 11" -#: ../src/pulse/channelmap.c:133 +#: ../src/pulse/channelmap.c:135 msgid "Auxiliary 12" msgstr "ସହାàŸà¬• 12" -#: ../src/pulse/channelmap.c:134 +#: ../src/pulse/channelmap.c:136 msgid "Auxiliary 13" msgstr "ସହାàŸà¬• 13" -#: ../src/pulse/channelmap.c:135 +#: ../src/pulse/channelmap.c:137 msgid "Auxiliary 14" msgstr "ସହାàŸà¬• 14" -#: ../src/pulse/channelmap.c:136 +#: ../src/pulse/channelmap.c:138 msgid "Auxiliary 15" msgstr "ସହାàŸà¬• 15" -#: ../src/pulse/channelmap.c:137 +#: ../src/pulse/channelmap.c:139 msgid "Auxiliary 16" msgstr "ସହାàŸà¬• 16" -#: ../src/pulse/channelmap.c:138 +#: ../src/pulse/channelmap.c:140 msgid "Auxiliary 17" msgstr "ସହାàŸà¬• 17" -#: ../src/pulse/channelmap.c:139 +#: ../src/pulse/channelmap.c:141 msgid "Auxiliary 18" msgstr "ସହାàŸà¬• 18" -#: ../src/pulse/channelmap.c:140 +#: ../src/pulse/channelmap.c:142 msgid "Auxiliary 19" msgstr "ସହାàŸà¬• 19" -#: ../src/pulse/channelmap.c:141 +#: ../src/pulse/channelmap.c:143 msgid "Auxiliary 20" msgstr "ସହାàŸà¬• 20" -#: ../src/pulse/channelmap.c:142 +#: ../src/pulse/channelmap.c:144 msgid "Auxiliary 21" msgstr "ସହାàŸà¬• 21" -#: ../src/pulse/channelmap.c:143 +#: ../src/pulse/channelmap.c:145 msgid "Auxiliary 22" msgstr "ସହାàŸà¬• 22" -#: ../src/pulse/channelmap.c:144 +#: ../src/pulse/channelmap.c:146 msgid "Auxiliary 23" msgstr "ସହାàŸà¬• 23" -#: ../src/pulse/channelmap.c:145 +#: ../src/pulse/channelmap.c:147 msgid "Auxiliary 24" msgstr "ସହାàŸà¬• 24" -#: ../src/pulse/channelmap.c:146 +#: ../src/pulse/channelmap.c:148 msgid "Auxiliary 25" msgstr "ସହାàŸà¬• 25" -#: ../src/pulse/channelmap.c:147 +#: ../src/pulse/channelmap.c:149 msgid "Auxiliary 26" msgstr "ସହାàŸà¬• 26" -#: ../src/pulse/channelmap.c:148 +#: ../src/pulse/channelmap.c:150 msgid "Auxiliary 27" msgstr "ସହାàŸà¬• 27" -#: ../src/pulse/channelmap.c:149 +#: ../src/pulse/channelmap.c:151 msgid "Auxiliary 28" msgstr "ସହାàŸà¬• 28" -#: ../src/pulse/channelmap.c:150 +#: ../src/pulse/channelmap.c:152 msgid "Auxiliary 29" msgstr "ସହାàŸà¬• 28" -#: ../src/pulse/channelmap.c:151 +#: ../src/pulse/channelmap.c:153 msgid "Auxiliary 30" msgstr "ସହାàŸà¬• 30" -#: ../src/pulse/channelmap.c:152 +#: ../src/pulse/channelmap.c:154 msgid "Auxiliary 31" msgstr "ସହାàŸà¬• 31" -#: ../src/pulse/channelmap.c:154 +#: ../src/pulse/channelmap.c:156 msgid "Top Center" msgstr "ଉପର କà‡à¬¨àଦàର" -#: ../src/pulse/channelmap.c:156 +#: ../src/pulse/channelmap.c:158 msgid "Top Front Center" msgstr "ଉପର ସମàନା ପାଖ କà‡à¬¨àଦàର" -#: ../src/pulse/channelmap.c:157 +#: ../src/pulse/channelmap.c:159 msgid "Top Front Left" msgstr "ଉପର ସାମàନା ବାମ ପାଖ" -#: ../src/pulse/channelmap.c:158 +#: ../src/pulse/channelmap.c:160 msgid "Top Front Right" msgstr "ଉପର ସାମàନା ଡ଼ାହାଣ ପାଖ" -#: ../src/pulse/channelmap.c:160 +#: ../src/pulse/channelmap.c:162 msgid "Top Rear Center" msgstr "ଉପର ପଛ ପାଖ କà‡à¬¨àଦàର" -#: ../src/pulse/channelmap.c:161 +#: ../src/pulse/channelmap.c:163 msgid "Top Rear Left" msgstr "ଉପର ପଛ ବାମ ପାଖ" -#: ../src/pulse/channelmap.c:162 +#: ../src/pulse/channelmap.c:164 msgid "Top Rear Right" msgstr "ଉପର ପଛ ଡ଼ାହାଣ ପାଖ" -#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167 -#: ../src/pulse/volume.c:170 ../src/pulse/volume.c:196 -#: ../src/pulse/volume.c:216 ../src/pulse/volume.c:246 +#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167 +#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265 +#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315 msgid "(invalid)" msgstr "(ଅବàˆà¬§)" -#: ../src/pulse/channelmap.c:808 +#: ../src/pulse/channelmap.c:751 msgid "Stereo" msgstr "ଷàଟà‡à¬°à¬¿à¬“" -#: ../src/pulse/channelmap.c:813 +#: ../src/pulse/channelmap.c:756 msgid "Surround 4.0" msgstr "ଚତàଃ ପାରàଶàà± 4.0" -#: ../src/pulse/channelmap.c:819 +#: ../src/pulse/channelmap.c:762 msgid "Surround 4.1" msgstr "ଚତàଃ ପାରàଶàà± 4.1" -#: ../src/pulse/channelmap.c:825 +#: ../src/pulse/channelmap.c:768 msgid "Surround 5.0" msgstr "ଚତàଃ ପାରàଶàà± 5.0" -#: ../src/pulse/channelmap.c:831 +#: ../src/pulse/channelmap.c:774 msgid "Surround 5.1" msgstr "ଚତàଃ ପାରàଶàà± 5.1" -#: ../src/pulse/channelmap.c:838 +#: ../src/pulse/channelmap.c:781 msgid "Surround 7.1" msgstr "ଚତàଃ ପାରàଶàà± 7.1" @@ -1276,173 +1260,168 @@ msgstr "waitpid(): %s" msgid "Received message for unknown extension '%s'" msgstr "ଅଜଣା ଅନàଲଗàନ '%s' ପାଇଠସନàଦà‡à¬¶ ଗàରହଣ କରିଅଛି" -#: ../src/utils/pacat.c:94 +#: ../src/utils/pacat.c:107 +#, c-format +msgid "Failed to drain stream: %s\n" +msgstr "ଧାରାକà ବାହାର à¬•à¬°à¬¿à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³ ହà‹à¬‡à¬›à¬¿: %s\n" + +#: ../src/utils/pacat.c:112 +msgid "Playback stream drained.\n" +msgstr "ପଛଚଲା ଧାରାକà ବାହାର କରାଯାଇଛି।\n" + +#: ../src/utils/pacat.c:122 +msgid "Draining connection to server.\n" +msgstr "ସରàà¬à¬° ପàରତି ଡàରà‡à¬¨à¬¿à¬™àଗ ସଂଯà‹à¬—।\n" + +#: ../src/utils/pacat.c:135 +#, c-format +msgid "pa_stream_drain(): %s\n" +msgstr "pa_stream_drain(): %s\n" + +#: ../src/utils/pacat.c:158 #, c-format msgid "pa_stream_write() failed: %s\n" msgstr "pa_stream_write() ବିଫଳ ହà‹à¬‡à¬›à¬¿: %s\n" -#: ../src/utils/pacat.c:133 +#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 #, c-format msgid "pa_stream_peek() failed: %s\n" msgstr "pa_stream_peek() ବିଫଳ ହà‹à¬‡à¬›à¬¿: %s\n" -#: ../src/utils/pacat.c:169 -#, c-format +#: ../src/utils/pacat.c:302 msgid "Stream successfully created.\n" msgstr "ଧାରା ସଫଳତାର ସହିତ ନିରàମାଣ ହà‹à¬‡à¬›à¬¿à¥¤\n" -#: ../src/utils/pacat.c:172 +#: ../src/utils/pacat.c:305 #, c-format msgid "pa_stream_get_buffer_attr() failed: %s\n" msgstr "pa_stream_get_buffer_attr() ବିଫଳ ହà‹à¬‡à¬›à¬¿: %s\n" -#: ../src/utils/pacat.c:176 +#: ../src/utils/pacat.c:309 #, c-format msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgstr "ବଫର ମà‡à¬Ÿàରିକସ: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:179 +#: ../src/utils/pacat.c:312 #, c-format msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgstr "ବଫର ମà‡à¬Ÿàରିକସ: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:183 +#: ../src/utils/pacat.c:316 #, c-format msgid "Using sample spec '%s', channel map '%s'.\n" msgstr "ନମàନା spec '%s' ବààŸà¬¬à¬¹à¬¾à¬° କରି, ଚààŸà¬¾à¬¨à‡à¬² ମààŸà¬¾à¬ª '%s'।\n" -#: ../src/utils/pacat.c:187 +#: ../src/utils/pacat.c:320 #, c-format msgid "Connected to device %s (%u, %ssuspended).\n" msgstr "ଉପକରଣ %s ସହିତ ସଂଯàକàତ ହà‹à¬‡à¬›à¬¿ (%u, %ssuspended)।\n" -#: ../src/utils/pacat.c:197 +#: ../src/utils/pacat.c:330 #, c-format msgid "Stream error: %s\n" msgstr "ଧାରା ତàରàଟି: %s\n" -#: ../src/utils/pacat.c:207 +#: ../src/utils/pacat.c:340 #, c-format msgid "Stream device suspended.%s \n" msgstr "ଧାରା ଉପକରଣ ନିଲମàବିତ ହà‹à¬‡à¬›à¬¿à¥¤%s \n" -#: ../src/utils/pacat.c:209 +#: ../src/utils/pacat.c:342 #, c-format msgid "Stream device resumed.%s \n" msgstr "ଧାରା ଉପକରଣ ପàନଃ ଚଳନ ହà‹à¬‡à¬›à¬¿à¥¤%s \n" -#: ../src/utils/pacat.c:217 +#: ../src/utils/pacat.c:350 #, c-format msgid "Stream underrun.%s \n" msgstr "ଧାରା underrun.%s \n" -#: ../src/utils/pacat.c:224 +#: ../src/utils/pacat.c:357 #, c-format msgid "Stream overrun.%s \n" msgstr "ଧାରା overrun.%s \n" -#: ../src/utils/pacat.c:231 +#: ../src/utils/pacat.c:364 #, c-format msgid "Stream started.%s \n" msgstr "ଧାରା ଆରମàଠହà‹à¬‡à¬›à¬¿à¥¤%s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 #, c-format msgid "Stream moved to device %s (%u, %ssuspended).%s \n" msgstr "ଧାରା ଉପକରଣ %sକà ଗତି କରିଛି (%u, %ssuspended).%s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 msgid "not " msgstr "not " -#: ../src/utils/pacat.c:245 +#: ../src/utils/pacat.c:378 #, c-format msgid "Stream buffer attributes changed.%s \n" msgstr "ଧାରା ବଫର ଗàଣଗàଡ଼ିକ ପରିବରàତàତନ ହà‹à¬‡à¬›à¬¿à¥¤%s\n" -#: ../src/utils/pacat.c:278 +#: ../src/utils/pacat.c:411 #, c-format msgid "Connection established.%s \n" msgstr "ସଂଯà‹à¬— ସàଥାପିତ ହà‹à¬‡à¬›à¬¿à¥¤%s \n" -#: ../src/utils/pacat.c:281 +#: ../src/utils/pacat.c:414 #, c-format msgid "pa_stream_new() failed: %s\n" msgstr "pa_stream_new() ବିଫଳ ହà‹à¬‡à¬›à¬¿: %s\n" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:442 #, c-format msgid "pa_stream_connect_playback() failed: %s\n" msgstr "pa_stream_connect_playback() ବିଫଳ ହà‹à¬‡à¬›à¬¿: %s\n" -#: ../src/utils/pacat.c:315 +#: ../src/utils/pacat.c:448 #, c-format msgid "pa_stream_connect_record() failed: %s\n" msgstr "pa_stream_connect_record() ବିଫଳ ହà‹à¬‡à¬›à¬¿: %s\n" -#: ../src/utils/pacat.c:329 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:762 ../src/utils/paplay.c:183 +#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 #, c-format msgid "Connection failure: %s\n" msgstr "ସଂଯà‹à¬— ବିଫଳ ହà‹à¬‡à¬›à¬¿: %s\n" -#: ../src/utils/pacat.c:349 ../src/utils/paplay.c:75 -#, c-format -msgid "Failed to drain stream: %s\n" -msgstr "ଧାରାକà ବାହାର à¬•à¬°à¬¿à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³ ହà‹à¬‡à¬›à¬¿: %s\n" - -#: ../src/utils/pacat.c:354 ../src/utils/paplay.c:80 -#, c-format -msgid "Playback stream drained.\n" -msgstr "ପଛଚଲା ଧାରାକà ବାହାର କରାଯାଇଛି।\n" - -#: ../src/utils/pacat.c:364 ../src/utils/paplay.c:92 -#, c-format -msgid "Draining connection to server.\n" -msgstr "ସରàà¬à¬° ପàରତି ଡàରà‡à¬¨à¬¿à¬™àଗ ସଂଯà‹à¬—।\n" - -#: ../src/utils/pacat.c:390 -#, c-format +#: ../src/utils/pacat.c:495 msgid "Got EOF.\n" msgstr "EOF ପାଇଅଛି।\n" -#: ../src/utils/pacat.c:396 -#, c-format -msgid "pa_stream_drain(): %s\n" -msgstr "pa_stream_drain(): %s\n" - -#: ../src/utils/pacat.c:406 +#: ../src/utils/pacat.c:500 #, c-format msgid "read() failed: %s\n" msgstr "read() ବିଫଳ ହà‹à¬‡à¬›à¬¿: %s\n" -#: ../src/utils/pacat.c:438 +#: ../src/utils/pacat.c:532 #, c-format msgid "write() failed: %s\n" msgstr "write() ବିଫଳ ହà‹à¬‡à¬›à¬¿: %s\n" -#: ../src/utils/pacat.c:459 -#, c-format +#: ../src/utils/pacat.c:553 msgid "Got signal, exiting.\n" msgstr "ସଂକà‡à¬¤ ପାଇଲା, ପàରସàଥାନ କରàଅଛି।\n" -#: ../src/utils/pacat.c:473 +#: ../src/utils/pacat.c:567 #, c-format msgid "Failed to get latency: %s\n" msgstr "ବିଳମàବତା à¬ªà¬¾à¬‡à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³: %s\n" -#: ../src/utils/pacat.c:478 +#: ../src/utils/pacat.c:572 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "ସମàŸ: %0.3f sec; ବିଳମàବତା: %0.0f usec. \r" -#: ../src/utils/pacat.c:498 +#: ../src/utils/pacat.c:592 #, c-format msgid "pa_stream_update_timing_info() failed: %s\n" msgstr "pa_stream_update_timing_info() ବିଫଳ ହà‹à¬‡à¬›à¬¿: %s\n" -#: ../src/utils/pacat.c:511 -#, c-format +#: ../src/utils/pacat.c:605 +#, fuzzy, c-format msgid "" "%s [options]\n" "\n" @@ -1468,8 +1447,10 @@ msgid "" "44100)\n" " --format=SAMPLEFORMAT The sample type, one of s16le, " "s16be, u8, float32le,\n" -" float32be, ulaw, alaw, s32le, s32be " -"(defaults to s16ne)\n" +" float32be, ulaw, alaw, s32le, s32be, " +"s24le, s24be,\n" +" s24-32le, s24-32be (defaults to " +"s16ne)\n" " --channels=CHANNELS The number of channels, 1 for mono, " "2 for stereo\n" " (defaults to 2)\n" @@ -1492,6 +1473,11 @@ msgid "" "bytes.\n" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" +" --property=PROPERTY=VALUE Set the specified property to the " +"specified value.\n" +" --raw Record/play raw PCM data.\n" +" --file-format=FFORMAT Record/play formatted PCM data.\n" +" --list-file-formats List available file formats.\n" msgstr "" "%s [options]\n" "\n" @@ -1539,7 +1525,7 @@ msgstr "" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" -#: ../src/utils/pacat.c:612 +#: ../src/utils/pacat.c:727 #, c-format msgid "" "pacat %s\n" @@ -1550,88 +1536,133 @@ msgstr "" "libpulse %s ସହିତ ସଂକଳିତ\n" "libpulse %s ସହିତ ସଂଯàକàତ\n" -#: ../src/utils/pacat.c:669 +#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "ଅବàˆà¬§ ଚààŸà¬¾à¬¨à‡à¬² ମààŸà¬¾à¬ª '%s'\n" + +#: ../src/utils/pacat.c:776 +#, fuzzy, c-format +msgid "Invalid stream name '%s'\n" +msgstr "ଅବàˆà¬§ ପàନଃ ପàରତିଦରàଶନ ଧାରା '%s'।" + +#: ../src/utils/pacat.c:813 #, c-format msgid "Invalid channel map '%s'\n" msgstr "ଅବàˆà¬§ ଚààŸà¬¾à¬¨à‡à¬² ମààŸà¬¾à¬ª '%s'\n" -#: ../src/utils/pacat.c:698 +#: ../src/utils/pacat.c:842 #, c-format msgid "Invalid latency specification '%s'\n" msgstr "ଅବàˆà¬§ ବିଳମàବତା ବିଶà‡à¬· ଲକàଷଣ '%s'\n" -#: ../src/utils/pacat.c:705 +#: ../src/utils/pacat.c:849 #, c-format msgid "Invalid process time specification '%s'\n" msgstr "ଅବàˆà¬§ ପଦàଧତି à¬¸à¬®àŸ à¬¬à¬¿à¬¶à‡à¬· ଲକàଷଣ '%s'\n" -#: ../src/utils/pacat.c:716 +#: ../src/utils/pacat.c:861 +#, fuzzy, c-format +msgid "Invalid property '%s'\n" +msgstr "ଅବàˆà¬§ ପàନଃ ପàରତିଦରàଶନ ଧାରା '%s'।" + +#: ../src/utils/pacat.c:878 #, c-format +msgid "Unknown file format %s." +msgstr "" + +#: ../src/utils/pacat.c:897 msgid "Invalid sample specification\n" msgstr "ଅବàˆà¬§ ନମàନା ବିଶà‡à¬· ଲକàଷଣ\n" -#: ../src/utils/pacat.c:721 +#: ../src/utils/pacat.c:907 #, c-format +msgid "open(): %s\n" +msgstr "open(): %s\n" + +#: ../src/utils/pacat.c:912 +#, c-format +msgid "dup2(): %s\n" +msgstr "dup2(): %s\n" + +#: ../src/utils/pacat.c:919 +msgid "Too many arguments.\n" +msgstr "ଅତààŸà¬§à¬¿à¬• ସàà±à¬¤à¬¨àତàରଚର।\n" + +#: ../src/utils/pacat.c:930 +#, fuzzy +msgid "Failed to generate sample specification for file.\n" +msgstr "ନମàନା ସà‚ଚନା à¬ªà¬¾à¬‡à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³: %s\n" + +#: ../src/utils/pacat.c:950 +#, fuzzy +msgid "Failed to open audio file.\n" +msgstr "ଧàà±à¬¨à¬¿ ଫାଇଲ ଖà‹à¬²à¬¿à¬¬à¬¾à¬°à‡ ବିଫଳ।\n" + +#: ../src/utils/pacat.c:956 +msgid "" +"Warning: specified sample specification will be overwritten with " +"specification from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "ନମàନା ସà‚ଚନା à¬ªà¬¾à¬‡à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³: %s\n" + +#: ../src/utils/pacat.c:968 +msgid "Warning: Failed to determine channel map from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:979 msgid "Channel map doesn't match sample specification\n" msgstr "ନମàନା ବିଶà‡à¬· ଲକàଷଣ ସହିତ ଚààŸà¬¾à¬¨à‡à¬² ମààŸà¬¾à¬ª ମà‡à¬³ ଖାଉନାହିà¬\n" -#: ../src/utils/pacat.c:728 -#, c-format -msgid "Opening a %s stream with sample specification '%s'.\n" +#: ../src/utils/pacat.c:990 +msgid "Warning: failed to write channel map to file.\n" +msgstr "" + +#: ../src/utils/pacat.c:1005 +#, fuzzy, c-format +msgid "" +"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" msgstr "ନମàନା ବିଶà‡à¬· ଲକàଷଣ '%s' ସହିତ ଗà‹à¬Ÿà¬¿à¬ %s ଧାରାକà ଖà‹à¬²àଅଛି।\n" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "recording" msgstr "ଅନàଲିପି କରàଅଛି" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "playback" msgstr "ପଛଚଲା" -#: ../src/utils/pacat.c:736 -#, c-format -msgid "open(): %s\n" -msgstr "open(): %s\n" - -#: ../src/utils/pacat.c:741 -#, c-format -msgid "dup2(): %s\n" -msgstr "dup2(): %s\n" - -#: ../src/utils/pacat.c:751 -#, c-format -msgid "Too many arguments.\n" -msgstr "ଅତààŸà¬§à¬¿à¬• ସàà±à¬¤à¬¨àତàରଚର।\n" - -#: ../src/utils/pacat.c:764 ../src/utils/pasuspender.c:280 -#: ../src/utils/pactl.c:1017 ../src/utils/paplay.c:381 +#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 +#: ../src/utils/pactl.c:1104 #, c-format msgid "pa_mainloop_new() failed.\n" msgstr "pa_mainloop_new() ବିଫଳ ହà‹à¬‡à¬›à¬¿à¥¤\n" -#: ../src/utils/pacat.c:785 -#, c-format +#: ../src/utils/pacat.c:1051 msgid "io_new() failed.\n" msgstr "io_new() ବିଫଳ ହà‹à¬‡à¬›à¬¿à¥¤\n" -#: ../src/utils/pacat.c:791 ../src/utils/pasuspender.c:293 -#: ../src/utils/pactl.c:1031 ../src/utils/paplay.c:396 +#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 +#: ../src/utils/pactl.c:1116 #, c-format msgid "pa_context_new() failed.\n" msgstr "pa_context_new() ବିଫଳ ହà‹à¬‡à¬›à¬¿à¥¤\n" -#: ../src/utils/pacat.c:799 +#: ../src/utils/pacat.c:1066 #, fuzzy, c-format msgid "pa_context_connect() failed: %s\n" msgstr "pa_context_connect() ବିଫଳ ହà‹à¬‡à¬›à¬¿: %s" -#: ../src/utils/pacat.c:810 -#, c-format +#: ../src/utils/pacat.c:1077 msgid "time_new() failed.\n" msgstr "time_new() ବିଫଳ ହà‹à¬‡à¬›à¬¿à¥¤\n" -#: ../src/utils/pacat.c:817 ../src/utils/pasuspender.c:301 -#: ../src/utils/pactl.c:1042 ../src/utils/paplay.c:410 +#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 +#: ../src/utils/pactl.c:1127 #, c-format msgid "pa_mainloop_run() failed.\n" msgstr "pa_mainloop_run() ବିଫଳ ହà‹à¬‡à¬›à¬¿à¥¤\n" @@ -1661,8 +1692,7 @@ msgstr "ପàନଃ ଚଳନ à¬•à¬°à¬¿à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³: %s\n" msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "WARNING: ଧàà±à¬¨à¬¿ ସରàà¬à¬°à¬Ÿà¬¿ ସàଥାନà€àŸ ନàହà¬, ନିଲମàବିତ କରàନାହିà¬à¥¤\n" -#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:768 -#: ../src/utils/paplay.c:191 +#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" msgstr "SIGINT ପାଇଛି, ଉତàସାହିତ କରàଅଛି।\n" @@ -1690,7 +1720,7 @@ msgstr "" " -s, --server=SERVER ସଂଯà‹à¬— କରିବା ପାଇଠସରàà¬à¬°à¬° ନାମ\n" "\n" -#: ../src/utils/pasuspender.c:251 +#: ../src/utils/pasuspender.c:248 #, c-format msgid "" "pasuspender %s\n" @@ -1701,32 +1731,32 @@ msgstr "" "libpulse %s ସହିତ ସଂକଳିତ\n" "libpulse %s ସହିତ ସଂଯàକàତ\n" -#: ../src/utils/pactl.c:108 +#: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" msgstr "ପରିସଂଖààŸà¬¾à¬¨ à¬ªà¬¾à¬‡à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³: %s\n" -#: ../src/utils/pactl.c:114 +#: ../src/utils/pactl.c:134 #, c-format msgid "Currently in use: %u blocks containing %s bytes total.\n" msgstr "ବରàତàତମାନ ବààŸà¬¬à¬¹à¬¾à¬°à¬°à‡ ଅଛି: %u ବàଲକ ସମàà¬¦à¬¾àŸ %s ବାଇଟ ଧାରଣ କରିଥାà¬à¥¤\n" -#: ../src/utils/pactl.c:117 +#: ../src/utils/pactl.c:137 #, c-format msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n" msgstr "ସମଗàର ଜà€à¬¬à¬¨à¬°à‡ ବଣàଟିତ ହà‹à¬‡à¬¥à¬¾à¬: %u ବàଲକ ସମàà¬¦à¬¾àŸ %s ବାଇଟ ଧାରଣ କରିଥାà¬à¥¤\n" -#: ../src/utils/pactl.c:120 +#: ../src/utils/pactl.c:140 #, c-format msgid "Sample cache size: %s\n" msgstr "ନମàନା କààŸà¬¾à¬¶à‡ ଆକାର: %s\n" -#: ../src/utils/pactl.c:129 +#: ../src/utils/pactl.c:149 #, c-format msgid "Failed to get server information: %s\n" msgstr "ସରàà¬à¬° ସà‚ଚନା à¬ªà¬¾à¬‡à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³: %s\n" -#: ../src/utils/pactl.c:137 +#: ../src/utils/pactl.c:157 #, c-format msgid "" "User name: %s\n" @@ -1749,12 +1779,12 @@ msgstr "" "ପà‚ରàବନିରàଦàଧାରିତ ଉତàସ: %s\n" "କàକି: %08x\n" -#: ../src/utils/pactl.c:178 +#: ../src/utils/pactl.c:198 #, c-format msgid "Failed to get sink information: %s\n" msgstr "ସିଙàକ ସà‚ଚନା à¬ªà¬¾à¬‡à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³: %s\n" -#: ../src/utils/pactl.c:194 +#: ../src/utils/pactl.c:214 #, c-format msgid "" "Sink #%u\n" @@ -1793,12 +1823,22 @@ msgstr "" "\tଗàଣଧରàମ:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:258 +#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 +#, fuzzy, c-format +msgid "\tPorts:\n" +msgstr "\tରà‚ପରà‡à¬–ଗàଡ଼ିକ:\n" + +#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 +#, fuzzy, c-format +msgid "\tActive Port: %s\n" +msgstr "\tସକàà¬°à¬¿àŸ à¬°à‚ପରà‡à¬–ା: %s\n" + +#: ../src/utils/pactl.c:290 #, c-format msgid "Failed to get source information: %s\n" msgstr "ଉତàସ ସà‚ଚନା à¬ªà¬¾à¬‡à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³: %s\n" -#: ../src/utils/pactl.c:274 +#: ../src/utils/pactl.c:306 #, c-format msgid "" "Source #%u\n" @@ -1837,20 +1877,20 @@ msgstr "" "\tଗàଣଧରàମ:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:306 ../src/utils/pactl.c:350 ../src/utils/pactl.c:385 -#: ../src/utils/pactl.c:422 ../src/utils/pactl.c:481 ../src/utils/pactl.c:482 -#: ../src/utils/pactl.c:492 ../src/utils/pactl.c:536 ../src/utils/pactl.c:537 -#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:586 ../src/utils/pactl.c:587 -#: ../src/utils/pactl.c:594 +#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429 +#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526 +#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581 +#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631 +#: ../src/utils/pactl.c:638 msgid "n/a" msgstr "n/a" -#: ../src/utils/pactl.c:324 +#: ../src/utils/pactl.c:368 #, c-format msgid "Failed to get module information: %s\n" msgstr "à¬à¬•à¬•à¬¾à¬‚ଶ ସà‚ଚନା à¬ªà¬¾à¬‡à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³: %s\n" -#: ../src/utils/pactl.c:342 +#: ../src/utils/pactl.c:386 #, c-format msgid "" "Module #%u\n" @@ -1867,12 +1907,12 @@ msgstr "" "\tଗàଣଧରàମ:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:361 +#: ../src/utils/pactl.c:405 #, c-format msgid "Failed to get client information: %s\n" msgstr "ଗàରାହକ ସà‚ଚନା à¬ªà¬¾à¬‡à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³: %s\n" -#: ../src/utils/pactl.c:379 +#: ../src/utils/pactl.c:423 #, c-format msgid "" "Client #%u\n" @@ -1887,12 +1927,12 @@ msgstr "" "\tଗàଣଧରàମ:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:396 +#: ../src/utils/pactl.c:440 #, c-format msgid "Failed to get card information: %s\n" msgstr "କାରàଡ ସà‚ଚନା à¬ªà¬¾à¬‡à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³: %s\n" -#: ../src/utils/pactl.c:414 +#: ../src/utils/pactl.c:458 #, c-format msgid "" "Card #%u\n" @@ -1909,22 +1949,22 @@ msgstr "" "\tଗàଣଧରàମ:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:428 +#: ../src/utils/pactl.c:472 #, c-format msgid "\tProfiles:\n" msgstr "\tରà‚ପରà‡à¬–ଗàଡ଼ିକ:\n" -#: ../src/utils/pactl.c:434 +#: ../src/utils/pactl.c:478 #, c-format msgid "\tActive Profile: %s\n" msgstr "\tସକàà¬°à¬¿àŸ à¬°à‚ପରà‡à¬–ା: %s\n" -#: ../src/utils/pactl.c:445 +#: ../src/utils/pactl.c:489 #, c-format msgid "Failed to get sink input information: %s\n" msgstr "ସିଙàକ ନିବà‡à¬¶ ସà‚ଚନା à¬ªà¬¾à¬‡à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³: %s\n" -#: ../src/utils/pactl.c:464 +#: ../src/utils/pactl.c:508 #, c-format msgid "" "Sink Input #%u\n" @@ -1961,12 +2001,12 @@ msgstr "" "\tଗàଣଧରàମ:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:503 +#: ../src/utils/pactl.c:547 #, c-format msgid "Failed to get source output information: %s\n" msgstr "ଉତàସ ଫଳାଫଳ ସà‚ଚନା à¬ªà¬¾à¬‡à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³: %s\n" -#: ../src/utils/pactl.c:523 +#: ../src/utils/pactl.c:567 #, c-format msgid "" "Source Output #%u\n" @@ -1995,12 +2035,12 @@ msgstr "" "\tଗàଣଧରàମ:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:554 +#: ../src/utils/pactl.c:598 #, c-format msgid "Failed to get sample information: %s\n" msgstr "ନମàନା ସà‚ଚନା à¬ªà¬¾à¬‡à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³: %s\n" -#: ../src/utils/pactl.c:572 +#: ../src/utils/pactl.c:616 #, c-format msgid "" "Sample #%u\n" @@ -2031,23 +2071,22 @@ msgstr "" "\tଗàଣଧରàମ:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:602 ../src/utils/pactl.c:612 +#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 #, c-format msgid "Failure: %s\n" msgstr "ବିଫଳତା: %s\n" -#: ../src/utils/pactl.c:636 +#: ../src/utils/pactl.c:680 #, c-format msgid "Failed to upload sample: %s\n" msgstr "ନମàନାକà ଧାରଣ à¬•à¬°à¬¿à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³: %s\n" -#: ../src/utils/pactl.c:653 -#, c-format +#: ../src/utils/pactl.c:697 msgid "Premature end of file\n" msgstr "ଫାଇଲର à¬¸à¬®àŸ à¬ªà‚ରàବ ସମାପàତି\n" -#: ../src/utils/pactl.c:774 -#, c-format +#: ../src/utils/pactl.c:826 +#, fuzzy, c-format msgid "" "%s [options] stat\n" "%s [options] list\n" @@ -2062,6 +2101,8 @@ msgid "" "%s [options] suspend-sink [SINK] 1|0\n" "%s [options] suspend-source [SOURCE] 1|0\n" "%s [options] set-card-profile [CARD] [PROFILE] \n" +"%s [options] set-sink-port [SINK] [PORT] \n" +"%s [options] set-source-port [SOURCE] [PORT] \n" "\n" " -h, --help Show this help\n" " --version Show version\n" @@ -2093,7 +2134,7 @@ msgstr "" " -n, --client-name=NAME How to call this client on the " "server\n" -#: ../src/utils/pactl.c:826 +#: ../src/utils/pactl.c:880 #, c-format msgid "" "pactl %s\n" @@ -2104,48 +2145,44 @@ msgstr "" "libpulse %s ସହିତ ସଂକଳିତ\n" "libpulse %s ସହିତ ସଂଯàକàତ\n" -#: ../src/utils/pactl.c:865 -#, c-format +#: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "ଧାରଣ କରିବା ପାଇଠଗà‹à¬Ÿà¬¿à¬ ନàମନା ଫାଇଲ ଉଲàଲà‡à¬– କରନàତà\n" -#: ../src/utils/pactl.c:887 -#, c-format +#: ../src/utils/pactl.c:939 msgid "Failed to open sound file.\n" msgstr "ଧàà±à¬¨à¬¿ ଫାଇଲ ଖà‹à¬²à¬¿à¬¬à¬¾à¬°à‡ ବିଫଳ।\n" -#: ../src/utils/pactl.c:899 -#, c-format +#: ../src/utils/pactl.c:951 +#, fuzzy +msgid "Warning: Failed to determine sample specification from file.\n" +msgstr "ନମàନା ବିଶà‡à¬· ଲକàଷଣ '%s' ସହିତ ଗà‹à¬Ÿà¬¿à¬ %s ଧାରାକà ଖà‹à¬²àଅଛି।\n" + +#: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" msgstr "ଚଲାଇବା ପାଇଠଆପଣଙàକà ଗà‹à¬Ÿà¬¿à¬ ନମàନା ନାମ ଉଲàଲà‡à¬– କରିବାକà ହà‡à¬¬\n" -#: ../src/utils/pactl.c:911 -#, c-format +#: ../src/utils/pactl.c:973 msgid "You have to specify a sample name to remove\n" msgstr "କାଢ଼ିବା ପାଇଠଆପଣଙàକà ଗà‹à¬Ÿà¬¿à¬ ନମàନା ନାମ ଉଲàଲà‡à¬– କରିବାକà ହà‡à¬¬\n" -#: ../src/utils/pactl.c:919 -#, c-format +#: ../src/utils/pactl.c:982 msgid "You have to specify a sink input index and a sink\n" msgstr "ଆପଣଙàକà ଗà‹à¬Ÿà¬¿à¬ ସିଙàକ ନିବà‡à¬¶ ଅନàକàରମଣିକା à¬à¬¬à¬‚ ଗà‹à¬Ÿà¬¿à¬ ସିଙàକ ଉଲàଲà‡à¬– କରିବାକà ହà‡à¬¬\n" -#: ../src/utils/pactl.c:928 -#, c-format +#: ../src/utils/pactl.c:992 msgid "You have to specify a source output index and a source\n" msgstr "ଆପଣଙàକà ଗà‹à¬Ÿà¬¿à¬ ଉତàସ ନିରàଗମ ଅନàକàରମଣିକା à¬à¬¬à¬‚ ଗà‹à¬Ÿà¬¿à¬ ଉତàସ ଉଲàଲà‡à¬– କରିବାକà ହà‡à¬¬\n" -#: ../src/utils/pactl.c:942 -#, c-format +#: ../src/utils/pactl.c:1007 msgid "You have to specify a module name and arguments.\n" msgstr "ଆପଣଙàକà ଗà‹à¬Ÿà¬¿à¬ à¬à¬•à¬•à¬¾à¬‚ଶ ନାମ à¬à¬¬à¬‚ ସàà±à¬¤à¬¨àତàରଚରଗàଡ଼ିକà ଉଲàଲà‡à¬– କରିବା ଉଚିତ।\n" -#: ../src/utils/pactl.c:962 -#, c-format +#: ../src/utils/pactl.c:1027 msgid "You have to specify a module index\n" msgstr "ଆପଣଙàକà ଗà‹à¬Ÿà¬¿à¬ à¬à¬•à¬•à¬¾à¬‚ଶ ଅନàକàରମଣିକାକà ଉଲàଲà‡à¬– କରିବା ଉଚିତ ନàହà¬\n" -#: ../src/utils/pactl.c:972 -#, c-format +#: ../src/utils/pactl.c:1037 msgid "" "You may not specify more than one sink. You have to specify a boolean " "value.\n" @@ -2153,8 +2190,7 @@ msgstr "" "ଆପଣଙàକà ଗà‹à¬Ÿà¬¿à¬à¬°à ଅଧିକ ସିଙàକ ଉଲàଲà‡à¬– କରିବାକà ପଡ଼ିନପାରà‡à¥¤ ଆପଣଙàକà ଗà‹à¬Ÿà¬¿à¬ ବàଲିଆନ ମà‚ଲààŸ à¬‰à¬²àଲà‡à¬– କରିବାକà " "ହà‡à¬¬à¥¤\n" -#: ../src/utils/pactl.c:985 -#, c-format +#: ../src/utils/pactl.c:1050 msgid "" "You may not specify more than one source. You have to specify a boolean " "value.\n" @@ -2162,17 +2198,25 @@ msgstr "" "ଆପଣଙàକà ଗà‹à¬Ÿà¬¿à¬à¬°à ଅଧିକ ଉତàସ ଉଲàଲà‡à¬– କରିବାକà ପଡ଼ିନପାରà‡à¥¤ ଆପଣଙàକà ଗà‹à¬Ÿà¬¿à¬ ବàଲିଆନ ମà‚ଲààŸ à¬‰à¬²àଲà‡à¬– କରିବାକà " "ହà‡à¬¬à¥¤\n" -#: ../src/utils/pactl.c:997 -#, c-format +#: ../src/utils/pactl.c:1062 msgid "You have to specify a card name/index and a profile name\n" msgstr "ଆପଣଙàକà ଗà‹à¬Ÿà¬¿à¬ କାରàଡ ନାମ/ଅନàକàରମଣିକା à¬à¬¬à¬‚ ରà‚ପରà‡à¬–ା ନାମ ଉଲàଲà‡à¬– କରିବାକà ହà‡à¬¬\n" -#: ../src/utils/pactl.c:1012 -#, c-format +#: ../src/utils/pactl.c:1073 +#, fuzzy +msgid "You have to specify a sink name/index and a port name\n" +msgstr "ଆପଣଙàକà ଗà‹à¬Ÿà¬¿à¬ କାରàଡ ନାମ/ଅନàକàରମଣିକା à¬à¬¬à¬‚ ରà‚ପରà‡à¬–ା ନାମ ଉଲàଲà‡à¬– କରିବାକà ହà‡à¬¬\n" + +#: ../src/utils/pactl.c:1084 +#, fuzzy +msgid "You have to specify a source name/index and a port name\n" +msgstr "ଆପଣଙàକà ଗà‹à¬Ÿà¬¿à¬ କାରàଡ ନାମ/ଅନàକàରମଣିକା à¬à¬¬à¬‚ ରà‚ପରà‡à¬–ା ନାମ ଉଲàଲà‡à¬– କରିବାକà ହà‡à¬¬\n" + +#: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "କàŒà¬£à¬¸à¬¿ ବàˆà¬§ ନିରàଦàଦà‡à¬¶ ଉଲàଲà‡à¬– କରାଯାଇନାହିà¬à¥¤\n" -#: ../src/utils/pactl.c:1037 ../src/utils/paplay.c:404 +#: ../src/utils/pactl.c:1122 #, c-format msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect() ବିଫଳ ହà‹à¬‡à¬›à¬¿: %s" @@ -2255,126 +2299,48 @@ msgstr "କàକି ତଥààŸ à¬§à¬¾à¬°à¬£ à¬•à¬°à¬¿à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬ msgid "Not yet implemented.\n" msgstr "ଅପରàଯààŸà¬¨àତ କାରàଯààŸà¬•à¬¾à¬°à€ ହà‹à¬‡à¬¨à¬¾à¬¹à¬¿à¬à¥¤\n" -#: ../src/utils/pacmd.c:64 +#: ../src/utils/pacmd.c:61 +msgid "No PulseAudio daemon running, or not running as session daemon." +msgstr "" + +#: ../src/utils/pacmd.c:66 #, c-format msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s" msgstr "ସକà‡à¬Ÿ(PF_UNIX, SOCK_STREAM, 0): %s" -#: ../src/utils/pacmd.c:81 +#: ../src/utils/pacmd.c:83 #, c-format msgid "connect(): %s" msgstr "ସଂଯà‹à¬— କରନàତà(): %s" -#: ../src/utils/pacmd.c:89 +#: ../src/utils/pacmd.c:91 msgid "Failed to kill PulseAudio daemon." msgstr "PulseAudio ଡà‡à¬®à¬¨à¬•à ବନàଦ à¬•à¬°à¬¿à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³à¥¤" -#: ../src/utils/pacmd.c:97 +#: ../src/utils/pacmd.c:99 msgid "Daemon not responding." msgstr "ଡà‡à¬®à¬¨ ଉତàତର ଦà‡à¬‰à¬¨à¬¾à¬¹à¬¿à¬à¥¤" -#: ../src/utils/pacmd.c:144 +#: ../src/utils/pacmd.c:146 #, c-format msgid "select(): %s" msgstr "ବାଛନàତà(): %s" -#: ../src/utils/pacmd.c:154 ../src/utils/pacmd.c:171 +#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173 #, c-format msgid "read(): %s" msgstr "ପଢ଼ନàତà(): %s" -#: ../src/utils/pacmd.c:187 ../src/utils/pacmd.c:201 +#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203 #, c-format msgid "write(): %s" msgstr "ଲà‡à¬–ନàତà(): %s" -#: ../src/utils/paplay.c:139 -#, c-format -msgid "Stream successfully created\n" -msgstr "ଧାରା ସଫଳତାର ସହିତ ନିରàମିତ ହà‹à¬‡à¬›à¬¿\n" - -#: ../src/utils/paplay.c:144 -#, c-format -msgid "Stream errror: %s\n" -msgstr "ଧାରା ତàରàଟି: %s\n" - -#: ../src/utils/paplay.c:165 -#, c-format -msgid "Connection established.\n" -msgstr "ସଂଯà‹à¬— ସàଥାପିତ ହà‹à¬‡à¬¸à¬¾à¬°à¬¿à¬›à¬¿à¥¤\n" - -#: ../src/utils/paplay.c:198 -#, c-format -msgid "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" -msgstr "" -"%s [options] [FILE]\n" -"\n" -" -h, --help à¬à¬¹à¬¿ ସହାàŸà¬¤à¬¾ ଦରàଶାନàତà\n" -" --version ସଂସàକରଣ ଦରàଶାନàତà\n" -"\n" -" -v, --verbose verbose ପàରàŸà‹à¬—କà ସକàà¬°à¬¿àŸ à¬•à¬°à¬¨àତà\n" -"\n" -" -s, --server=SERVER ସଂଯà‹à¬— କରିବା ପାଇଠସରàà¬à¬°à¬° ନାମ\n" -" -d, --device=DEVICE ସଂଯà‹à¬— କରିବା ପାଇଠସିଙàକର ନାମ\n" -" -n, --client-name=NAME ସରàà¬à¬° à¬‰à¬ªà¬°à‡ à¬à¬¹à¬¿ ଗàରାହକଙàକà କିପରି ଡ଼ାକିବà‡\n" -" --stream-name=NAME ସରàà¬à¬° à¬‰à¬ªà¬°à‡ à¬à¬¹à¬¿ ଧାରାକà କିପରି ଡ଼ାକିବà‡\n" -" --volume=VOLUME ପàରାରମàà¬à¬¿à¬• (ସିଧା) ଆକାରକà ସà€à¬®à¬¾ 0...65536 " -"ମଧàà¬¯à¬°à‡ à¬‰à¬²àଲà‡à¬– କରନàତà\n" -" --channel-map=CHANNELMAP ବààŸà¬¬à¬¹à¬¾à¬° ପାଇଠଚààŸà¬¾à¬¨à‡à¬² ମààŸà¬¾à¬ªà¬•à ସà‡à¬Ÿ କରନàତà\n" - -#: ../src/utils/paplay.c:255 -#, c-format -msgid "" -"paplay %s\n" -"Compiled with libpulse %s\n" -"Linked with libpulse %s\n" -msgstr "" -"paplay %s\n" -"libpulse %s ସହିତ ସଂକଳିତ\n" -"libpulse %s ସହିତ ସଂଯàକàତ\n" - -#: ../src/utils/paplay.c:292 -#, c-format -msgid "Invalid channel map\n" -msgstr "ଅବàˆà¬§ ଚààŸà¬¾à¬¨à‡à¬² ମààŸà¬¾à¬ª\n" - -#: ../src/utils/paplay.c:314 -#, c-format -msgid "Failed to open file '%s'\n" -msgstr "ଫାଇଲ '%s' କà ଖà‹à¬²à¬¿à¬¬à¬¾à¬°à‡ ବିଫଳ\n" - -#: ../src/utils/paplay.c:350 -#, c-format -msgid "Channel map doesn't match file.\n" -msgstr "ଚààŸà¬¾à¬¨à‡à¬² ମààŸà¬¾à¬ª ଫାଇଲ ସହିତ ମà‡à¬³ ଖାଉନାହିà¬à¥¤\n" - -#: ../src/utils/paplay.c:376 -#, c-format -msgid "Using sample spec '%s'\n" -msgstr "ନମàନା spec '%s' ବààŸà¬¬à¬¹à¬¾à¬° କରି\n" - #: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 msgid "Cannot access autospawn lock." msgstr "autospawn ଅପରିବରàତàତନà€àŸà¬¤à¬¾à¬•à ଅà¬à¬¿à¬—ମààŸ à¬•à¬°à¬¿à¬¹à‡à¬‰ ନାହିà¬" -#: ../src/modules/alsa/alsa-sink.c:393 ../src/modules/alsa/alsa-sink.c:541 +#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2391,7 +2357,7 @@ msgstr "" "We were woken up with POLLOUT set -- however a subsequent snd_pcm_avail() " "returned 0 or another value < min_avail." -#: ../src/modules/alsa/alsa-source.c:377 ../src/modules/alsa/alsa-source.c:516 +#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2408,34 +2374,126 @@ msgstr "" "We were woken up with POLLIN set -- however a subsequent snd_pcm_avail() " "returned 0 or another value < min_avail." -#: ../src/modules/alsa/module-alsa-card.c:114 -#, c-format -msgid "Output %s + Input %s" -msgstr "ଫଳାଫଳ %s + ନିବà‡à¬¶ %s" - -#: ../src/modules/alsa/module-alsa-card.c:117 -#, c-format -msgid "Output %s" -msgstr "ଫଳାଫଳ %s" - -#: ../src/modules/alsa/module-alsa-card.c:121 -#, c-format -msgid "Input %s" -msgstr "ନିବà‡à¬¶ %s" - -#: ../src/modules/alsa/module-alsa-card.c:170 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2006 +#: ../src/modules/alsa/module-alsa-card.c:152 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 msgid "Off" msgstr "ଅଫ" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1976 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 msgid "High Fidelity Playback (A2DP)" msgstr "ଉଚàଚ ଫିଡିଲିଟି ପଛଚଲା (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1991 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 msgid "Telephony Duplex (HSP/HFP)" msgstr "ଟà‡à¬²à¬¿à¬«à‹à¬¨à¬¿ ଡààŸàପàଲà‡à¬•àସ (HSP/HFP)" -#: ../src/modules/reserve-wrap.c:139 +#: ../src/modules/reserve-wrap.c:151 msgid "PulseAudio Sound Server" msgstr "PulseAudio ଧàà±à¬¨à¬¿ ସରàà¬à¬°" + +#~ msgid "Analog Mono" +#~ msgstr "ଅନàରà‚ପ ମà‹à¬¨à‹" + +#~ msgid "Analog Stereo" +#~ msgstr "ଅନàରà‚ପ ଷàଟà‡à¬°à¬¿à¬“" + +#~ msgid "Digital Stereo (IEC958)" +#~ msgstr "ସାଂଖିକ ଷàଟà‡à¬°à¬¿à¬“ (IEC958)" + +#~ msgid "Digital Stereo (HDMI)" +#~ msgstr "ସାଂଖିକ ଷàଟà‡à¬°à¬¿à¬“ (HDMI)" + +#~ msgid "Analog Surround 4.0" +#~ msgstr "ଅନàରà‚ପ ଚତàରàପାରàଶàà± 4.0" + +#~ msgid "Digital Surround 4.0 (IEC958/AC3)" +#~ msgstr "ସାଂଖିକ ଚତàରàପାରàଶàà± 4.0 (IEC958/AC3)" + +#~ msgid "Analog Surround 4.1" +#~ msgstr "ଅନàରà‚ପ ଚତàରàପାରàଶàà± 4.1" + +#~ msgid "Analog Surround 5.0" +#~ msgstr "ଅନàରà‚ପ ଚତàରàପାରàଶàà± 5.0" + +#~ msgid "Analog Surround 5.1" +#~ msgstr "ଅନàରà‚ପ ଚତàରàପାରàଶàà± 5.1" + +#~ msgid "Digital Surround 5.1 (IEC958/AC3)" +#~ msgstr "ସାଂଖିକ ଚତàରàପାରàଶàà± 5.1 (IEC958/AC3)" + +#~ msgid "Analog Surround 7.1" +#~ msgstr "ଅନàରà‚ପ ଚତàରàପାରàଶàà± 7.1" + +#~ msgid "Output %s + Input %s" +#~ msgstr "ଫଳାଫଳ %s + ନିବà‡à¬¶ %s" + +#~ msgid "Output %s" +#~ msgstr "ଫଳାଫଳ %s" + +#~ msgid "Input %s" +#~ msgstr "ନିବà‡à¬¶ %s" + +#~ msgid "Stream successfully created\n" +#~ msgstr "ଧାରା ସଫଳତାର ସହିତ ନିରàମିତ ହà‹à¬‡à¬›à¬¿\n" + +#~ msgid "Stream errror: %s\n" +#~ msgstr "ଧାରା ତàରàଟି: %s\n" + +#~ msgid "Connection established.\n" +#~ msgstr "ସଂଯà‹à¬— ସàଥାପିତ ହà‹à¬‡à¬¸à¬¾à¬°à¬¿à¬›à¬¿à¥¤\n" + +#~ msgid "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Show this help\n" +#~ " --version Show version\n" +#~ "\n" +#~ " -v, --verbose Enable verbose operation\n" +#~ "\n" +#~ " -s, --server=SERVER The name of the server to connect " +#~ "to\n" +#~ " -d, --device=DEVICE The name of the sink to connect " +#~ "to\n" +#~ " -n, --client-name=NAME How to call this client on the " +#~ "server\n" +#~ " --stream-name=NAME How to call this stream on the " +#~ "server\n" +#~ " --volume=VOLUME Specify the initial (linear) " +#~ "volume in range 0...65536\n" +#~ " --channel-map=CHANNELMAP Set the channel map to the use\n" +#~ msgstr "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help à¬à¬¹à¬¿ ସହାàŸà¬¤à¬¾ ଦରàଶାନàତà\n" +#~ " --version ସଂସàକରଣ ଦରàଶାନàତà\n" +#~ "\n" +#~ " -v, --verbose verbose ପàରàŸà‹à¬—କà ସକàà¬°à¬¿àŸ à¬•à¬°à¬¨àତà\n" +#~ "\n" +#~ " -s, --server=SERVER ସଂଯà‹à¬— କରିବା ପାଇଠସରàà¬à¬°à¬° ନାମ\n" +#~ " -d, --device=DEVICE ସଂଯà‹à¬— କରିବା ପାଇଠସିଙàକର ନାମ\n" +#~ " -n, --client-name=NAME ସରàà¬à¬° à¬‰à¬ªà¬°à‡ à¬à¬¹à¬¿ ଗàରାହକଙàକà କିପରି ଡ଼ାକିବà‡\n" +#~ " --stream-name=NAME ସରàà¬à¬° à¬‰à¬ªà¬°à‡ à¬à¬¹à¬¿ ଧାରାକà କିପରି ଡ଼ାକିବà‡\n" +#~ " --volume=VOLUME ପàରାରମàà¬à¬¿à¬• (ସିଧା) ଆକାରକà ସà€à¬®à¬¾ " +#~ "0...65536 ମଧàà¬¯à¬°à‡ à¬‰à¬²àଲà‡à¬– କରନàତà\n" +#~ " --channel-map=CHANNELMAP ବààŸà¬¬à¬¹à¬¾à¬° ପାଇଠଚààŸà¬¾à¬¨à‡à¬² ମààŸà¬¾à¬ªà¬•à ସà‡à¬Ÿ କରନàତà\n" + +#~ msgid "" +#~ "paplay %s\n" +#~ "Compiled with libpulse %s\n" +#~ "Linked with libpulse %s\n" +#~ msgstr "" +#~ "paplay %s\n" +#~ "libpulse %s ସହିତ ସଂକଳିତ\n" +#~ "libpulse %s ସହିତ ସଂଯàକàତ\n" + +#~ msgid "Invalid channel map\n" +#~ msgstr "ଅବàˆà¬§ ଚààŸà¬¾à¬¨à‡à¬² ମààŸà¬¾à¬ª\n" + +#~ msgid "Failed to open file '%s'\n" +#~ msgstr "ଫାଇଲ '%s' କà ଖà‹à¬²à¬¿à¬¬à¬¾à¬°à‡ ବିଫଳ\n" + +#~ msgid "Channel map doesn't match file.\n" +#~ msgstr "ଚààŸà¬¾à¬¨à‡à¬² ମààŸà¬¾à¬ª ଫାଇଲ ସହିତ ମà‡à¬³ ଖାଉନାହିà¬à¥¤\n" + +#~ msgid "Using sample spec '%s'\n" +#~ msgstr "ନମàନା spec '%s' ବààŸà¬¬à¬¹à¬¾à¬° କରି\n" @@ -1,67 +1,25 @@ -# translation of pulseaudio.master-tx.po to Punjabi +# translation of pulseaudio.master-tx.pa.po to Punjabi # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Amanpreet Singh Alam <aalam@users.sf.net>, 2008. +# Jaswinder Singh <jsingh@redhat.com>, 2009. +# A S Alam <aalam@users.sf.net>, 2009. msgid "" msgstr "" -"Project-Id-Version: pulseaudio.master-tx\n" +"Project-Id-Version: pulseaudio.master-tx.pa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-21 23:02+0200\n" -"PO-Revision-Date: 2008-12-24 09:37+0530\n" -"Last-Translator: Amanpreet Singh Alam <aalam@users.sf.net>\n" -"Language-Team: Punjabi <punjabi-l10n@users.sf.net>\n" +"POT-Creation-Date: 2009-06-17 23:42+0200\n" +"PO-Revision-Date: 2009-06-06 07:38+0530\n" +"Last-Translator: A S Alam <aalam@users.sf.net>\n" +"Language-Team: American English <punjabi-users@lists.sf.net>\n" "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=2; plural=(n != 1)\n" -#: ../src/modules/alsa/alsa-util.c:532 -msgid "Analog Mono" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:540 -msgid "Analog Stereo" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:548 -msgid "Digital Stereo (IEC958)" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:556 -msgid "Digital Stereo (HDMI)" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:565 -msgid "Analog Surround 4.0" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:574 -msgid "Digital Surround 4.0 (IEC958/AC3)" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:584 -msgid "Analog Surround 4.1" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:594 -msgid "Analog Surround 5.0" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:604 -msgid "Analog Surround 5.1" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:614 -msgid "Digital Surround 5.1 (IEC958/AC3)" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:625 -msgid "Analog Surround 7.1" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:1646 +#: ../src/modules/alsa/alsa-util.c:1015 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -69,8 +27,10 @@ msgid "" "Most likely this is a bug in the ALSA driver '%s'. Please report this issue " "to the ALSA developers." msgstr "" +"snd_pcm_avail() ਤੋਂ ਇੱਕ ਮà©à©±à¨² ਮਿਲਿਆ ਹੈ, ਜੋ ਬਹà©à¨¤ ਵੱਡਾ ਹੈ: %lu ਬਾਈਟ (%lu ms)।\n" +"ਇਹ ALSA ਡਰਾਈਵਰ '%s' ਵਿਚਲਾ ਬੱਗ ਲੱਗਦਾ ਹੈ। ਇਸ ਮà©à©±à¨¦à©‡ ਦੀ ALSA ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਰਿਪੋਰਟ ਦਿਓ ਜੀ।" -#: ../src/modules/alsa/alsa-util.c:1687 +#: ../src/modules/alsa/alsa-util.c:1056 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -78,8 +38,10 @@ msgid "" "Most likely this is a bug in the ALSA driver '%s'. Please report this issue " "to the ALSA developers." msgstr "" +"snd_pcm_delay() ਤੋਂ ਇੱਕ ਮà©à©±à¨² ਮਿਲਿਆ ਹੈ, ਜੋ ਬਹà©à¨¤ ਵੱਡਾ ਹੈ: %li ਬਾਈਟ (%s%lu ms)।\n" +"ਇਹ ALSA ਡਰਾਈਵਰ '%s' ਵਿਚਲਾ ਬੱਗ ਲੱਗਦਾ ਹੈ। ਇਸ ਮà©à©±à¨¦à©‡ ਦੀ ALSA ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਰਿਪੋਰਟ ਦਿਓ ਜੀ।" -#: ../src/modules/alsa/alsa-util.c:1734 +#: ../src/modules/alsa/alsa-util.c:1103 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -87,181 +49,194 @@ msgid "" "Most likely this is a bug in the ALSA driver '%s'. Please report this issue " "to the ALSA developers." msgstr "" +"snd_pcm_mmap_begin() ਤੋਂ ਇੱਕ ਮà©à©±à¨² ਮਿਲਿਆ ਹੈ, ਜੋ ਬਹà©à¨¤ ਵੱਡਾ ਹੈ: %lu ਬਾਈਟ (%lu ms)।\n" +"ਇਹ ALSA ਡਰਾਈਵਰ '%s' ਵਿਚਲਾ ਬੱਗ ਲੱਗਦਾ ਹੈ। ਇਸ ਮà©à©±à¨¦à©‡ ਦੀ ALSA ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਰਿਪੋਰਟ ਦਿਓ ਜੀ।" -#: ../src/pulsecore/sink.c:2141 -#, fuzzy +#: ../src/modules/module-ladspa-sink.c:49 +msgid "Virtual LADSPA sink" +msgstr "" + +#: ../src/modules/module-ladspa-sink.c:53 +msgid "" +"sink_name=<name for the sink> sink_properties=<properties for the sink> " +"master=<name of sink to filter> format=<sample format> rate=<sample rate> " +"channels=<number of channels> channel_map=<channel map> plugin=<ladspa " +"plugin name> label=<ladspa plugin label> control=<comma seperated list of " +"input control values>" +msgstr "" + +#: ../src/pulsecore/sink.c:2394 msgid "Internal Audio" -msgstr "ਅੰਦਰੂਨੀ ਗਲਤੀ" +msgstr "ਅੰਦਰੂਨੀ ਆਡੀਓ" -#: ../src/pulsecore/sink.c:2147 +#: ../src/pulsecore/sink.c:2400 msgid "Modem" -msgstr "" +msgstr "ਮਾਡਮ" #: ../src/daemon/ltdl-bind-now.c:124 msgid "Failed to find original lt_dlopen loader." -msgstr "" +msgstr "ਅਸਲੀ lt_dlopen ਲੋਡਰ ਲੱà¨à¨£ ਵਿੱਚ ਫੇਲà©à¨¹ ਹੋਇਆ।" #: ../src/daemon/ltdl-bind-now.c:129 -#, fuzzy msgid "Failed to allocate new dl loader." -msgstr "ਸਾਊਂਡ ਫਾਇਲ ਖੋਲà©à¨¹à¨£ ਲਈ ਫੇਲà©à¨¹ ਹੈ।\n" +msgstr "ਨਵਾਂ dl ਲੋਡਰ ਦੇਣ ਲਈ ਫੇਲà©à¨¹à¥¤" #: ../src/daemon/ltdl-bind-now.c:142 msgid "Failed to add bind-now-loader." -msgstr "" +msgstr "ਬਾਈਂਡ-ਨਾਓ-ਲੋਡਰ ਜੋੜਨ ਵਿੱਚ ਫੇਲà©à¨¹ ਹੋਇਆ।" #: ../src/daemon/polkit.c:55 #, c-format msgid "Cannot connect to system bus: %s" -msgstr "" +msgstr "ਸਿਸਟਮ ਬੱਸ ਨਾਲ ਜà©à©œà¨¨ ਨਹੀਂ ਸਕਿਆ: %s" #: ../src/daemon/polkit.c:65 #, c-format msgid "Cannot get caller from PID: %s" -msgstr "" +msgstr "PID ਤੋਂ ਕਾਲਰ ਪà©à¨°à¨¾à¨ªà¨¤ ਨਹੀਂ ਕਰ ਸਕਿਆ: %s" #: ../src/daemon/polkit.c:77 msgid "Cannot set UID on caller object." -msgstr "" +msgstr "ਕਾਲਰ à¨à¨¬à¨œà©ˆà¨•à¨Ÿ ਤੇ UID ਸੈੱਟ ਨਹੀਂ ਕਰ ਸਕਿਆ।" #: ../src/daemon/polkit.c:82 msgid "Failed to get CK session." -msgstr "" +msgstr "CK ਸ਼ੈਸ਼ਨ ਪà©à¨°à¨¾à¨ªà¨¤ ਕਰਨ ਵਿੱਚ ਫੇਲ।" #: ../src/daemon/polkit.c:90 msgid "Cannot set UID on session object." -msgstr "" +msgstr "ਸ਼ੈਸ਼ਨ ਆਬਜੈਕਟ ਤੇ UID ਸੈੱਟ ਨਹੀਂ ਕਰ ਸਕਿਆ।" #: ../src/daemon/polkit.c:95 msgid "Cannot allocate PolKitAction." -msgstr "" +msgstr "PolKitAction ਨਹੀਂ ਦੇ ਸਕਿਆ।" #: ../src/daemon/polkit.c:100 msgid "Cannot set action_id" -msgstr "" +msgstr "action_id ਸੈੱਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" #: ../src/daemon/polkit.c:105 msgid "Cannot allocate PolKitContext." -msgstr "" +msgstr "PolKitContext ਜਾਰੀ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" #: ../src/daemon/polkit.c:110 #, c-format msgid "Cannot initialize PolKitContext: %s" -msgstr "" +msgstr "PolKitContext ਨੂੰ ਸ਼à©à¨°à©‚ ਨਹੀਂ ਕਰ ਸਕਿਆ: %s" #: ../src/daemon/polkit.c:119 #, c-format msgid "Could not determine whether caller is authorized: %s" -msgstr "" +msgstr "ਪਤਾ ਨਹੀਂ ਕਰ ਸਕਿਆ ਕਿ ਕੀ ਕਾਲਰ ਪਰਮਾਣਿਤ ਹੈ: %s" #: ../src/daemon/polkit.c:139 #, c-format msgid "Cannot obtain auth: %s" -msgstr "" +msgstr "ਪਰਮਾਣਕਿਤਾ ਨਹੀਂ ਲੈ ਸਕਦਾ: %s" #: ../src/daemon/polkit.c:148 #, c-format msgid "PolicyKit responded with '%s'" -msgstr "" +msgstr "PolicyKit ਦੇ ਜਵਾਬ ਵਜੋਂ '%s' ਮਿਲਿਆ ਹੈ" -#: ../src/daemon/main.c:138 +#: ../src/daemon/main.c:142 #, c-format msgid "Got signal %s." -msgstr "" +msgstr "%s ਸਿਗਨਲ ਮਿਲਿਆ ਹੈ।" -#: ../src/daemon/main.c:165 +#: ../src/daemon/main.c:169 msgid "Exiting." msgstr "ਬੰਦ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ।" -#: ../src/daemon/main.c:183 +#: ../src/daemon/main.c:187 #, c-format msgid "Failed to find user '%s'." -msgstr "" +msgstr "'%s' ਯੂਜ਼ਰ ਲੱà¨à¨£ ਵਿੱਚ ਫੇਲà©à¨¹ ਹੋਇਆ ਹੈ।" -#: ../src/daemon/main.c:188 +#: ../src/daemon/main.c:192 #, c-format msgid "Failed to find group '%s'." -msgstr "" +msgstr "'%s' ਗਰà©à©±à¨ª ਲੱà¨à¨£ ਵਿੱਚ ਫੇਲ ਹੋਇਆ ਹੈ।" -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:196 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." -msgstr "" +msgstr "ਯੂਜ਼ਰ '%s' (UID %lu) ਅਤੇ ਗਰà©à©±à¨ª '%s' (GID %lu) ਲੱà¨à©‡ ਹਨ।" -#: ../src/daemon/main.c:197 +#: ../src/daemon/main.c:201 #, c-format msgid "GID of user '%s' and of group '%s' don't match." -msgstr "" +msgstr "ਯੂਜ਼ੂ '%s' ਅਤੇ ਗਰà©à©±à¨ª '%s' ਦਾ GID ਮੇਲ ਨਹੀਂ ਖਾਂਦੇ।" -#: ../src/daemon/main.c:202 +#: ../src/daemon/main.c:206 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." -msgstr "" +msgstr "ਯੂਜ਼ੂ '%s' ਦੀ ਘਰ ਡਾਇਰੈਕਟਰੀ '%s' ਨਹੀਂ, ਅਣਡਿੱਠਾ ਕਰ ਰਿਹਾ।" -#: ../src/daemon/main.c:205 ../src/daemon/main.c:210 +#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 #, c-format msgid "Failed to create '%s': %s" -msgstr "" +msgstr "'%s' ਬਣਾਉਣ ਵਿੱਚ ਫੇਲà©à¨¹: %s" -#: ../src/daemon/main.c:217 +#: ../src/daemon/main.c:221 #, c-format msgid "Failed to change group list: %s" -msgstr "" +msgstr "ਗਰà©à©±à¨ª ਲਿਸਟ ਬਦਲਣ ਲਈ ਫੇਲà©à¨¹: %s" -#: ../src/daemon/main.c:233 +#: ../src/daemon/main.c:237 #, c-format msgid "Failed to change GID: %s" -msgstr "" +msgstr "GID ਬਦਲਣ ਲਈ ਫੇਲà©à¨¹: %s" -#: ../src/daemon/main.c:249 +#: ../src/daemon/main.c:253 #, c-format msgid "Failed to change UID: %s" -msgstr "" +msgstr "UID ਬਦਲਣ ਲਈ ਫੇਲà©à¨¹: %s" -#: ../src/daemon/main.c:263 +#: ../src/daemon/main.c:267 msgid "Successfully dropped root privileges." -msgstr "" +msgstr "ਰੂਟ ਅਧਿਕਾਰ ਸਫਲਤਾਪੂਰਕ ਹਟਾਠਗà¨à¥¤" -#: ../src/daemon/main.c:271 +#: ../src/daemon/main.c:275 msgid "System wide mode unsupported on this platform." -msgstr "" +msgstr "ਇਸ ਪਲੇਟਫਾਰਮ ਤੇ ਸਿਸਟਮ ਸੰਬੰਧੀ ਮੋਡ ਨੂੰ ਸਹਿਯੋਗ ਨਹੀਂ ਹੈ।" -#: ../src/daemon/main.c:289 +#: ../src/daemon/main.c:293 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" -msgstr "" +msgstr "setrlimit(%s, (%u, %u)) ਫੇਲà©à¨¹ ਹੋਇਆ: %s" -#: ../src/daemon/main.c:477 +#: ../src/daemon/main.c:481 msgid "Failed to parse command line." -msgstr "" +msgstr "ਕਮਾਂਡ ਲਾਈਨ ਪਾਰਸ ਕਰਨ ਵਿੱਚ ਫੇਲà©à¨¹à¥¤" -#: ../src/daemon/main.c:501 +#: ../src/daemon/main.c:505 #, c-format msgid "We're in the group '%s', allowing high-priority scheduling." -msgstr "" +msgstr "ਅਸੀਂ ਗਰà©à©±à¨ª '%s' ਵਿੱਚ ਹਾਂ, ਜਿਸ ਨੂੰ ਵਧੇਰੇ-ਤਰਜੀਹ ਤਹਿ ਕੀਤਾ ਗਿਆ ਹੈ।" -#: ../src/daemon/main.c:508 +#: ../src/daemon/main.c:512 #, c-format msgid "We're in the group '%s', allowing real-time scheduling." -msgstr "" +msgstr "ਅਸੀਂ ਗਰà©à©±à¨ª '%s' ਵਿੱਚ ਹਾਂ, ਜਿਸ ਨੂੰ ਰੀਅਲ-ਟਾਈਮ ਤਹਿ ਕੀਤਾ ਗਿਆ ਹੈ।" -#: ../src/daemon/main.c:516 +#: ../src/daemon/main.c:520 msgid "PolicyKit grants us acquire-high-priority privilege." -msgstr "" +msgstr "PolicyKit ਸਾਨੂੰ ਵਧੇਰੇ-ਤਰਜੀਹ-ਪà©à¨°à¨¾à¨ªà¨¤à©€ ਅਧਿਕਾਰ ਦਿੰਦੀ ਹੈ।" -#: ../src/daemon/main.c:519 +#: ../src/daemon/main.c:523 msgid "PolicyKit refuses acquire-high-priority privilege." -msgstr "" +msgstr "PolicyKit ਵਧੇਰੇ-ਤਰਜੀਹ-ਪà©à¨°à¨¾à¨ªà¨¤à©€ ਅਧਿਕਾਰ ਹਟਾਉਂਦੀ ਹੈ।" -#: ../src/daemon/main.c:524 +#: ../src/daemon/main.c:528 msgid "PolicyKit grants us acquire-real-time privilege." -msgstr "" +msgstr "PolicyKit ਸਾਨੂੰ ਰੀਅਲ-ਟਾਈਮ-ਪà©à¨°à¨¾à¨ªà¨¤à©€ ਅਧਿਕਾਰ ਦਿੰਦੀ ਹੈ।" -#: ../src/daemon/main.c:527 +#: ../src/daemon/main.c:531 msgid "PolicyKit refuses acquire-real-time privilege." -msgstr "" +msgstr "PolicyKit ਰੀਅਲ-ਟਾਈਮ-ਪà©à¨°à¨¾à¨ªà¨¤à©€ ਅਧਿਕਾਰ ਹਟਾਉਂਦੀ ਹੈ।" -#: ../src/daemon/main.c:556 +#: ../src/daemon/main.c:560 #, c-format msgid "" "Called SUID root and real-time and/or high-priority scheduling was requested " @@ -273,233 +248,251 @@ msgid "" "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:581 +#: ../src/daemon/main.c:585 msgid "" "High-priority scheduling enabled in configuration but not allowed by policy." -msgstr "" +msgstr "ਸੰਰਚਨਾ ਵਿੱਚ ਵਧੇਰੇ-ਤਰਜੀਹ ਯੋਗ ਕੀਤੀ ਗਈ ਹੈ, ਪਰ ਪਾਲਸੀ ਵਲੋਂ ਮਨਜ਼ੂਰ ਨਹੀਂ ਕੀਤੀ।" -#: ../src/daemon/main.c:610 +#: ../src/daemon/main.c:614 msgid "Successfully increased RLIMIT_RTPRIO" -msgstr "" +msgstr "RLIMIT_RTPRIO ਨੂੰ ਸਫਲਤਾਪੂਰਕ ਵਧਾਇਆ ਗਿਆ" -#: ../src/daemon/main.c:613 +#: ../src/daemon/main.c:617 #, c-format msgid "RLIMIT_RTPRIO failed: %s" -msgstr "RLIMIT_RTPRIO failed: %s" +msgstr "RLIMIT_RTPRIO ਫੇਲà©à¨¹: %s" -#: ../src/daemon/main.c:620 +#: ../src/daemon/main.c:624 msgid "Giving up CAP_NICE" -msgstr "" +msgstr "CAP_NICE ਨੂੰ ਹਟਾ ਰਿਹਾ ਹੈ" -#: ../src/daemon/main.c:627 +#: ../src/daemon/main.c:631 msgid "" "Real-time scheduling enabled in configuration but not allowed by policy." -msgstr "" +msgstr "ਰੀਅਲ-ਟਾਈਮ ਤਹਿ ਨੂੰ ਸੰਰਚਨਾ ਵਿੱਚ ਯੋਗ ਕਰਨ ਨਾਲ, ਪਰ ਪਾਲਸੀ ਵਲੋਂ ਮਨਜੂਰ ਨਹੀਂ ਕੀਤੀ।" -#: ../src/daemon/main.c:688 +#: ../src/daemon/main.c:692 msgid "Daemon not running" -msgstr "" +msgstr "ਡੈਮਨ ਚੱਲ ਨਹੀਂ ਰਿਹਾ" -#: ../src/daemon/main.c:690 +#: ../src/daemon/main.c:694 #, c-format msgid "Daemon running as PID %u" -msgstr "" +msgstr "ਡੈਮਨ PID %u ਤੌਰ ਤੇ ਚੱਲ ਰਿਹਾ ਹੈ" -#: ../src/daemon/main.c:700 +#: ../src/daemon/main.c:704 #, c-format msgid "Failed to kill daemon: %s" -msgstr "" +msgstr "ਡੈਮਨ ਖਤਮ ਕਰਨ ਵਿੱਚ ਫੇਲà©à¨¹: %s" -#: ../src/daemon/main.c:718 +#: ../src/daemon/main.c:722 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." -msgstr "" +msgstr "ਇਹ ਪਰੋਗਰਾਮ ਰੂਟ ਦੇ ਤੌਰ ਤੇ ਚਲਾਉਣ ਲਈ ਨਹੀਂ ਹੈ (ਜਦੋਂ ਤੱਕ --system ਦਿੱਤਾ ਨਹੀਂ ਜਾਂਦਾ)।" -#: ../src/daemon/main.c:720 -#, fuzzy +#: ../src/daemon/main.c:724 msgid "Root privileges required." msgstr "ਰੂਟ ਅਧਿਕਾਰਾਂ ਦੀ ਲੋੜ ਹੈ।" -#: ../src/daemon/main.c:725 +#: ../src/daemon/main.c:729 msgid "--start not supported for system instances." -msgstr "" +msgstr "--start ਨੂੰ ਸਿਸਟਮ ਮੌਕਿਆਂ ਲਈ ਸਹਿਯੋਗ ਨਹੀਂ ਹੈ।" -#: ../src/daemon/main.c:730 +#: ../src/daemon/main.c:734 msgid "Running in system mode, but --disallow-exit not set!" -msgstr "" +msgstr "ਸਿਸਟਮ ਮੋਡ ਵਿੱਚ ਚੱਲ ਰਿਹਾ ਹੈ, ਪਰ --disallow-exit ਸੈੱਟ ਨਹੀਂ ਕੀਤਾ!" -#: ../src/daemon/main.c:733 +#: ../src/daemon/main.c:737 msgid "Running in system mode, but --disallow-module-loading not set!" -msgstr "" +msgstr "ਸਿਸਟਮ ਮੋਡ ਵਿੱਚ ਚੱਲ ਰਿਹਾ ਹੈ, ਪਰ --disallow-module-loading ਸੈੱਟ ਨਹੀਂ ਕੀਤਾ!" -#: ../src/daemon/main.c:736 +#: ../src/daemon/main.c:740 msgid "Running in system mode, forcibly disabling SHM mode!" -msgstr "" +msgstr "ਸਿਸਟਮ ਮੋਡ ਵਿੱਚ ਚੱਲ ਰਿਹਾ ਹੈ, ਜ਼ਬਰਦਸਤੀ SHM ਮੋਡ ਨੂੰ ਅਯੋਗ ਕਰ ਰਿਹਾ ਹੈ!" -#: ../src/daemon/main.c:741 +#: ../src/daemon/main.c:745 msgid "Running in system mode, forcibly disabling exit idle time!" -msgstr "" +msgstr "ਸਿਸਟਮ ਮੋਡ ਵਿੱਚ ਚੱਲ ਰਿਹਾ ਹੈ, ਜ਼ਬਰਦਸਤੀ idle ਟਾਈਲ ਬੰਦ ਨੂੰ ਅਯੋਗ ਕਰ ਰਿਹਾ ਹੈ!" -#: ../src/daemon/main.c:768 +#: ../src/daemon/main.c:772 msgid "Failed to acquire stdio." -msgstr "" +msgstr "ਸਟੂਡੀਓ ਪà©à¨°à¨¾à¨ªà¨¤ ਕਰਨ ਵਿੱਚ ਫੇਲà©à¨¹à¥¤" -#: ../src/daemon/main.c:774 +#: ../src/daemon/main.c:778 #, c-format msgid "pipe failed: %s" -msgstr "pipe failed: %s" +msgstr "pipe ਫੇਲà©à¨¹: %s" -#: ../src/daemon/main.c:779 +#: ../src/daemon/main.c:783 #, c-format msgid "fork() failed: %s" msgstr "fork() ਫੇਲà©à¨¹ ਹੈ: %s" -#: ../src/daemon/main.c:793 +#: ../src/daemon/main.c:797 #, c-format msgid "read() failed: %s" msgstr "read() ਫੇਲà©à¨¹ ਹੈ: %s" -#: ../src/daemon/main.c:799 +#: ../src/daemon/main.c:803 msgid "Daemon startup failed." -msgstr "" +msgstr "ਡੈਮਨ ਸ਼à©à¨°à©‚ਆਤੀ ਫੇਲà©à¨¹ ਹੋਈ।" -#: ../src/daemon/main.c:801 +#: ../src/daemon/main.c:805 msgid "Daemon startup successful." -msgstr "" +msgstr "ਡੈਮਨ ਸ਼à©à¨°à©‚ਆਤੀ ਸਫ਼ਲ ਹੋਈ।" -#: ../src/daemon/main.c:871 +#: ../src/daemon/main.c:875 #, c-format msgid "This is PulseAudio %s" -msgstr "" +msgstr "ਇਹ ਪਲਸਆਡੀਓ %s ਹੈ" -#: ../src/daemon/main.c:872 +#: ../src/daemon/main.c:876 #, c-format msgid "Compilation host: %s" -msgstr "" +msgstr "ਕੰਪਾਈਲੇਸ਼ਨ ਹੋਸਟ: %s" -#: ../src/daemon/main.c:873 +#: ../src/daemon/main.c:877 #, c-format msgid "Compilation CFLAGS: %s" -msgstr "" +msgstr "ਕੰਪਾਈਲੇਸ਼ਨ CFLAGS: %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:880 #, c-format msgid "Running on host: %s" -msgstr "" +msgstr "ਹੋਸਟ ਤੇ ਚੱਲ ਰਿਹਾ ਹੈ: %s" -#: ../src/daemon/main.c:879 +#: ../src/daemon/main.c:883 #, c-format msgid "Found %u CPUs." -msgstr "" +msgstr "%u CPUs ਲੱà¨à©‡à¥¤" -#: ../src/daemon/main.c:881 +#: ../src/daemon/main.c:885 #, c-format msgid "Page size is %lu bytes" -msgstr "" +msgstr "ਪੇਜ਼ ਸਾਈਜ਼ %lu ਬਾਈਟ ਹੈ" -#: ../src/daemon/main.c:884 +#: ../src/daemon/main.c:888 msgid "Compiled with Valgrind support: yes" -msgstr "" +msgstr "Valgrind ਸਹਿਯੋਗ ਨਾਲ ਕੰਪਾਈਲ: ਹਾਂ" -#: ../src/daemon/main.c:886 +#: ../src/daemon/main.c:890 msgid "Compiled with Valgrind support: no" -msgstr "" +msgstr "Valgrind ਸਹਿਯੋਗ ਨਾਲ ਕੰਪਾਈਲ: ਨਹੀਂ" -#: ../src/daemon/main.c:889 +#: ../src/daemon/main.c:893 #, c-format msgid "Running in valgrind mode: %s" -msgstr "" +msgstr "Valgrind ਮੋਡ ਵਿੱਚ ਚੱਲ ਰਿਹਾ ਹੈ: %s" -#: ../src/daemon/main.c:892 +#: ../src/daemon/main.c:896 msgid "Optimized build: yes" -msgstr "" +msgstr "ਓਪਟੀਮਾਈਜ਼ਡ ਬਿਲਡ: ਹਾਂ" -#: ../src/daemon/main.c:894 +#: ../src/daemon/main.c:898 msgid "Optimized build: no" -msgstr "" +msgstr "ਓਪਟੀਮਾਈਜ਼ਡ ਬਿਲਡ: ਨਹੀਂ" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:902 msgid "NDEBUG defined, all asserts disabled." -msgstr "" +msgstr "NDEBUG ਪਰਿà¨à¨¾à¨¶à¨¤, ਸਠasserts ਅਯੋਗ ਹਨ।" -#: ../src/daemon/main.c:900 +#: ../src/daemon/main.c:904 msgid "FASTPATH defined, only fast path asserts disabled." -msgstr "" +msgstr "FASTPATH ਪਰਿà¨à¨¾à¨¶à¨¤, ਸਿਰਫ ਫਾਸਟ ਪਾਥ asserts ਅਯੋਗ ਹਨ।" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:906 msgid "All asserts enabled." -msgstr "" +msgstr "ਸਠasserts ਯੋਗ ਕੀਤੇ ਹਨ।" -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:910 msgid "Failed to get machine ID" -msgstr "" +msgstr "ਮਸ਼ੀਨ ID ਪà©à¨°à¨¾à¨ªà¨¤ ਕਰਨ ਵਿੱਚ ਫੇਲà©à¨¹" -#: ../src/daemon/main.c:909 +#: ../src/daemon/main.c:913 #, c-format msgid "Machine ID is %s." -msgstr "" +msgstr "ਮਸ਼ੀਨ ID %s ਹੈ।" -#: ../src/daemon/main.c:913 -#, c-format +#: ../src/daemon/main.c:917 +#, fuzzy, c-format msgid "Session ID is %s." -msgstr "" +msgstr "ਮਸ਼ੀਨ ID %s ਹੈ।" -#: ../src/daemon/main.c:919 +#: ../src/daemon/main.c:923 #, c-format msgid "Using runtime directory %s." -msgstr "" +msgstr "ਰਨਟਾਈਮ ਡਾਇਰੈਕਟਰੀ %s ਦੀ ਵਰਤੋਂ।" -#: ../src/daemon/main.c:924 +#: ../src/daemon/main.c:928 #, c-format msgid "Using state directory %s." -msgstr "" +msgstr "ਸਟੇਟ ਡਾਇਰੈਕਟਰੀ %s ਦੀ ਵਰਤੋਂ।" -#: ../src/daemon/main.c:927 +#: ../src/daemon/main.c:931 #, c-format msgid "Running in system mode: %s" +msgstr "ਸਿਸਟਮ ਮੋਡ ਵਿੱਚ ਚੱਲ ਰਿਹਾ ਹੈ: %s" + +#: ../src/daemon/main.c:934 +msgid "" +"OK, so you are running PA in system mode. Please note that you most likely " +"shouldn't be doing that.\n" +"If you do it nonetheless then it's your own fault if things don't work as " +"expected.\n" +"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " +"explanation why system mode is usually a bad idea." msgstr "" -#: ../src/daemon/main.c:942 +#: ../src/daemon/main.c:951 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() ਫੇਲà©à¨¹ ਹੈ।" -#: ../src/daemon/main.c:954 +#: ../src/daemon/main.c:961 msgid "Fresh high-resolution timers available! Bon appetit!" -msgstr "" +msgstr "ਤਾਜ਼ੀ ਹਾਈ-ਰੈਜ਼ੋਲੂਸ਼ਨ ਟਾਈਮਰ ਉਪਲੱਬਧ ਹੈ! Bon appetit!" -#: ../src/daemon/main.c:956 +#: ../src/daemon/main.c:963 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" msgstr "" +"ਮਿੱਤਰਾ, ਤੇਰਾ ਕਰਨਲ ਪà©à¨°à¨¾à¨£à¨¾ ਹੈ! ਚੀਫ ਦੀ ਅੱਜ ਦੀ ਸਿਫਾਰਸ਼ ਹਾਈ-ਰੈਜ਼ੋਲੂਸ਼ਨ ਟਾਈਮਰ ਯੋਗ ਨਾਲ ਲੀਨਕਸ ਹੈ!" -#: ../src/daemon/main.c:970 +#: ../src/daemon/main.c:988 msgid "pa_core_new() failed." msgstr "pa_core_new() ਫੇਲà©à¨¹ ਹੈ।" -#: ../src/daemon/main.c:1032 +#: ../src/daemon/main.c:1050 msgid "Failed to initialize daemon." -msgstr "" +msgstr "ਡੈਮਨ ਸ਼à©à¨°à©‚ ਕਰਨ ਵਿੱਚ ਫੇਲà©à¨¹à¥¤" -#: ../src/daemon/main.c:1037 +#: ../src/daemon/main.c:1055 msgid "Daemon startup without any loaded modules, refusing to work." -msgstr "" +msgstr "ਡੈਮਨ ਸ਼à©à¨°à©‚ਆਤੀ ਬਿਨਾਂ ਕਿਸੇ ਲੋਡ ਕੀਤੇ ਮੈਡਿਊਲ, ਕੰਮ ਕਰਨ ਤੋਂ ਰੋਕ ਰਿਹਾ ਹੈ।" -#: ../src/daemon/main.c:1054 +#: ../src/daemon/main.c:1072 msgid "Daemon startup complete." -msgstr "" +msgstr "ਡੈਮਨ ਸ਼à©à¨°à©‚ਆਤੀ ਮà©à¨•à©°à¨®à¨²à¥¤" -#: ../src/daemon/main.c:1060 +#: ../src/daemon/main.c:1078 msgid "Daemon shutdown initiated." -msgstr "" +msgstr "ਡੈਮਨ ਬੰਦ ਕਰਨਾ ਸ਼à©à¨°à©‚ ਹੋ ਗਿਆ।" -#: ../src/daemon/main.c:1082 +#: ../src/daemon/main.c:1100 msgid "Daemon terminated." -msgstr "" +msgstr "ਡੈਮਨ ਬੰਦ ਹੋ ਗਿਆ।" -#: ../src/daemon/cmdline.c:121 +#: ../src/daemon/cmdline.c:115 #, c-format msgid "" "%s [options]\n" @@ -572,69 +565,140 @@ msgid "" "\n" " -n Don't load default script file\n" msgstr "" +"%s [options]\n" +"\n" +"COMMANDS:\n" +" -h, --help Show this help\n" +" --version Show version\n" +" --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" +" -k --kill Kill a running daemon\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" +" with elevated RLIMIT_NICE)\n" +" --realtime[=BOOL] Try to enable realtime scheduling\n" +" (only available as root, when SUID " +"or\n" +" with elevated RLIMIT_RTPRIO)\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" +" time passed\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" +" 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-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" +" objects (plugins)\n" +" --resample-method=METHOD Use the specified resampling method\n" +" (See --dump-resample-methods for\n" +" possible values)\n" +" --use-pid-file[=BOOL] Create a PID file\n" +" --no-cpu-limit[=BOOL] Do not install CPU load limiter on\n" +" platforms that support it.\n" +" --disable-shm[=BOOL] Disable shared memory support.\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" +"\n" +" -n Don't load default script file\n" -#: ../src/daemon/cmdline.c:252 +#: ../src/daemon/cmdline.c:247 msgid "--daemonize expects boolean argument" -msgstr "" +msgstr "--daemonize ਨੂੰ ਬà©à¨²à©€à¨…ਨ ਆਰਗੂਮੈਂਟ ਦੀ ਲੋੜ ਹੈ" -#: ../src/daemon/cmdline.c:259 +#: ../src/daemon/cmdline.c:254 msgid "--fail expects boolean argument" -msgstr "" +msgstr "--fail ਨੂੰ ਬà©à¨²à©€à¨…ਨ ਆਰਗੂਮੈਂਟ ਦੀ ਲੋੜ ਹੈ" -#: ../src/daemon/cmdline.c:269 +#: ../src/daemon/cmdline.c:264 msgid "" "--log-level expects log level argument (either numeric in range 0..4 or one " "of debug, info, notice, warn, error)." msgstr "" +"--log-level ਨੂੰ ਲਾਗ ਲੈਵਲ ਆਰਗੂਮੈਂਟ ਦੀ ਲੋੜ ਹੈ (ਜਾਂ ਤਾਂ ਅੰਕੀ ਰੇਂਜ 0..4 ਜਾਂ debug, info, " +"notice, warn, error ਵਿੱਚੋਂ ਇੱਕ)।" -#: ../src/daemon/cmdline.c:281 +#: ../src/daemon/cmdline.c:276 msgid "--high-priority expects boolean argument" -msgstr "" +msgstr "--high-priority ਨੂੰ ਬà©à¨²à©€à¨…ਨ ਆਰਗੂਮੈਂਟ ਦੀ ਲੋੜ ਹੈ" -#: ../src/daemon/cmdline.c:288 +#: ../src/daemon/cmdline.c:283 msgid "--realtime expects boolean argument" -msgstr "" +msgstr "--realtime ਨੂੰ ਬà©à¨²à©€à¨…ਨ ਆਰਗੂਮੈਂਟ ਦੀ ਲੋੜ ਹੈ" -#: ../src/daemon/cmdline.c:295 +#: ../src/daemon/cmdline.c:290 msgid "--disallow-module-loading expects boolean argument" -msgstr "" +msgstr "--disallow-module-loading ਨੂੰ ਬà©à¨²à©€à¨…ਨ ਆਰਗੂਮੈਂਟ ਦੀ ਲੋੜ ਹੈ" -#: ../src/daemon/cmdline.c:302 +#: ../src/daemon/cmdline.c:297 msgid "--disallow-exit expects boolean argument" -msgstr "" +msgstr "--disallow-exit ਨੂੰ ਬà©à¨²à©€à¨…ਨ ਆਰਗੂਮੈਂਟ ਦੀ ਲੋੜ ਹੈ" -#: ../src/daemon/cmdline.c:309 +#: ../src/daemon/cmdline.c:304 msgid "--use-pid-file expects boolean argument" -msgstr "" +msgstr "--use-pid-file ਨੂੰ ਬà©à¨²à©€à¨…ਨ ਆਰਗੂਮੈਂਟ ਦੀ ਲੋੜ ਹੈ" -#: ../src/daemon/cmdline.c:326 +#: ../src/daemon/cmdline.c:321 msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." -msgstr "" +msgstr "ਗਲਤ ਲਾਗ ਟਾਰਗੇਟ: 'syslog', 'stderr' ਜਾਂ 'auto' ਵਰਤੋਂ।" -#: ../src/daemon/cmdline.c:333 +#: ../src/daemon/cmdline.c:328 msgid "--log-time expects boolean argument" -msgstr "" +msgstr "--log-time ਨੂੰ ਬà©à¨²à©€à¨…ਨ ਆਰਗੂਮੈਂਟ ਦੀ ਲੋੜ ਹੈ" -#: ../src/daemon/cmdline.c:340 +#: ../src/daemon/cmdline.c:335 msgid "--log-meta expects boolean argument" -msgstr "" +msgstr "--log-meta ਨੂੰ ਬà©à¨²à©€à¨…ਨ ਆਰਗੂਮੈਂਟ ਦੀ ਲੋੜ ਹੈ" -#: ../src/daemon/cmdline.c:359 +#: ../src/daemon/cmdline.c:354 #, c-format msgid "Invalid resample method '%s'." -msgstr "" +msgstr "ਅਢà©à©±à¨•à¨µà¨¾à¨‚ ਰੀਸੈਂਪਲ ਢੰਗ '%s'।" -#: ../src/daemon/cmdline.c:366 +#: ../src/daemon/cmdline.c:361 msgid "--system expects boolean argument" -msgstr "" +msgstr "--system ਨੂੰ ਬà©à¨²à©€à¨…ਨ ਆਰਗੂਮੈਂਟ ਦੀ ਲੋੜ ਹੈ" -#: ../src/daemon/cmdline.c:373 +#: ../src/daemon/cmdline.c:368 msgid "--no-cpu-limit expects boolean argument" -msgstr "" +msgstr "--no-cpu-limit ਨੂੰ ਬà©à¨²à©€à¨…ਨ ਆਰਗੂਮੈਂਟ ਦੀ ਲੋੜ ਹੈ" -#: ../src/daemon/cmdline.c:380 +#: ../src/daemon/cmdline.c:375 msgid "--disable-shm expects boolean argument" -msgstr "" +msgstr "--disable-shm ਨੂੰ ਬà©à¨²à©€à¨…ਨ ਆਰਗੂਮੈਂਟ ਦੀ ਲੋੜ ਹੈ" #: ../src/daemon/dumpmodules.c:60 #, c-format @@ -644,7 +708,7 @@ msgstr "ਨਾਂ: %s\n" #: ../src/daemon/dumpmodules.c:63 #, c-format msgid "No module information available\n" -msgstr "" +msgstr "ਕੋਈ ਮੋਡੀਊਲ ਜਾਣਕਾਰੀ ਉਪਲੱਬਧ ਨਹੀਂ\n" #: ../src/daemon/dumpmodules.c:66 #, c-format @@ -669,356 +733,361 @@ msgstr "ਵਰਤੋਂ: %s\n" #: ../src/daemon/dumpmodules.c:73 #, c-format msgid "Load Once: %s\n" +msgstr "ਇੱਕ ਵਾਰ ਲੋਡ ਕਰੋ: %s\n" + +#: ../src/daemon/dumpmodules.c:75 +#, c-format +msgid "DEPRECATION WARNING: %s\n" msgstr "" -#: ../src/daemon/dumpmodules.c:77 +#: ../src/daemon/dumpmodules.c:79 #, c-format msgid "Path: %s\n" msgstr "ਪਾਥ: %s\n" -#: ../src/daemon/daemon-conf.c:215 +#: ../src/daemon/daemon-conf.c:216 #, c-format msgid "[%s:%u] Invalid log target '%s'." -msgstr "" +msgstr "[%s:%u] ਗਲਤ ਲਾਗ ਟਾਰਗੇਟ '%s'।" -#: ../src/daemon/daemon-conf.c:231 +#: ../src/daemon/daemon-conf.c:232 #, c-format msgid "[%s:%u] Invalid log level '%s'." -msgstr "" +msgstr "[%s:%u] ਗਲਤੀ ਲਾਗ ਲੈਵਲ '%s'।" -#: ../src/daemon/daemon-conf.c:247 +#: ../src/daemon/daemon-conf.c:248 #, c-format msgid "[%s:%u] Invalid resample method '%s'." -msgstr "" +msgstr "[%s:%u] ਅਢà©à©±à¨•à¨µà©€à¨‚ ਰੀਸੈਂਪਲ ਢੰਗ '%s'।" -#: ../src/daemon/daemon-conf.c:270 +#: ../src/daemon/daemon-conf.c:271 #, c-format msgid "[%s:%u] Invalid rlimit '%s'." -msgstr "" +msgstr "[%s:%u] ਅਢà©à©±à¨•à¨µà©€à¨‚ rlimit '%s'।" -#: ../src/daemon/daemon-conf.c:277 +#: ../src/daemon/daemon-conf.c:278 #, c-format msgid "[%s:%u] rlimit not supported on this platform." -msgstr "" +msgstr "[%s:%u] rlimit ਨੂੰ ਇਸ ਪਲੇਟਫਾਰਮ ਤੇ ਸਹਿਯੋਗ ਨਹੀਂ ਹੈ।" -#: ../src/daemon/daemon-conf.c:293 +#: ../src/daemon/daemon-conf.c:294 #, c-format msgid "[%s:%u] Invalid sample format '%s'." -msgstr "" +msgstr "[%s:%u] ਅਢà©à©±à¨•à¨µà¨¾à¨‚ ਸੈਂਪਲ ਫਾਰਮੈਟ '%s'।" -#: ../src/daemon/daemon-conf.c:311 +#: ../src/daemon/daemon-conf.c:312 #, c-format msgid "[%s:%u] Invalid sample rate '%s'." -msgstr "" +msgstr "[%s:%u] ਅਢà©à©±à¨•à¨µà¨¾à¨‚ ਸੈਂਪਲ ਰੇਟ '%s'।" -#: ../src/daemon/daemon-conf.c:335 +#: ../src/daemon/daemon-conf.c:336 #, c-format msgid "[%s:%u] Invalid sample channels '%s'." -msgstr "" +msgstr "[%s:%u] ਅਢà©à©±à¨•à¨µà¨¾à¨‚ ਸੈਂਪਲ ਚੈਨਲ '%s'।" -#: ../src/daemon/daemon-conf.c:353 -#, fuzzy, c-format +#: ../src/daemon/daemon-conf.c:354 +#, c-format msgid "[%s:%u] Invalid channel map '%s'." -msgstr "ਗਲਤ ਚੈਨਲ ਮੈਪ\n" +msgstr "[%s:%u] ਅਢà©à©±à¨•à¨µà¨¾à¨‚ ਚੈਨਲ ਮੈਪ '%s'।" -#: ../src/daemon/daemon-conf.c:371 +#: ../src/daemon/daemon-conf.c:372 #, c-format msgid "[%s:%u] Invalid number of fragments '%s'." -msgstr "" +msgstr "[%s:%u] ਫਰੈਗਮੈਂਟਾਂ ਦਾ ਅਢà©à©±à¨•à¨µà¨¾à¨‚ ਨੰਬਰ '%s'।" -#: ../src/daemon/daemon-conf.c:389 +#: ../src/daemon/daemon-conf.c:390 #, c-format msgid "[%s:%u] Invalid fragment size '%s'." -msgstr "" +msgstr "[%s:%u] ਅਢà©à©±à¨•à¨µà¨¾à¨‚ ਫਰੈਗਮੈਂਟ ਅਕਾਰ '%s'।" -#: ../src/daemon/daemon-conf.c:407 +#: ../src/daemon/daemon-conf.c:408 #, c-format msgid "[%s:%u] Invalid nice level '%s'." -msgstr "" +msgstr "[%s:%u] ਅਢà©à©±à¨•à¨µà¨¾à¨‚ nice ਲੈਵਲ '%s'।" -#: ../src/daemon/daemon-conf.c:522 +#: ../src/daemon/daemon-conf.c:524 #, c-format msgid "Failed to open configuration file: %s" -msgstr "" +msgstr "ਸੰਰਚਨਾ ਫਾਇਲ ਖੋਲà©à¨¹à¨£ ਵਿੱਚ ਫੇਲà©à¨¹: %s" -#: ../src/daemon/daemon-conf.c:538 +#: ../src/daemon/daemon-conf.c:540 msgid "" "The specified default channel map has a different number of channels than " "the specified default number of channels." -msgstr "" +msgstr "ਦਿੱਤੇ ਡਿਫਾਲਟ ਚੈਨਲ ਮੈਪ ਦੀ ਦਿੱਤੇਤ ਚੈਨਲ ਗਿਣਤੀ ਨਾਲੋਂ ਇੱਕ ਵੱਖਰੀ ਚੈਨਲ ਗਿਣਤੀ ਹੈ।" #: ../src/daemon/daemon-conf.c:616 #, c-format msgid "### Read from configuration file: %s ###\n" -msgstr "" +msgstr "### ਸੰਰਚਨਾ ਫਾਇਲ ਵਿੱਚੋਂ ਪੜਿਆ: %s ###\n" #: ../src/daemon/caps.c:63 msgid "Dropping root privileges." -msgstr "" +msgstr "ਰੂਟ ਅਧਿਕਾਰ ਹਟਾ ਰਿਹਾ ਹੈ।" #: ../src/daemon/caps.c:103 msgid "Limited capabilities successfully to CAP_SYS_NICE." -msgstr "" +msgstr "CAP_SYS_NICE ਨੂੰ ਸਫਲਤਾਪੂਰਕ ਸੀਮਿਤ ਸਮੱਰਥਾ।" #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" -msgstr "" +msgstr "ਪਲਸਆਡੀਓ ਸਾਊਂਡ ਸਿਸਟਮ" #: ../src/daemon/pulseaudio.desktop.in.h:2 msgid "Start the PulseAudio Sound System" -msgstr "" +msgstr "ਪਲਸਆਡੀਓ ਸਾਊਂਡ ਸਿਸਟਮ ਚਲਾਓ" #: ../src/daemon/org.pulseaudio.policy.in.h:1 msgid "" "High-priority scheduling (negative Unix nice level) for the PulseAudio daemon" -msgstr "" +msgstr "ਪਲਸਆਡੀਓ ਡੈਮਨ ਲਈ ਵਧੇਰੇ-ਤਰਜੀਹ ਸੈਡਿਊਲ (ਨਾਂ-ਵਾਚਕ ਯੂਨੈਕਸ ਨਾਈਸ ਲੈਵਲ)" #: ../src/daemon/org.pulseaudio.policy.in.h:2 msgid "Real-time scheduling for the PulseAudio daemon" -msgstr "" +msgstr "ਪਲਸਆਡੀਓ ਡੈਮਨ ਰੀਅਲ-ਟਾਈਮ ਸੈਡਿਊਲ" #: ../src/daemon/org.pulseaudio.policy.in.h:3 msgid "" "System policy prevents PulseAudio from acquiring high-priority scheduling." -msgstr "" +msgstr "ਸਿਸਟਮ ਪਾਲਸੀ ਪਲਸਆਡੀਓ ਨੂੰ ਵਧੇਰੇ-ਤਰਜੀਹ ਸੈਡਿਊਲ ਪà©à¨°à¨¾à¨ªà¨¤ ਕਰਨ ਤੋਂ ਰੋਕਦੀ ਹੈ।" #: ../src/daemon/org.pulseaudio.policy.in.h:4 msgid "System policy prevents PulseAudio from acquiring real-time scheduling." -msgstr "" +msgstr "ਸਿਸਟਮ ਪਾਲਸੀ ਪਲਸਆਡੀਓ ਨੂੰ ਵਧੇਰੇ-ਤਰਜੀਹ ਰੀਅਲ-ਟਾਈਮ ਪà©à¨°à¨¾à¨ªà¨¤ ਕਰਨ ਤੋਂ ਰੋਕਦੀ ਹੈ।" -#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804 +#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "ਮੋਨੋ" -#: ../src/pulse/channelmap.c:105 +#: ../src/pulse/channelmap.c:107 msgid "Front Center" -msgstr "ਫਰੰਟ ਸੈਂਟਰ" +msgstr "ਅੱਗੇ ਸੈਂਟਰ" -#: ../src/pulse/channelmap.c:106 +#: ../src/pulse/channelmap.c:108 msgid "Front Left" -msgstr "" +msgstr "ਅੱਗੇ ਖੱਬੇ" -#: ../src/pulse/channelmap.c:107 +#: ../src/pulse/channelmap.c:109 msgid "Front Right" -msgstr "" +msgstr "ਅੱਗੇ ਸੱਜਾ" -#: ../src/pulse/channelmap.c:109 +#: ../src/pulse/channelmap.c:111 msgid "Rear Center" -msgstr "" +msgstr "ਪਿੱਛੇ ਸੈਂਟਰ" -#: ../src/pulse/channelmap.c:110 +#: ../src/pulse/channelmap.c:112 msgid "Rear Left" -msgstr "" +msgstr "ਪਿੱਛੇ ਖੱਬਾ" -#: ../src/pulse/channelmap.c:111 +#: ../src/pulse/channelmap.c:113 msgid "Rear Right" -msgstr "" +msgstr "ਪਿੱਛੇ ਸੱਜਾ" -#: ../src/pulse/channelmap.c:113 +#: ../src/pulse/channelmap.c:115 msgid "Low Frequency Emmiter" -msgstr "" +msgstr "ਘੱਟ ਫਰੀਕਿਊਂਸੀ ਇੱਮਟਰ" -#: ../src/pulse/channelmap.c:115 +#: ../src/pulse/channelmap.c:117 msgid "Front Left-of-center" -msgstr "" +msgstr "ਅੱਗੇ ਸੈਂਟਰ ਦਾ ਖੱਬੇ" -#: ../src/pulse/channelmap.c:116 +#: ../src/pulse/channelmap.c:118 msgid "Front Right-of-center" -msgstr "" +msgstr "ਅੱਗੇ ਸੈਂਟਰ ਦਾ ਸੱਜਾ" -#: ../src/pulse/channelmap.c:118 +#: ../src/pulse/channelmap.c:120 msgid "Side Left" -msgstr "" +msgstr "ਖੱਬੇ ਪਾਸੇ" -#: ../src/pulse/channelmap.c:119 +#: ../src/pulse/channelmap.c:121 msgid "Side Right" -msgstr "" +msgstr "ਸੱਜੇ ਪਾਸੇ" -#: ../src/pulse/channelmap.c:121 +#: ../src/pulse/channelmap.c:123 msgid "Auxiliary 0" msgstr "à¨à¨—ਜਿਲਰੀ 0" -#: ../src/pulse/channelmap.c:122 +#: ../src/pulse/channelmap.c:124 msgid "Auxiliary 1" msgstr "à¨à¨—ਜਿਲਰੀ 1" -#: ../src/pulse/channelmap.c:123 +#: ../src/pulse/channelmap.c:125 msgid "Auxiliary 2" msgstr "à¨à¨—ਜਿਲਰੀ 2" -#: ../src/pulse/channelmap.c:124 +#: ../src/pulse/channelmap.c:126 msgid "Auxiliary 3" msgstr "à¨à¨—ਜਿਲਰੀ 3" -#: ../src/pulse/channelmap.c:125 +#: ../src/pulse/channelmap.c:127 msgid "Auxiliary 4" msgstr "à¨à¨—ਜਿਲਰੀ 4" -#: ../src/pulse/channelmap.c:126 +#: ../src/pulse/channelmap.c:128 msgid "Auxiliary 5" msgstr "à¨à¨—ਜਿਲਰੀ 5" -#: ../src/pulse/channelmap.c:127 +#: ../src/pulse/channelmap.c:129 msgid "Auxiliary 6" msgstr "à¨à¨—ਜਿਲਰੀ 6" -#: ../src/pulse/channelmap.c:128 +#: ../src/pulse/channelmap.c:130 msgid "Auxiliary 7" msgstr "à¨à¨—ਜਿਲਰੀ 7" -#: ../src/pulse/channelmap.c:129 +#: ../src/pulse/channelmap.c:131 msgid "Auxiliary 8" msgstr "à¨à¨—ਜਿਲਰੀ 8" -#: ../src/pulse/channelmap.c:130 +#: ../src/pulse/channelmap.c:132 msgid "Auxiliary 9" msgstr "à¨à¨—ਜਿਲਰੀ 9" -#: ../src/pulse/channelmap.c:131 +#: ../src/pulse/channelmap.c:133 msgid "Auxiliary 10" msgstr "à¨à¨—ਜਿਲਰੀ 10" -#: ../src/pulse/channelmap.c:132 +#: ../src/pulse/channelmap.c:134 msgid "Auxiliary 11" msgstr "à¨à¨—ਜਿਲਰੀ 11" -#: ../src/pulse/channelmap.c:133 +#: ../src/pulse/channelmap.c:135 msgid "Auxiliary 12" msgstr "à¨à¨—ਜਿਲਰੀ 12" -#: ../src/pulse/channelmap.c:134 +#: ../src/pulse/channelmap.c:136 msgid "Auxiliary 13" msgstr "à¨à¨—ਜਿਲਰੀ 13" -#: ../src/pulse/channelmap.c:135 +#: ../src/pulse/channelmap.c:137 msgid "Auxiliary 14" msgstr "à¨à¨—ਜਿਲਰੀ 14" -#: ../src/pulse/channelmap.c:136 +#: ../src/pulse/channelmap.c:138 msgid "Auxiliary 15" msgstr "à¨à¨—ਜਿਲਰੀ 15" -#: ../src/pulse/channelmap.c:137 +#: ../src/pulse/channelmap.c:139 msgid "Auxiliary 16" msgstr "à¨à¨—ਜਿਲਰੀ 16" -#: ../src/pulse/channelmap.c:138 +#: ../src/pulse/channelmap.c:140 msgid "Auxiliary 17" msgstr "à¨à¨—ਜਿਲਰੀ 17" -#: ../src/pulse/channelmap.c:139 +#: ../src/pulse/channelmap.c:141 msgid "Auxiliary 18" msgstr "à¨à¨—ਜਿਲਰੀ 18" -#: ../src/pulse/channelmap.c:140 +#: ../src/pulse/channelmap.c:142 msgid "Auxiliary 19" msgstr "à¨à¨—ਜਿਲਰੀ 19" -#: ../src/pulse/channelmap.c:141 +#: ../src/pulse/channelmap.c:143 msgid "Auxiliary 20" msgstr "à¨à¨—ਜਿਲਰੀ 20" -#: ../src/pulse/channelmap.c:142 +#: ../src/pulse/channelmap.c:144 msgid "Auxiliary 21" msgstr "à¨à¨—ਜਿਲਰੀ 21" -#: ../src/pulse/channelmap.c:143 +#: ../src/pulse/channelmap.c:145 msgid "Auxiliary 22" msgstr "à¨à¨—ਜਿਲਰੀ 22" -#: ../src/pulse/channelmap.c:144 +#: ../src/pulse/channelmap.c:146 msgid "Auxiliary 23" msgstr "à¨à¨—ਜਿਲਰੀ 23" -#: ../src/pulse/channelmap.c:145 +#: ../src/pulse/channelmap.c:147 msgid "Auxiliary 24" msgstr "à¨à¨—ਜਿਲਰੀ 24" -#: ../src/pulse/channelmap.c:146 +#: ../src/pulse/channelmap.c:148 msgid "Auxiliary 25" msgstr "à¨à¨—ਜਿਲਰੀ 25" -#: ../src/pulse/channelmap.c:147 +#: ../src/pulse/channelmap.c:149 msgid "Auxiliary 26" msgstr "à¨à¨—ਜਿਲਰੀ 26" -#: ../src/pulse/channelmap.c:148 +#: ../src/pulse/channelmap.c:150 msgid "Auxiliary 27" msgstr "à¨à¨—ਜਿਲਰੀ 27" -#: ../src/pulse/channelmap.c:149 +#: ../src/pulse/channelmap.c:151 msgid "Auxiliary 28" msgstr "à¨à¨—ਜਿਲਰੀ 28" -#: ../src/pulse/channelmap.c:150 +#: ../src/pulse/channelmap.c:152 msgid "Auxiliary 29" msgstr "à¨à¨—ਜਿਲਰੀ 29" -#: ../src/pulse/channelmap.c:151 +#: ../src/pulse/channelmap.c:153 msgid "Auxiliary 30" msgstr "à¨à¨—ਜਿਲਰੀ 30" -#: ../src/pulse/channelmap.c:152 +#: ../src/pulse/channelmap.c:154 msgid "Auxiliary 31" msgstr "à¨à¨—ਜਿਲਰੀ 31" -#: ../src/pulse/channelmap.c:154 +#: ../src/pulse/channelmap.c:156 msgid "Top Center" msgstr "ਉੱਤੇ ਕੇਂਦਰੀ" -#: ../src/pulse/channelmap.c:156 +#: ../src/pulse/channelmap.c:158 msgid "Top Front Center" -msgstr "" +msgstr "ਉੱਤੇ ਅੱਗੇ ਸੈਂਟਰ" -#: ../src/pulse/channelmap.c:157 +#: ../src/pulse/channelmap.c:159 msgid "Top Front Left" -msgstr "" +msgstr "ਉੱਤੇ ਅੱਗੇ ਖੱਬੇ" -#: ../src/pulse/channelmap.c:158 +#: ../src/pulse/channelmap.c:160 msgid "Top Front Right" -msgstr "" +msgstr "ਉੱਤੇ ਅੱਗੇ ਸੱਜੇ" -#: ../src/pulse/channelmap.c:160 +#: ../src/pulse/channelmap.c:162 msgid "Top Rear Center" -msgstr "" +msgstr "ਉੱਤੇ ਪਿੱਛੇ ਸੈਂਟਰ" -#: ../src/pulse/channelmap.c:161 +#: ../src/pulse/channelmap.c:163 msgid "Top Rear Left" -msgstr "" +msgstr "ਉੱਤੇ ਪਿੱਛੇ ਖੱਬੇ" -#: ../src/pulse/channelmap.c:162 +#: ../src/pulse/channelmap.c:164 msgid "Top Rear Right" -msgstr "" +msgstr "ਉੱਤੇ ਪਿੱਛੇ ਸੱਜੇ" -#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167 -#: ../src/pulse/volume.c:170 ../src/pulse/volume.c:196 -#: ../src/pulse/volume.c:216 ../src/pulse/volume.c:246 +#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167 +#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265 +#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315 msgid "(invalid)" -msgstr "(ਗਲਤ)" +msgstr "(ਅਢà©à©±à¨•à¨µà¨¾à¨‚)" -#: ../src/pulse/channelmap.c:808 +#: ../src/pulse/channelmap.c:751 msgid "Stereo" -msgstr "" +msgstr "ਸਟੀਰੀਓ" -#: ../src/pulse/channelmap.c:813 +#: ../src/pulse/channelmap.c:756 msgid "Surround 4.0" -msgstr "" +msgstr "ਸਰਾਊਂਡਿੰਗ 4.0" -#: ../src/pulse/channelmap.c:819 +#: ../src/pulse/channelmap.c:762 msgid "Surround 4.1" -msgstr "" +msgstr "ਸਰਾਊਂਡਿੰਗ 4.1" -#: ../src/pulse/channelmap.c:825 +#: ../src/pulse/channelmap.c:768 msgid "Surround 5.0" -msgstr "" +msgstr "ਸਰਾਊਂਡਿੰਗ 5.0" -#: ../src/pulse/channelmap.c:831 +#: ../src/pulse/channelmap.c:774 msgid "Surround 5.1" -msgstr "" +msgstr "ਸਰਾਊਂਡਿੰਗ 5.1" -#: ../src/pulse/channelmap.c:838 +#: ../src/pulse/channelmap.c:781 msgid "Surround 7.1" -msgstr "" +msgstr "ਸਰਾਊਂਡਿੰਗ 7.1" #: ../src/pulse/error.c:43 msgid "OK" @@ -1034,15 +1103,15 @@ msgstr "ਅਣਜਾਣ ਕਮਾਂਡ" #: ../src/pulse/error.c:46 msgid "Invalid argument" -msgstr "" +msgstr "ਅਢà©à©±à¨•à¨µà¨¾à¨‚ ਆਰਗੂਮੈਂਟ" #: ../src/pulse/error.c:47 msgid "Entity exists" -msgstr "" +msgstr "à¨à¨‚ਟਟੀ ਮੌਜੂਦ ਹੈ" #: ../src/pulse/error.c:48 msgid "No such entity" -msgstr "" +msgstr "ਕੋਈ à¨à¨‚ਟਟੀ ਨਹੀਂ" #: ../src/pulse/error.c:49 msgid "Connection refused" @@ -1054,11 +1123,11 @@ msgstr "ਪਰੋਟੋਕਾਲ ਗਲਤੀ" #: ../src/pulse/error.c:51 msgid "Timeout" -msgstr "ਸਮਾਂ ਅੰਤਰਾਲ" +msgstr "ਸਮਾਂ-ਸਮਾਪਤ" #: ../src/pulse/error.c:52 msgid "No authorization key" -msgstr "" +msgstr "ਕੋਈ ਪà©à¨°à¨®à¨¾à¨£à¨¿à¨•à¨¤à¨¾ ਕà©à©°à¨œà©€ ਨਹੀਂ" #: ../src/pulse/error.c:53 msgid "Internal error" @@ -1066,19 +1135,19 @@ msgstr "ਅੰਦਰੂਨੀ ਗਲਤੀ" #: ../src/pulse/error.c:54 msgid "Connection terminated" -msgstr "" +msgstr "ਕà©à¨¨à©ˆà¨•à¨¶à¨¨ ਖਤਮ ਕੀਤਾ" #: ../src/pulse/error.c:55 msgid "Entity killed" -msgstr "" +msgstr "à¨à¨‚ਟਟੀ ਖਤਮ ਹੋ ਗਈ" #: ../src/pulse/error.c:56 msgid "Invalid server" -msgstr "" +msgstr "ਅਢà©à©±à¨•à¨µà¨¾à¨‚ ਸਰਵਰ" #: ../src/pulse/error.c:57 msgid "Module initalization failed" -msgstr "" +msgstr "ਮੋਡੀਊਲ ਸ਼à©à¨°à©‚ ਕਰਨਾ ਫੇਲà©à¨¹" #: ../src/pulse/error.c:58 msgid "Bad state" @@ -1090,7 +1159,7 @@ msgstr "ਕੋਈ ਡਾਟਾ ਨਹੀਂ" #: ../src/pulse/error.c:60 msgid "Incompatible protocol version" -msgstr "" +msgstr "ਨਾ-ਅਨà©à¨•à©‚ਲ ਪਰੋਟੋਕਾਲ ਵਰਜਨ" #: ../src/pulse/error.c:61 msgid "Too large" @@ -1106,44 +1175,44 @@ msgstr "ਅਣਜਾਣ ਗਲਤੀ ਕੋਡ" #: ../src/pulse/error.c:64 msgid "No such extension" -msgstr "" +msgstr "ਕੋਈ ਅਜਿਹੀ ਇਕਸਟੈਂਸ਼ਨ ਨਹੀਂ" #: ../src/pulse/error.c:65 msgid "Obsolete functionality" -msgstr "" +msgstr "ਛੱਡੀ ਗਈ ਫੰਕਸ਼ਨੈਲਿਟੀ" #: ../src/pulse/error.c:66 msgid "Missing implementation" -msgstr "" +msgstr "ਗੈਰ-ਮੌਜੂਦ ਨਿਰਧਾਰਨ" #: ../src/pulse/error.c:67 msgid "Client forked" -msgstr "" +msgstr "ਕਲਾਇਟ ਅੱਡ ਕੀਤਾ" #: ../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 msgid "XOpenDisplay() failed" @@ -1151,16 +1220,16 @@ msgstr "XOpenDisplay() ਫੇਲà©à¨¹ ਹੈ" #: ../src/pulse/client-conf-x11.c:93 msgid "Failed to parse cookie data" -msgstr "" +msgstr "ਕੂਕੀ ਡਾਟਾ ਪਾਰਸ ਕਰਨ ਵਿੱਚ ਫੇਲà©à¨¹" #: ../src/pulse/client-conf.c:110 #, c-format msgid "Failed to open configuration file '%s': %s" -msgstr "" +msgstr "ਸੰਰਚਨਾ ਫਾਇਲ '%s' ਨੂੰ ਖੋਲà©à¨¹à¨£ ਵਿੱਚ ਫੇਲà©à¨¹: %s" #: ../src/pulse/context.c:546 msgid "No cookie loaded. Attempting to connect without." -msgstr "" +msgstr "ਕੋਈ ਕੂਕੀ ਲੋਡ ਨਹੀਂ ਕੀਤੀ। ਇਸ ਤੋਂ ਬਿਨਾਂ ਕà©à¨¨à©ˆà¨•à¨Ÿ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ।" #: ../src/pulse/context.c:676 #, c-format @@ -1175,175 +1244,170 @@ msgstr "waitpid(): %s" #: ../src/pulse/context.c:1403 #, c-format msgid "Received message for unknown extension '%s'" -msgstr "" +msgstr "ਅਣਜਾਣੀ ਇਕਸਟੈਂਸ਼ਨ '%s' ਲਈ ਸà©à¨¨à©‡à¨¹à¨¾ ਮਿਲਿਆ ਹੈ" + +#: ../src/utils/pacat.c:107 +#, c-format +msgid "Failed to drain stream: %s\n" +msgstr "ਸਟਰੀਮ ਡਰੇਨ ਫੇਲà©à¨¹ ਹੋਇਆ: %s\n" + +#: ../src/utils/pacat.c:112 +msgid "Playback stream drained.\n" +msgstr "ਪਲੇਬੈਕ ਸਟਰੀਮ ਡਰੇਨ ਕੀਤੀ।\n" -#: ../src/utils/pacat.c:94 +#: ../src/utils/pacat.c:122 +msgid "Draining connection to server.\n" +msgstr "ਸਰਵਰ ਨਾਲ ਕà©à¨¨à©ˆà¨•à¨¶à¨¨ ਡਰੇਨ ਹੋ ਰਿਹਾ ਹੈ।\n" + +#: ../src/utils/pacat.c:135 +#, c-format +msgid "pa_stream_drain(): %s\n" +msgstr "pa_stream_drain(): %s\n" + +#: ../src/utils/pacat.c:158 #, c-format msgid "pa_stream_write() failed: %s\n" msgstr "pa_stream_write() ਫੇਲà©à¨¹ ਹੈ: %s\n" -#: ../src/utils/pacat.c:133 +#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 #, c-format msgid "pa_stream_peek() failed: %s\n" msgstr "pa_stream_peek() ਫੇਲà©à¨¹ ਹੈ: %s\n" -#: ../src/utils/pacat.c:169 -#, c-format +#: ../src/utils/pacat.c:302 msgid "Stream successfully created.\n" -msgstr "" +msgstr "ਸਟਰੀਮ ਸਫਲਤਾਪੂਰਕ ਬਣ ਗਈ ਹੈ।\n" -#: ../src/utils/pacat.c:172 +#: ../src/utils/pacat.c:305 #, c-format msgid "pa_stream_get_buffer_attr() failed: %s\n" msgstr "pa_stream_get_buffer_attr() ਫੇਲà©à¨¹ ਹੈ: %s\n" -#: ../src/utils/pacat.c:176 +#: ../src/utils/pacat.c:309 #, c-format msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -msgstr "" +msgstr "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:179 +#: ../src/utils/pacat.c:312 #, c-format msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" -msgstr "" +msgstr "Buffer metrics: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:183 +#: ../src/utils/pacat.c:316 #, c-format msgid "Using sample spec '%s', channel map '%s'.\n" -msgstr "" +msgstr "ਸਧਾਰਨ spec '%s', ਚੈਨਲ ਮੈਪ '%s' ਦੀ ਵਰਤੋਂ।\n" -#: ../src/utils/pacat.c:187 +#: ../src/utils/pacat.c:320 #, c-format msgid "Connected to device %s (%u, %ssuspended).\n" -msgstr "" +msgstr "%s ਜੰਤਰ ਨਾਲ ਕà©à¨¨à¨•à©ˆà¨Ÿ ਕੀਤਾ (%u, %ssuspended)।\n" -#: ../src/utils/pacat.c:197 +#: ../src/utils/pacat.c:330 #, c-format msgid "Stream error: %s\n" msgstr "ਸਟਰੀਮ ਗਲਤੀ: %s\n" -#: ../src/utils/pacat.c:207 +#: ../src/utils/pacat.c:340 #, c-format msgid "Stream device suspended.%s \n" -msgstr "" +msgstr "ਸਟਰੀਮ ਜੰਤਰ ਸਸਪੈਂਡ ਕੀਤਾ ਹੈ।%s \n" -#: ../src/utils/pacat.c:209 +#: ../src/utils/pacat.c:342 #, c-format msgid "Stream device resumed.%s \n" -msgstr "" +msgstr "ਸਟਰੀਮ ਜੰਤਰ ਮà©à©œ-ਪà©à¨°à¨¾à¨ªà¨¤ ਕੀਤਾ।%s \n" -#: ../src/utils/pacat.c:217 +#: ../src/utils/pacat.c:350 #, c-format msgid "Stream underrun.%s \n" -msgstr "" +msgstr "ਸਟਰੀਮ ਅੰਡਰਰਨ।%s \n" -#: ../src/utils/pacat.c:224 +#: ../src/utils/pacat.c:357 #, c-format msgid "Stream overrun.%s \n" -msgstr "" +msgstr "ਸਟਰੀਮ ਓਵਰਰਨ।%s \n" -#: ../src/utils/pacat.c:231 +#: ../src/utils/pacat.c:364 #, c-format msgid "Stream started.%s \n" -msgstr "ਸਟਰੀਮ ਸ਼à©à¨°à©‚। %s\n" +msgstr "ਸਟਰੀਮ ਸ਼à©à¨°à©‚ ਕੀਤੀ। %s\n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 #, c-format msgid "Stream moved to device %s (%u, %ssuspended).%s \n" -msgstr "" +msgstr "ਸਟਰੀਮ ਨੂੰ ਜੰਤਰ %s ਤੋਂ ਤਬਦੀਲ ਕੀਤਾ ਗਿਆ ਹੈ (%u, %ssuspended)।%s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 msgid "not " msgstr "ਨਹੀਂ " -#: ../src/utils/pacat.c:245 -#, fuzzy, c-format +#: ../src/utils/pacat.c:378 +#, c-format msgid "Stream buffer attributes changed.%s \n" -msgstr "ਸਟਰੀਮ ਸ਼à©à¨°à©‚। %s\n" +msgstr "ਸਟਰੀਮ ਬਫਰ à¨à¨Ÿà¨°à©€à¨¬à¨¿à¨Šà¨Ÿ ਤਬਦੀਲ ਕੀਤੇ ਗà¨à¥¤%s \n" -#: ../src/utils/pacat.c:278 +#: ../src/utils/pacat.c:411 #, c-format msgid "Connection established.%s \n" -msgstr "" +msgstr "ਕà©à¨¨à©ˆà¨•à¨¶à¨¨ ਬਣ ਗਿਆ।%s \n" -#: ../src/utils/pacat.c:281 +#: ../src/utils/pacat.c:414 #, c-format msgid "pa_stream_new() failed: %s\n" msgstr "pa_stream_new() ਫੇਲà©à¨¹ ਹੈ: %s\n" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:442 #, c-format msgid "pa_stream_connect_playback() failed: %s\n" msgstr "pa_stream_connect_playback() ਫੇਲà©à¨¹ ਹੈ: %s\n" -#: ../src/utils/pacat.c:315 +#: ../src/utils/pacat.c:448 #, c-format msgid "pa_stream_connect_record() failed: %s\n" msgstr "pa_stream_connect_record() ਫੇਲà©à¨¹ ਹੈ: %s\n" -#: ../src/utils/pacat.c:329 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:762 ../src/utils/paplay.c:183 +#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 #, c-format msgid "Connection failure: %s\n" -msgstr "" - -#: ../src/utils/pacat.c:349 ../src/utils/paplay.c:75 -#, c-format -msgid "Failed to drain stream: %s\n" -msgstr "" +msgstr "ਕà©à¨¨à©ˆà¨•à¨¶à¨¨ ਫੇਲ: %s\n" -#: ../src/utils/pacat.c:354 ../src/utils/paplay.c:80 -#, c-format -msgid "Playback stream drained.\n" -msgstr "" - -#: ../src/utils/pacat.c:364 ../src/utils/paplay.c:92 -#, c-format -msgid "Draining connection to server.\n" -msgstr "" - -#: ../src/utils/pacat.c:390 -#, c-format +#: ../src/utils/pacat.c:495 msgid "Got EOF.\n" msgstr "EOF ਮਿਲਿਆ।\n" -#: ../src/utils/pacat.c:396 -#, c-format -msgid "pa_stream_drain(): %s\n" -msgstr "pa_stream_drain(): %s\n" - -#: ../src/utils/pacat.c:406 +#: ../src/utils/pacat.c:500 #, c-format msgid "read() failed: %s\n" msgstr "read() ਫੇਲà©à¨¹ ਹੈ: %s\n" -#: ../src/utils/pacat.c:438 +#: ../src/utils/pacat.c:532 #, c-format msgid "write() failed: %s\n" msgstr "write() ਫੇਲà©à¨¹ ਹੈ: %s\n" -#: ../src/utils/pacat.c:459 -#, c-format +#: ../src/utils/pacat.c:553 msgid "Got signal, exiting.\n" -msgstr "" +msgstr "ਸਿਗਨਲ ਮਿਲਿਆ, ਬੰਦ ਹੋ ਰਿਹਾ ਹੈ।\n" -#: ../src/utils/pacat.c:473 +#: ../src/utils/pacat.c:567 #, c-format msgid "Failed to get latency: %s\n" -msgstr "" +msgstr "ਵਕਫਾ ਪà©à¨°à¨¾à¨ªà¨¤à©€ ਫੇਲ ਹੋਈ: %s\n" -#: ../src/utils/pacat.c:478 +#: ../src/utils/pacat.c:572 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" -msgstr "" +msgstr "ਸਮਾਂ: %0.3f ਸਕਿੰਟ; ਵਕਫਾ: %0.0f usec। \r" -#: ../src/utils/pacat.c:498 +#: ../src/utils/pacat.c:592 #, c-format msgid "pa_stream_update_timing_info() failed: %s\n" msgstr "pa_stream_update_timing_info() ਫੇਲà©à¨¹ ਹੈ: %s\n" -#: ../src/utils/pacat.c:511 -#, c-format +#: ../src/utils/pacat.c:605 +#, fuzzy, c-format msgid "" "%s [options]\n" "\n" @@ -1369,6 +1433,62 @@ msgid "" "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" +" being connected to.\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" +" --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" +" --raw Record/play raw PCM data.\n" +" --file-format=FFORMAT Record/play formatted PCM data.\n" +" --list-file-formats List available file formats.\n" +msgstr "" +"%s [options]\n" +"\n" +" -h, --help Show this help\n" +" --version Show version\n" +"\n" +" -r, --record Create a connection for recording\n" +" -p, --playback Create a connection for playback\n" +"\n" +" -v, --verbose Enable verbose operations\n" +"\n" +" -s, --server=SERVER The name of the server to connect " +"to\n" +" -d, --device=DEVICE The name of the sink/source to " +"connect to\n" +" -n, --client-name=NAME How to call this client on the " +"server\n" +" --stream-name=NAME How to call this stream on the " +"server\n" +" --volume=VOLUME Specify the initial (linear) volume " +"in range 0...65536\n" +" --rate=SAMPLERATE The sample rate in Hz (defaults to " +"44100)\n" +" --format=SAMPLEFORMAT The sample type, one of s16le, " +"s16be, u8, float32le,\n" " float32be, ulaw, alaw, s32le, s32be " "(defaults to s16ne)\n" " --channels=CHANNELS The number of channels, 1 for mono, " @@ -1393,98 +1513,145 @@ msgid "" "bytes.\n" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" -msgstr "" -#: ../src/utils/pacat.c:612 +#: ../src/utils/pacat.c:727 #, c-format msgid "" "pacat %s\n" "Compiled with libpulse %s\n" "Linked with libpulse %s\n" msgstr "" +"pacat %s\n" +"libpulse %s ਦੇ ਕੰਪਾਇਲ\n" +"libpulse %s ਨਾਲ ਲਿੰਕ ਕੀਤਾ\n" + +#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "ਅਢà©à©±à¨•à¨µà¨¾à¨‚ ਚੈਨਲ ਮੈਪ '%s'\n" -#: ../src/utils/pacat.c:669 +#: ../src/utils/pacat.c:776 +#, fuzzy, c-format +msgid "Invalid stream name '%s'\n" +msgstr "ਅਢà©à©±à¨•à¨µà¨¾à¨‚ ਰੀਸੈਂਪਲ ਢੰਗ '%s'।" + +#: ../src/utils/pacat.c:813 #, c-format msgid "Invalid channel map '%s'\n" -msgstr "" +msgstr "ਅਢà©à©±à¨•à¨µà¨¾à¨‚ ਚੈਨਲ ਮੈਪ '%s'\n" -#: ../src/utils/pacat.c:698 +#: ../src/utils/pacat.c:842 #, c-format msgid "Invalid latency specification '%s'\n" -msgstr "" +msgstr "ਅਢà©à©±à¨•à¨µà¨¾à¨‚ ਵਕਫਾ ਹਦਾਇਤ '%s'\n" -#: ../src/utils/pacat.c:705 +#: ../src/utils/pacat.c:849 #, c-format msgid "Invalid process time specification '%s'\n" -msgstr "" +msgstr "ਅਢà©à©±à¨•à¨µà¨¾à¨‚ ਪਰੋਸੈੱਸ ਟਾਈਮ ਹਦਾਇਤ '%s'\n" -#: ../src/utils/pacat.c:716 -#, c-format -msgid "Invalid sample specification\n" -msgstr "" - -#: ../src/utils/pacat.c:721 -#, c-format -msgid "Channel map doesn't match sample specification\n" -msgstr "" +#: ../src/utils/pacat.c:861 +#, fuzzy, c-format +msgid "Invalid property '%s'\n" +msgstr "ਅਢà©à©±à¨•à¨µà¨¾à¨‚ ਰੀਸੈਂਪਲ ਢੰਗ '%s'।" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:878 #, c-format -msgid "Opening a %s stream with sample specification '%s'.\n" +msgid "Unknown file format %s." msgstr "" -#: ../src/utils/pacat.c:728 -msgid "recording" -msgstr "ਰਿਕਾਰਡਿੰਗ" - -#: ../src/utils/pacat.c:728 -msgid "playback" -msgstr "ਪਲੇਅਬੈਕ" +#: ../src/utils/pacat.c:897 +msgid "Invalid sample specification\n" +msgstr "ਅਢà©à©±à¨•à¨µà¨¾à¨‚ ਸੈਂਪਲ ਹਦਾਇਤ\n" -#: ../src/utils/pacat.c:736 +#: ../src/utils/pacat.c:907 #, c-format msgid "open(): %s\n" msgstr "open(): %s\n" -#: ../src/utils/pacat.c:741 +#: ../src/utils/pacat.c:912 #, c-format msgid "dup2(): %s\n" msgstr "dup2(): %s\n" -#: ../src/utils/pacat.c:751 -#, c-format +#: ../src/utils/pacat.c:919 msgid "Too many arguments.\n" +msgstr "ਬਹà©à¨¤ ਵੱਧ ਆਰਗੂਮੈਂਟ।\n" + +#: ../src/utils/pacat.c:930 +#, fuzzy +msgid "Failed to generate sample specification for file.\n" +msgstr "ਸੈਂਪਲ ਜਾਣਕਾਰੀ ਲੈਣ ਵਿੱਚ ਫੇਲ: %s\n" + +#: ../src/utils/pacat.c:950 +#, fuzzy +msgid "Failed to open audio file.\n" +msgstr "ਸਾਊਂਡ ਫਾਇਲ ਖੋਲà©à¨¹à¨£ ਲਈ ਫੇਲà©à¨¹ ਹੈ।\n" + +#: ../src/utils/pacat.c:956 +msgid "" +"Warning: specified sample specification will be overwritten with " +"specification from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "ਸੈਂਪਲ ਜਾਣਕਾਰੀ ਲੈਣ ਵਿੱਚ ਫੇਲ: %s\n" + +#: ../src/utils/pacat.c:968 +msgid "Warning: Failed to determine channel map from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:979 +msgid "Channel map doesn't match sample specification\n" +msgstr "ਚੈਨਲ ਮੈਪ ਸੈਂਪਲ ਹਦਾਇਤ ਨਾਲ ਨਹੀਂ ਮਿਲਦਾ\n" + +#: ../src/utils/pacat.c:990 +msgid "Warning: failed to write channel map to file.\n" msgstr "" -#: ../src/utils/pacat.c:764 ../src/utils/pasuspender.c:280 -#: ../src/utils/pactl.c:1017 ../src/utils/paplay.c:381 +#: ../src/utils/pacat.c:1005 +#, fuzzy, c-format +msgid "" +"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +msgstr "ਇੱਕ %s ਸਟਰੀਮ ਨੂੰ ਸੈਂਪਲ ਹਦਾਇਤ '%s' ਨਾਲ ਖੋਲà©à¨¹à¨¿à¨† ਜਾ ਰਿਹਾ ਹੈ।\n" + +#: ../src/utils/pacat.c:1006 +msgid "recording" +msgstr "ਰਿਕਾਰਡਿੰਗ" + +#: ../src/utils/pacat.c:1006 +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 "pa_mainloop_new() ਫੇਲà©à¨¹ ਹੈ।\n" -#: ../src/utils/pacat.c:785 -#, c-format +#: ../src/utils/pacat.c:1051 msgid "io_new() failed.\n" msgstr "io_new() ਫੇਲà©à¨¹ ਹੈ।\n" -#: ../src/utils/pacat.c:791 ../src/utils/pasuspender.c:293 -#: ../src/utils/pactl.c:1031 ../src/utils/paplay.c:396 +#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 +#: ../src/utils/pactl.c:1116 #, c-format msgid "pa_context_new() failed.\n" msgstr "pa_context_new() ਫੇਲà©à¨¹ ਹੈ।\n" -#: ../src/utils/pacat.c:799 +#: ../src/utils/pacat.c:1066 #, fuzzy, c-format msgid "pa_context_connect() failed: %s\n" msgstr "pa_context_connect() ਫੇਲà©à¨¹ ਹੈ: %s" -#: ../src/utils/pacat.c:810 -#, c-format +#: ../src/utils/pacat.c:1077 msgid "time_new() failed.\n" msgstr "time_new() ਫੇਲà©à¨¹ ਹੈ।\n" -#: ../src/utils/pacat.c:817 ../src/utils/pasuspender.c:301 -#: ../src/utils/pactl.c:1042 ../src/utils/paplay.c:410 +#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 +#: ../src/utils/pactl.c:1127 #, c-format msgid "pa_mainloop_run() failed.\n" msgstr "pa_mainloop_run() ਫੇਲà©à¨¹ ਹੈ।\n" @@ -1502,28 +1669,27 @@ msgstr "execvp(): %s\n" #: ../src/utils/pasuspender.c:109 #, c-format msgid "Failure to suspend: %s\n" -msgstr "" +msgstr "ਸਸਪੈਂਡ ਕਰਨ ਵਿੱਚ ਫੇਲ: %s\n" #: ../src/utils/pasuspender.c:124 #, c-format msgid "Failure to resume: %s\n" -msgstr "" +msgstr "ਮà©à©œ-ਪà©à¨°à¨¾à¨ªà¨¤à©€ ਫੇਲ: %s\n" #: ../src/utils/pasuspender.c:147 #, c-format msgid "WARNING: Sound server is not local, not suspending.\n" -msgstr "" +msgstr "ਚੇਤਾਵਨੀ: ਸਾਊਂਡ ਸਰਵਰ ਲੋਕਲ ਨਹੀਂ ਹੈ, ਸਸਪੈਂਡ ਨਹੀਂ ਹੋ ਰਿਹਾ।\n" -#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:768 -#: ../src/utils/paplay.c:191 +#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" -msgstr "" +msgstr "SIGINT ਮਿਲਿਆ, ਬੰਦ ਹੋ ਰਿਹਾ ਹੈ।\n" #: ../src/utils/pasuspender.c:194 #, c-format msgid "WARNING: Child process terminated by signal %u\n" -msgstr "" +msgstr "ਚੇਤਾਵਨੀ: ਚਲਾਈਡ ਪਰੋਸੈੱਸ ਨੂੰ ਸਿਗਨਲ %u ਵਲੋਂ ਬੰਦ ਕੀਤਾ ਗਿਆ ਹੈ\n" #: ../src/utils/pasuspender.c:212 #, c-format @@ -1536,41 +1702,51 @@ msgid "" "to\n" "\n" msgstr "" +"%s [options] ... \n" +"\n" +" -h, --help Show this help\n" +" --version Show version\n" +" -s, --server=SERVER The name of the server to connect " +"to\n" +"\n" -#: ../src/utils/pasuspender.c:251 +#: ../src/utils/pasuspender.c:248 #, c-format msgid "" "pasuspender %s\n" "Compiled with libpulse %s\n" "Linked with libpulse %s\n" msgstr "" +"pasuspender %s\n" +"libpulse %s ਨਾਲ ਕੰਪਾਇਲ\n" +"libpulse %s ਨਾਲ ਲਿੰਕ\n" -#: ../src/utils/pactl.c:108 +#: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" -msgstr "" +msgstr "ਅੰਕੜੇ ਪà©à¨°à¨¾à¨ªà¨¤à©€ ਫੇਲà©à¨¹: %s\n" -#: ../src/utils/pactl.c:114 +#: ../src/utils/pactl.c:134 #, c-format msgid "Currently in use: %u blocks containing %s bytes total.\n" -msgstr "" +msgstr "ਹà©à¨£ ਵਰਤੋਂ ਵਿੱਚ ਹੈ: %u ਬਲਾਕ ਵਿੱਚ ਕà©à©±à¨² %s ਬਾਈਟ ਹਨ।\n" -#: ../src/utils/pactl.c:117 +#: ../src/utils/pactl.c:137 #, c-format msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n" -msgstr "" +msgstr "ਪੂਰੇ ਲਾਈਫਟਾਈਮ ਵਿੱਚ ਜਾਰੀ ਕੀਤਾ ਗਿਆ: %u ਬਲਾਕ ਵਿੱਚ ਕà©à©±à¨² %s ਬਾਈਟ ਹਨ।\n" -#: ../src/utils/pactl.c:120 +#: ../src/utils/pactl.c:140 #, c-format msgid "Sample cache size: %s\n" msgstr "ਸੈਂਪਲ ਕੈਸ਼ ਸਾਈਜ਼: %s\n" -#: ../src/utils/pactl.c:129 +#: ../src/utils/pactl.c:149 #, c-format msgid "Failed to get server information: %s\n" -msgstr "" +msgstr "ਸਰਵਰ ਜਾਣਕਾਰੀ ਪà©à¨°à¨¾à¨ªà¨¤ ਕਰਨ ਵਿੱਚ ਫੇਲ ਹੋਇਆ: %s\n" -#: ../src/utils/pactl.c:137 +#: ../src/utils/pactl.c:157 #, c-format msgid "" "User name: %s\n" @@ -1583,13 +1759,22 @@ msgid "" "Default Source: %s\n" "Cookie: %08x\n" msgstr "" +"User name: %s\n" +"Host Name: %s\n" +"Server Name: %s\n" +"Server Version: %s\n" +"Default Sample Specification: %s\n" +"Default Channel Map: %s\n" +"Default Sink: %s\n" +"Default Source: %s\n" +"Cookie: %08x\n" -#: ../src/utils/pactl.c:178 +#: ../src/utils/pactl.c:198 #, c-format msgid "Failed to get sink information: %s\n" -msgstr "" +msgstr "ਸਿੰਕ ਜਾਣਕਾਰੀ ਲੈਣ ਵਿੱਚ ਫੇਲà©à¨¹: %s\n" -#: ../src/utils/pactl.c:194 +#: ../src/utils/pactl.c:214 #, c-format msgid "" "Sink #%u\n" @@ -1610,13 +1795,40 @@ msgid "" "\tProperties:\n" "\t\t%s\n" msgstr "" +"Sink #%u\n" +"\tState: %s\n" +"\tName: %s\n" +"\tDescription: %s\n" +"\tDriver: %s\n" +"\tSample Specification: %s\n" +"\tChannel Map: %s\n" +"\tOwner Module: %u\n" +"\tMute: %s\n" +"\tVolume: %s%s%s\n" +"\t balance %0.2f\n" +"\tBase Volume: %s%s%s\n" +"\tMonitor Source: %s\n" +"\tLatency: %0.0f usec, configured %0.0f usec\n" +"\tFlags: %s%s%s%s%s%s\n" +"\tProperties:\n" +"\t\t%s\n" + +#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 +#, fuzzy, c-format +msgid "\tPorts:\n" +msgstr "\tਪਰੋਫਾਈਲ:\n" -#: ../src/utils/pactl.c:258 +#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 +#, fuzzy, c-format +msgid "\tActive Port: %s\n" +msgstr "\tਸਰਗਰਮ ਪਰੋਫਾਈਲ: %s\n" + +#: ../src/utils/pactl.c:290 #, c-format msgid "Failed to get source information: %s\n" -msgstr "" +msgstr "ਸਰੋਤ ਜਾਣਕਾਰੀ ਲੈਣ ਵਿੱਚ ਫੇਲ: %s\n" -#: ../src/utils/pactl.c:274 +#: ../src/utils/pactl.c:306 #, c-format msgid "" "Source #%u\n" @@ -1637,21 +1849,38 @@ msgid "" "\tProperties:\n" "\t\t%s\n" msgstr "" +"Source #%u\n" +"\tState: %s\n" +"\tName: %s\n" +"\tDescription: %s\n" +"\tDriver: %s\n" +"\tSample Specification: %s\n" +"\tChannel Map: %s\n" +"\tOwner Module: %u\n" +"\tMute: %s\n" +"\tVolume: %s%s%s\n" +"\t balance %0.2f\n" +"\tBase Volume: %s%s%s\n" +"\tMonitor of Sink: %s\n" +"\tLatency: %0.0f usec, configured %0.0f usec\n" +"\tFlags: %s%s%s%s%s%s\n" +"\tProperties:\n" +"\t\t%s\n" -#: ../src/utils/pactl.c:306 ../src/utils/pactl.c:350 ../src/utils/pactl.c:385 -#: ../src/utils/pactl.c:422 ../src/utils/pactl.c:481 ../src/utils/pactl.c:482 -#: ../src/utils/pactl.c:492 ../src/utils/pactl.c:536 ../src/utils/pactl.c:537 -#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:586 ../src/utils/pactl.c:587 -#: ../src/utils/pactl.c:594 +#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429 +#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526 +#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581 +#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631 +#: ../src/utils/pactl.c:638 msgid "n/a" -msgstr "n/a" +msgstr "ਉਪਲੱਬਧ ਨਹੀਂ" -#: ../src/utils/pactl.c:324 +#: ../src/utils/pactl.c:368 #, c-format msgid "Failed to get module information: %s\n" -msgstr "" +msgstr "ਮੋਡੀਊਲ ਜਾਣਕਾਰੀ ਲੈਣ ਵਿੱਚ ਫੇਲ: %s\n" -#: ../src/utils/pactl.c:342 +#: ../src/utils/pactl.c:386 #, c-format msgid "" "Module #%u\n" @@ -1661,13 +1890,19 @@ msgid "" "\tProperties:\n" "\t\t%s\n" msgstr "" +"Module #%u\n" +"\tName: %s\n" +"\tArgument: %s\n" +"\tUsage counter: %s\n" +"\tProperties:\n" +"\t\t%s\n" -#: ../src/utils/pactl.c:361 +#: ../src/utils/pactl.c:405 #, c-format msgid "Failed to get client information: %s\n" -msgstr "" +msgstr "ਕਲਾਇਟ ਜਾਣਕਾਰੀ ਲੈਣ ਵਿੱਚ ਫੇਲ: %s\n" -#: ../src/utils/pactl.c:379 +#: ../src/utils/pactl.c:423 #, c-format msgid "" "Client #%u\n" @@ -1676,13 +1911,18 @@ msgid "" "\tProperties:\n" "\t\t%s\n" msgstr "" +"Client #%u\n" +"\tDriver: %s\n" +"\tOwner Module: %s\n" +"\tProperties:\n" +"\t\t%s\n" -#: ../src/utils/pactl.c:396 +#: ../src/utils/pactl.c:440 #, c-format msgid "Failed to get card information: %s\n" -msgstr "" +msgstr "ਕਾਰਡ ਜਾਣਕਾਰੀ ਲੈਣ ਵਿੱਚ ਫੇਲ: %s\n" -#: ../src/utils/pactl.c:414 +#: ../src/utils/pactl.c:458 #, c-format msgid "" "Card #%u\n" @@ -1692,23 +1932,29 @@ msgid "" "\tProperties:\n" "\t\t%s\n" msgstr "" +"Card #%u\n" +"\tName: %s\n" +"\tDriver: %s\n" +"\tOwner Module: %s\n" +"\tProperties:\n" +"\t\t%s\n" -#: ../src/utils/pactl.c:428 +#: ../src/utils/pactl.c:472 #, c-format msgid "\tProfiles:\n" -msgstr "" +msgstr "\tਪਰੋਫਾਈਲ:\n" -#: ../src/utils/pactl.c:434 -#, fuzzy, c-format +#: ../src/utils/pactl.c:478 +#, c-format msgid "\tActive Profile: %s\n" -msgstr "pipe failed: %s" +msgstr "\tਸਰਗਰਮ ਪਰੋਫਾਈਲ: %s\n" -#: ../src/utils/pactl.c:445 +#: ../src/utils/pactl.c:489 #, c-format msgid "Failed to get sink input information: %s\n" -msgstr "" +msgstr "ਇੰਪà©à©±à¨Ÿ ਜਾਣਕਾਰੀ ਲੈਣ ਵਿੱਚ ਫੇਲà©à¨¹: %s\n" -#: ../src/utils/pactl.c:464 +#: ../src/utils/pactl.c:508 #, c-format msgid "" "Sink Input #%u\n" @@ -1728,13 +1974,29 @@ msgid "" "\tProperties:\n" "\t\t%s\n" msgstr "" +"Sink Input #%u\n" +"\tDriver: %s\n" +"\tOwner Module: %s\n" +"\tClient: %s\n" +"\tSink: %u\n" +"\tSample Specification: %s\n" +"\tChannel Map: %s\n" +"\tMute: %s\n" +"\tVolume: %s\n" +"\t %s\n" +"\t balance %0.2f\n" +"\tBuffer Latency: %0.0f usec\n" +"\tSink Latency: %0.0f usec\n" +"\tResample method: %s\n" +"\tProperties:\n" +"\t\t%s\n" -#: ../src/utils/pactl.c:503 +#: ../src/utils/pactl.c:547 #, c-format msgid "Failed to get source output information: %s\n" -msgstr "" +msgstr "ਸਰੋਤ ਆਉਟਪà©à©±à¨Ÿ ਜਾਣਕਾਰੀ ਲੈਣ ਵਿੱਚ ਫੇਲ: %s\n" -#: ../src/utils/pactl.c:523 +#: ../src/utils/pactl.c:567 #, c-format msgid "" "Source Output #%u\n" @@ -1750,13 +2012,25 @@ msgid "" "\tProperties:\n" "\t\t%s\n" msgstr "" +"Source Output #%u\n" +"\tDriver: %s\n" +"\tOwner Module: %s\n" +"\tClient: %s\n" +"\tSource: %u\n" +"\tSample Specification: %s\n" +"\tChannel Map: %s\n" +"\tBuffer Latency: %0.0f usec\n" +"\tSource Latency: %0.0f usec\n" +"\tResample method: %s\n" +"\tProperties:\n" +"\t\t%s\n" -#: ../src/utils/pactl.c:554 +#: ../src/utils/pactl.c:598 #, c-format msgid "Failed to get sample information: %s\n" -msgstr "" +msgstr "ਸੈਂਪਲ ਜਾਣਕਾਰੀ ਲੈਣ ਵਿੱਚ ਫੇਲ: %s\n" -#: ../src/utils/pactl.c:572 +#: ../src/utils/pactl.c:616 #, c-format msgid "" "Sample #%u\n" @@ -1773,24 +2047,36 @@ msgid "" "\tProperties:\n" "\t\t%s\n" msgstr "" +"Sample #%u\n" +"\tName: %s\n" +"\tSample Specification: %s\n" +"\tChannel Map: %s\n" +"\tVolume: %s\n" +"\t %s\n" +"\t balance %0.2f\n" +"\tDuration: %0.1fs\n" +"\tSize: %s\n" +"\tLazy: %s\n" +"\tFilename: %s\n" +"\tProperties:\n" +"\t\t%s\n" -#: ../src/utils/pactl.c:602 ../src/utils/pactl.c:612 +#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 #, c-format msgid "Failure: %s\n" msgstr "ਫੇਲà©à¨¹: %s\n" -#: ../src/utils/pactl.c:636 +#: ../src/utils/pactl.c:680 #, c-format msgid "Failed to upload sample: %s\n" -msgstr "" +msgstr "ਸੈਂਪਲ ਅੱਪਲੋਡ ਕਰਨ ਵਿੱਚ ਫੇਲ: %s\n" -#: ../src/utils/pactl.c:653 -#, c-format +#: ../src/utils/pactl.c:697 msgid "Premature end of file\n" -msgstr "" +msgstr "ਫਾਇਲ ਦਾ ਸਮੇਂ ਤੋਂ ਪਹਿਲਾਂ ਅੰਤ\n" -#: ../src/utils/pactl.c:774 -#, c-format +#: ../src/utils/pactl.c:826 +#, fuzzy, c-format msgid "" "%s [options] stat\n" "%s [options] list\n" @@ -1805,6 +2091,8 @@ msgid "" "%s [options] suspend-sink [SINK] 1|0\n" "%s [options] suspend-source [SOURCE] 1|0\n" "%s [options] set-card-profile [CARD] [PROFILE] \n" +"%s [options] set-sink-port [SINK] [PORT] \n" +"%s [options] set-source-port [SOURCE] [PORT] \n" "\n" " -h, --help Show this help\n" " --version Show version\n" @@ -1814,80 +2102,107 @@ msgid "" " -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 [options] set-card-profile [CARD] [PROFILE] \n" +"\n" +" -h, --help Show this help\n" +" --version Show version\n" +"\n" +" -s, --server=SERVER The name of the server to connect " +"to\n" +" -n, --client-name=NAME How to call this client on the " +"server\n" -#: ../src/utils/pactl.c:826 +#: ../src/utils/pactl.c:880 #, c-format msgid "" "pactl %s\n" "Compiled with libpulse %s\n" "Linked with libpulse %s\n" msgstr "" +"pactl %s\n" +"Compiled with libpulse %s\n" +"Linked with libpulse %s\n" -#: ../src/utils/pactl.c:865 -#, c-format +#: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "ਲੋਡ ਕਰਨ ਲਈ ਸੈਂਪਲ ਫਾਇਲ ਦਿਓ\n" -#: ../src/utils/pactl.c:887 -#, c-format +#: ../src/utils/pactl.c:939 msgid "Failed to open sound file.\n" msgstr "ਸਾਊਂਡ ਫਾਇਲ ਖੋਲà©à¨¹à¨£ ਲਈ ਫੇਲà©à¨¹ ਹੈ।\n" -#: ../src/utils/pactl.c:899 -#, c-format +#: ../src/utils/pactl.c:951 +#, fuzzy +msgid "Warning: Failed to determine sample specification from file.\n" +msgstr "ਇੱਕ %s ਸਟਰੀਮ ਨੂੰ ਸੈਂਪਲ ਹਦਾਇਤ '%s' ਨਾਲ ਖੋਲà©à¨¹à¨¿à¨† ਜਾ ਰਿਹਾ ਹੈ।\n" + +#: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" -msgstr "" +msgstr "ਖੇਡਣ ਲਈ ਤà©à¨¹à¨¾à¨¨à©‚à©° ਸੈਂਪਲ ਨਾਂ ਦੇਣਾ ਪਵੇਗਾ\n" -#: ../src/utils/pactl.c:911 -#, c-format +#: ../src/utils/pactl.c:973 msgid "You have to specify a sample name to remove\n" -msgstr "" +msgstr "ਹਟਾਉਣ ਲਈ ਤà©à¨¹à¨¾à¨¨à©‚à©° ਸੈਂਪਲ ਨਾਂ ਦੇਣਾ ਪਵੇਗਾ\n" -#: ../src/utils/pactl.c:919 -#, c-format +#: ../src/utils/pactl.c:982 msgid "You have to specify a sink input index and a sink\n" -msgstr "" +msgstr "ਤà©à¨¹à¨¾à¨¨à©‚à©° ਇੰਪà©à©±à¨Ÿ ਲਿਸਟ ਅਤੇ ਇੱਕ ਸਿੰਕ ਨੂੰ ਸਿੰਕ ਕਰਨਾ ਪਵੇਗਾ\n" -#: ../src/utils/pactl.c:928 -#, c-format +#: ../src/utils/pactl.c:992 msgid "You have to specify a source output index and a source\n" -msgstr "" +msgstr "ਤà©à¨¹à¨¾à¨¨à©‚à©° ਇੱਕ ਸਰੋਤ ਆਉਟਪà©à©±à¨Ÿ ਲਿਸਟ ਅਤੇ ਇੱਕ ਸਰੋਤ ਦੇਣਾ ਪਵੇਗਾ\n" -#: ../src/utils/pactl.c:942 -#, c-format +#: ../src/utils/pactl.c:1007 msgid "You have to specify a module name and arguments.\n" -msgstr "" +msgstr "ਤà©à¨¹à¨¾à¨¨à©‚à©° ਇੱਕ ਮੋਡੀਊਲ ਨਾਂ ਅਤੇ ਆਰਗੂਮੈਂਟ ਦੇਣਾ ਪਵੇਗਾ।\n" -#: ../src/utils/pactl.c:962 -#, c-format +#: ../src/utils/pactl.c:1027 msgid "You have to specify a module index\n" -msgstr "" +msgstr "ਤà©à¨¹à¨¾à¨¨à©‚à©° ਇੱਕ ਮੈਡੀਊਲ ਲਿਸਟ ਦੇਣੀ ਪਵੇਗੀ\n" -#: ../src/utils/pactl.c:972 -#, c-format +#: ../src/utils/pactl.c:1037 msgid "" "You may not specify more than one sink. You have to specify a boolean " "value.\n" -msgstr "" +msgstr "ਤà©à¨¸à©€à¨‚ ਇੱਕ ਤੋਂ ਵੱਧ ਸਿੰਕ ਨਹੀਂ ਦੇ ਸਕਦੇ। ਤà©à¨¹à¨¾à¨¨à©‚à©° ਇੱਕ ਬà©à¨²à©€à¨…ਨ ਮà©à©±à¨² ਦੇਣਾ ਪਵੇਗਾ।\n" -#: ../src/utils/pactl.c:985 -#, c-format +#: ../src/utils/pactl.c:1050 msgid "" "You may not specify more than one source. You have to specify a boolean " "value.\n" -msgstr "" +msgstr "ਤà©à¨¸à©€à¨‚ ਇੱਕ ਤੋਂ ਵੱਧ ਸਰੋਤ ਨਹੀਂ ਦੇ ਸਕਦੇ। ਤà©à¨¹à¨¾à¨¨à©‚à©° ਬà©à¨²à©€à¨…ਨ ਮà©à©±à¨² ਦੇਣਾ ਪਵੇਗਾ।\n" -#: ../src/utils/pactl.c:997 -#, c-format +#: ../src/utils/pactl.c:1062 msgid "You have to specify a card name/index and a profile name\n" -msgstr "" +msgstr "ਤà©à¨¹à¨¾à¨¨à©‚à©° ਇੱਕ ਕਾਰਡ ਨਾਂ/ਲਿਸਟ ਅਤੇ ਪਰੋਫਾਈਲ ਨਾਂ ਦੇਣਾ ਪਵੇਗਾ\n" -#: ../src/utils/pactl.c:1012 -#, c-format +#: ../src/utils/pactl.c:1073 +#, fuzzy +msgid "You have to specify a sink name/index and a port name\n" +msgstr "ਤà©à¨¹à¨¾à¨¨à©‚à©° ਇੱਕ ਕਾਰਡ ਨਾਂ/ਲਿਸਟ ਅਤੇ ਪਰੋਫਾਈਲ ਨਾਂ ਦੇਣਾ ਪਵੇਗਾ\n" + +#: ../src/utils/pactl.c:1084 +#, fuzzy +msgid "You have to specify a source name/index and a port name\n" +msgstr "ਤà©à¨¹à¨¾à¨¨à©‚à©° ਇੱਕ ਕਾਰਡ ਨਾਂ/ਲਿਸਟ ਅਤੇ ਪਰੋਫਾਈਲ ਨਾਂ ਦੇਣਾ ਪਵੇਗਾ\n" + +#: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" -msgstr "" +msgstr "ਕੋਈ ਯੋਗ ਕਮਾਂਡ ਨਹੀਂ ਦਿੱਤੀ।\n" -#: ../src/utils/pactl.c:1037 ../src/utils/paplay.c:404 +#: ../src/utils/pactl.c:1122 #, c-format msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect() ਫੇਲà©à¨¹ ਹੈ: %s" @@ -1903,11 +2218,18 @@ msgid "" "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 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" +" -r Remove PulseAudio data from X11 display\n" #: ../src/utils/pax11publish.c:94 #, c-format msgid "Failed to parse command line.\n" -msgstr "" +msgstr "ਕਮਾਂਡ ਲਾਈਨ ਪਾਰਸ ਕਰਨ ਵਿੱਚ ਫੇਲà©à¨¹à¥¤\n" #: ../src/utils/pax11publish.c:108 #, c-format @@ -1922,7 +2244,7 @@ msgstr "ਸਰੋਤ: %s\n" #: ../src/utils/pax11publish.c:112 #, c-format msgid "Sink: %s\n" -msgstr "" +msgstr "ਸਿੰਕ: %s\n" #: ../src/utils/pax11publish.c:114 #, c-format @@ -1932,141 +2254,80 @@ msgstr "ਕੂਕੀਜ਼: %s\n" #: ../src/utils/pax11publish.c:132 #, c-format msgid "Failed to parse cookie data\n" -msgstr "" +msgstr "ਕੂਕੀ ਡਾਟਾ ਪਾਰਸ ਕਰਨ ਵਿੱਚ ਫੇਲ\n" #: ../src/utils/pax11publish.c:137 #, c-format msgid "Failed to save cookie data\n" -msgstr "" +msgstr "ਕੂਕੀ ਡਾਟਾ ਸੰà¨à¨¾à¨²à¨£ ਵਿੱਚ ਫੇਲ\n" #: ../src/utils/pax11publish.c:152 #, c-format msgid "Failed to load client configuration file.\n" -msgstr "" +msgstr "ਕਲਾਇਟ ਸੰਰਚਨਾ ਫਾਇਲ ਲੋਡ ਕਰਨ ਵਿੱਚ ਫੇਲ।\n" #: ../src/utils/pax11publish.c:157 #, c-format msgid "Failed to read environment configuration data.\n" -msgstr "" +msgstr "ਇੰਵਾਇਰਨਮੈਂਟ ਸੰਰਚਨਾ ਡਾਟਾ ਪੜà©à¨¹à¨¨ ਵਿੱਚ ਫੇਲà©à¨¹à¥¤\n" #: ../src/utils/pax11publish.c:174 #, c-format msgid "Failed to get FQDN.\n" -msgstr "" +msgstr "FQDN ਪà©à¨°à¨¾à¨ªà¨¤ ਕਰਨ ਵਿੱਚ ਫੇਲ।\n" #: ../src/utils/pax11publish.c:194 #, c-format msgid "Failed to load cookie data\n" -msgstr "" +msgstr "ਕੂਕੀ ਡਾਟਾ ਲੋਡ ਕਰਨ ਵਿੱਚ ਫੇਲ\n" #: ../src/utils/pax11publish.c:211 #, c-format msgid "Not yet implemented.\n" msgstr "ਹਾਲੇ ਬਣਾਇਆ ਨਹੀਂ।\n" -#: ../src/utils/pacmd.c:64 +#: ../src/utils/pacmd.c:61 +msgid "No PulseAudio daemon running, or not running as session daemon." +msgstr "" + +#: ../src/utils/pacmd.c:66 #, c-format msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s" msgstr "socket(PF_UNIX, SOCK_STREAM, 0): %s" -#: ../src/utils/pacmd.c:81 +#: ../src/utils/pacmd.c:83 #, c-format msgid "connect(): %s" msgstr "connect(): %s" -#: ../src/utils/pacmd.c:89 +#: ../src/utils/pacmd.c:91 msgid "Failed to kill PulseAudio daemon." -msgstr "" +msgstr "ਪਲਸਆਡੀਓ ਡੈਮਨ ਬੰਦ ਕਰਨ ਵਿੱਚ ਫੇਲ।" -#: ../src/utils/pacmd.c:97 +#: ../src/utils/pacmd.c:99 msgid "Daemon not responding." msgstr "ਡੈਮਨ ਜਵਾਬ ਨਹੀਂ ਦੇ ਰਹੀ।" -#: ../src/utils/pacmd.c:144 +#: ../src/utils/pacmd.c:146 #, c-format msgid "select(): %s" msgstr "select(): %s" -#: ../src/utils/pacmd.c:154 ../src/utils/pacmd.c:171 +#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173 #, c-format msgid "read(): %s" msgstr "read(): %s" -#: ../src/utils/pacmd.c:187 ../src/utils/pacmd.c:201 +#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203 #, c-format msgid "write(): %s" msgstr "write(): %s" -#: ../src/utils/paplay.c:139 -#, c-format -msgid "Stream successfully created\n" -msgstr "ਸਟਰੀਮ ਠੀਕ ਤਰà©à¨¹à¨¾à¨‚ ਬਣਾਈ ਗਈ।\n" - -#: ../src/utils/paplay.c:144 -#, c-format -msgid "Stream errror: %s\n" -msgstr "ਸਟਰੀਮ ਗਲਤੀ: %s\n" - -#: ../src/utils/paplay.c:165 -#, c-format -msgid "Connection established.\n" -msgstr "ਕà©à¨¨à©ˆà¨•à¨¸à¨¼à¨¨ ਬਣਾਇਆ ਗਿਆ।\n" - -#: ../src/utils/paplay.c:198 -#, c-format -msgid "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" -msgstr "" - -#: ../src/utils/paplay.c:255 -#, c-format -msgid "" -"paplay %s\n" -"Compiled with libpulse %s\n" -"Linked with libpulse %s\n" -msgstr "" - -#: ../src/utils/paplay.c:292 -#, c-format -msgid "Invalid channel map\n" -msgstr "ਗਲਤ ਚੈਨਲ ਮੈਪ\n" - -#: ../src/utils/paplay.c:314 -#, c-format -msgid "Failed to open file '%s'\n" -msgstr "" - -#: ../src/utils/paplay.c:350 -#, c-format -msgid "Channel map doesn't match file.\n" -msgstr "" - -#: ../src/utils/paplay.c:376 -#, c-format -msgid "Using sample spec '%s'\n" -msgstr "" - #: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 msgid "Cannot access autospawn lock." -msgstr "" +msgstr "autospawn ਲਾਕ ਵਰਤ ਨਹੀਂ ਸਕਦਾ।" -#: ../src/modules/alsa/alsa-sink.c:393 ../src/modules/alsa/alsa-sink.c:541 +#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2076,8 +2337,14 @@ msgid "" "We were woken up with POLLOUT set -- however a subsequent snd_pcm_avail() " "returned 0 or another value < min_avail." msgstr "" +"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." -#: ../src/modules/alsa/alsa-source.c:377 ../src/modules/alsa/alsa-source.c:516 +#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2087,44 +2354,137 @@ msgid "" "We were woken up with POLLIN set -- however a subsequent snd_pcm_avail() " "returned 0 or another value < min_avail." msgstr "" +"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." -#: ../src/modules/alsa/module-alsa-card.c:114 -#, c-format -msgid "Output %s + Input %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:117 -#, c-format -msgid "Output %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:121 -#, c-format -msgid "Input %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:170 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2006 +#: ../src/modules/alsa/module-alsa-card.c:152 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 msgid "Off" -msgstr "" +msgstr "ਬੰਦ" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1976 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 msgid "High Fidelity Playback (A2DP)" -msgstr "" +msgstr "ਹਾਈ ਫਡੈਲਿਟੀ ਪਲੇਅਬੈਕ (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1991 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 msgid "Telephony Duplex (HSP/HFP)" -msgstr "" +msgstr "ਟੈਲੀਫੋਨੀ ਡà©à¨ªà¨²à©ˆà¨•à¨¸ (HSP/HFP)" -#: ../src/modules/reserve-wrap.c:139 +#: ../src/modules/reserve-wrap.c:151 msgid "PulseAudio Sound Server" -msgstr "" - -#~ msgid "pa_stream_drop() failed: %s\n" -#~ msgstr "pa_stream_drop() ਫੇਲà©à¨¹ ਹੈ: %s\n" - -#~ msgid "muted" -#~ msgstr "ਚà©à©±à¨ª" - -#~ msgid "source" -#~ msgstr "ਸਰੋਤ" +msgstr "ਪਲਸਆਡੀਓ ਸਾਊਂਡ ਡਰਾਇਵਰ" + +#~ msgid "Analog Mono" +#~ msgstr "à¨à¨¨à¨¾à¨²à¨¾à¨— ਮੋਨੋ" + +#~ msgid "Analog Stereo" +#~ msgstr "à¨à¨¨à¨¾à¨²à¨¾à¨— ਸਟੀਰੀਓ" + +#~ msgid "Digital Stereo (IEC958)" +#~ msgstr "ਡਿਜ਼ੀਟਲ ਸਟੀਰੀਓ (IEC958)" + +#~ msgid "Digital Stereo (HDMI)" +#~ msgstr "ਡਿਜ਼ਿਟਲ ਸਟੀਰੀਓ (HDMI)" + +#~ msgid "Analog Surround 4.0" +#~ msgstr "à¨à¨¨à¨¾à¨²à¨¾à¨— ਸਰਾਊਂਡਿੰਗ 4.0" + +#~ msgid "Digital Surround 4.0 (IEC958/AC3)" +#~ msgstr "ਡਿਜ਼ਿਟਲ ਸਰਾਊਂਡਿੰਗ 4.0 (IEC958/AC3)" + +#~ msgid "Analog Surround 4.1" +#~ msgstr "à¨à¨¨à¨¾à¨²à¨¾à¨— ਸਰਾਊਂਡਿੰਗ 4.1" + +#~ msgid "Analog Surround 5.0" +#~ msgstr "à¨à¨¨à¨¾à¨²à¨¾à¨— ਸਰਾਊਂਡਿੰਗ 5.0" + +#~ msgid "Analog Surround 5.1" +#~ msgstr "à¨à¨¨à¨¾à¨²à¨¾à¨— ਸਰਾਊਂਡਿੰਗ 5.1" + +#~ msgid "Digital Surround 5.1 (IEC958/AC3)" +#~ msgstr "ਡਿਜ਼ਿਟਲ ਸਰਾਊਂਡਿੰਗ 5.1 (IEC958/AC3)" + +#~ msgid "Analog Surround 7.1" +#~ msgstr "à¨à¨¨à¨¾à¨²à¨¾à¨— ਸਰਾਊਂਡਿੰਗ 7.1" + +#~ msgid "Output %s + Input %s" +#~ msgstr "ਆਉਟਪà©à©±à¨Ÿ %s + ਇੰਪà©à©±à¨Ÿ %s" + +#~ msgid "Output %s" +#~ msgstr "ਆਉਟਪà©à©±à¨Ÿ %s" + +#~ msgid "Input %s" +#~ msgstr "ਇੰਪà©à©±à¨Ÿ %s" + +#~ msgid "Stream successfully created\n" +#~ msgstr "ਸਟਰੀਮ ਠੀਕ ਤਰà©à¨¹à¨¾à¨‚ ਬਣਾਈ ਗਈ।\n" + +#~ msgid "Stream errror: %s\n" +#~ msgstr "ਸਟਰੀਮ ਗਲਤੀ: %s\n" + +#~ msgid "Connection established.\n" +#~ msgstr "ਕà©à¨¨à©ˆà¨•à¨¸à¨¼à¨¨ ਬਣਾਇਆ ਗਿਆ।\n" + +#~ msgid "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Show this help\n" +#~ " --version Show version\n" +#~ "\n" +#~ " -v, --verbose Enable verbose operation\n" +#~ "\n" +#~ " -s, --server=SERVER The name of the server to connect " +#~ "to\n" +#~ " -d, --device=DEVICE The name of the sink to connect " +#~ "to\n" +#~ " -n, --client-name=NAME How to call this client on the " +#~ "server\n" +#~ " --stream-name=NAME How to call this stream on the " +#~ "server\n" +#~ " --volume=VOLUME Specify the initial (linear) " +#~ "volume in range 0...65536\n" +#~ " --channel-map=CHANNELMAP Set the channel map to the use\n" +#~ msgstr "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Show this help\n" +#~ " --version Show version\n" +#~ "\n" +#~ " -v, --verbose Enable verbose operation\n" +#~ "\n" +#~ " -s, --server=SERVER The name of the server to connect " +#~ "to\n" +#~ " -d, --device=DEVICE The name of the sink to connect " +#~ "to\n" +#~ " -n, --client-name=NAME How to call this client on the " +#~ "server\n" +#~ " --stream-name=NAME How to call this stream on the " +#~ "server\n" +#~ " --volume=VOLUME Specify the initial (linear) " +#~ "volume in range 0...65536\n" +#~ " --channel-map=CHANNELMAP Set the channel map to the use\n" + +#~ msgid "" +#~ "paplay %s\n" +#~ "Compiled with libpulse %s\n" +#~ "Linked with libpulse %s\n" +#~ msgstr "" +#~ "paplay %s\n" +#~ "Compiled with libpulse %s\n" +#~ "Linked with libpulse %s\n" + +#~ msgid "Invalid channel map\n" +#~ msgstr "ਗਲਤ ਚੈਨਲ ਮੈਪ\n" + +#~ msgid "Failed to open file '%s'\n" +#~ msgstr "ਫਾਇਲ '%s' ਖੋਲà©à¨¹à¨£ ਲਈ ਫੇਲ\n" + +#~ msgid "Channel map doesn't match file.\n" +#~ msgstr "ਚੈਨਲ ਮੈਪ ਫਾਇਲ ਨਾਲ ਨਹੀਂ ਮਿਲਦਾ।\n" + +#~ msgid "Using sample spec '%s'\n" +#~ msgstr "ਸੈਂਪਲ spec '%s' ਦੀ ਵਰਤੋਂ\n" @@ -5,59 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: pl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-21 23:02+0200\n" -"PO-Revision-Date: 2009-04-14 16:45+0200\n" +"POT-Creation-Date: 2009-06-17 23:42+0200\n" +"PO-Revision-Date: 2009-06-09 00:03+0200\n" "Last-Translator: Piotr DrÄ…g <piotrdrag@gmail.com>\n" "Language-Team: Polish <pl@li.org>\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:532 -msgid "Analog Mono" -msgstr "Analogowe mono" - -#: ../src/modules/alsa/alsa-util.c:540 -msgid "Analog Stereo" -msgstr "Analogowe stereo" - -#: ../src/modules/alsa/alsa-util.c:548 -msgid "Digital Stereo (IEC958)" -msgstr "Cyfrowe stereo (IEC958)" - -#: ../src/modules/alsa/alsa-util.c:556 -msgid "Digital Stereo (HDMI)" -msgstr "Cyfrowe stereo (HDMI)" - -#: ../src/modules/alsa/alsa-util.c:565 -msgid "Analog Surround 4.0" -msgstr "Analogowe surround 4.0" - -#: ../src/modules/alsa/alsa-util.c:574 -msgid "Digital Surround 4.0 (IEC958/AC3)" -msgstr "Cyfrowe surround 4.0 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:584 -msgid "Analog Surround 4.1" -msgstr "Analogowe surround 4.1" - -#: ../src/modules/alsa/alsa-util.c:594 -msgid "Analog Surround 5.0" -msgstr "Analogowe surround 5.0" - -#: ../src/modules/alsa/alsa-util.c:604 -msgid "Analog Surround 5.1" -msgstr "Analogowe surround 5.1" - -#: ../src/modules/alsa/alsa-util.c:614 -msgid "Digital Surround 5.1 (IEC958/AC3)" -msgstr "Cyfrowe surround 5.1 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:625 -msgid "Analog Surround 7.1" -msgstr "Analogowe surround 7.1" - -#: ../src/modules/alsa/alsa-util.c:1646 +#: ../src/modules/alsa/alsa-util.c:1015 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -69,7 +25,7 @@ msgstr "" "Prawdopodobnie jest to bÅ‚Ä…d sterownika ALSA \"%s\". ProszÄ™ zgÅ‚osić ten " "problem programistom ALSA." -#: ../src/modules/alsa/alsa-util.c:1687 +#: ../src/modules/alsa/alsa-util.c:1056 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -81,7 +37,7 @@ msgstr "" "Prawdopodobnie jest to bÅ‚Ä…d sterownika ALSA \"%s\". ProszÄ™ zgÅ‚osić ten " "problem programistom ALSA." -#: ../src/modules/alsa/alsa-util.c:1734 +#: ../src/modules/alsa/alsa-util.c:1103 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -93,11 +49,24 @@ msgstr "" "Prawdopodobnie jest to bÅ‚Ä…d sterownika ALSA \"%s\". ProszÄ™ zgÅ‚osić ten " "problem programistom ALSA." -#: ../src/pulsecore/sink.c:2141 +#: ../src/modules/module-ladspa-sink.c:49 +msgid "Virtual LADSPA sink" +msgstr "" + +#: ../src/modules/module-ladspa-sink.c:53 +msgid "" +"sink_name=<name for the sink> sink_properties=<properties for the sink> " +"master=<name of sink to filter> format=<sample format> rate=<sample rate> " +"channels=<number of channels> channel_map=<channel map> plugin=<ladspa " +"plugin name> label=<ladspa plugin label> control=<comma seperated list of " +"input control values>" +msgstr "" + +#: ../src/pulsecore/sink.c:2394 msgid "Internal Audio" msgstr "WewnÄ™trzny dźwiÄ™k" -#: ../src/pulsecore/sink.c:2147 +#: ../src/pulsecore/sink.c:2400 msgid "Modem" msgstr "Modem" @@ -168,106 +137,106 @@ msgstr "Nie można uzyskać upoważnienia: %s" msgid "PolicyKit responded with '%s'" msgstr "PolicyKit zwróciÅ‚o \"%s\"" -#: ../src/daemon/main.c:138 +#: ../src/daemon/main.c:142 #, c-format msgid "Got signal %s." msgstr "Otrzymano sygnaÅ‚ %s." -#: ../src/daemon/main.c:165 +#: ../src/daemon/main.c:169 msgid "Exiting." msgstr "WyÅ‚Ä…czanie." -#: ../src/daemon/main.c:183 +#: ../src/daemon/main.c:187 #, c-format msgid "Failed to find user '%s'." msgstr "Znalezienie użytkownika \"%s\" nie powiodÅ‚o siÄ™." -#: ../src/daemon/main.c:188 +#: ../src/daemon/main.c:192 #, c-format msgid "Failed to find group '%s'." msgstr "Znalezienie grupy \"%s\" nie powiodÅ‚o siÄ™." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:196 #, 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:197 +#: ../src/daemon/main.c:201 #, 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:202 +#: ../src/daemon/main.c:206 #, 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:205 ../src/daemon/main.c:210 +#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 #, c-format msgid "Failed to create '%s': %s" msgstr "Utworzenie \"%s\" nie powiodÅ‚o siÄ™: %s" -#: ../src/daemon/main.c:217 +#: ../src/daemon/main.c:221 #, c-format msgid "Failed to change group list: %s" msgstr "Zmiana listy grup nie powiodÅ‚a siÄ™: %s" -#: ../src/daemon/main.c:233 +#: ../src/daemon/main.c:237 #, c-format msgid "Failed to change GID: %s" msgstr "Zmiana GID nie powiodÅ‚a siÄ™: %s" -#: ../src/daemon/main.c:249 +#: ../src/daemon/main.c:253 #, c-format msgid "Failed to change UID: %s" msgstr "Zmiana UID nie powiodÅ‚a siÄ™: %s" -#: ../src/daemon/main.c:263 +#: ../src/daemon/main.c:267 msgid "Successfully dropped root privileges." msgstr "PomyÅ›lnie porzucono uprawnienia roota." -#: ../src/daemon/main.c:271 +#: ../src/daemon/main.c:275 msgid "System wide mode unsupported on this platform." msgstr "Tryb systemowy nie jest obsÅ‚ugiwany na tej platformie." -#: ../src/daemon/main.c:289 +#: ../src/daemon/main.c:293 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) nie powiodÅ‚o siÄ™: %s" -#: ../src/daemon/main.c:477 +#: ../src/daemon/main.c:481 msgid "Failed to parse command line." msgstr "Analiza wiersza poleceÅ„ nie powiodÅ‚a siÄ™." -#: ../src/daemon/main.c:501 +#: ../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:508 +#: ../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:516 +#: ../src/daemon/main.c:520 msgid "PolicyKit grants us acquire-high-priority privilege." msgstr "PolicyKit nadaÅ‚ uprawnienie \"acquire-high-priority\"." -#: ../src/daemon/main.c:519 +#: ../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:524 +#: ../src/daemon/main.c:528 msgid "PolicyKit grants us acquire-real-time privilege." msgstr "PolicyKit nadaÅ‚ uprawnienie \"acquire-real-time\"." -#: ../src/daemon/main.c:527 +#: ../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:556 +#: ../src/daemon/main.c:560 #, c-format msgid "" "Called SUID root and real-time and/or high-priority scheduling was requested " @@ -288,48 +257,48 @@ msgstr "" "\" lub zwiÄ™kszyć ograniczenia zasobów RLIMIT_NICE/RLIMIT_RTPRIO dla tego " "użytkownika." -#: ../src/daemon/main.c:581 +#: ../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:610 +#: ../src/daemon/main.c:614 msgid "Successfully increased RLIMIT_RTPRIO" msgstr "PomyÅ›lnie zwiÄ™kszono RLIMIT_RTPRIO" -#: ../src/daemon/main.c:613 +#: ../src/daemon/main.c:617 #, c-format msgid "RLIMIT_RTPRIO failed: %s" msgstr "RLIMIT_RTPRIO nie powiodÅ‚o siÄ™: %s" -#: ../src/daemon/main.c:620 +#: ../src/daemon/main.c:624 msgid "Giving up CAP_NICE" msgstr "Oddawanie CAP_NICE" -#: ../src/daemon/main.c:627 +#: ../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:688 +#: ../src/daemon/main.c:692 msgid "Daemon not running" msgstr "Demon nie jest uruchomiony" -#: ../src/daemon/main.c:690 +#: ../src/daemon/main.c:694 #, c-format msgid "Daemon running as PID %u" msgstr "Demon jest uruchomiony jako PID %u" -#: ../src/daemon/main.c:700 +#: ../src/daemon/main.c:704 #, c-format msgid "Failed to kill daemon: %s" msgstr "Zniszczenie demona nie powiodÅ‚o siÄ™: %s" -#: ../src/daemon/main.c:718 +#: ../src/daemon/main.c:722 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -337,163 +306,173 @@ msgstr "" "Ten program nie powinien być uruchomiany jako root (chyba, że podano --" "system)." -#: ../src/daemon/main.c:720 +#: ../src/daemon/main.c:724 msgid "Root privileges required." msgstr "Wymagane sÄ… uprawnienia roota." -#: ../src/daemon/main.c:725 +#: ../src/daemon/main.c:729 msgid "--start not supported for system instances." msgstr "--start nie jest obsÅ‚ugiwane przy uruchamianiu systemowym." -#: ../src/daemon/main.c:730 +#: ../src/daemon/main.c:734 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:733 +#: ../src/daemon/main.c:737 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:736 +#: ../src/daemon/main.c:740 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "Uruchamianie w trybie systemowym, wymuszanie wyÅ‚Ä…czenia trybu SHM!" -#: ../src/daemon/main.c:741 +#: ../src/daemon/main.c:745 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:768 +#: ../src/daemon/main.c:772 msgid "Failed to acquire stdio." msgstr "Uzyskanie standardowego wejÅ›cia/wyjÅ›cia nie powiodÅ‚o siÄ™." -#: ../src/daemon/main.c:774 +#: ../src/daemon/main.c:778 #, c-format msgid "pipe failed: %s" msgstr "potok nie powiódÅ‚ siÄ™: %s" -#: ../src/daemon/main.c:779 +#: ../src/daemon/main.c:783 #, c-format msgid "fork() failed: %s" msgstr "fork() nie powiodÅ‚o siÄ™: %s" -#: ../src/daemon/main.c:793 +#: ../src/daemon/main.c:797 #, c-format msgid "read() failed: %s" msgstr "read() nie powiodÅ‚o siÄ™: %s" -#: ../src/daemon/main.c:799 +#: ../src/daemon/main.c:803 msgid "Daemon startup failed." msgstr "Uruchomienie demona nie powiodÅ‚o siÄ™." -#: ../src/daemon/main.c:801 +#: ../src/daemon/main.c:805 msgid "Daemon startup successful." msgstr "PomyÅ›lnie uruchomiono demona." -#: ../src/daemon/main.c:871 +#: ../src/daemon/main.c:875 #, c-format msgid "This is PulseAudio %s" msgstr "To jest PulseAudio %s" -#: ../src/daemon/main.c:872 +#: ../src/daemon/main.c:876 #, c-format msgid "Compilation host: %s" msgstr "Komputer kompilacji: %s" -#: ../src/daemon/main.c:873 +#: ../src/daemon/main.c:877 #, c-format msgid "Compilation CFLAGS: %s" msgstr "CFLAGS kompilacji: %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:880 #, c-format msgid "Running on host: %s" msgstr "Uruchamianie na komputerze: %s" -#: ../src/daemon/main.c:879 +#: ../src/daemon/main.c:883 #, c-format msgid "Found %u CPUs." msgstr "Znaleziono %u procesorów." -#: ../src/daemon/main.c:881 +#: ../src/daemon/main.c:885 #, c-format msgid "Page size is %lu bytes" msgstr "Rozmiar strony to %lu bajtów" -#: ../src/daemon/main.c:884 +#: ../src/daemon/main.c:888 msgid "Compiled with Valgrind support: yes" msgstr "Skompilowano z obsÅ‚ugÄ… Valgrind: tak" -#: ../src/daemon/main.c:886 +#: ../src/daemon/main.c:890 msgid "Compiled with Valgrind support: no" msgstr "Skompilowano z obsÅ‚ugÄ… Valgrind: nie" -#: ../src/daemon/main.c:889 +#: ../src/daemon/main.c:893 #, c-format msgid "Running in valgrind mode: %s" msgstr "Uruchamianie w trybie Valgrind: %s" -#: ../src/daemon/main.c:892 +#: ../src/daemon/main.c:896 msgid "Optimized build: yes" msgstr "Budowanie optymalizowane: tak" -#: ../src/daemon/main.c:894 +#: ../src/daemon/main.c:898 msgid "Optimized build: no" msgstr "Budowanie optymalizowane: nie" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:902 msgid "NDEBUG defined, all asserts disabled." msgstr "Podano NDEBUG, wszystkie asercje zostaÅ‚y wyÅ‚Ä…czone." -#: ../src/daemon/main.c:900 +#: ../src/daemon/main.c:904 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "Podano FASTPATH, tylko szybkie asercje Å›cieżek zostaÅ‚y wyÅ‚Ä…czone." -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:906 msgid "All asserts enabled." msgstr "Wszystkie asercje sÄ… wÅ‚Ä…czone." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:910 msgid "Failed to get machine ID" msgstr "Uzyskanie identyfikatora komputera nie powiodÅ‚o siÄ™" -#: ../src/daemon/main.c:909 +#: ../src/daemon/main.c:913 #, c-format msgid "Machine ID is %s." msgstr "Identyfikator komputera to %s." -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:917 #, c-format msgid "Session ID is %s." msgstr "Identyfikator sesji to %s." -#: ../src/daemon/main.c:919 +#: ../src/daemon/main.c:923 #, c-format msgid "Using runtime directory %s." msgstr "Używanie folderu wykonywania %s." -#: ../src/daemon/main.c:924 +#: ../src/daemon/main.c:928 #, c-format msgid "Using state directory %s." msgstr "Używanie folderu stanu %s." -#: ../src/daemon/main.c:927 +#: ../src/daemon/main.c:931 #, c-format msgid "Running in system mode: %s" msgstr "Uruchamianie w trybie systemowym: %s" -#: ../src/daemon/main.c:942 +#: ../src/daemon/main.c:934 +msgid "" +"OK, so you are running PA in system mode. Please note that you most likely " +"shouldn't be doing that.\n" +"If you do it nonetheless then it's your own fault if things don't work as " +"expected.\n" +"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " +"explanation why system mode is usually a bad idea." +msgstr "" + +#: ../src/daemon/main.c:951 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() nie powiodÅ‚o siÄ™." -#: ../src/daemon/main.c:954 +#: ../src/daemon/main.c:961 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "Åšwieże zegary o wysokiej rozdzielczoÅ›ci! Smacznego!" -#: ../src/daemon/main.c:956 +#: ../src/daemon/main.c:963 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -501,31 +480,31 @@ msgstr "" "KoleÅ›, twoje jÄ…dro Å›mierdzi! Szef kuchni poleca dzisiaj Linuksa w wÅ‚Ä…czonymi " "zegarami o wysokiej rozdzielczoÅ›ci!" -#: ../src/daemon/main.c:970 +#: ../src/daemon/main.c:988 msgid "pa_core_new() failed." msgstr "pa_core_new() nie powiodÅ‚o siÄ™." -#: ../src/daemon/main.c:1032 +#: ../src/daemon/main.c:1050 msgid "Failed to initialize daemon." msgstr "Zainicjowanie demona nie powiodÅ‚o siÄ™." -#: ../src/daemon/main.c:1037 +#: ../src/daemon/main.c:1055 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "Uruchamianie demona bez żadnych wczytanych modułów, odmawianie pracy." -#: ../src/daemon/main.c:1054 +#: ../src/daemon/main.c:1072 msgid "Daemon startup complete." msgstr "ZakoÅ„czono uruchamianie demona." -#: ../src/daemon/main.c:1060 +#: ../src/daemon/main.c:1078 msgid "Daemon shutdown initiated." msgstr "Zainicjowano wyÅ‚Ä…czenie demona." -#: ../src/daemon/main.c:1082 +#: ../src/daemon/main.c:1100 msgid "Daemon terminated." msgstr "Demon zostaÅ‚ zniszczony." -#: ../src/daemon/cmdline.c:121 +#: ../src/daemon/cmdline.c:115 #, c-format msgid "" "%s [options]\n" @@ -675,15 +654,15 @@ msgstr "" " -n Nie wczytuje domyÅ›lnego pliku\n" " skryptu\n" -#: ../src/daemon/cmdline.c:252 +#: ../src/daemon/cmdline.c:247 msgid "--daemonize expects boolean argument" msgstr "--daemonize oczekuje parametru w postaci zmiennej logicznej" -#: ../src/daemon/cmdline.c:259 +#: ../src/daemon/cmdline.c:254 msgid "--fail expects boolean argument" msgstr "--fail oczekuje parametru w postaci zmiennej logicznej" -#: ../src/daemon/cmdline.c:269 +#: ../src/daemon/cmdline.c:264 msgid "" "--log-level expects log level argument (either numeric in range 0..4 or one " "of debug, info, notice, warn, error)." @@ -691,54 +670,54 @@ msgstr "" "--log-level oczekuje parametru poziomu dziennika (numeryczny w zakresie 0..4 " "lub jeden z debug, info, notice, warn, error)." -#: ../src/daemon/cmdline.c:281 +#: ../src/daemon/cmdline.c:276 msgid "--high-priority expects boolean argument" msgstr "--high-priority oczekuje parametru zmiennej logicznej" -#: ../src/daemon/cmdline.c:288 +#: ../src/daemon/cmdline.c:283 msgid "--realtime expects boolean argument" msgstr "--realtime oczekuje parametru zmiennej logicznej" -#: ../src/daemon/cmdline.c:295 +#: ../src/daemon/cmdline.c:290 msgid "--disallow-module-loading expects boolean argument" msgstr "--disallow-module-loading oczekuje parametru zmiennej logicznej" -#: ../src/daemon/cmdline.c:302 +#: ../src/daemon/cmdline.c:297 msgid "--disallow-exit expects boolean argument" msgstr "--disallow-exit oczekuje parametru zmiennej logicznej" -#: ../src/daemon/cmdline.c:309 +#: ../src/daemon/cmdline.c:304 msgid "--use-pid-file expects boolean argument" msgstr "--use-pid-file oczekuje parametru zmiennej logicznej" -#: ../src/daemon/cmdline.c:326 +#: ../src/daemon/cmdline.c:321 msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgstr "" "NieprawidÅ‚owy dziennik docelowy: należy użyć \"syslog\", \"stderr\" lub " "\"auto\"." -#: ../src/daemon/cmdline.c:333 +#: ../src/daemon/cmdline.c:328 msgid "--log-time expects boolean argument" msgstr "--log-time oczekuje parametru zmiennej logicznej" -#: ../src/daemon/cmdline.c:340 +#: ../src/daemon/cmdline.c:335 msgid "--log-meta expects boolean argument" msgstr "--log-meta oczekuje parametru zmiennej logicznej" -#: ../src/daemon/cmdline.c:359 +#: ../src/daemon/cmdline.c:354 #, c-format msgid "Invalid resample method '%s'." msgstr "NieprawidÅ‚owa metoda resamplingu \"%s\"." -#: ../src/daemon/cmdline.c:366 +#: ../src/daemon/cmdline.c:361 msgid "--system expects boolean argument" msgstr "--system oczekuje parametru zmiennej logicznej" -#: ../src/daemon/cmdline.c:373 +#: ../src/daemon/cmdline.c:368 msgid "--no-cpu-limit expects boolean argument" msgstr "--no-cpu-limit oczekuje parametru zmiennej logicznej" -#: ../src/daemon/cmdline.c:380 +#: ../src/daemon/cmdline.c:375 msgid "--disable-shm expects boolean argument" msgstr "--disable-shm oczekuje parametru zmiennej logicznej" @@ -777,77 +756,82 @@ msgstr "Użycie: %s\n" msgid "Load Once: %s\n" msgstr "Wczytanie jednorazowe: %s\n" -#: ../src/daemon/dumpmodules.c:77 +#: ../src/daemon/dumpmodules.c:75 +#, c-format +msgid "DEPRECATION WARNING: %s\n" +msgstr "OSTRZEÅ»ENIE O PRZESTARZAÅOÅšCI: %s\n" + +#: ../src/daemon/dumpmodules.c:79 #, c-format msgid "Path: %s\n" msgstr "Åšcieżka: %s\n" -#: ../src/daemon/daemon-conf.c:215 +#: ../src/daemon/daemon-conf.c:216 #, c-format msgid "[%s:%u] Invalid log target '%s'." msgstr "[%s:%u] NieprawidÅ‚owy dziennik docelowy \"%s\"." -#: ../src/daemon/daemon-conf.c:231 +#: ../src/daemon/daemon-conf.c:232 #, c-format msgid "[%s:%u] Invalid log level '%s'." msgstr "[%s:%u] NieprawidÅ‚owy poziom dziennika \"%s\"." -#: ../src/daemon/daemon-conf.c:247 +#: ../src/daemon/daemon-conf.c:248 #, c-format msgid "[%s:%u] Invalid resample method '%s'." msgstr "[%s:%u] NieprawidÅ‚owa metoda resamplingu \"%s\"." -#: ../src/daemon/daemon-conf.c:270 +#: ../src/daemon/daemon-conf.c:271 #, c-format msgid "[%s:%u] Invalid rlimit '%s'." msgstr "[%s:%u] NieprawidÅ‚owy rlimit \"%s\"." -#: ../src/daemon/daemon-conf.c:277 +#: ../src/daemon/daemon-conf.c:278 #, c-format msgid "[%s:%u] rlimit not supported on this platform." msgstr "[%s:%u] rlimit nie jest obsÅ‚ugiwany na tej platformie." -#: ../src/daemon/daemon-conf.c:293 +#: ../src/daemon/daemon-conf.c:294 #, c-format msgid "[%s:%u] Invalid sample format '%s'." msgstr "[%s:%u] NieprawidÅ‚owy format próbki \"%s\"." -#: ../src/daemon/daemon-conf.c:311 +#: ../src/daemon/daemon-conf.c:312 #, c-format msgid "[%s:%u] Invalid sample rate '%s'." msgstr "[%s:%u] NieprawidÅ‚owa czÄ™stotliwość próbki \"%s\"." -#: ../src/daemon/daemon-conf.c:335 +#: ../src/daemon/daemon-conf.c:336 #, c-format msgid "[%s:%u] Invalid sample channels '%s'." msgstr "[%s:%u] NieprawidÅ‚owe kanaÅ‚y próbki \"%s\"." -#: ../src/daemon/daemon-conf.c:353 +#: ../src/daemon/daemon-conf.c:354 #, c-format msgid "[%s:%u] Invalid channel map '%s'." msgstr "[%s:%u] NieprawidÅ‚owa mapa kanałów \"%s\"." -#: ../src/daemon/daemon-conf.c:371 +#: ../src/daemon/daemon-conf.c:372 #, c-format msgid "[%s:%u] Invalid number of fragments '%s'." msgstr "[%s:%u] NieprawidÅ‚owa liczba fragmentów \"%s\"." -#: ../src/daemon/daemon-conf.c:389 +#: ../src/daemon/daemon-conf.c:390 #, c-format msgid "[%s:%u] Invalid fragment size '%s'." msgstr "[%s:%u] NieprawidÅ‚owy rozmiar fragmentu \"%s\"." -#: ../src/daemon/daemon-conf.c:407 +#: ../src/daemon/daemon-conf.c:408 #, c-format msgid "[%s:%u] Invalid nice level '%s'." msgstr "[%s:%u] NieprawidÅ‚owy poziom nice \"%s\"." -#: ../src/daemon/daemon-conf.c:522 +#: ../src/daemon/daemon-conf.c:524 #, c-format msgid "Failed to open configuration file: %s" msgstr "Otwarcie pliku konfiguracji nie powiodÅ‚o siÄ™: %s" -#: ../src/daemon/daemon-conf.c:538 +#: ../src/daemon/daemon-conf.c:540 msgid "" "The specified default channel map has a different number of channels than " "the specified default number of channels." @@ -900,237 +884,237 @@ msgstr "" "Polityka systemu uniemożliwia PulseAudio uzyskanie szeregowania w czasie " "rzeczywistym." -#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804 +#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Mono" -#: ../src/pulse/channelmap.c:105 +#: ../src/pulse/channelmap.c:107 msgid "Front Center" msgstr "Przedni Å›rodkowy" -#: ../src/pulse/channelmap.c:106 +#: ../src/pulse/channelmap.c:108 msgid "Front Left" msgstr "Przedni lewy" -#: ../src/pulse/channelmap.c:107 +#: ../src/pulse/channelmap.c:109 msgid "Front Right" msgstr "Przedni prawy" -#: ../src/pulse/channelmap.c:109 +#: ../src/pulse/channelmap.c:111 msgid "Rear Center" msgstr "Tylny Å›rodkowy" -#: ../src/pulse/channelmap.c:110 +#: ../src/pulse/channelmap.c:112 msgid "Rear Left" msgstr "Tylny lewy" -#: ../src/pulse/channelmap.c:111 +#: ../src/pulse/channelmap.c:113 msgid "Rear Right" msgstr "Tylny prawy" -#: ../src/pulse/channelmap.c:113 +#: ../src/pulse/channelmap.c:115 msgid "Low Frequency Emmiter" msgstr "Subwoofer" -#: ../src/pulse/channelmap.c:115 +#: ../src/pulse/channelmap.c:117 msgid "Front Left-of-center" msgstr "Przedni lewy po Å›rodku" -#: ../src/pulse/channelmap.c:116 +#: ../src/pulse/channelmap.c:118 msgid "Front Right-of-center" msgstr "Przedni prawy po Å›rodku" -#: ../src/pulse/channelmap.c:118 +#: ../src/pulse/channelmap.c:120 msgid "Side Left" msgstr "Boczny lewy" -#: ../src/pulse/channelmap.c:119 +#: ../src/pulse/channelmap.c:121 msgid "Side Right" msgstr "Boczny prawy" -#: ../src/pulse/channelmap.c:121 +#: ../src/pulse/channelmap.c:123 msgid "Auxiliary 0" msgstr "Pomocnicze 0" -#: ../src/pulse/channelmap.c:122 +#: ../src/pulse/channelmap.c:124 msgid "Auxiliary 1" msgstr "Pomocnicze 1" -#: ../src/pulse/channelmap.c:123 +#: ../src/pulse/channelmap.c:125 msgid "Auxiliary 2" msgstr "Pomocnicze 2" -#: ../src/pulse/channelmap.c:124 +#: ../src/pulse/channelmap.c:126 msgid "Auxiliary 3" msgstr "Pomocnicze 3" -#: ../src/pulse/channelmap.c:125 +#: ../src/pulse/channelmap.c:127 msgid "Auxiliary 4" msgstr "Pomocnicze 4" -#: ../src/pulse/channelmap.c:126 +#: ../src/pulse/channelmap.c:128 msgid "Auxiliary 5" msgstr "Pomocnicze 5" -#: ../src/pulse/channelmap.c:127 +#: ../src/pulse/channelmap.c:129 msgid "Auxiliary 6" msgstr "Pomocnicze 6" -#: ../src/pulse/channelmap.c:128 +#: ../src/pulse/channelmap.c:130 msgid "Auxiliary 7" msgstr "Pomocnicze 7" -#: ../src/pulse/channelmap.c:129 +#: ../src/pulse/channelmap.c:131 msgid "Auxiliary 8" msgstr "Pomocnicze 8" -#: ../src/pulse/channelmap.c:130 +#: ../src/pulse/channelmap.c:132 msgid "Auxiliary 9" msgstr "Pomocnicze 9" -#: ../src/pulse/channelmap.c:131 +#: ../src/pulse/channelmap.c:133 msgid "Auxiliary 10" msgstr "Pomocnicze 10" -#: ../src/pulse/channelmap.c:132 +#: ../src/pulse/channelmap.c:134 msgid "Auxiliary 11" msgstr "Pomocnicze 11" -#: ../src/pulse/channelmap.c:133 +#: ../src/pulse/channelmap.c:135 msgid "Auxiliary 12" msgstr "Pomocnicze 12" -#: ../src/pulse/channelmap.c:134 +#: ../src/pulse/channelmap.c:136 msgid "Auxiliary 13" msgstr "Pomocnicze 13" -#: ../src/pulse/channelmap.c:135 +#: ../src/pulse/channelmap.c:137 msgid "Auxiliary 14" msgstr "Pomocnicze 14" -#: ../src/pulse/channelmap.c:136 +#: ../src/pulse/channelmap.c:138 msgid "Auxiliary 15" msgstr "Pomocnicze 15" -#: ../src/pulse/channelmap.c:137 +#: ../src/pulse/channelmap.c:139 msgid "Auxiliary 16" msgstr "Pomocnicze 16" -#: ../src/pulse/channelmap.c:138 +#: ../src/pulse/channelmap.c:140 msgid "Auxiliary 17" msgstr "Pomocnicze 17" -#: ../src/pulse/channelmap.c:139 +#: ../src/pulse/channelmap.c:141 msgid "Auxiliary 18" msgstr "Pomocnicze 18" -#: ../src/pulse/channelmap.c:140 +#: ../src/pulse/channelmap.c:142 msgid "Auxiliary 19" msgstr "Pomocnicze 19" -#: ../src/pulse/channelmap.c:141 +#: ../src/pulse/channelmap.c:143 msgid "Auxiliary 20" msgstr "Pomocnicze 20" -#: ../src/pulse/channelmap.c:142 +#: ../src/pulse/channelmap.c:144 msgid "Auxiliary 21" msgstr "Pomocnicze 21" -#: ../src/pulse/channelmap.c:143 +#: ../src/pulse/channelmap.c:145 msgid "Auxiliary 22" msgstr "Pomocnicze 22" -#: ../src/pulse/channelmap.c:144 +#: ../src/pulse/channelmap.c:146 msgid "Auxiliary 23" msgstr "Pomocnicze 23" -#: ../src/pulse/channelmap.c:145 +#: ../src/pulse/channelmap.c:147 msgid "Auxiliary 24" msgstr "Pomocnicze 24" -#: ../src/pulse/channelmap.c:146 +#: ../src/pulse/channelmap.c:148 msgid "Auxiliary 25" msgstr "Pomocnicze 25" -#: ../src/pulse/channelmap.c:147 +#: ../src/pulse/channelmap.c:149 msgid "Auxiliary 26" msgstr "Pomocnicze 26" -#: ../src/pulse/channelmap.c:148 +#: ../src/pulse/channelmap.c:150 msgid "Auxiliary 27" msgstr "Pomocnicze 27" -#: ../src/pulse/channelmap.c:149 +#: ../src/pulse/channelmap.c:151 msgid "Auxiliary 28" msgstr "Pomocnicze 28" -#: ../src/pulse/channelmap.c:150 +#: ../src/pulse/channelmap.c:152 msgid "Auxiliary 29" msgstr "Pomocnicze 29" -#: ../src/pulse/channelmap.c:151 +#: ../src/pulse/channelmap.c:153 msgid "Auxiliary 30" msgstr "Pomocnicze 30" -#: ../src/pulse/channelmap.c:152 +#: ../src/pulse/channelmap.c:154 msgid "Auxiliary 31" msgstr "Pomocnicze 31" -#: ../src/pulse/channelmap.c:154 +#: ../src/pulse/channelmap.c:156 msgid "Top Center" msgstr "Górny Å›rodkowy" -#: ../src/pulse/channelmap.c:156 +#: ../src/pulse/channelmap.c:158 msgid "Top Front Center" msgstr "Górny przedni Å›rodkowy" -#: ../src/pulse/channelmap.c:157 +#: ../src/pulse/channelmap.c:159 msgid "Top Front Left" msgstr "Górny przedni lewy" -#: ../src/pulse/channelmap.c:158 +#: ../src/pulse/channelmap.c:160 msgid "Top Front Right" msgstr "Górny przedni prawy" -#: ../src/pulse/channelmap.c:160 +#: ../src/pulse/channelmap.c:162 msgid "Top Rear Center" msgstr "Górny tylny Å›rodkowy" -#: ../src/pulse/channelmap.c:161 +#: ../src/pulse/channelmap.c:163 msgid "Top Rear Left" msgstr "Górny tylny lewy" -#: ../src/pulse/channelmap.c:162 +#: ../src/pulse/channelmap.c:164 msgid "Top Rear Right" msgstr "Górny tylny prawy" -#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167 -#: ../src/pulse/volume.c:170 ../src/pulse/volume.c:196 -#: ../src/pulse/volume.c:216 ../src/pulse/volume.c:246 +#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167 +#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265 +#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315 msgid "(invalid)" msgstr "(nieprawidÅ‚owe)" -#: ../src/pulse/channelmap.c:808 +#: ../src/pulse/channelmap.c:751 msgid "Stereo" msgstr "Stereo" -#: ../src/pulse/channelmap.c:813 +#: ../src/pulse/channelmap.c:756 msgid "Surround 4.0" msgstr "Surround 4.0" -#: ../src/pulse/channelmap.c:819 +#: ../src/pulse/channelmap.c:762 msgid "Surround 4.1" msgstr "Surround 4.1" -#: ../src/pulse/channelmap.c:825 +#: ../src/pulse/channelmap.c:768 msgid "Surround 5.0" msgstr "Surround 5.0" -#: ../src/pulse/channelmap.c:831 +#: ../src/pulse/channelmap.c:774 msgid "Surround 5.1" msgstr "Surround 5.1" -#: ../src/pulse/channelmap.c:838 +#: ../src/pulse/channelmap.c:781 msgid "Surround 7.1" msgstr "Surround 7.1" @@ -1291,172 +1275,167 @@ msgstr "waitpid(): %s" msgid "Received message for unknown extension '%s'" msgstr "Otrzymano komunikat z nieznanego powodu \"%s\"" -#: ../src/utils/pacat.c:94 +#: ../src/utils/pacat.c:107 +#, c-format +msgid "Failed to drain stream: %s\n" +msgstr "Opróżnienie strumienia nie powiodÅ‚o siÄ™: %s\n" + +#: ../src/utils/pacat.c:112 +msgid "Playback stream drained.\n" +msgstr "Opróżniono strumieÅ„ odtwarzania.\n" + +#: ../src/utils/pacat.c:122 +msgid "Draining connection to server.\n" +msgstr "Opróżnianie poÅ‚Ä…czenia z serwerem.\n" + +#: ../src/utils/pacat.c:135 +#, c-format +msgid "pa_stream_drain(): %s\n" +msgstr "pa_stream_drain(): %s\n" + +#: ../src/utils/pacat.c:158 #, c-format msgid "pa_stream_write() failed: %s\n" msgstr "pa_stream_write() nie powiodÅ‚o siÄ™: %s\n" -#: ../src/utils/pacat.c:133 +#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 #, c-format msgid "pa_stream_peek() failed: %s\n" msgstr "pa_stream_peek() nie powiodÅ‚o siÄ™: %s\n" -#: ../src/utils/pacat.c:169 -#, c-format +#: ../src/utils/pacat.c:302 msgid "Stream successfully created.\n" msgstr "PomyÅ›lnie utworzono strumieÅ„.\n" -#: ../src/utils/pacat.c:172 +#: ../src/utils/pacat.c:305 #, c-format msgid "pa_stream_get_buffer_attr() failed: %s\n" msgstr "pa_stream_get_buffer_attr() nie powiodÅ‚o siÄ™: %s\n" -#: ../src/utils/pacat.c:176 +#: ../src/utils/pacat.c:309 #, c-format msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgstr "Metryka bufora: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:179 +#: ../src/utils/pacat.c:312 #, c-format msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgstr "Metryka bufora: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:183 +#: ../src/utils/pacat.c:316 #, c-format msgid "Using sample spec '%s', channel map '%s'.\n" msgstr "Używanie przykÅ‚adowej specyfikacji \"%s\", mapa kanałów \"%s\".\n" -#: ../src/utils/pacat.c:187 +#: ../src/utils/pacat.c:320 #, c-format msgid "Connected to device %s (%u, %ssuspended).\n" msgstr "PoÅ‚Ä…czono siÄ™ z urzÄ…dzeniem %s (%u, %swstrzymane).\n" -#: ../src/utils/pacat.c:197 +#: ../src/utils/pacat.c:330 #, c-format msgid "Stream error: %s\n" msgstr "BÅ‚Ä…d strumienia: %s\n" -#: ../src/utils/pacat.c:207 +#: ../src/utils/pacat.c:340 #, c-format msgid "Stream device suspended.%s \n" msgstr "Wstrzymano urzÄ…dzenie strumienia.%s \n" -#: ../src/utils/pacat.c:209 +#: ../src/utils/pacat.c:342 #, c-format msgid "Stream device resumed.%s \n" msgstr "Wznowiono urzÄ…dzenie strumienia.%s \n" -#: ../src/utils/pacat.c:217 +#: ../src/utils/pacat.c:350 #, c-format msgid "Stream underrun.%s \n" msgstr "NiedopeÅ‚niono strumieÅ„.%s \n" -#: ../src/utils/pacat.c:224 +#: ../src/utils/pacat.c:357 #, c-format msgid "Stream overrun.%s \n" msgstr "PrzepeÅ‚niono strumieÅ„.%s \n" -#: ../src/utils/pacat.c:231 +#: ../src/utils/pacat.c:364 #, c-format msgid "Stream started.%s \n" msgstr "Utworzono strumieÅ„.%s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 #, c-format msgid "Stream moved to device %s (%u, %ssuspended).%s \n" msgstr "StrumieÅ„ zostaÅ‚ przeniesiony do urzÄ…dzenia %s (%u, %swstrzymane).%s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 msgid "not " msgstr "nie " -#: ../src/utils/pacat.c:245 +#: ../src/utils/pacat.c:378 #, c-format msgid "Stream buffer attributes changed.%s \n" msgstr "Zmieniono atrybuty bufora strumienia.%s \n" -#: ../src/utils/pacat.c:278 +#: ../src/utils/pacat.c:411 #, c-format msgid "Connection established.%s \n" msgstr "Ustanowiono poÅ‚Ä…czenie.%s \n" -#: ../src/utils/pacat.c:281 +#: ../src/utils/pacat.c:414 #, c-format msgid "pa_stream_new() failed: %s\n" msgstr "pa_stream_new() nie powiodÅ‚o siÄ™: %s\n" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:442 #, c-format msgid "pa_stream_connect_playback() failed: %s\n" msgstr "pa_stream_connect_playback() nie powiodÅ‚o siÄ™: %s\n" -#: ../src/utils/pacat.c:315 +#: ../src/utils/pacat.c:448 #, c-format msgid "pa_stream_connect_record() failed: %s\n" msgstr "pa_stream_connect_record() nie powiodÅ‚o siÄ™: %s\n" -#: ../src/utils/pacat.c:329 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:762 ../src/utils/paplay.c:183 +#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 #, c-format msgid "Connection failure: %s\n" msgstr "PoÅ‚Ä…czenie nie powiodÅ‚o siÄ™: %s\n" -#: ../src/utils/pacat.c:349 ../src/utils/paplay.c:75 -#, c-format -msgid "Failed to drain stream: %s\n" -msgstr "Opróżnienie strumienia nie powiodÅ‚o siÄ™: %s\n" - -#: ../src/utils/pacat.c:354 ../src/utils/paplay.c:80 -#, c-format -msgid "Playback stream drained.\n" -msgstr "Opróżniono strumieÅ„ odtwarzania.\n" - -#: ../src/utils/pacat.c:364 ../src/utils/paplay.c:92 -#, c-format -msgid "Draining connection to server.\n" -msgstr "Opróżnianie poÅ‚Ä…czenia z serwerem.\n" - -#: ../src/utils/pacat.c:390 -#, c-format +#: ../src/utils/pacat.c:495 msgid "Got EOF.\n" msgstr "Otrzymano EOF.\n" -#: ../src/utils/pacat.c:396 -#, c-format -msgid "pa_stream_drain(): %s\n" -msgstr "pa_stream_drain(): %s\n" - -#: ../src/utils/pacat.c:406 +#: ../src/utils/pacat.c:500 #, c-format msgid "read() failed: %s\n" msgstr "read() nie powiodÅ‚o siÄ™: %s\n" -#: ../src/utils/pacat.c:438 +#: ../src/utils/pacat.c:532 #, c-format msgid "write() failed: %s\n" msgstr "write() nie powiodÅ‚o siÄ™: %s\n" -#: ../src/utils/pacat.c:459 -#, c-format +#: ../src/utils/pacat.c:553 msgid "Got signal, exiting.\n" msgstr "Otrzymano sygnaÅ‚, wyÅ‚Ä…czanie.\n" -#: ../src/utils/pacat.c:473 +#: ../src/utils/pacat.c:567 #, c-format msgid "Failed to get latency: %s\n" msgstr "Uzyskanie opóźnienia nie powiodÅ‚o siÄ™: %s\n" -#: ../src/utils/pacat.c:478 +#: ../src/utils/pacat.c:572 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "Czas: %0.3f sekundy; opóźnienie: %0.0f usekundy. \r" -#: ../src/utils/pacat.c:498 +#: ../src/utils/pacat.c:592 #, c-format msgid "pa_stream_update_timing_info() failed: %s\n" msgstr "pa_stream_update_timing_info() nie powiodÅ‚o siÄ™: %s\n" -#: ../src/utils/pacat.c:511 +#: ../src/utils/pacat.c:605 #, c-format msgid "" "%s [options]\n" @@ -1483,8 +1462,10 @@ msgid "" "44100)\n" " --format=SAMPLEFORMAT The sample type, one of s16le, " "s16be, u8, float32le,\n" -" float32be, ulaw, alaw, s32le, s32be " -"(defaults to s16ne)\n" +" float32be, ulaw, alaw, s32le, s32be, " +"s24le, s24be,\n" +" s24-32le, s24-32be (defaults to " +"s16ne)\n" " --channels=CHANNELS The number of channels, 1 for mono, " "2 for stereo\n" " (defaults to 2)\n" @@ -1507,6 +1488,11 @@ msgid "" "bytes.\n" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" +" --property=PROPERTY=VALUE Set the specified property to the " +"specified value.\n" +" --raw Record/play raw PCM data.\n" +" --file-format=FFORMAT Record/play formatted PCM data.\n" +" --list-file-formats List available file formats.\n" msgstr "" "%s [opcje]\n" "\n" @@ -1516,47 +1502,55 @@ msgstr "" " -r, --record Tworzy poÅ‚Ä…czenie do nagrywania\n" " -p, --playback Tworzy poÅ‚Ä…czenie do odtwarzania\n" "\n" -" -v, --verbose WyÅ›wietla wiÄ™cej informacji o " -"dziaÅ‚aniu\n" +" -v, --verbose WyÅ›wietla wiÄ™cej informacji o\n" +" dziaÅ‚aniu\n" "\n" " -s, --server=SERWER Nazwa serwera do poÅ‚Ä…czenia siÄ™\n" -" -d, --device=URZÄ„DZENIE Nazwa odpÅ‚ywu/źródÅ‚a do poÅ‚Ä…czenia " -"siÄ™ z\n" -" -n, --client-name=NAZWA Jak nazywać tego klienta na " -"serwerze\n" +" -d, --device=URZÄ„DZENIE Nazwa odpÅ‚ywu/źródÅ‚a do poÅ‚Ä…czenia\n" +" siÄ™\n" +" -n, --client-name=NAZWA Jak nazywać tego klienta na\n" +" serwerze\n" " --stream-name=NAZWA Jak nazwać ten strumieÅ„ na serwerze\n" -" --volume=POZIOMGÅOÅšNOÅšCI OkreÅ›la poczÄ…tkowy (liniowy) poziom " -"gÅ‚oÅ›noÅ›ci z zakresie 0...65536\n" -" --rate=CZĘSTOTLIWOŚĆPRÓBKI CzÄ™stotliwość próbki w Hz (domyÅ›lnie " -"44100)\n" -" --format=FORMATPRÓBKI Typ próbki, jeden z s16le, s16be, " -"u8, float32le,\n" -" float32be, ulaw, alaw, s32le, s32be " -"(domyÅ›lnie s16ne)\n" -" --channels=KANAÅY Liczba kanałów, 1 dla mono, 2 dla " -"stereo\n" +" --volume=POZIOMGÅOÅšNOÅšCI OkreÅ›la poczÄ…tkowy (liniowy)\n" +" poziom gÅ‚oÅ›noÅ›ci z zakresie\n" +" 0...65536\n" +" --rate=CZĘSTOTLIWOŚĆPRÓBKI CzÄ™stotliwość próbki w Hz\n" +" (domyÅ›lnie 44100)\n" +" --format=FORMATPRÓBKI Typ próbki, jeden z s16le, s16be,\n" +" u8, float32le, float32be, ulaw,\n" +" alaw, s32le, s32be, s24le, s24be,\n" +" s24-32le, s24-32be (domyÅ›lnie\n" +" s16ne)\n" +" --channels=KANAÅY Liczba kanałów, 1 dla mono, 2 dla\n" +" stereo\n" " (domyÅ›lnie 2)\n" -" --channel-map=MAPAKANAÅÓW Mapa kanałów używa zamiast " -"domyÅ›lnej\n" -" --fix-format Pobiera format próbki z odpÅ‚ywu, z " -"jakim\n" -" poÅ‚Ä…czony jest strumieÅ„.\n" -" --fix-rate Pobiera czÄ™stotliwość sampli z " -"odpÅ‚ywu, z\n" +" --channel-map=MAPAKANAÅÓW Mapa kanałów używa zamiast\n" +" domyÅ›lnej\n" +" --fix-format Pobiera format próbki z odpÅ‚ywu, z\n" " jakim poÅ‚Ä…czony jest strumieÅ„.\n" -" --fix-channels Pobiera liczbÄ™ kanałów i mapÄ™ " -"kanałów z odpÅ‚ywu,\n" -" z jakim poÅ‚Ä…czony jest strumieÅ„.\n" -" --no-remix Nie miesza kanałów w górÄ™ lub w " -"dół.\n" -" --no-remap Mapuje kanaÅ‚y przez indeks zamiast " -"przez nazwÄ™.\n" -" --latency=BAJTY Żąda okreÅ›lonego opóźnienia w " -"bajtach.\n" -" --process-time=BAJTY Żąda okreÅ›lonego czasu procesu na " -"żądanie w bajtach.\n" - -#: ../src/utils/pacat.c:612 +" --fix-rate Pobiera czÄ™stotliwość sampli z\n" +" odpÅ‚ywu, z jakim poÅ‚Ä…czony jest\n" +" strumieÅ„.\n" +" --fix-channels Pobiera liczbÄ™ kanałów i mapÄ™\n" +" kanałów z odpÅ‚ywu, z jakim\n" +" poÅ‚Ä…czony jest strumieÅ„.\n" +" --no-remix Nie miesza kanałów w górÄ™ lub w\n" +" dół.\n" +" --no-remap Mapuje kanaÅ‚y przez indeks zamiast\n" +" przez nazwÄ™.\n" +" --latency=BAJTY Żąda okreÅ›lonego opóźnienia w\n" +" bajtach.\n" +" --process-time=BAJTY Żąda okreÅ›lonego czasu procesu na\n" +" żądanie w bajtach.\n" +" --property=WÅASNOŚĆ=WARTOŚĆ Ustawia podanÄ… wÅ‚asność na podanÄ…\n" +" wartość.\n" +" --raw Nagrywa/odtwarza surowe dane PCM.\n" +" --file-format=FFORMAT Nagrywa/odtwarza sformatowane dane\n" +" PCM.\n" +" --list-file-formats WyÅ›wietla listÄ™ dostÄ™pnych formatów\n" +" plików.\n" + +#: ../src/utils/pacat.c:727 #, c-format msgid "" "pacat %s\n" @@ -1567,88 +1561,134 @@ msgstr "" "Skompilowane za pomocÄ… libpulse %s\n" "Skonsolidowane za pomocÄ… libpulse %s\n" -#: ../src/utils/pacat.c:669 +#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#, c-format +msgid "Invalid client name '%s'\n" +msgstr "NieprawidÅ‚owa nazwa klienta \"%s\"\n" + +#: ../src/utils/pacat.c:776 +#, c-format +msgid "Invalid stream name '%s'\n" +msgstr "NieprawidÅ‚owa nazwa strumienia \"%s\"\n" + +#: ../src/utils/pacat.c:813 #, c-format msgid "Invalid channel map '%s'\n" msgstr "NieprawidÅ‚owa mapa kanałów \"%s\"\n" -#: ../src/utils/pacat.c:698 +#: ../src/utils/pacat.c:842 #, c-format msgid "Invalid latency specification '%s'\n" msgstr "NieprawidÅ‚owe okreÅ›lenie opóźnienia \"%s\"\n" -#: ../src/utils/pacat.c:705 +#: ../src/utils/pacat.c:849 #, c-format msgid "Invalid process time specification '%s'\n" msgstr "NieprawidÅ‚owe okreÅ›lenie czasu procesu \"%s\"\n" -#: ../src/utils/pacat.c:716 +#: ../src/utils/pacat.c:861 #, c-format -msgid "Invalid sample specification\n" -msgstr "NieprawidÅ‚owe okreÅ›lenie próbki\n" +msgid "Invalid property '%s'\n" +msgstr "NieprawidÅ‚owa wÅ‚asność \"%s\"\n" -#: ../src/utils/pacat.c:721 +#: ../src/utils/pacat.c:878 #, c-format -msgid "Channel map doesn't match sample specification\n" -msgstr "Mapa kanałów nie zgadza siÄ™ z okreÅ›leniem próbki\n" - -#: ../src/utils/pacat.c:728 -#, c-format -msgid "Opening a %s stream with sample specification '%s'.\n" -msgstr "Otwieranie strumienia %s za pomocÄ… okreÅ›lenie próbki \"%s\".\n" +msgid "Unknown file format %s." +msgstr "Nieznany format pliku %s." -#: ../src/utils/pacat.c:728 -msgid "recording" -msgstr "nagrywanie" - -#: ../src/utils/pacat.c:728 -msgid "playback" -msgstr "odtwarzanie" +#: ../src/utils/pacat.c:897 +msgid "Invalid sample specification\n" +msgstr "NieprawidÅ‚owe okreÅ›lenie próbki\n" -#: ../src/utils/pacat.c:736 +#: ../src/utils/pacat.c:907 #, c-format msgid "open(): %s\n" msgstr "open(): %s\n" -#: ../src/utils/pacat.c:741 +#: ../src/utils/pacat.c:912 #, c-format msgid "dup2(): %s\n" msgstr "dup2(): %s\n" -#: ../src/utils/pacat.c:751 -#, c-format +#: ../src/utils/pacat.c:919 msgid "Too many arguments.\n" msgstr "Za dużo parametrów.\n" -#: ../src/utils/pacat.c:764 ../src/utils/pasuspender.c:280 -#: ../src/utils/pactl.c:1017 ../src/utils/paplay.c:381 +#: ../src/utils/pacat.c:930 +msgid "Failed to generate sample specification for file.\n" +msgstr "Utworzenie okreÅ›lenia próbki dla pliku nie powiodÅ‚o siÄ™.\n" + +#: ../src/utils/pacat.c:950 +msgid "Failed to open audio file.\n" +msgstr "Otwarcie pliku dźwiÄ™kowego nie powiodÅ‚o siÄ™.\n" + +#: ../src/utils/pacat.c:956 +msgid "" +"Warning: specified sample specification will be overwritten with " +"specification from file.\n" +msgstr "" +"Ostrzeżenie: podane okreÅ›lenie próbki zostanie zastÄ…pione przez okreÅ›lenie z " +"pliku.\n" + +#: ../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: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" + +#: ../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" + +#: ../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" + +#: ../src/utils/pacat.c:1005 +#, c-format +msgid "" +"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +msgstr "" +"Otwieranie strumienia %s za pomocÄ… okreÅ›lenie próbki \"%s\" i mapy kanałów " +"\"%s\".\n" + +#: ../src/utils/pacat.c:1006 +msgid "recording" +msgstr "nagrywanie" + +#: ../src/utils/pacat.c:1006 +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:785 -#, c-format +#: ../src/utils/pacat.c:1051 msgid "io_new() failed.\n" msgstr "io_new() nie powiodÅ‚o siÄ™.\n" -#: ../src/utils/pacat.c:791 ../src/utils/pasuspender.c:293 -#: ../src/utils/pactl.c:1031 ../src/utils/paplay.c:396 +#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 +#: ../src/utils/pactl.c:1116 #, c-format msgid "pa_context_new() failed.\n" msgstr "pa_context_new() nie powiodÅ‚o siÄ™.\n" -#: ../src/utils/pacat.c:799 +#: ../src/utils/pacat.c:1066 #, c-format msgid "pa_context_connect() failed: %s\n" msgstr "pa_context_connect() nie powiodÅ‚o siÄ™: %s\n" -#: ../src/utils/pacat.c:810 -#, c-format +#: ../src/utils/pacat.c:1077 msgid "time_new() failed.\n" msgstr "time_new() nie powiodÅ‚o siÄ™.\n" -#: ../src/utils/pacat.c:817 ../src/utils/pasuspender.c:301 -#: ../src/utils/pactl.c:1042 ../src/utils/paplay.c:410 +#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 +#: ../src/utils/pactl.c:1127 #, c-format msgid "pa_mainloop_run() failed.\n" msgstr "pa_mainloop_run() nie powiodÅ‚o siÄ™.\n" @@ -1679,8 +1719,7 @@ 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:176 ../src/utils/pactl.c:768 -#: ../src/utils/paplay.c:191 +#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" msgstr "Otrzymano SIGINT, wyÅ‚Ä…czanie.\n" @@ -1708,7 +1747,7 @@ msgstr "" " -s, --server=SERWER Nazwa serwera do poÅ‚Ä…czenia siÄ™\n" "\n" -#: ../src/utils/pasuspender.c:251 +#: ../src/utils/pasuspender.c:248 #, c-format msgid "" "pasuspender %s\n" @@ -1719,34 +1758,34 @@ msgstr "" "Skompilowane za pomocÄ… libpulse %s\n" "Skonsolidowane za pomocÄ… libpulse %s\n" -#: ../src/utils/pactl.c:108 +#: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" msgstr "Uzyskanie statystyk nie powiodÅ‚o siÄ™: %s\n" -#: ../src/utils/pactl.c:114 +#: ../src/utils/pactl.c:134 #, c-format msgid "Currently in use: %u blocks containing %s bytes total.\n" msgstr "Obecnie używane: %u bloków zawierajÄ…cych razem %s bajtów.\n" -#: ../src/utils/pactl.c:117 +#: ../src/utils/pactl.c:137 #, c-format msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n" msgstr "" "Przydzielono podczas caÅ‚ego czasu uruchomienia: %u bloków zawierajÄ…cych " "razem %s bajtów.\n" -#: ../src/utils/pactl.c:120 +#: ../src/utils/pactl.c:140 #, c-format msgid "Sample cache size: %s\n" msgstr "Rozmiar pamiÄ™ci podrÄ™cznej próbek: %s\n" -#: ../src/utils/pactl.c:129 +#: ../src/utils/pactl.c:149 #, c-format msgid "Failed to get server information: %s\n" msgstr "Uzyskanie informacji o serwerze nie powiodÅ‚o siÄ™: %s\n" -#: ../src/utils/pactl.c:137 +#: ../src/utils/pactl.c:157 #, c-format msgid "" "User name: %s\n" @@ -1769,12 +1808,12 @@ msgstr "" "DomyÅ›lne źródÅ‚o: %s\n" "Ciasteczko: %08x\n" -#: ../src/utils/pactl.c:178 +#: ../src/utils/pactl.c:198 #, c-format msgid "Failed to get sink information: %s\n" msgstr "Uzyskanie informacji o odpÅ‚ywie nie powiodÅ‚o siÄ™: %s\n" -#: ../src/utils/pactl.c:194 +#: ../src/utils/pactl.c:214 #, c-format msgid "" "Sink #%u\n" @@ -1813,12 +1852,22 @@ msgstr "" "\tWÅ‚aÅ›ciwoÅ›ci:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:258 +#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 +#, fuzzy, c-format +msgid "\tPorts:\n" +msgstr "\tProfile:\n" + +#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 +#, fuzzy, c-format +msgid "\tActive Port: %s\n" +msgstr "\tAktywny profil: %s\n" + +#: ../src/utils/pactl.c:290 #, c-format msgid "Failed to get source information: %s\n" msgstr "Uzyskanie informacji o źródle nie powiodÅ‚o siÄ™: %s\n" -#: ../src/utils/pactl.c:274 +#: ../src/utils/pactl.c:306 #, c-format msgid "" "Source #%u\n" @@ -1857,20 +1906,20 @@ msgstr "" "\tWÅ‚aÅ›ciwoÅ›ci:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:306 ../src/utils/pactl.c:350 ../src/utils/pactl.c:385 -#: ../src/utils/pactl.c:422 ../src/utils/pactl.c:481 ../src/utils/pactl.c:482 -#: ../src/utils/pactl.c:492 ../src/utils/pactl.c:536 ../src/utils/pactl.c:537 -#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:586 ../src/utils/pactl.c:587 -#: ../src/utils/pactl.c:594 +#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429 +#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526 +#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581 +#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631 +#: ../src/utils/pactl.c:638 msgid "n/a" msgstr "nie dotyczy" -#: ../src/utils/pactl.c:324 +#: ../src/utils/pactl.c:368 #, c-format msgid "Failed to get module information: %s\n" msgstr "Uzyskanie informacji o module nie powiodÅ‚o siÄ™: %s\n" -#: ../src/utils/pactl.c:342 +#: ../src/utils/pactl.c:386 #, c-format msgid "" "Module #%u\n" @@ -1887,12 +1936,12 @@ msgstr "" "\tWÅ‚aÅ›ciwoÅ›ci:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:361 +#: ../src/utils/pactl.c:405 #, c-format msgid "Failed to get client information: %s\n" msgstr "Uzyskanie informacji o kliencie nie powiodÅ‚o siÄ™: %s\n" -#: ../src/utils/pactl.c:379 +#: ../src/utils/pactl.c:423 #, c-format msgid "" "Client #%u\n" @@ -1907,12 +1956,12 @@ msgstr "" "\tWÅ‚aÅ›ciwoÅ›ci:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:396 +#: ../src/utils/pactl.c:440 #, c-format msgid "Failed to get card information: %s\n" msgstr "Uzyskanie informacji o karcie nie powiodÅ‚o siÄ™: %s\n" -#: ../src/utils/pactl.c:414 +#: ../src/utils/pactl.c:458 #, c-format msgid "" "Card #%u\n" @@ -1929,22 +1978,22 @@ msgstr "" "\tWÅ‚aÅ›ciwoÅ›ci:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:428 +#: ../src/utils/pactl.c:472 #, c-format msgid "\tProfiles:\n" msgstr "\tProfile:\n" -#: ../src/utils/pactl.c:434 +#: ../src/utils/pactl.c:478 #, c-format msgid "\tActive Profile: %s\n" msgstr "\tAktywny profil: %s\n" -#: ../src/utils/pactl.c:445 +#: ../src/utils/pactl.c:489 #, c-format msgid "Failed to get sink input information: %s\n" msgstr "Uzyskanie informacji o wejÅ›ciu odpÅ‚ywu nie powiodÅ‚o siÄ™: %s\n" -#: ../src/utils/pactl.c:464 +#: ../src/utils/pactl.c:508 #, c-format msgid "" "Sink Input #%u\n" @@ -1981,12 +2030,12 @@ msgstr "" "\tWÅ‚aÅ›ciwoÅ›ci:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:503 +#: ../src/utils/pactl.c:547 #, c-format msgid "Failed to get source output information: %s\n" msgstr "Uzyskanie informacji o wyjÅ›ciu źródÅ‚a nie powiodÅ‚o siÄ™: %s\n" -#: ../src/utils/pactl.c:523 +#: ../src/utils/pactl.c:567 #, c-format msgid "" "Source Output #%u\n" @@ -2015,12 +2064,12 @@ msgstr "" "\tWÅ‚aÅ›ciwoÅ›ci:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:554 +#: ../src/utils/pactl.c:598 #, c-format msgid "Failed to get sample information: %s\n" -msgstr "Uzyskanie informacji o przykÅ‚adzie nie powiodÅ‚o siÄ™: %s\n" +msgstr "Uzyskanie informacji o próbce nie powiodÅ‚o siÄ™: %s\n" -#: ../src/utils/pactl.c:572 +#: ../src/utils/pactl.c:616 #, c-format msgid "" "Sample #%u\n" @@ -2051,23 +2100,22 @@ msgstr "" "\tWÅ‚aÅ›ciwoÅ›ci:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:602 ../src/utils/pactl.c:612 +#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 #, c-format msgid "Failure: %s\n" msgstr "Niepowodzenie: %s\n" -#: ../src/utils/pactl.c:636 +#: ../src/utils/pactl.c:680 #, c-format msgid "Failed to upload sample: %s\n" msgstr "UsuniÄ™cie próbki nie powiodÅ‚o siÄ™: %s\n" -#: ../src/utils/pactl.c:653 -#, c-format +#: ../src/utils/pactl.c:697 msgid "Premature end of file\n" msgstr "Przedwczesny koniec pliku\n" -#: ../src/utils/pactl.c:774 -#, c-format +#: ../src/utils/pactl.c:826 +#, fuzzy, c-format msgid "" "%s [options] stat\n" "%s [options] list\n" @@ -2082,6 +2130,8 @@ msgid "" "%s [options] suspend-sink [SINK] 1|0\n" "%s [options] suspend-source [SOURCE] 1|0\n" "%s [options] set-card-profile [CARD] [PROFILE] \n" +"%s [options] set-sink-port [SINK] [PORT] \n" +"%s [options] set-source-port [SOURCE] [PORT] \n" "\n" " -h, --help Show this help\n" " --version Show version\n" @@ -2111,7 +2161,7 @@ msgstr "" " -s, --server=SERWER Nazwa serwera do poÅ‚Ä…czenia siÄ™\n" " -n, --client-name=NAZWA Jak nazwać tego klienta na serwerze\n" -#: ../src/utils/pactl.c:826 +#: ../src/utils/pactl.c:880 #, c-format msgid "" "pactl %s\n" @@ -2122,73 +2172,75 @@ msgstr "" "Skompilowane za pomocÄ… libpulse %s\n" "Skonsolidowane za pomocÄ… libpulse %s\n" -#: ../src/utils/pactl.c:865 -#, c-format +#: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "ProszÄ™ podać plik próbki do wczytania\n" -#: ../src/utils/pactl.c:887 -#, c-format +#: ../src/utils/pactl.c:939 msgid "Failed to open sound file.\n" msgstr "Otwarcie pliku dźwiÄ™kowego nie powiodÅ‚o siÄ™.\n" -#: ../src/utils/pactl.c:899 -#, c-format +#: ../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" + +#: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" msgstr "Należy podać nazwÄ™ próbki do odtworzenia\n" -#: ../src/utils/pactl.c:911 -#, c-format +#: ../src/utils/pactl.c:973 msgid "You have to specify a sample name to remove\n" msgstr "Należy podać nazwÄ™ próbki do usuniÄ™cia\n" -#: ../src/utils/pactl.c:919 -#, c-format +#: ../src/utils/pactl.c:982 msgid "You have to specify a sink input index and a sink\n" msgstr "Należy podać indeks odpÅ‚ywu wejÅ›cia i odpÅ‚yw\n" -#: ../src/utils/pactl.c:928 -#, c-format +#: ../src/utils/pactl.c:992 msgid "You have to specify a source output index and a source\n" msgstr "Należy podać indeks źródÅ‚a wyjÅ›cia i źródÅ‚o\n" -#: ../src/utils/pactl.c:942 -#, c-format +#: ../src/utils/pactl.c:1007 msgid "You have to specify a module name and arguments.\n" msgstr "Należy podać nazwÄ™ moduÅ‚u i parametry.\n" -#: ../src/utils/pactl.c:962 -#, c-format +#: ../src/utils/pactl.c:1027 msgid "You have to specify a module index\n" msgstr "Należy podać indeks moduÅ‚u\n" -#: ../src/utils/pactl.c:972 -#, c-format +#: ../src/utils/pactl.c:1037 msgid "" "You may not specify more than one sink. You have to specify a boolean " "value.\n" msgstr "" "Nie można podać wiÄ™cej niż jednego odpÅ‚ywu. Należy podać wartość logicznÄ….\n" -#: ../src/utils/pactl.c:985 -#, c-format +#: ../src/utils/pactl.c:1050 msgid "" "You may not specify more than one source. You have to specify a boolean " "value.\n" msgstr "" "Nie można podać wiÄ™cej niż jednego źródÅ‚a. Należy podać wartość logicznÄ….\n" -#: ../src/utils/pactl.c:997 -#, c-format +#: ../src/utils/pactl.c:1062 msgid "You have to specify a card name/index and a profile name\n" msgstr "Należy podać nazwÄ™ karty/indeks i nazwÄ™ profilu\n" -#: ../src/utils/pactl.c:1012 -#, c-format +#: ../src/utils/pactl.c:1073 +#, fuzzy +msgid "You have to specify a sink name/index and a port name\n" +msgstr "Należy podać nazwÄ™ karty/indeks i nazwÄ™ profilu\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" + +#: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "Nie podano prawidÅ‚owego polecenia.\n" -#: ../src/utils/pactl.c:1037 ../src/utils/paplay.c:404 +#: ../src/utils/pactl.c:1122 #, c-format msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect() nie powiodÅ‚o siÄ™: %s" @@ -2208,8 +2260,8 @@ msgstr "" "\n" " -d WyÅ›wietla dane PulseAudio doÅ‚Ä…czone do ekranu X11 (domyÅ›lne)\n" " -e Eksportuje lokalne dane PulseAudio na ekran X11\n" -" -i Importuje dane PulseAudio z ekranu X11 do lokalnych zmiennych " -"Å›rodowiskowych i pliku ciasteczka.\n" +" -i Importuje dane PulseAudio z ekranu X11 do lokalnych zmiennych\n" +" Å›rodowiskowych i pliku ciasteczka.\n" " -r Usuwa dane PulseAudio z ekranu X11\n" #: ../src/utils/pax11publish.c:94 @@ -2272,127 +2324,50 @@ msgstr "Wczytanie danych ciasteczka nie powiodÅ‚o siÄ™\n" msgid "Not yet implemented.\n" msgstr "Niezaimplementowane.\n" -#: ../src/utils/pacmd.c:64 +#: ../src/utils/pacmd.c:61 +msgid "No PulseAudio daemon running, or not running as session daemon." +msgstr "" +"Demon PulseAudio nie jest uruchomiony, lub nie jest uruchomiony jako demon " +"sesji." + +#: ../src/utils/pacmd.c:66 #, c-format msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s" msgstr "gniazdo(PF_UNIX, SOCK_STREAM, 0): %s" -#: ../src/utils/pacmd.c:81 +#: ../src/utils/pacmd.c:83 #, c-format msgid "connect(): %s" msgstr "connect(): %s" -#: ../src/utils/pacmd.c:89 +#: ../src/utils/pacmd.c:91 msgid "Failed to kill PulseAudio daemon." msgstr "Zniszczenie demona PulseAudio nie powiodÅ‚o siÄ™." -#: ../src/utils/pacmd.c:97 +#: ../src/utils/pacmd.c:99 msgid "Daemon not responding." msgstr "Demon nie odpowiada." -#: ../src/utils/pacmd.c:144 +#: ../src/utils/pacmd.c:146 #, c-format msgid "select(): %s" msgstr "select(): %s" -#: ../src/utils/pacmd.c:154 ../src/utils/pacmd.c:171 +#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173 #, c-format msgid "read(): %s" msgstr "read(): %s" -#: ../src/utils/pacmd.c:187 ../src/utils/pacmd.c:201 +#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203 #, c-format msgid "write(): %s" msgstr "write(): %s" -#: ../src/utils/paplay.c:139 -#, c-format -msgid "Stream successfully created\n" -msgstr "PomyÅ›lnie utworzono strumieÅ„\n" - -#: ../src/utils/paplay.c:144 -#, c-format -msgid "Stream errror: %s\n" -msgstr "BÅ‚Ä…d strumienia: %s\n" - -#: ../src/utils/paplay.c:165 -#, c-format -msgid "Connection established.\n" -msgstr "Ustanowiono poÅ‚Ä…czenie.\n" - -#: ../src/utils/paplay.c:198 -#, c-format -msgid "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" -msgstr "" -"%s [opcje] [PLIK]\n" -"\n" -" -h, --help WyÅ›wietla tÄ™ pomoc\n" -" --version WyÅ›wietla wersjÄ™\n" -"\n" -" -v, --verbose WyÅ›wietla wiÄ™cej informacji o " -"dziaÅ‚aniach\n" -"\n" -" -s, --server=SERWER Nazwa serwera do poÅ‚Ä…czenia siÄ™\n" -" -d, --device=URZÄ„DZENIE Nazwa odpÅ‚ywu do poÅ‚Ä…czenia siÄ™\n" -" -n, --client-name=NAZWA Jak nazwać tego klienta na serwerze\n" -" --stream-name=NAZWA Jak nazwać ten strumieÅ„ na serwerze\n" -" --volume=POZIOMGÅOÅšNOÅšCI OkreÅ›la poczÄ…tkowy (liniowy) poziom " -"gÅ‚oÅ›noÅ›ci w zakresie 0...65536\n" -" --channel-map=MAPAKANAÅÓW Ustawia używanÄ… mapÄ™ kanałów\n" - -#: ../src/utils/paplay.c:255 -#, c-format -msgid "" -"paplay %s\n" -"Compiled with libpulse %s\n" -"Linked with libpulse %s\n" -msgstr "" -"paplay %s\n" -"Skompilowane za pomocÄ… libpulse %s\n" -"Skonsolidowane za pomocÄ… libpulse %s\n" - -#: ../src/utils/paplay.c:292 -#, c-format -msgid "Invalid channel map\n" -msgstr "NieprawidÅ‚owa mapa kanałów\n" - -#: ../src/utils/paplay.c:314 -#, c-format -msgid "Failed to open file '%s'\n" -msgstr "Otwarcie pliku \"%s\" nie powiodÅ‚o siÄ™\n" - -#: ../src/utils/paplay.c:350 -#, c-format -msgid "Channel map doesn't match file.\n" -msgstr "Mapa kanałów nie zgadza siÄ™ z plikiem.\n" - -#: ../src/utils/paplay.c:376 -#, c-format -msgid "Using sample spec '%s'\n" -msgstr "Używanie przykÅ‚adowej specyfikacji \"%s\"\n" - #: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 msgid "Cannot access autospawn lock." msgstr "Nie można uzyskać dostÄ™pu do blokady automatycznego wznawiania." -#: ../src/modules/alsa/alsa-sink.c:393 ../src/modules/alsa/alsa-sink.c:541 +#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2409,7 +2384,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:377 ../src/modules/alsa/alsa-source.c:516 +#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2426,34 +2401,61 @@ msgstr "" "Wybudzono za pomocÄ… ustawienia POLLIN - ale jednoczesne wywoÅ‚anie " "snd_pcm_avail() zwróciÅ‚o zero lub innÄ… wartość < min_avail." -#: ../src/modules/alsa/module-alsa-card.c:114 -#, c-format -msgid "Output %s + Input %s" -msgstr "WyjÅ›cie %s + wejÅ›cie %s" - -#: ../src/modules/alsa/module-alsa-card.c:117 -#, c-format -msgid "Output %s" -msgstr "WyjÅ›cie %s" - -#: ../src/modules/alsa/module-alsa-card.c:121 -#, c-format -msgid "Input %s" -msgstr "WejÅ›cie %s" - -#: ../src/modules/alsa/module-alsa-card.c:170 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2006 +#: ../src/modules/alsa/module-alsa-card.c:152 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 msgid "Off" msgstr "WyÅ‚Ä…cz" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1976 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 msgid "High Fidelity Playback (A2DP)" msgstr "Odtwarzanie o wysokiej dokÅ‚adnoÅ›ci (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1991 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 msgid "Telephony Duplex (HSP/HFP)" msgstr "Duplex telefoniczny (HSP/HFP)" -#: ../src/modules/reserve-wrap.c:139 +#: ../src/modules/reserve-wrap.c:151 msgid "PulseAudio Sound Server" msgstr "Serwer dźwiÄ™ku PulseAudio" + +#~ msgid "Analog Mono" +#~ msgstr "Analogowe mono" + +#~ msgid "Analog Stereo" +#~ msgstr "Analogowe stereo" + +#~ msgid "Digital Stereo (IEC958)" +#~ msgstr "Cyfrowe stereo (IEC958)" + +#~ msgid "Digital Stereo (HDMI)" +#~ msgstr "Cyfrowe stereo (HDMI)" + +#~ msgid "Analog Surround 4.0" +#~ msgstr "Analogowe surround 4.0" + +#~ msgid "Digital Surround 4.0 (IEC958/AC3)" +#~ msgstr "Cyfrowe surround 4.0 (IEC958/AC3)" + +#~ msgid "Analog Surround 4.1" +#~ msgstr "Analogowe surround 4.1" + +#~ msgid "Analog Surround 5.0" +#~ msgstr "Analogowe surround 5.0" + +#~ msgid "Analog Surround 5.1" +#~ msgstr "Analogowe surround 5.1" + +#~ msgid "Digital Surround 5.1 (IEC958/AC3)" +#~ msgstr "Cyfrowe surround 5.1 (IEC958/AC3)" + +#~ msgid "Analog Surround 7.1" +#~ msgstr "Analogowe surround 7.1" + +#~ msgid "Output %s + Input %s" +#~ msgstr "WyjÅ›cie %s + wejÅ›cie %s" + +#~ msgid "Output %s" +#~ msgstr "WyjÅ›cie %s" + +#~ msgid "Input %s" +#~ msgstr "WejÅ›cie %s" diff --git a/po/pt.po b/po/pt.po new file mode 100644 index 00000000..b44d622d --- /dev/null +++ b/po/pt.po @@ -0,0 +1,2282 @@ +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: \n" +"Last-Translator: Rui Gouveia <rui.gouveia@globaltek.pt>\n" +"Language-Team: pt <fedora-trans-pt@redhat.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Portuguese\n" +"X-Poedit-Country: PORTUGAL\n" + +#: ../src/modules/alsa/alsa-util.c:1015 +#, c-format +msgid "" +"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " +"ms).\n" +"Most likely this is a bug in the ALSA driver '%s'. Please report this issue " +"to the ALSA developers." +msgstr "" +"snd_pcm_avail() retornou um valor excepcionalmente elevado: %lu bytes (%lu " +"ms).\n" +"Provavelmente isto é um erro no driver ALSA '%s'. Por favor, reporte este " +"problema aos programadores do ALSA." + +#: ../src/modules/alsa/alsa-util.c:1056 +#, c-format +msgid "" +"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" +"lu ms).\n" +"Most likely this is a bug in the ALSA driver '%s'. Please report this issue " +"to the ALSA developers." +msgstr "" +"snd_pcm_delay() retornou um valor excepcionalmente elevado: %li bytes (%s%lu " +"ms).\n" +"Provavelmente isto é um erro no driver ALSA '%s'. Por favor, reporte este " +"problema aos programadores do ALSA." + +#: ../src/modules/alsa/alsa-util.c:1103 +#, c-format +msgid "" +"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " +"(%lu ms).\n" +"Most likely this is a bug in the ALSA driver '%s'. Please report this issue " +"to the ALSA developers." +msgstr "" +"snd_pcm_mmap_begin() retornou um valor excepcionalmente elevado: %lu bytes (%" +"lu ms).\n" +"Provavelmente isto é um erro no driver ALSA '%s'. Por favor, reporte este " +"problema aos programadores do ALSA." + +#: ../src/modules/module-ladspa-sink.c:49 +msgid "Virtual LADSPA sink" +msgstr "" + +#: ../src/modules/module-ladspa-sink.c:53 +msgid "" +"sink_name=<name for the sink> sink_properties=<properties for the sink> " +"master=<name of sink to filter> format=<sample format> rate=<sample rate> " +"channels=<number of channels> channel_map=<channel map> plugin=<ladspa " +"plugin name> label=<ladspa plugin label> control=<comma seperated list of " +"input control values>" +msgstr "" + +#: ../src/pulsecore/sink.c:2394 +msgid "Internal Audio" +msgstr "Ãudio Interno" + +#: ../src/pulsecore/sink.c:2400 +msgid "Modem" +msgstr "Modem" + +#: ../src/daemon/ltdl-bind-now.c:124 +msgid "Failed to find original lt_dlopen loader." +msgstr "Não foi possÃvel encontrar o carregador \"lt_dlopen\"." + +#: ../src/daemon/ltdl-bind-now.c:129 +msgid "Failed to allocate new dl loader." +msgstr "Não foi possÃvel alocar o novo carregador \"dl\"." + +#: ../src/daemon/ltdl-bind-now.c:142 +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 +#, c-format +msgid "Got signal %s." +msgstr "Foi obtido o sinal %s." + +#: ../src/daemon/main.c:169 +msgid "Exiting." +msgstr "A sair." + +#: ../src/daemon/main.c:187 +#, c-format +msgid "Failed to find user '%s'." +msgstr "Falha ao procurar o utilizador '%s'." + +#: ../src/daemon/main.c:192 +#, c-format +msgid "Failed to find group '%s'." +msgstr "Falha ao procurar o grupo '%s'." + +#: ../src/daemon/main.c:196 +#, c-format +msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." +msgstr "Foi encontrado utilizador '%s' (UID %lu) e grupo '%s' (GID %lu)." + +#: ../src/daemon/main.c:201 +#, c-format +msgid "GID of user '%s' and of group '%s' don't match." +msgstr "GID do utilizador '%s' e do grupo '%s' não coincidem." + +#: ../src/daemon/main.c:206 +#, c-format +msgid "Home directory of user '%s' is not '%s', ignoring." +msgstr "Directório pessoal do utilizador '%s' não é '%s'. A ignorar." + +#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 +#, c-format +msgid "Failed to create '%s': %s" +msgstr "Falha ao criar o '%s': %s" + +#: ../src/daemon/main.c:221 +#, c-format +msgid "Failed to change group list: %s" +msgstr "Falhou a alteração da lista de grupos: %s" + +#: ../src/daemon/main.c:237 +#, c-format +msgid "Failed to change GID: %s" +msgstr "Não foi possÃvel mudar o GID: %s" + +#: ../src/daemon/main.c:253 +#, c-format +msgid "Failed to change UID: %s" +msgstr "Não foi possÃvel mudar o UID: %s" + +#: ../src/daemon/main.c:267 +msgid "Successfully dropped root privileges." +msgstr "Privilégios de root cedidos com sucesso." + +#: ../src/daemon/main.c:275 +msgid "System wide mode unsupported on this platform." +msgstr "Modo de sistema não suportado nesta plataforma." + +#: ../src/daemon/main.c:293 +#, c-format +msgid "setrlimit(%s, (%u, %u)) failed: %s" +msgstr "setrlimit(%s, (%u, %u)) falhou: %s" + +#: ../src/daemon/main.c:481 +msgid "Failed to parse command line." +msgstr "Não foi possÃvel processar linha de comando." + +#: ../src/daemon/main.c: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 +msgid "Daemon not running" +msgstr "Serviço não está a executar" + +#: ../src/daemon/main.c:694 +#, c-format +msgid "Daemon running as PID %u" +msgstr "Serviço a executar como PID %u" + +#: ../src/daemon/main.c:704 +#, c-format +msgid "Failed to kill daemon: %s" +msgstr "Tentativa de matar serviço falhou: %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 pretende ser executado como root (a não ser que a opção --" +"system seja especificada)." + +#: ../src/daemon/main.c:724 +msgid "Root privileges required." +msgstr "São necessários privilégios de root." + +#: ../src/daemon/main.c:729 +msgid "--start not supported for system instances." +msgstr "--start não é suportado para instâncias do sistema." + +#: ../src/daemon/main.c:734 +msgid "Running in system mode, but --disallow-exit not set!" +msgstr "A executar em modo de sistema, mas --disallow-exit não está definido!" + +#: ../src/daemon/main.c:737 +msgid "Running in system mode, but --disallow-module-loading not set!" +msgstr "" +"A executar em modo de sistema, mas --disallow-module-loading não está " +"definido!" + +#: ../src/daemon/main.c:740 +msgid "Running in system mode, forcibly disabling SHM mode!" +msgstr "A executar em modo de sistema, a forçar a desactivação do modo SHM!" + +#: ../src/daemon/main.c:745 +msgid "Running in system mode, forcibly disabling exit idle time!" +msgstr "" +"A executar em modo de sistema, a forçar a desactivação da saÃda por " +"inactividade!" + +#: ../src/daemon/main.c:772 +msgid "Failed to acquire stdio." +msgstr "Não foi possÃvel adquirir o stdio." + +#: ../src/daemon/main.c:778 +#, c-format +msgid "pipe failed: %s" +msgstr "pipe falhou: %s" + +#: ../src/daemon/main.c:783 +#, c-format +msgid "fork() failed: %s" +msgstr "fork() falhou: %s" + +#: ../src/daemon/main.c:797 +#, c-format +msgid "read() failed: %s" +msgstr "read() falhou: %s" + +#: ../src/daemon/main.c:803 +msgid "Daemon startup failed." +msgstr "Arranque do serviço falhou." + +#: ../src/daemon/main.c:805 +msgid "Daemon startup successful." +msgstr "Arranque do serviço sucedeu." + +#: ../src/daemon/main.c:875 +#, c-format +msgid "This is PulseAudio %s" +msgstr "Isto é PulseAudio %s" + +#: ../src/daemon/main.c:876 +#, c-format +msgid "Compilation host: %s" +msgstr "Máquina de compilação: %s" + +#: ../src/daemon/main.c:877 +#, c-format +msgid "Compilation CFLAGS: %s" +msgstr "CFLAGS utilizadas na compilação: %s" + +#: ../src/daemon/main.c:880 +#, c-format +msgid "Running on host: %s" +msgstr "A executar na máquina: %s" + +#: ../src/daemon/main.c:883 +#, c-format +msgid "Found %u CPUs." +msgstr "Foram encontrados %u CPUs." + +#: ../src/daemon/main.c:885 +#, c-format +msgid "Page size is %lu bytes" +msgstr "Tamanho da página é %lu bytes" + +#: ../src/daemon/main.c:888 +msgid "Compiled with Valgrind support: yes" +msgstr "Compilado com suporte para Valgrind: sim" + +#: ../src/daemon/main.c:890 +msgid "Compiled with Valgrind support: no" +msgstr "Compilado com suporte para Valgrind: não" + +#: ../src/daemon/main.c:893 +#, c-format +msgid "Running in valgrind mode: %s" +msgstr "A executar em modo \"valgrind\": %s" + +#: ../src/daemon/main.c:896 +msgid "Optimized build: yes" +msgstr "Optimizado: sim" + +#: ../src/daemon/main.c:898 +msgid "Optimized build: no" +msgstr "Compilação optimizada: não" + +#: ../src/daemon/main.c:902 +msgid "NDEBUG defined, all asserts disabled." +msgstr "NDEBUG definido, todas as declarações desactivadas." + +#: ../src/daemon/main.c:904 +msgid "FASTPATH defined, only fast path asserts disabled." +msgstr "FASTPATH definido, apenas as declarações \"fast path\" desactivadas." + +#: ../src/daemon/main.c:906 +msgid "All asserts enabled." +msgstr "Todas as declarações desactivadas." + +#: ../src/daemon/main.c:910 +msgid "Failed to get machine ID" +msgstr "A tentativa de ler o ID da máquina falhou" + +#: ../src/daemon/main.c:913 +#, c-format +msgid "Machine ID is %s." +msgstr "O ID da máquina é %s." + +#: ../src/daemon/main.c:917 +#, fuzzy, c-format +msgid "Session ID is %s." +msgstr "O ID da máquina é %s." + +#: ../src/daemon/main.c:923 +#, c-format +msgid "Using runtime directory %s." +msgstr "Execução a utilizar o directório %s" + +#: ../src/daemon/main.c:928 +#, c-format +msgid "Using state directory %s." +msgstr "A manter o estado no directório %s." + +#: ../src/daemon/main.c:931 +#, c-format +msgid "Running in system mode: %s" +msgstr "Execução em modo de sistema: %s" + +#: ../src/daemon/main.c:934 +msgid "" +"OK, so you are running PA in system mode. Please note that you most likely " +"shouldn't be doing that.\n" +"If you do it nonetheless then it's your own fault if things don't work as " +"expected.\n" +"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " +"explanation why system mode is usually a bad idea." +msgstr "" + +#: ../src/daemon/main.c:951 +msgid "pa_pid_file_create() failed." +msgstr "pa_pid_file_create() falhou." + +#: ../src/daemon/main.c:961 +msgid "Fresh high-resolution timers available! Bon appetit!" +msgstr "Timer \"frescos\" de alta resolução disponÃveis. Bom apetite!" + +#: ../src/daemon/main.c:963 +msgid "" +"Dude, your kernel stinks! The chef's recommendation today is Linux with high-" +"resolution timers enabled!" +msgstr "" +"Oh pá, o teu kernel não presta! O prato do dia recomendado é Linux com " +"timers de alta resolução activos!" + +#: ../src/daemon/main.c:988 +msgid "pa_core_new() failed." +msgstr "pa_core_new() falhou." + +#: ../src/daemon/main.c:1050 +msgid "Failed to initialize daemon." +msgstr "Falha ao inicializar serviço." + +#: ../src/daemon/main.c:1055 +msgid "Daemon startup without any loaded modules, refusing to work." +msgstr "Serviço arrancou sem módulos carregados. A recusar trabalhar." + +#: ../src/daemon/main.c:1072 +msgid "Daemon startup complete." +msgstr "Arranque do serviço completo." + +#: ../src/daemon/main.c:1078 +msgid "Daemon shutdown initiated." +msgstr "Encerramento do serviço iniciado." + +#: ../src/daemon/main.c:1100 +msgid "Daemon terminated." +msgstr "Serviço terminado." + +#: ../src/daemon/cmdline.c:115 +#, fuzzy, c-format +msgid "" +"%s [options]\n" +"\n" +"COMMANDS:\n" +" -h, --help Show this help\n" +" --version Show version\n" +" --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" +" -k --kill Kill a running daemon\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" +" with elevated RLIMIT_NICE)\n" +" --realtime[=BOOL] Try to enable realtime scheduling\n" +" (only available as root, when SUID " +"or\n" +" with elevated RLIMIT_RTPRIO)\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" +" time passed\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" +" 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-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" +" objects (plugins)\n" +" --resample-method=METHOD Use the specified resampling method\n" +" (See --dump-resample-methods for\n" +" possible values)\n" +" --use-pid-file[=BOOL] Create a PID file\n" +" --no-cpu-limit[=BOOL] Do not install CPU load limiter on\n" +" platforms that support it.\n" +" --disable-shm[=BOOL] Disable shared memory support.\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" +"\n" +" -n Don't load default script file\n" +msgstr "" +"%s [opções]\n" +"\n" +"COMANDOS:\n" +" -h, --help Mostra esta ajuda\n" +" --version Mostra versão\n" +" --dump-conf Despeja configuração por omissão\n" +" --dump-modules Despeja lista de módulos " +"disponÃveis\n" +" --dump-resample-methods Despeja métodos \"resample\" " +"disponÃveis\n" +" --cleanup-shm Limpar segmentos de memória " +"partilhados encravados\n" +" --start Inicia o serviço, se ainda não " +"estiver a executar\n" +" -k --kill Termina o serviço, se estiver a " +"executar \n" +" --check Verifica se o serviço está a " +"executar (apenas retorna um código de saÃda)\n" +"\n" +"OPTIONS:\n" +" --system[=BOOL] Executa em modo de sistema\n" +" -D, --daemonize[=BOOL] Passa serviço depois de executar\n" +" --fail[=BOOL] Termina quando o arranque falha\n" +" --high-priority[=BOOL] Tenta definir um alto nÃvel de " +"execução\n" +" (apenas disponÃvel como root, quando " +"é SUID ou\n" +" com nÃveis elevados de RLIMIT_NICE)\n" +" --realtime[=BOOL] Tenta activar escalonamento em tempo " +"real\n" +" (apenas disponÃvel como root, quando " +"é SUID ou\n" +" com nÃveis elevados de " +"RLIMIT_RTPRIO)\n" +" --disallow-module-loading[=BOOL] Desautoriza o carregamento/" +"descarregamento\n" +" de módulos, pelo utilizador, depois " +"do arranque\n" +" --disallow-exit[=BOOL] Desautoriza pedidos de saÃda do " +"utilizador\n" +" --exit-idle-time=SECS Termina o serviço quando inactivo e " +"já passou\n" +" este tempo\n" +" --module-idle-time=SECS Descarregar módulos de carregamento " +"automático quando inactivo e\n" +" passou este tempo\n" +" --scache-idle-time=SECS Descarregar amostras de carregamento " +"automático quando inactivas e\n" +" passou este tempo\n" +" --log-level[=LEVEL] Aumenta ou define o nÃvel de " +"verbosidade\n" +" -v Aumenta o nÃvel de verbosidade\n" +" --log-target={auto,syslog,stderr} Especifica o ficheiro de registo\n" +" --log-meta[=BOOL] Inclui código de localização na " +"mensagem de registo\n" +" --log-time[=BOOL] Inclui tempo na mensagem de registo\n" +" --log-backtrace=FRAMES Inclui informação de tracagem na " +"mensagem de registo\n" +" -p, --dl-search-path=PATH Define o caminho de procura para os " +"plugins partilhados dinâmicos\n" +" --resample-method=METHOD Utilizar o método de \"resampling\" " +"especificado\n" +" (Ver --dump-resample-methods para\n" +" possÃveis valores)\n" +" --use-pid-file[=BOOL] Criar um ficheiro com o PID\n" +" --no-cpu-limit[=BOOL] Não instala limitadores de load no " +"CPU em\n" +" plataformas que o suportam.\n" +" --disable-shm[=BOOL] Desactivar suporte para memória " +"partilhada.\n" +"\n" +"STARTUP SCRIPT:\n" +" -L, --load=\"MODULE ARGUMENTS\" Load the specified plugin module " +"with\n" +" 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" +"\n" +" -n Don't load default script file\n" + +#: ../src/daemon/cmdline.c:247 +msgid "--daemonize expects boolean argument" +msgstr "--daemonize espera argumento booleano" + +#: ../src/daemon/cmdline.c:254 +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 para o nÃvel de log (numérico no intervalo " +"0..4 ou um dos seguintes: debug, info, notice, warn, error)." + +#: ../src/daemon/cmdline.c:276 +msgid "--high-priority expects boolean argument" +msgstr "--high-priority espera argumento booleano" + +#: ../src/daemon/cmdline.c:283 +msgid "--realtime expects boolean argument" +msgstr "--realtime espera argumento booleano" + +#: ../src/daemon/cmdline.c:290 +msgid "--disallow-module-loading expects boolean argument" +msgstr "--disallow-module-loading espera argumento booleano" + +#: ../src/daemon/cmdline.c:297 +msgid "--disallow-exit expects boolean argument" +msgstr "--disallow-exit espera argumento booleano" + +#: ../src/daemon/cmdline.c:304 +msgid "--use-pid-file expects boolean argument" +msgstr "--use-pid-file espera argumento booleano" + +#: ../src/daemon/cmdline.c:321 +msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." +msgstr "" +"Destino de ficheiro de registo inválido: utilize 'syslog', 'stderr' ou " +"'auto'." + +#: ../src/daemon/cmdline.c:328 +msgid "--log-time expects boolean argument" +msgstr "--log-time espera argumento booleano" + +#: ../src/daemon/cmdline.c:335 +msgid "--log-meta expects boolean argument" +msgstr "--log-meta espera argumento booleano" + +#: ../src/daemon/cmdline.c:354 +#, c-format +msgid "Invalid resample method '%s'." +msgstr "Método de resample inválido '%s'." + +#: ../src/daemon/cmdline.c:361 +msgid "--system expects boolean argument" +msgstr "--system espera argumento booleano" + +#: ../src/daemon/cmdline.c:368 +msgid "--no-cpu-limit expects boolean argument" +msgstr "--no-cpu-limit espera argumento booleano" + +#: ../src/daemon/cmdline.c:375 +msgid "--disable-shm expects boolean argument" +msgstr "--disable-shm espera argumento booleano" + +#: ../src/daemon/dumpmodules.c:60 +#, c-format +msgid "Name: %s\n" +msgstr "Nome: %s\n" + +#: ../src/daemon/dumpmodules.c:63 +#, c-format +msgid "No module information available\n" +msgstr "Nenhuma informação de módulo disponÃvel\n" + +#: ../src/daemon/dumpmodules.c:66 +#, c-format +msgid "Version: %s\n" +msgstr "Versão: %s\n" + +#: ../src/daemon/dumpmodules.c:68 +#, c-format +msgid "Description: %s\n" +msgstr "Descrição: %s\n" + +#: ../src/daemon/dumpmodules.c:70 +#, c-format +msgid "Author: %s\n" +msgstr "Autor: %s\n" + +#: ../src/daemon/dumpmodules.c:72 +#, c-format +msgid "Usage: %s\n" +msgstr "Utilização: %s\n" + +#: ../src/daemon/dumpmodules.c:73 +#, c-format +msgid "Load Once: %s\n" +msgstr "Carregar Uma Vez: %s\n" + +#: ../src/daemon/dumpmodules.c:75 +#, c-format +msgid "DEPRECATION WARNING: %s\n" +msgstr "" + +#: ../src/daemon/dumpmodules.c:79 +#, c-format +msgid "Path: %s\n" +msgstr "Caminho: %s\n" + +#: ../src/daemon/daemon-conf.c:216 +#, c-format +msgid "[%s:%u] Invalid log target '%s'." +msgstr "[%s:%u] ficheiro registo de destino inválido '%s'." + +#: ../src/daemon/daemon-conf.c:232 +#, c-format +msgid "[%s:%u] Invalid log level '%s'." +msgstr "[%s:%u] NÃvel do ficheiro de registo inválido '%s'." + +#: ../src/daemon/daemon-conf.c:248 +#, c-format +msgid "[%s:%u] Invalid resample method '%s'." +msgstr "" + +#: ../src/daemon/daemon-conf.c:271 +#, c-format +msgid "[%s:%u] Invalid rlimit '%s'." +msgstr "[%s:%u] rlimit inválido '%s'." + +#: ../src/daemon/daemon-conf.c:278 +#, c-format +msgid "[%s:%u] rlimit not supported on this platform." +msgstr "[%s:%u] rlimit não é suportado nesta plataforma." + +#: ../src/daemon/daemon-conf.c:294 +#, c-format +msgid "[%s:%u] Invalid sample format '%s'." +msgstr "[%s:%u] Formato da amostra inválido '%s'." + +#: ../src/daemon/daemon-conf.c:312 +#, c-format +msgid "[%s:%u] Invalid sample rate '%s'." +msgstr "" + +#: ../src/daemon/daemon-conf.c:336 +#, c-format +msgid "[%s:%u] Invalid sample channels '%s'." +msgstr "" + +#: ../src/daemon/daemon-conf.c:354 +#, c-format +msgid "[%s:%u] Invalid channel map '%s'." +msgstr "" + +#: ../src/daemon/daemon-conf.c:372 +#, c-format +msgid "[%s:%u] Invalid number of fragments '%s'." +msgstr "[%s:%u] Número inválido de fragmentos '%s'." + +#: ../src/daemon/daemon-conf.c:390 +#, c-format +msgid "[%s:%u] Invalid fragment size '%s'." +msgstr "[%s:%u] Tamanho do fragmento inválido '%s'." + +#: ../src/daemon/daemon-conf.c:408 +#, c-format +msgid "[%s:%u] Invalid nice level '%s'." +msgstr "[%s:%u] nÃvel nice inválido '%s'." + +#: ../src/daemon/daemon-conf.c:524 +#, c-format +msgid "Failed to open configuration file: %s" +msgstr "Falha ao abrir ficheiro 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 "" + +#: ../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 +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" + +#: ../src/daemon/pulseaudio.desktop.in.h:2 +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" + +#: ../src/pulse/channelmap.c:107 +msgid "Front Center" +msgstr "Frontal Central" + +#: ../src/pulse/channelmap.c:108 +msgid "Front Left" +msgstr "Frontal Esquerda" + +#: ../src/pulse/channelmap.c:109 +msgid "Front Right" +msgstr "Frontal Direita" + +#: ../src/pulse/channelmap.c:111 +msgid "Rear Center" +msgstr "Traseira Central" + +#: ../src/pulse/channelmap.c:112 +msgid "Rear Left" +msgstr "Traseira Esquerda" + +#: ../src/pulse/channelmap.c:113 +msgid "Rear Right" +msgstr "Traseira Direita" + +#: ../src/pulse/channelmap.c:115 +msgid "Low Frequency Emmiter" +msgstr "Emissor de Baixa Frequência" + +#: ../src/pulse/channelmap.c:117 +msgid "Front Left-of-center" +msgstr "Central Centro-Esquerda" + +#: ../src/pulse/channelmap.c:118 +msgid "Front Right-of-center" +msgstr "Central Centro-Direita" + +#: ../src/pulse/channelmap.c:120 +msgid "Side Left" +msgstr "Lateral Esquerda" + +#: ../src/pulse/channelmap.c:121 +msgid "Side Right" +msgstr "Lateral Direita" + +#: ../src/pulse/channelmap.c:123 +msgid "Auxiliary 0" +msgstr "Auxiliar 0" + +#: ../src/pulse/channelmap.c:124 +msgid "Auxiliary 1" +msgstr "Auxiliar 1" + +#: ../src/pulse/channelmap.c:125 +msgid "Auxiliary 2" +msgstr "Auxiliar 2" + +#: ../src/pulse/channelmap.c:126 +msgid "Auxiliary 3" +msgstr "Auxiliar 3" + +#: ../src/pulse/channelmap.c:127 +msgid "Auxiliary 4" +msgstr "Auxiliar 4" + +#: ../src/pulse/channelmap.c:128 +msgid "Auxiliary 5" +msgstr "Auxiliar 5" + +#: ../src/pulse/channelmap.c:129 +msgid "Auxiliary 6" +msgstr "Auxiliar 6" + +#: ../src/pulse/channelmap.c:130 +msgid "Auxiliary 7" +msgstr "Auxiliar 7" + +#: ../src/pulse/channelmap.c:131 +msgid "Auxiliary 8" +msgstr "Auxiliar 8" + +#: ../src/pulse/channelmap.c:132 +msgid "Auxiliary 9" +msgstr "Auxiliar 9" + +#: ../src/pulse/channelmap.c:133 +msgid "Auxiliary 10" +msgstr "Auxiliar 10" + +#: ../src/pulse/channelmap.c:134 +msgid "Auxiliary 11" +msgstr "Auxiliar 11" + +#: ../src/pulse/channelmap.c:135 +msgid "Auxiliary 12" +msgstr "Auxiliar 12" + +#: ../src/pulse/channelmap.c:136 +msgid "Auxiliary 13" +msgstr "Auxiliar 13" + +#: ../src/pulse/channelmap.c:137 +msgid "Auxiliary 14" +msgstr "Auxiliar 14" + +#: ../src/pulse/channelmap.c:138 +msgid "Auxiliary 15" +msgstr "Auxiliar 15" + +#: ../src/pulse/channelmap.c:139 +msgid "Auxiliary 16" +msgstr "Auxiliar 16" + +#: ../src/pulse/channelmap.c:140 +msgid "Auxiliary 17" +msgstr "Auxiliar 17" + +#: ../src/pulse/channelmap.c:141 +msgid "Auxiliary 18" +msgstr "Auxiliar 18" + +#: ../src/pulse/channelmap.c:142 +msgid "Auxiliary 19" +msgstr "Auxiliar 19" + +#: ../src/pulse/channelmap.c:143 +msgid "Auxiliary 20" +msgstr "Auxiliar 20" + +#: ../src/pulse/channelmap.c:144 +msgid "Auxiliary 21" +msgstr "Auxiliar 21" + +#: ../src/pulse/channelmap.c:145 +msgid "Auxiliary 22" +msgstr "Auxiliar 22" + +#: ../src/pulse/channelmap.c:146 +msgid "Auxiliary 23" +msgstr "Auxiliar 23" + +#: ../src/pulse/channelmap.c:147 +msgid "Auxiliary 24" +msgstr "Auxiliar 24" + +#: ../src/pulse/channelmap.c:148 +msgid "Auxiliary 25" +msgstr "Auxiliar 25" + +#: ../src/pulse/channelmap.c:149 +msgid "Auxiliary 26" +msgstr "Auxiliar 26" + +#: ../src/pulse/channelmap.c:150 +msgid "Auxiliary 27" +msgstr "Auxiliar 27" + +#: ../src/pulse/channelmap.c:151 +msgid "Auxiliary 28" +msgstr "Auxiliar 28" + +#: ../src/pulse/channelmap.c:152 +msgid "Auxiliary 29" +msgstr "Auxiliar 29" + +#: ../src/pulse/channelmap.c:153 +msgid "Auxiliary 30" +msgstr "Auxiliar 30" + +#: ../src/pulse/channelmap.c:154 +msgid "Auxiliary 31" +msgstr "Auxiliar 31" + +#: ../src/pulse/channelmap.c:156 +msgid "Top Center" +msgstr "Topo Centro" + +#: ../src/pulse/channelmap.c:158 +msgid "Top Front Center" +msgstr "Topo Central Centro" + +#: ../src/pulse/channelmap.c:159 +msgid "Top Front Left" +msgstr "Topo Frontal Esquerda" + +#: ../src/pulse/channelmap.c:160 +msgid "Top Front Right" +msgstr "Topo Frontal Direita" + +#: ../src/pulse/channelmap.c:162 +msgid "Top Rear Center" +msgstr "Topo Traseira Centro" + +#: ../src/pulse/channelmap.c:163 +msgid "Top Rear Left" +msgstr "Topo Traseira Esquerda" + +#: ../src/pulse/channelmap.c:164 +msgid "Top Rear Right" +msgstr "Topo Traseira Direita" + +#: ../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 "Estéreo" + +#: ../src/pulse/channelmap.c:756 +msgid "Surround 4.0" +msgstr "Surround 4.0" + +#: ../src/pulse/channelmap.c:762 +msgid "Surround 4.1" +msgstr "Surround 4.1" + +#: ../src/pulse/channelmap.c:768 +msgid "Surround 5.0" +msgstr "Surround 5.0" + +#: ../src/pulse/channelmap.c:774 +msgid "Surround 5.1" +msgstr "Surround 5.1" + +#: ../src/pulse/channelmap.c:781 +msgid "Surround 7.1" +msgstr "Surround 7.1" + +#: ../src/pulse/error.c:43 +msgid "OK" +msgstr "OK" + +#: ../src/pulse/error.c:44 +msgid "Access denied" +msgstr "Acesso negado" + +#: ../src/pulse/error.c:45 +msgid "Unknown command" +msgstr "Comando desconhecido" + +#: ../src/pulse/error.c:46 +msgid "Invalid argument" +msgstr "Argumento inválido" + +#: ../src/pulse/error.c:47 +msgid "Entity exists" +msgstr "Entidade existe! " + +#: ../src/pulse/error.c:48 +msgid "No such entity" +msgstr "Entidade não existe" + +#: ../src/pulse/error.c:49 +msgid "Connection refused" +msgstr "Ligação recusada" + +#: ../src/pulse/error.c:50 +msgid "Protocol error" +msgstr "Erro de protocolo" + +#: ../src/pulse/error.c:51 +msgid "Timeout" +msgstr "Tempo expirou" + +#: ../src/pulse/error.c:52 +msgid "No authorization key" +msgstr "Sem chave de autorização" + +#: ../src/pulse/error.c:53 +msgid "Internal error" +msgstr "Erro interno" + +#: ../src/pulse/error.c:54 +msgid "Connection terminated" +msgstr "Ligação terminou" + +#: ../src/pulse/error.c:55 +msgid "Entity killed" +msgstr "Entidade terminada" + +#: ../src/pulse/error.c:56 +msgid "Invalid server" +msgstr "Servidor Inválido" + +#: ../src/pulse/error.c:57 +msgid "Module initalization failed" +msgstr "Inicialização do módulo falhou" + +#: ../src/pulse/error.c:58 +msgid "Bad state" +msgstr "Mau estado" + +#: ../src/pulse/error.c:59 +msgid "No data" +msgstr "Nenhuns dados" + +#: ../src/pulse/error.c:60 +msgid "Incompatible protocol version" +msgstr "Versão de protocolo incompatÃvel" + +#: ../src/pulse/error.c:61 +msgid "Too large" +msgstr "Demasiado Grande" + +#: ../src/pulse/error.c:62 +msgid "Not supported" +msgstr "Não suportado" + +#: ../src/pulse/error.c:63 +msgid "Unknown error code" +msgstr "Código de erro desconhecido" + +#: ../src/pulse/error.c:64 +msgid "No such extension" +msgstr "Extensão não existe" + +#: ../src/pulse/error.c:65 +msgid "Obsolete functionality" +msgstr "Funcionalidade obsoleta" + +#: ../src/pulse/error.c:66 +msgid "Missing implementation" +msgstr "Implementação em falta" + +#: ../src/pulse/error.c:67 +msgid "Client forked" +msgstr "Cliente efectuou um fork" + +#: ../src/pulse/sample.c:169 +#, c-format +msgid "%s %uch %uHz" +msgstr "%s %uch %uHz" + +#: ../src/pulse/sample.c:181 +#, c-format +msgid "%0.1f GiB" +msgstr "%.1f GiB" + +#: ../src/pulse/sample.c:183 +#, c-format +msgid "%0.1f MiB" +msgstr "%.1f MiB" + +#: ../src/pulse/sample.c:185 +#, c-format +msgid "%0.1f KiB" +msgstr "%.1f KiB" + +#: ../src/pulse/sample.c:187 +#, c-format +msgid "%u B" +msgstr "%u B" + +#: ../src/pulse/client-conf-x11.c:55 ../src/utils/pax11publish.c:100 +msgid "XOpenDisplay() failed" +msgstr "XOpenDisplay() falhou" + +#: ../src/pulse/client-conf-x11.c:93 +msgid "Failed to parse cookie data" +msgstr "Não foi possÃvel processar dados da cookie" + +#: ../src/pulse/client-conf.c:110 +#, c-format +msgid "Failed to open configuration file '%s': %s" +msgstr "Falha ao abrir ficheiro de configuração '%s': %s" + +#: ../src/pulse/context.c:546 +msgid "No cookie loaded. Attempting to connect without." +msgstr "Nenhuma cookie carregada. A tentar ligar sem cookie." + +#: ../src/pulse/context.c:676 +#, c-format +msgid "fork(): %s" +msgstr "fork(): %s" + +#: ../src/pulse/context.c:729 +#, c-format +msgid "waitpid(): %s" +msgstr "waitpid(): %s" + +#: ../src/pulse/context.c:1403 +#, c-format +msgid "Received message for unknown extension '%s'" +msgstr "Recebida mensagem para extensão desconhecida '%s'" + +#: ../src/utils/pacat.c:107 +#, c-format +msgid "Failed to drain stream: %s\n" +msgstr "Falhou ao esvaziar fluxo: %s\n" + +#: ../src/utils/pacat.c:112 +msgid "Playback stream drained.\n" +msgstr "" + +#: ../src/utils/pacat.c:122 +msgid "Draining connection to server.\n" +msgstr "" + +#: ../src/utils/pacat.c:135 +#, c-format +msgid "pa_stream_drain(): %s\n" +msgstr "pa_stream_drain(): %s\n" + +#: ../src/utils/pacat.c:158 +#, c-format +msgid "pa_stream_write() failed: %s\n" +msgstr "pa_stream_write() falhou: %s\n" + +#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 +#, c-format +msgid "pa_stream_peek() failed: %s\n" +msgstr "pa_stream_peek() falhou: %s\n" + +#: ../src/utils/pacat.c:302 +msgid "Stream successfully created.\n" +msgstr "Fluxo criado com sucesso.\n" + +#: ../src/utils/pacat.c:305 +#, c-format +msgid "pa_stream_get_buffer_attr() failed: %s\n" +msgstr "pa_stream_get_buffer_attr() falhou: %s\n" + +#: ../src/utils/pacat.c:309 +#, c-format +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" +msgstr "Métricas do Buffer: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" + +#: ../src/utils/pacat.c:312 +#, c-format +msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" +msgstr "Métricas do Buffer: maxlength=%u, fragsize=%u\n" + +#: ../src/utils/pacat.c:316 +#, c-format +msgid "Using sample spec '%s', channel map '%s'.\n" +msgstr "" + +#: ../src/utils/pacat.c:320 +#, c-format +msgid "Connected to device %s (%u, %ssuspended).\n" +msgstr "Ligado ao dispositivo %s (%u, %ssuspended).\n" + +#: ../src/utils/pacat.c:330 +#, c-format +msgid "Stream error: %s\n" +msgstr "Erro de fluxo: %s\n" + +#: ../src/utils/pacat.c:340 +#, c-format +msgid "Stream device suspended.%s \n" +msgstr "" + +#: ../src/utils/pacat.c:342 +#, c-format +msgid "Stream device resumed.%s \n" +msgstr "" + +#: ../src/utils/pacat.c:350 +#, c-format +msgid "Stream underrun.%s \n" +msgstr "Fluxo com falta de dados.%s \n" + +#: ../src/utils/pacat.c:357 +#, c-format +msgid "Stream overrun.%s \n" +msgstr "Fluxo com excesso de dados.%s \n" + +#: ../src/utils/pacat.c:364 +#, c-format +msgid "Stream started.%s \n" +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:371 +msgid "not " +msgstr "negação" + +#: ../src/utils/pacat.c:378 +#, c-format +msgid "Stream buffer attributes changed.%s \n" +msgstr "" + +#: ../src/utils/pacat.c:411 +#, c-format +msgid "Connection established.%s \n" +msgstr "Ligação Estabelecida.%s \n" + +#: ../src/utils/pacat.c:414 +#, c-format +msgid "pa_stream_new() failed: %s\n" +msgstr "pa_stream_new() falhou: %s\n" + +#: ../src/utils/pacat.c:442 +#, c-format +msgid "pa_stream_connect_playback() failed: %s\n" +msgstr "pa_stream_connect_playback() falhou: %s\n" + +#: ../src/utils/pacat.c:448 +#, c-format +msgid "pa_stream_connect_record() failed: %s\n" +msgstr "pa_stream_connect_record() falhou: %s\n" + +#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +msgstr "Ligação falhou: %s\n" + +#: ../src/utils/pacat.c: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" + +#: ../src/utils/pacat.c:532 +#, c-format +msgid "write() failed: %s\n" +msgstr "write() falhou: %s\n" + +#: ../src/utils/pacat.c:553 +msgid "Got signal, exiting.\n" +msgstr "Recebido sinal, a sair.\n" + +#: ../src/utils/pacat.c:567 +#, c-format +msgid "Failed to get latency: %s\n" +msgstr "Falhou a obtenção da latência: %s\n" + +#: ../src/utils/pacat.c:572 +#, c-format +msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" +msgstr "Tempo: %0.3f sec; Latency: %0.0f usec. \r" + +#: ../src/utils/pacat.c:592 +#, c-format +msgid "pa_stream_update_timing_info() failed: %s\n" +msgstr "pa_stream_update_timing_info() falhou: %s\n" + +#: ../src/utils/pacat.c:605 +#, c-format +msgid "" +"%s [options]\n" +"\n" +" -h, --help Show this help\n" +" --version Show version\n" +"\n" +" -r, --record Create a connection for recording\n" +" -p, --playback Create a connection for playback\n" +"\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" +" (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" +" being connected to.\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" +" --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" +" --raw Record/play raw PCM data.\n" +" --file-format=FFORMAT Record/play formatted PCM data.\n" +" --list-file-formats List available file formats.\n" +msgstr "" + +#: ../src/utils/pacat.c:727 +#, c-format +msgid "" +"pacat %s\n" +"Compiled with libpulse %s\n" +"Linked with libpulse %s\n" +msgstr "" + +#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "Método de resample inválido '%s'." + +#: ../src/utils/pacat.c:776 +#, fuzzy, c-format +msgid "Invalid stream name '%s'\n" +msgstr "Método de resample inválido '%s'." + +#: ../src/utils/pacat.c:813 +#, c-format +msgid "Invalid channel map '%s'\n" +msgstr "" + +#: ../src/utils/pacat.c:842 +#, c-format +msgid "Invalid latency specification '%s'\n" +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 "" + +#: ../src/utils/pacat.c:861 +#, fuzzy, c-format +msgid "Invalid property '%s'\n" +msgstr "Método de resample inválido '%s'." + +#: ../src/utils/pacat.c:878 +#, c-format +msgid "Unknown file format %s." +msgstr "" + +#: ../src/utils/pacat.c:897 +msgid "Invalid sample specification\n" +msgstr "Especificação da amostra inválida\n" + +#: ../src/utils/pacat.c:907 +#, c-format +msgid "open(): %s\n" +msgstr "open(): %s\n" + +#: ../src/utils/pacat.c:912 +#, c-format +msgid "dup2(): %s\n" +msgstr "dup2(): %s\n" + +#: ../src/utils/pacat.c:919 +msgid "Too many arguments.\n" +msgstr "demasiados argumentos.\n" + +#: ../src/utils/pacat.c:930 +#, fuzzy +msgid "Failed to generate sample specification for file.\n" +msgstr "não foi possÃvel obter informações da amostra: %s\n" + +#: ../src/utils/pacat.c:950 +#, fuzzy +msgid "Failed to open audio file.\n" +msgstr "Falha ao abrir ficheiro de som.\n" + +#: ../src/utils/pacat.c:956 +msgid "" +"Warning: specified sample specification will be overwritten with " +"specification from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "não foi possÃvel obter informações da amostra: %s\n" + +#: ../src/utils/pacat.c:968 +msgid "Warning: Failed to determine channel map from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:979 +msgid "Channel map doesn't match sample specification\n" +msgstr "" + +#: ../src/utils/pacat.c:990 +msgid "Warning: failed to write channel map to file.\n" +msgstr "" + +#: ../src/utils/pacat.c:1005 +#, c-format +msgid "" +"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +msgstr "" + +#: ../src/utils/pacat.c:1006 +msgid "recording" +msgstr "a gravar" + +#: ../src/utils/pacat.c:1006 +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" +msgstr "pa_mainloop_new() falhou.\n" + +#: ../src/utils/pacat.c:1051 +msgid "io_new() failed.\n" +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" +msgstr "pa_context_new() falhou.\n" + +#: ../src/utils/pacat.c:1066 +#, fuzzy, c-format +msgid "pa_context_connect() failed: %s\n" +msgstr "pa_context_connect() falhou: %s" + +#: ../src/utils/pacat.c:1077 +msgid "time_new() failed.\n" +msgstr "time_new() falhou.\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 "pa_mainloop_run() falhou.\n" + +#: ../src/utils/pasuspender.c:81 +#, c-format +msgid "fork(): %s\n" +msgstr "fork(): %s\n" + +#: ../src/utils/pasuspender.c:92 +#, c-format +msgid "execvp(): %s\n" +msgstr "execvp(): %s\n" + +#: ../src/utils/pasuspender.c:109 +#, c-format +msgid "Failure to suspend: %s\n" +msgstr "Falhou ao suspender: %s\n" + +#: ../src/utils/pasuspender.c:124 +#, c-format +msgid "Failure to resume: %s\n" +msgstr "Falhou ao restaurar: %s\n" + +#: ../src/utils/pasuspender.c:147 +#, c-format +msgid "WARNING: Sound server is not local, not suspending.\n" +msgstr "Atenção: Servidor de Som não local, suspender ignorado.\n" + +#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 +#, c-format +msgid "Got SIGINT, exiting.\n" +msgstr "Obtido SIGINT, a sair.\n" + +#: ../src/utils/pasuspender.c:194 +#, c-format +msgid "WARNING: Child process terminated by signal %u\n" +msgstr "Atenção: Processo filho terminado por sinal %u\n" + +#: ../src/utils/pasuspender.c:212 +#, c-format +msgid "" +"%s [options] ... \n" +"\n" +" -h, --help Show this help\n" +" --version Show version\n" +" -s, --server=SERVER The name of the server to connect " +"to\n" +"\n" +msgstr "" + +#: ../src/utils/pasuspender.c:248 +#, c-format +msgid "" +"pasuspender %s\n" +"Compiled with libpulse %s\n" +"Linked with libpulse %s\n" +msgstr "" + +#: ../src/utils/pactl.c:128 +#, c-format +msgid "Failed to get statistics: %s\n" +msgstr "Falhou a obtenção de estatÃsticas: %s\n" + +#: ../src/utils/pactl.c:134 +#, c-format +msgid "Currently in use: %u blocks containing %s bytes total.\n" +msgstr "" + +#: ../src/utils/pactl.c:137 +#, c-format +msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n" +msgstr "" + +#: ../src/utils/pactl.c:140 +#, c-format +msgid "Sample cache size: %s\n" +msgstr "Tamanho cache da amostra: %s\n" + +#: ../src/utils/pactl.c:149 +#, c-format +msgid "Failed to get server information: %s\n" +msgstr "Não foi possÃvel obter informações do servidor: %s\n" + +#: ../src/utils/pactl.c:157 +#, c-format +msgid "" +"User name: %s\n" +"Host Name: %s\n" +"Server Name: %s\n" +"Server Version: %s\n" +"Default Sample Specification: %s\n" +"Default Channel Map: %s\n" +"Default Sink: %s\n" +"Default Source: %s\n" +"Cookie: %08x\n" +msgstr "" + +#: ../src/utils/pactl.c:198 +#, c-format +msgid "Failed to get sink information: %s\n" +msgstr "não foi possÃvel obter informações do depósito: %s\n" + +#: ../src/utils/pactl.c:214 +#, c-format +msgid "" +"Sink #%u\n" +"\tState: %s\n" +"\tName: %s\n" +"\tDescription: %s\n" +"\tDriver: %s\n" +"\tSample Specification: %s\n" +"\tChannel Map: %s\n" +"\tOwner Module: %u\n" +"\tMute: %s\n" +"\tVolume: %s%s%s\n" +"\t balance %0.2f\n" +"\tBase Volume: %s%s%s\n" +"\tMonitor Source: %s\n" +"\tLatency: %0.0f usec, configured %0.0f usec\n" +"\tFlags: %s%s%s%s%s%s\n" +"\tProperties:\n" +"\t\t%s\n" +msgstr "" + +#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 +#, fuzzy, c-format +msgid "\tPorts:\n" +msgstr "\tPrefis:\n" + +#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 +#, fuzzy, c-format +msgid "\tActive Port: %s\n" +msgstr "\tPerfil Activo: %s\n" + +#: ../src/utils/pactl.c:290 +#, c-format +msgid "Failed to get source information: %s\n" +msgstr "não foi possÃvel obter informações da fonte: %s\n" + +#: ../src/utils/pactl.c:306 +#, c-format +msgid "" +"Source #%u\n" +"\tState: %s\n" +"\tName: %s\n" +"\tDescription: %s\n" +"\tDriver: %s\n" +"\tSample Specification: %s\n" +"\tChannel Map: %s\n" +"\tOwner Module: %u\n" +"\tMute: %s\n" +"\tVolume: %s%s%s\n" +"\t balance %0.2f\n" +"\tBase Volume: %s%s%s\n" +"\tMonitor of Sink: %s\n" +"\tLatency: %0.0f usec, configured %0.0f usec\n" +"\tFlags: %s%s%s%s%s%s\n" +"\tProperties:\n" +"\t\t%s\n" +msgstr "" + +#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429 +#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526 +#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581 +#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631 +#: ../src/utils/pactl.c:638 +msgid "n/a" +msgstr "n/d" + +#: ../src/utils/pactl.c:368 +#, c-format +msgid "Failed to get module information: %s\n" +msgstr "não foi possÃvel obter informações do módulo: %s\n" + +#: ../src/utils/pactl.c:386 +#, c-format +msgid "" +"Module #%u\n" +"\tName: %s\n" +"\tArgument: %s\n" +"\tUsage counter: %s\n" +"\tProperties:\n" +"\t\t%s\n" +msgstr "" + +#: ../src/utils/pactl.c:405 +#, c-format +msgid "Failed to get client information: %s\n" +msgstr "não foi possÃvel obter informações do cliente: %s\n" + +#: ../src/utils/pactl.c:423 +#, c-format +msgid "" +"Client #%u\n" +"\tDriver: %s\n" +"\tOwner Module: %s\n" +"\tProperties:\n" +"\t\t%s\n" +msgstr "" + +#: ../src/utils/pactl.c:440 +#, c-format +msgid "Failed to get card information: %s\n" +msgstr "não foi possÃvel obter informações da carta: %s\n" + +#: ../src/utils/pactl.c:458 +#, c-format +msgid "" +"Card #%u\n" +"\tName: %s\n" +"\tDriver: %s\n" +"\tOwner Module: %s\n" +"\tProperties:\n" +"\t\t%s\n" +msgstr "" + +#: ../src/utils/pactl.c:472 +#, c-format +msgid "\tProfiles:\n" +msgstr "\tPrefis:\n" + +#: ../src/utils/pactl.c:478 +#, c-format +msgid "\tActive Profile: %s\n" +msgstr "\tPerfil Activo: %s\n" + +#: ../src/utils/pactl.c:489 +#, c-format +msgid "Failed to get sink input information: %s\n" +msgstr "" + +#: ../src/utils/pactl.c:508 +#, c-format +msgid "" +"Sink Input #%u\n" +"\tDriver: %s\n" +"\tOwner Module: %s\n" +"\tClient: %s\n" +"\tSink: %u\n" +"\tSample Specification: %s\n" +"\tChannel Map: %s\n" +"\tMute: %s\n" +"\tVolume: %s\n" +"\t %s\n" +"\t balance %0.2f\n" +"\tBuffer Latency: %0.0f usec\n" +"\tSink Latency: %0.0f usec\n" +"\tResample method: %s\n" +"\tProperties:\n" +"\t\t%s\n" +msgstr "" + +#: ../src/utils/pactl.c:547 +#, c-format +msgid "Failed to get source output information: %s\n" +msgstr "" + +#: ../src/utils/pactl.c:567 +#, c-format +msgid "" +"Source Output #%u\n" +"\tDriver: %s\n" +"\tOwner Module: %s\n" +"\tClient: %s\n" +"\tSource: %u\n" +"\tSample Specification: %s\n" +"\tChannel Map: %s\n" +"\tBuffer Latency: %0.0f usec\n" +"\tSource Latency: %0.0f usec\n" +"\tResample method: %s\n" +"\tProperties:\n" +"\t\t%s\n" +msgstr "" + +#: ../src/utils/pactl.c:598 +#, c-format +msgid "Failed to get sample information: %s\n" +msgstr "não foi possÃvel obter informações da amostra: %s\n" + +#: ../src/utils/pactl.c:616 +#, c-format +msgid "" +"Sample #%u\n" +"\tName: %s\n" +"\tSample Specification: %s\n" +"\tChannel Map: %s\n" +"\tVolume: %s\n" +"\t %s\n" +"\t balance %0.2f\n" +"\tDuration: %0.1fs\n" +"\tSize: %s\n" +"\tLazy: %s\n" +"\tFilename: %s\n" +"\tProperties:\n" +"\t\t%s\n" +msgstr "" + +#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 +#, c-format +msgid "Failure: %s\n" +msgstr "Falhou: %s\n" + +#: ../src/utils/pactl.c:680 +#, c-format +msgid "Failed to upload sample: %s\n" +msgstr "Não foi possÃvel enviar amostra: %s\n" + +#: ../src/utils/pactl.c:697 +msgid "Premature end of file\n" +msgstr "Fim prematuro de ficheiro\n" + +#: ../src/utils/pactl.c:826 +#, c-format +msgid "" +"%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 [options] set-card-profile [CARD] [PROFILE] \n" +"%s [options] set-sink-port [SINK] [PORT] \n" +"%s [options] set-source-port [SOURCE] [PORT] \n" +"\n" +" -h, --help Show this help\n" +" --version Show version\n" +"\n" +" -s, --server=SERVER The name of the server to connect " +"to\n" +" -n, --client-name=NAME How to call this client on the " +"server\n" +msgstr "" + +#: ../src/utils/pactl.c:880 +#, c-format +msgid "" +"pactl %s\n" +"Compiled with libpulse %s\n" +"Linked with libpulse %s\n" +msgstr "" +"pactl %s\n" +"Compilado com libpulse %s\n" +"Linkado com libpulse %s\n" + +#: ../src/utils/pactl.c:926 +msgid "Please specify a sample file to load\n" +msgstr "Por favor, especifique um ficheiro de amostra para carregar\n" + +#: ../src/utils/pactl.c:939 +msgid "Failed to open sound file.\n" +msgstr "Falha ao abrir ficheiro de som.\n" + +#: ../src/utils/pactl.c:951 +msgid "Warning: Failed to determine sample specification from file.\n" +msgstr "" + +#: ../src/utils/pactl.c:961 +msgid "You have to specify a sample name to play\n" +msgstr "Tem de especificar um nome de amostra para reproduzir\n" + +#: ../src/utils/pactl.c:973 +msgid "You have to specify a sample name to remove\n" +msgstr "Tem de especificar um nome de amostra para remover\n" + +#: ../src/utils/pactl.c:982 +msgid "You have to specify a sink input index and a sink\n" +msgstr "Tem de especificar um Ãndice de entrada de depósito e um depósito\n" + +#: ../src/utils/pactl.c:992 +msgid "You have to specify a source output index and a source\n" +msgstr "Tem de especificar um Ãndice de saÃda de fonte e uma fonte\n" + +#: ../src/utils/pactl.c:1007 +msgid "You have to specify a module name and arguments.\n" +msgstr "Tem de especificar um nome de módulo e argumentos.\n" + +#: ../src/utils/pactl.c:1027 +msgid "You have to specify a module index\n" +msgstr "Tem de especificar um Ã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 "" +"Não pode especificar mais do que um depósito. Tem de especificar um valor " +"booleano.\n" + +#: ../src/utils/pactl.c:1050 +msgid "" +"You may not specify more than one source. You have to specify a boolean " +"value.\n" +msgstr "" +"Não pode especificar mais do que uma fonte. Tem de especificar um valor " +"booleano.\n" + +#: ../src/utils/pactl.c:1062 +msgid "You have to specify a card name/index and a profile name\n" +msgstr "Tem de especificar um nome/Ãndice de carta e um nome de perfil\n" + +#: ../src/utils/pactl.c:1073 +#, fuzzy +msgid "You have to specify a sink name/index and a port name\n" +msgstr "Tem de especificar um nome/Ãndice de carta e um nome de perfil\n" + +#: ../src/utils/pactl.c:1084 +#, fuzzy +msgid "You have to specify a source name/index and a port name\n" +msgstr "Tem de especificar um nome/Ãndice de carta e um nome de perfil\n" + +#: ../src/utils/pactl.c:1099 +msgid "No valid command specified.\n" +msgstr "O comando especificado é inválido.\n" + +#: ../src/utils/pactl.c:1122 +#, c-format +msgid "pa_context_connect() failed: %s" +msgstr "pa_context_connect() falhou: %s" + +#: ../src/utils/pax11publish.c:61 +#, c-format +msgid "" +"%s [-D display] [-S server] [-O sink] [-I source] [-c file] [-d|-e|-i|-r]\n" +"\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" +" -r Remove PulseAudio data from X11 display\n" +msgstr "" + +#: ../src/utils/pax11publish.c:94 +#, c-format +msgid "Failed to parse command line.\n" +msgstr "Não foi possÃvel processar a linha de comando.\n" + +#: ../src/utils/pax11publish.c:108 +#, c-format +msgid "Server: %s\n" +msgstr "Servidor: %s\n" + +#: ../src/utils/pax11publish.c:110 +#, c-format +msgid "Source: %s\n" +msgstr "Fonte: %s\n" + +#: ../src/utils/pax11publish.c:112 +#, c-format +msgid "Sink: %s\n" +msgstr "Sink: %s\n" + +#: ../src/utils/pax11publish.c:114 +#, c-format +msgid "Cookie: %s\n" +msgstr "Cookie: %s\n" + +#: ../src/utils/pax11publish.c:132 +#, c-format +msgid "Failed to parse cookie data\n" +msgstr "Não foi possÃvel processar os dados da cookie\n" + +#: ../src/utils/pax11publish.c:137 +#, c-format +msgid "Failed to save cookie data\n" +msgstr "Não foi possÃvel gravar os dados da cookie\n" + +#: ../src/utils/pax11publish.c:152 +#, c-format +msgid "Failed to load client configuration file.\n" +msgstr "Não foi possÃvel carregar o ficheiro de configuração do cliente\n" + +#: ../src/utils/pax11publish.c:157 +#, c-format +msgid "Failed to read environment configuration data.\n" +msgstr "Não foi possÃvel ler os dados de configuração do ambiente\n" + +#: ../src/utils/pax11publish.c:174 +#, c-format +msgid "Failed to get FQDN.\n" +msgstr "Falhou ao obter FQDN.\n" + +#: ../src/utils/pax11publish.c:194 +#, c-format +msgid "Failed to load cookie data\n" +msgstr "Não foi possÃvel carregar os dados da cookie\n" + +#: ../src/utils/pax11publish.c:211 +#, c-format +msgid "Not yet implemented.\n" +msgstr "Ainda não implementado.\n" + +#: ../src/utils/pacmd.c:61 +msgid "No PulseAudio daemon running, or not running as session daemon." +msgstr "" + +#: ../src/utils/pacmd.c:66 +#, c-format +msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s" +msgstr "socket(PF_UNIX, SOCK_STREAM, 0): %s" + +#: ../src/utils/pacmd.c:83 +#, c-format +msgid "connect(): %s" +msgstr "connect(): %s" + +#: ../src/utils/pacmd.c:91 +msgid "Failed to kill PulseAudio daemon." +msgstr "Não foi possÃvel terminar o serviço PulseAudio." + +#: ../src/utils/pacmd.c:99 +msgid "Daemon not responding." +msgstr "Serviço 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 +#, c-format +msgid "read(): %s" +msgstr "read(): %s" + +#: ../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 +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 +#, c-format +msgid "" +"ALSA woke us up to write new data to the device, but there was actually " +"nothing to write!\n" +"Most likely this is a bug in the ALSA driver '%s'. Please report this issue " +"to the ALSA developers.\n" +"We were woken up with POLLOUT set -- however a subsequent snd_pcm_avail() " +"returned 0 or another value < min_avail." +msgstr "" +"ALSA acordou-nos para escrever novos dados para o dispositivo, mas não havia " +"nada para escrever!\n" +"Provavelmente isto é um erro no driver ALSA '%s'. Por favor, reporte este " +"problema aos programadores do ALSA.\n" +"Fomos acordados pelo conjunto POLLOUT -- contudo uma chamada a seguir de " +"snd_pcm_avail() retornou 0 ou outro valor < min_avail." + +#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 +#, c-format +msgid "" +"ALSA woke us up to read new data from the device, but there was actually " +"nothing to read!\n" +"Most likely this is a bug in the ALSA driver '%s'. Please report this issue " +"to the ALSA developers.\n" +"We were woken up with POLLIN set -- however a subsequent snd_pcm_avail() " +"returned 0 or another value < min_avail." +msgstr "" +"ALSA acordou-nos para ler novos dados do dispositivo, mas não havia nada " +"para ler!\n" +"Provavelmente isto é um erro no driver ALSA '%s'. Por favor, reporte este " +"problema aos programadores do ALSA.\n" +"Fomos acordados pelo conjunto POLLIN -- contudo uma chamada a seguir de " +"snd_pcm_avail() retornou 0 ou outro valor < min_avail." + +#: ../src/modules/alsa/module-alsa-card.c:152 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 +msgid "Off" +msgstr "Desligado" + +#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +msgid "High Fidelity Playback (A2DP)" +msgstr "Reprodução Alta Fidelidade (A2DP)" + +#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +msgid "Telephony Duplex (HSP/HFP)" +msgstr "Telefonia Duplex (HSP/HFP)" + +#: ../src/modules/reserve-wrap.c:151 +msgid "PulseAudio Sound Server" +msgstr "Servidor de Som PulseAudio" + +#~ 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 "Analog Surround 4.0" + +#~ msgid "Digital Surround 4.0 (IEC958/AC3)" +#~ msgstr "Surround Digital 4.0 (IEC958/AC3)" + +#~ msgid "Analog Surround 4.1" +#~ msgstr "Analog Surround 4.1" + +#~ msgid "Analog Surround 5.0" +#~ msgstr "Analog Surround 5.0" + +#~ msgid "Analog Surround 5.1" +#~ msgstr "Analog Surround 5.1" + +#~ msgid "Digital Surround 5.1 (IEC958/AC3)" +#~ msgstr "Surround Digital 5.1 (IEC958/AC3)" + +#~ msgid "Analog Surround 7.1" +#~ msgstr "Analog Surround 7.1" + +#~ msgid "Stream successfully created\n" +#~ msgstr "Fluxo criado com sucesso\n" + +#~ msgid "Stream errror: %s\n" +#~ msgstr "Erro de fluxo: %s\n" + +#~ msgid "Connection established.\n" +#~ msgstr "Ligação Estabelecida.\n" + +#~ msgid "" +#~ "paplay %s\n" +#~ "Compiled with libpulse %s\n" +#~ "Linked with libpulse %s\n" +#~ msgstr "" +#~ "paplay %s\n" +#~ "Compilado com libpulse %s\n" +#~ "Linkado com libpulse %s\n" + +#~ msgid "Failed to open file '%s'\n" +#~ msgstr "Falha ao abrir o ficheiro '%s'\n" + +#~ msgid "Using sample spec '%s'\n" +#~ msgstr "Utilizando especificação da amostra '%s'\n" + +#~ msgid "Output %s + Input %s" +#~ msgstr "SaÃda %s + Entrada %s" + +#~ msgid "Output %s" +#~ msgstr "SaÃda %s" + +#~ msgid "Input %s" +#~ msgstr "Entrada %s" diff --git a/po/pt_BR.po b/po/pt_BR.po index c9249a68..fd4f5391 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-21 23:02+0200\n" +"POT-Creation-Date: 2009-06-17 23:42+0200\n" "PO-Revision-Date: 2008-11-21 01:21-0300\n" "Last-Translator: Henrique (LonelySpooky) Junior <lspooky@fedoraproject.org>\n" "Language-Team: Brazilian-Portuguese <fedora-trans-pt_br@redhat.com>\n" @@ -18,51 +18,7 @@ msgstr "" "X-Poedit-Language: Brazilian Portuguese\n" "X-Poedit-Country: Brazil\n" -#: ../src/modules/alsa/alsa-util.c:532 -msgid "Analog Mono" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:540 -msgid "Analog Stereo" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:548 -msgid "Digital Stereo (IEC958)" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:556 -msgid "Digital Stereo (HDMI)" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:565 -msgid "Analog Surround 4.0" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:574 -msgid "Digital Surround 4.0 (IEC958/AC3)" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:584 -msgid "Analog Surround 4.1" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:594 -msgid "Analog Surround 5.0" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:604 -msgid "Analog Surround 5.1" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:614 -msgid "Digital Surround 5.1 (IEC958/AC3)" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:625 -msgid "Analog Surround 7.1" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:1646 +#: ../src/modules/alsa/alsa-util.c:1015 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -71,7 +27,7 @@ msgid "" "to the ALSA developers." msgstr "" -#: ../src/modules/alsa/alsa-util.c:1687 +#: ../src/modules/alsa/alsa-util.c:1056 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -80,7 +36,7 @@ msgid "" "to the ALSA developers." msgstr "" -#: ../src/modules/alsa/alsa-util.c:1734 +#: ../src/modules/alsa/alsa-util.c:1103 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -89,12 +45,25 @@ msgid "" "to the ALSA developers." msgstr "" -#: ../src/pulsecore/sink.c:2141 +#: ../src/modules/module-ladspa-sink.c:49 +msgid "Virtual LADSPA sink" +msgstr "" + +#: ../src/modules/module-ladspa-sink.c:53 +msgid "" +"sink_name=<name for the sink> sink_properties=<properties for the sink> " +"master=<name of sink to filter> format=<sample format> rate=<sample rate> " +"channels=<number of channels> channel_map=<channel map> plugin=<ladspa " +"plugin name> label=<ladspa plugin label> control=<comma seperated list of " +"input control values>" +msgstr "" + +#: ../src/pulsecore/sink.c:2394 #, fuzzy msgid "Internal Audio" msgstr "Erro interno" -#: ../src/pulsecore/sink.c:2147 +#: ../src/pulsecore/sink.c:2400 msgid "Modem" msgstr "" @@ -166,104 +135,104 @@ msgstr "Não foi possÃvel obter auth: %s" msgid "PolicyKit responded with '%s'" msgstr "PolicyKit respondeu com '%s'" -#: ../src/daemon/main.c:138 +#: ../src/daemon/main.c:142 #, c-format msgid "Got signal %s." msgstr "Sinal %s recebido." -#: ../src/daemon/main.c:165 +#: ../src/daemon/main.c:169 msgid "Exiting." msgstr "Saindo." -#: ../src/daemon/main.c:183 +#: ../src/daemon/main.c:187 #, c-format msgid "Failed to find user '%s'." msgstr "Falha em encontrar o usuário '%s'." -#: ../src/daemon/main.c:188 +#: ../src/daemon/main.c:192 #, c-format msgid "Failed to find group '%s'." msgstr "Falha em encontrar o grupo '%s'." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:196 #, 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:197 +#: ../src/daemon/main.c:201 #, 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:202 +#: ../src/daemon/main.c:206 #, 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:205 ../src/daemon/main.c:210 +#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 #, c-format msgid "Failed to create '%s': %s" msgstr "Falha em criar '%s': %s" -#: ../src/daemon/main.c:217 +#: ../src/daemon/main.c:221 #, c-format msgid "Failed to change group list: %s" msgstr "Falha em alterar a lista de grupos: %s" -#: ../src/daemon/main.c:233 +#: ../src/daemon/main.c:237 #, c-format msgid "Failed to change GID: %s" msgstr "Falha em mudar o GID: %s" -#: ../src/daemon/main.c:249 +#: ../src/daemon/main.c:253 #, c-format msgid "Failed to change UID: %s" msgstr "Falha em mudar o UID: %s" -#: ../src/daemon/main.c:263 +#: ../src/daemon/main.c:267 msgid "Successfully dropped root privileges." msgstr "Os privilégios do root foram retirados com sucesso." -#: ../src/daemon/main.c:271 +#: ../src/daemon/main.c:275 msgid "System wide mode unsupported on this platform." msgstr "O modo ampliado do sistema não tem suporte nessa plataforma." -#: ../src/daemon/main.c:289 +#: ../src/daemon/main.c:293 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) falhou: %s" -#: ../src/daemon/main.c:477 +#: ../src/daemon/main.c:481 msgid "Failed to parse command line." msgstr "Falha em interpretar a linha de comando." -#: ../src/daemon/main.c:501 +#: ../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:508 +#: ../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:516 +#: ../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:519 +#: ../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:524 +#: ../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:527 +#: ../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:556 +#: ../src/daemon/main.c:560 #, c-format msgid "" "Called SUID root and real-time and/or high-priority scheduling was requested " @@ -276,48 +245,48 @@ msgid "" "the RLIMIT_NICE/RLIMIT_RTPRIO resource limits for this user." msgstr "" -#: ../src/daemon/main.c:581 +#: ../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:610 +#: ../src/daemon/main.c:614 msgid "Successfully increased RLIMIT_RTPRIO" msgstr "RLIMIT_RTPRIO aumentado com sucesso" -#: ../src/daemon/main.c:613 +#: ../src/daemon/main.c:617 #, c-format msgid "RLIMIT_RTPRIO failed: %s" msgstr "RLIMIT_RTPRIO falhou: %s" -#: ../src/daemon/main.c:620 +#: ../src/daemon/main.c:624 msgid "Giving up CAP_NICE" msgstr "Abandonando CAP_NICE" -#: ../src/daemon/main.c:627 +#: ../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:688 +#: ../src/daemon/main.c:692 msgid "Daemon not running" msgstr "O daemon não está em execução" -#: ../src/daemon/main.c:690 +#: ../src/daemon/main.c:694 #, c-format msgid "Daemon running as PID %u" msgstr "Daemon executando como PID %u" -#: ../src/daemon/main.c:700 +#: ../src/daemon/main.c:704 #, c-format msgid "Failed to kill daemon: %s" msgstr "Falha em encerrar o daemon: %s" -#: ../src/daemon/main.c:718 +#: ../src/daemon/main.c:722 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -325,161 +294,171 @@ msgstr "" "Este programa não é para ser executado como root (a não ser que --system " "seja especificado)." -#: ../src/daemon/main.c:720 +#: ../src/daemon/main.c:724 #, fuzzy msgid "Root privileges required." msgstr "Privilégios de rot são requeridos." -#: ../src/daemon/main.c:725 +#: ../src/daemon/main.c:729 msgid "--start not supported for system instances." msgstr "--start não tem suporte para instâncias de sistemas." -#: ../src/daemon/main.c:730 +#: ../src/daemon/main.c:734 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:733 +#: ../src/daemon/main.c:737 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "" "Executando no modo system, mas --disallow-module-loading não foi configurado!" -#: ../src/daemon/main.c:736 +#: ../src/daemon/main.c:740 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "Executando no modo system, desabilitando forçadamente o modo SHM!" -#: ../src/daemon/main.c:741 +#: ../src/daemon/main.c:745 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "" "Executando no modo system, desabilitando forçadamente o exit idle time!" -#: ../src/daemon/main.c:768 +#: ../src/daemon/main.c:772 msgid "Failed to acquire stdio." msgstr "Falha em adquirir o stdio." -#: ../src/daemon/main.c:774 +#: ../src/daemon/main.c:778 #, c-format msgid "pipe failed: %s" msgstr "O pipe falhou: %s" -#: ../src/daemon/main.c:779 +#: ../src/daemon/main.c:783 #, c-format msgid "fork() failed: %s" msgstr "O fork() falhou: %s" -#: ../src/daemon/main.c:793 +#: ../src/daemon/main.c:797 #, c-format msgid "read() failed: %s" msgstr "A operação read() falhou: %s" -#: ../src/daemon/main.c:799 +#: ../src/daemon/main.c:803 msgid "Daemon startup failed." msgstr "Falha na partida do daemon." -#: ../src/daemon/main.c:801 +#: ../src/daemon/main.c:805 msgid "Daemon startup successful." msgstr "Os daemons foram iniciados com sucesso." -#: ../src/daemon/main.c:871 +#: ../src/daemon/main.c:875 #, c-format msgid "This is PulseAudio %s" msgstr "Este é o PulseAudio %s" -#: ../src/daemon/main.c:872 +#: ../src/daemon/main.c:876 #, c-format msgid "Compilation host: %s" msgstr "Host de compilação: %s" -#: ../src/daemon/main.c:873 +#: ../src/daemon/main.c:877 #, c-format msgid "Compilation CFLAGS: %s" msgstr "Compilação CFLAGS: %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:880 #, c-format msgid "Running on host: %s" msgstr "Executando no host: %s" -#: ../src/daemon/main.c:879 +#: ../src/daemon/main.c:883 #, c-format msgid "Found %u CPUs." msgstr "" -#: ../src/daemon/main.c:881 +#: ../src/daemon/main.c:885 #, c-format msgid "Page size is %lu bytes" msgstr "O tamanho da página é %lu bytes" -#: ../src/daemon/main.c:884 +#: ../src/daemon/main.c:888 msgid "Compiled with Valgrind support: yes" msgstr "Compilado com suporte do Valgrind: sim" -#: ../src/daemon/main.c:886 +#: ../src/daemon/main.c:890 msgid "Compiled with Valgrind support: no" msgstr "Compilado com suporte do Valgrind: não" -#: ../src/daemon/main.c:889 +#: ../src/daemon/main.c:893 #, c-format msgid "Running in valgrind mode: %s" msgstr "Executando em modo valgrind: %s" -#: ../src/daemon/main.c:892 +#: ../src/daemon/main.c:896 msgid "Optimized build: yes" msgstr "Build otimizado: sim" -#: ../src/daemon/main.c:894 +#: ../src/daemon/main.c:898 msgid "Optimized build: no" msgstr "Build otimizado: não" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:902 msgid "NDEBUG defined, all asserts disabled." msgstr "" -#: ../src/daemon/main.c:900 +#: ../src/daemon/main.c:904 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:906 msgid "All asserts enabled." msgstr "" -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:910 msgid "Failed to get machine ID" msgstr "Falha em obter o ID da máquina" -#: ../src/daemon/main.c:909 +#: ../src/daemon/main.c:913 #, c-format msgid "Machine ID is %s." msgstr "A ID da máquina é %s." -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:917 #, fuzzy, c-format msgid "Session ID is %s." msgstr "A ID da máquina é %s." -#: ../src/daemon/main.c:919 +#: ../src/daemon/main.c:923 #, c-format msgid "Using runtime directory %s." msgstr "Usando o diretório de runtime %s." -#: ../src/daemon/main.c:924 +#: ../src/daemon/main.c:928 #, c-format msgid "Using state directory %s." msgstr "Usando o diretório de estado %s." -#: ../src/daemon/main.c:927 +#: ../src/daemon/main.c:931 #, c-format msgid "Running in system mode: %s" msgstr "Executando em modo do sistema: %s" -#: ../src/daemon/main.c:942 +#: ../src/daemon/main.c:934 +msgid "" +"OK, so you are running PA in system mode. Please note that you most likely " +"shouldn't be doing that.\n" +"If you do it nonetheless then it's your own fault if things don't work as " +"expected.\n" +"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " +"explanation why system mode is usually a bad idea." +msgstr "" + +#: ../src/daemon/main.c:951 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() falhou." -#: ../src/daemon/main.c:954 +#: ../src/daemon/main.c:961 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "Timers de alta resolução frequinhos disponÃveis! Bon appetit!" -#: ../src/daemon/main.c:956 +#: ../src/daemon/main.c:963 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -487,32 +466,32 @@ msgstr "" "Cara, teu kernel fede! A recomendação do chef hoje é Linux com timers de " "alta resolução habilitados!" -#: ../src/daemon/main.c:970 +#: ../src/daemon/main.c:988 msgid "pa_core_new() failed." msgstr "pa_core_new() falhou." -#: ../src/daemon/main.c:1032 +#: ../src/daemon/main.c:1050 msgid "Failed to initialize daemon." msgstr "Falha em iniciar o daemon." -#: ../src/daemon/main.c:1037 +#: ../src/daemon/main.c:1055 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "" "O Daemon iniciou sem qualquer módulo carregado, recusando-se a trabalhar." -#: ../src/daemon/main.c:1054 +#: ../src/daemon/main.c:1072 msgid "Daemon startup complete." msgstr "A partida dos Daemon está completa." -#: ../src/daemon/main.c:1060 +#: ../src/daemon/main.c:1078 msgid "Daemon shutdown initiated." msgstr "O encerramento do Daemon foi iniciado." -#: ../src/daemon/main.c:1082 +#: ../src/daemon/main.c:1100 msgid "Daemon terminated." msgstr "Daemon terminado." -#: ../src/daemon/cmdline.c:121 +#: ../src/daemon/cmdline.c:115 #, fuzzy, c-format msgid "" "%s [options]\n" @@ -660,15 +639,15 @@ msgstr "" " -n Não carrega o arquivo de script " "padrão\n" -#: ../src/daemon/cmdline.c:252 +#: ../src/daemon/cmdline.c:247 msgid "--daemonize expects boolean argument" msgstr "--daemonize espera argumento booleano" -#: ../src/daemon/cmdline.c:259 +#: ../src/daemon/cmdline.c:254 msgid "--fail expects boolean argument" msgstr "--fail espera argumento booleano" -#: ../src/daemon/cmdline.c:269 +#: ../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)." @@ -676,55 +655,55 @@ 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:281 +#: ../src/daemon/cmdline.c:276 msgid "--high-priority expects boolean argument" msgstr "--high-priority espera um argumento booleano" -#: ../src/daemon/cmdline.c:288 +#: ../src/daemon/cmdline.c:283 msgid "--realtime expects boolean argument" msgstr "--realtime espera um argumento booleano" -#: ../src/daemon/cmdline.c:295 +#: ../src/daemon/cmdline.c:290 msgid "--disallow-module-loading expects boolean argument" msgstr "--disallow-module-loading espera um argumento booleano" -#: ../src/daemon/cmdline.c:302 +#: ../src/daemon/cmdline.c:297 #, fuzzy msgid "--disallow-exit expects boolean argument" msgstr "--disallow-exit argumento booleano" -#: ../src/daemon/cmdline.c:309 +#: ../src/daemon/cmdline.c:304 msgid "--use-pid-file expects boolean argument" msgstr "--use-pid-file espera argumento booleano" -#: ../src/daemon/cmdline.c:326 +#: ../src/daemon/cmdline.c:321 msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgstr "Log target inválido: use 'syslog', 'stderr' ou 'auto'." -#: ../src/daemon/cmdline.c:333 +#: ../src/daemon/cmdline.c:328 #, fuzzy msgid "--log-time expects boolean argument" msgstr "--realtime espera um argumento booleano" -#: ../src/daemon/cmdline.c:340 +#: ../src/daemon/cmdline.c:335 #, fuzzy msgid "--log-meta expects boolean argument" msgstr "--disallow-exit argumento booleano" -#: ../src/daemon/cmdline.c:359 +#: ../src/daemon/cmdline.c:354 #, c-format msgid "Invalid resample method '%s'." msgstr "Método de reamostragem inválido '%s'." -#: ../src/daemon/cmdline.c:366 +#: ../src/daemon/cmdline.c:361 msgid "--system expects boolean argument" msgstr "--system espera argumento booleano" -#: ../src/daemon/cmdline.c:373 +#: ../src/daemon/cmdline.c:368 msgid "--no-cpu-limit expects boolean argument" msgstr "--no-cpu-limit espera argumento booleano" -#: ../src/daemon/cmdline.c:380 +#: ../src/daemon/cmdline.c:375 msgid "--disable-shm expects boolean argument" msgstr "--disable-shm espera argumento booleano" @@ -763,77 +742,82 @@ msgstr "Uso: %s\n" msgid "Load Once: %s\n" msgstr "Carrega uma vez: %s\n" -#: ../src/daemon/dumpmodules.c:77 +#: ../src/daemon/dumpmodules.c:75 +#, c-format +msgid "DEPRECATION WARNING: %s\n" +msgstr "" + +#: ../src/daemon/dumpmodules.c:79 #, c-format msgid "Path: %s\n" msgstr "Caminho: %s\n" -#: ../src/daemon/daemon-conf.c:215 +#: ../src/daemon/daemon-conf.c:216 #, c-format msgid "[%s:%u] Invalid log target '%s'." msgstr "[%s:%u] Alvo do log inválido '%s'." -#: ../src/daemon/daemon-conf.c:231 +#: ../src/daemon/daemon-conf.c:232 #, c-format msgid "[%s:%u] Invalid log level '%s'." msgstr "[%s:%u] NÃvel de log inválido '%s'." -#: ../src/daemon/daemon-conf.c:247 +#: ../src/daemon/daemon-conf.c:248 #, c-format msgid "[%s:%u] Invalid resample method '%s'." msgstr "[%s:%u] Método de reamostragem inválido '%s'." -#: ../src/daemon/daemon-conf.c:270 +#: ../src/daemon/daemon-conf.c:271 #, c-format msgid "[%s:%u] Invalid rlimit '%s'." msgstr "[%s:%u] rlimit inválido '%s'." -#: ../src/daemon/daemon-conf.c:277 +#: ../src/daemon/daemon-conf.c:278 #, c-format msgid "[%s:%u] rlimit not supported on this platform." msgstr "[%s:%u] rlimit não tem suporte nessa plataforma." -#: ../src/daemon/daemon-conf.c:293 +#: ../src/daemon/daemon-conf.c:294 #, c-format msgid "[%s:%u] Invalid sample format '%s'." msgstr "[%s:%u] Formato de amostragem inválido '%s'." -#: ../src/daemon/daemon-conf.c:311 +#: ../src/daemon/daemon-conf.c:312 #, c-format msgid "[%s:%u] Invalid sample rate '%s'." msgstr "[%s:%u] Taxa de amostragem inválida '%s'." -#: ../src/daemon/daemon-conf.c:335 +#: ../src/daemon/daemon-conf.c:336 #, c-format msgid "[%s:%u] Invalid sample channels '%s'." msgstr "[%s:%u] Canais de amostragem inválidos'%s'." -#: ../src/daemon/daemon-conf.c:353 +#: ../src/daemon/daemon-conf.c:354 #, fuzzy, c-format msgid "[%s:%u] Invalid channel map '%s'." msgstr "[%s:%u] Canais de amostragem inválidos'%s'." -#: ../src/daemon/daemon-conf.c:371 +#: ../src/daemon/daemon-conf.c:372 #, c-format msgid "[%s:%u] Invalid number of fragments '%s'." msgstr "[%s:%u] Números de fragmentos inválidos '%s'." -#: ../src/daemon/daemon-conf.c:389 +#: ../src/daemon/daemon-conf.c:390 #, c-format msgid "[%s:%u] Invalid fragment size '%s'." msgstr "[%s:%u] Tamanho de fragmentos inválido '%s'." -#: ../src/daemon/daemon-conf.c:407 +#: ../src/daemon/daemon-conf.c:408 #, c-format msgid "[%s:%u] Invalid nice level '%s'." msgstr "[%s:%u] Número de nice inválido'%s'." -#: ../src/daemon/daemon-conf.c:522 +#: ../src/daemon/daemon-conf.c:524 #, c-format msgid "Failed to open configuration file: %s" msgstr "Falha em abrir o arquivo de configuração: %s" -#: ../src/daemon/daemon-conf.c:538 +#: ../src/daemon/daemon-conf.c:540 msgid "" "The specified default channel map has a different number of channels than " "the specified default number of channels." @@ -881,237 +865,237 @@ msgstr "Estamos no grupo '%s', permitindo escalonamento de alta prioridade." msgid "System policy prevents PulseAudio from acquiring real-time scheduling." msgstr "" -#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804 +#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Mono" -#: ../src/pulse/channelmap.c:105 +#: ../src/pulse/channelmap.c:107 msgid "Front Center" msgstr "Fronto-cental" -#: ../src/pulse/channelmap.c:106 +#: ../src/pulse/channelmap.c:108 msgid "Front Left" msgstr "Frontal esquerdo" -#: ../src/pulse/channelmap.c:107 +#: ../src/pulse/channelmap.c:109 msgid "Front Right" msgstr "Frontal direito" -#: ../src/pulse/channelmap.c:109 +#: ../src/pulse/channelmap.c:111 msgid "Rear Center" msgstr "Posterior central" -#: ../src/pulse/channelmap.c:110 +#: ../src/pulse/channelmap.c:112 msgid "Rear Left" msgstr "Posterior esquerdo" -#: ../src/pulse/channelmap.c:111 +#: ../src/pulse/channelmap.c:113 msgid "Rear Right" msgstr "Posterior direito" -#: ../src/pulse/channelmap.c:113 +#: ../src/pulse/channelmap.c:115 msgid "Low Frequency Emmiter" msgstr "Emissor de baixa freqüência" -#: ../src/pulse/channelmap.c:115 +#: ../src/pulse/channelmap.c:117 msgid "Front Left-of-center" msgstr "Frontal Esquerdo do centro" -#: ../src/pulse/channelmap.c:116 +#: ../src/pulse/channelmap.c:118 msgid "Front Right-of-center" msgstr "Frontal Direito do centro" -#: ../src/pulse/channelmap.c:118 +#: ../src/pulse/channelmap.c:120 msgid "Side Left" msgstr "Lateral esquedo" -#: ../src/pulse/channelmap.c:119 +#: ../src/pulse/channelmap.c:121 msgid "Side Right" msgstr "Lateral direito" -#: ../src/pulse/channelmap.c:121 +#: ../src/pulse/channelmap.c:123 msgid "Auxiliary 0" msgstr "Auxiliar 0" -#: ../src/pulse/channelmap.c:122 +#: ../src/pulse/channelmap.c:124 msgid "Auxiliary 1" msgstr "Auxiliar 1" -#: ../src/pulse/channelmap.c:123 +#: ../src/pulse/channelmap.c:125 msgid "Auxiliary 2" msgstr "Auxiliar 2" -#: ../src/pulse/channelmap.c:124 +#: ../src/pulse/channelmap.c:126 msgid "Auxiliary 3" msgstr "Auxiliar 3" -#: ../src/pulse/channelmap.c:125 +#: ../src/pulse/channelmap.c:127 msgid "Auxiliary 4" msgstr "Auxiliar 4" -#: ../src/pulse/channelmap.c:126 +#: ../src/pulse/channelmap.c:128 msgid "Auxiliary 5" msgstr "Auxiliar 5" -#: ../src/pulse/channelmap.c:127 +#: ../src/pulse/channelmap.c:129 msgid "Auxiliary 6" msgstr "Auxiliar 6" -#: ../src/pulse/channelmap.c:128 +#: ../src/pulse/channelmap.c:130 msgid "Auxiliary 7" msgstr "Auxiliar 7" -#: ../src/pulse/channelmap.c:129 +#: ../src/pulse/channelmap.c:131 msgid "Auxiliary 8" msgstr "Auxiliar 8" -#: ../src/pulse/channelmap.c:130 +#: ../src/pulse/channelmap.c:132 msgid "Auxiliary 9" msgstr "Auxiliar 9" -#: ../src/pulse/channelmap.c:131 +#: ../src/pulse/channelmap.c:133 msgid "Auxiliary 10" msgstr "Auxiliar 10" -#: ../src/pulse/channelmap.c:132 +#: ../src/pulse/channelmap.c:134 msgid "Auxiliary 11" msgstr "Auxiliar 11" -#: ../src/pulse/channelmap.c:133 +#: ../src/pulse/channelmap.c:135 msgid "Auxiliary 12" msgstr "Auxiliar 12" -#: ../src/pulse/channelmap.c:134 +#: ../src/pulse/channelmap.c:136 msgid "Auxiliary 13" msgstr "Auxiliar13" -#: ../src/pulse/channelmap.c:135 +#: ../src/pulse/channelmap.c:137 msgid "Auxiliary 14" msgstr "Auxiliar 14" -#: ../src/pulse/channelmap.c:136 +#: ../src/pulse/channelmap.c:138 msgid "Auxiliary 15" msgstr "Auxiliar 15" -#: ../src/pulse/channelmap.c:137 +#: ../src/pulse/channelmap.c:139 msgid "Auxiliary 16" msgstr "Auxiliar 16" -#: ../src/pulse/channelmap.c:138 +#: ../src/pulse/channelmap.c:140 msgid "Auxiliary 17" msgstr "Auxiliar 17" -#: ../src/pulse/channelmap.c:139 +#: ../src/pulse/channelmap.c:141 msgid "Auxiliary 18" msgstr "Auxiliar 18" -#: ../src/pulse/channelmap.c:140 +#: ../src/pulse/channelmap.c:142 msgid "Auxiliary 19" msgstr "Auxiliar 19" -#: ../src/pulse/channelmap.c:141 +#: ../src/pulse/channelmap.c:143 msgid "Auxiliary 20" msgstr "Auxiliar 20" -#: ../src/pulse/channelmap.c:142 +#: ../src/pulse/channelmap.c:144 msgid "Auxiliary 21" msgstr "Auxiliar 21" -#: ../src/pulse/channelmap.c:143 +#: ../src/pulse/channelmap.c:145 msgid "Auxiliary 22" msgstr "Auxiliar 22" -#: ../src/pulse/channelmap.c:144 +#: ../src/pulse/channelmap.c:146 msgid "Auxiliary 23" msgstr "Auxiliar 23" -#: ../src/pulse/channelmap.c:145 +#: ../src/pulse/channelmap.c:147 msgid "Auxiliary 24" msgstr "Auxiliar 24" -#: ../src/pulse/channelmap.c:146 +#: ../src/pulse/channelmap.c:148 msgid "Auxiliary 25" msgstr "Auxiliar 25" -#: ../src/pulse/channelmap.c:147 +#: ../src/pulse/channelmap.c:149 msgid "Auxiliary 26" msgstr "Auxiliar 26" -#: ../src/pulse/channelmap.c:148 +#: ../src/pulse/channelmap.c:150 msgid "Auxiliary 27" msgstr "Auxiliar 26" -#: ../src/pulse/channelmap.c:149 +#: ../src/pulse/channelmap.c:151 msgid "Auxiliary 28" msgstr "Auxiliar 28" -#: ../src/pulse/channelmap.c:150 +#: ../src/pulse/channelmap.c:152 msgid "Auxiliary 29" msgstr "Auxiliar 29" -#: ../src/pulse/channelmap.c:151 +#: ../src/pulse/channelmap.c:153 msgid "Auxiliary 30" msgstr "Auxiliar 30" -#: ../src/pulse/channelmap.c:152 +#: ../src/pulse/channelmap.c:154 msgid "Auxiliary 31" msgstr "Auxiliar 31" -#: ../src/pulse/channelmap.c:154 +#: ../src/pulse/channelmap.c:156 msgid "Top Center" msgstr "Central Superior" -#: ../src/pulse/channelmap.c:156 +#: ../src/pulse/channelmap.c:158 msgid "Top Front Center" msgstr "Central Frontal Superior" -#: ../src/pulse/channelmap.c:157 +#: ../src/pulse/channelmap.c:159 msgid "Top Front Left" msgstr "Frontal Superior Esquerdo" -#: ../src/pulse/channelmap.c:158 +#: ../src/pulse/channelmap.c:160 msgid "Top Front Right" msgstr "Fontal Superior Direito" -#: ../src/pulse/channelmap.c:160 +#: ../src/pulse/channelmap.c:162 msgid "Top Rear Center" msgstr "Central Superior Posterior" -#: ../src/pulse/channelmap.c:161 +#: ../src/pulse/channelmap.c:163 msgid "Top Rear Left" msgstr "Posterior Superior Esquerdo" -#: ../src/pulse/channelmap.c:162 +#: ../src/pulse/channelmap.c:164 msgid "Top Rear Right" msgstr "Posterior Superior Direito" -#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167 -#: ../src/pulse/volume.c:170 ../src/pulse/volume.c:196 -#: ../src/pulse/volume.c:216 ../src/pulse/volume.c:246 +#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167 +#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265 +#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315 msgid "(invalid)" msgstr "(Inválido)" -#: ../src/pulse/channelmap.c:808 +#: ../src/pulse/channelmap.c:751 msgid "Stereo" msgstr "" -#: ../src/pulse/channelmap.c:813 +#: ../src/pulse/channelmap.c:756 msgid "Surround 4.0" msgstr "" -#: ../src/pulse/channelmap.c:819 +#: ../src/pulse/channelmap.c:762 msgid "Surround 4.1" msgstr "" -#: ../src/pulse/channelmap.c:825 +#: ../src/pulse/channelmap.c:768 msgid "Surround 5.0" msgstr "" -#: ../src/pulse/channelmap.c:831 +#: ../src/pulse/channelmap.c:774 msgid "Surround 5.1" msgstr "" -#: ../src/pulse/channelmap.c:838 +#: ../src/pulse/channelmap.c:781 msgid "Surround 7.1" msgstr "" @@ -1272,173 +1256,168 @@ msgstr "waitpid(): %s" msgid "Received message for unknown extension '%s'" msgstr "Foi recebida uma mensagem para uma extensão desconhecida '%s'" -#: ../src/utils/pacat.c:94 +#: ../src/utils/pacat.c:107 +#, c-format +msgid "Failed to drain stream: %s\n" +msgstr "Falha em drenar o fluxo: %s\n" + +#: ../src/utils/pacat.c:112 +msgid "Playback stream drained.\n" +msgstr "Drenado o fluxo de playback.\n" + +#: ../src/utils/pacat.c:122 +msgid "Draining connection to server.\n" +msgstr "Drenando a conexão par ao servidor.\n" + +#: ../src/utils/pacat.c:135 +#, c-format +msgid "pa_stream_drain(): %s\n" +msgstr "pa_stream_drain(): %s\n" + +#: ../src/utils/pacat.c:158 #, c-format msgid "pa_stream_write() failed: %s\n" msgstr "pa_stream_write() falhou: %s\n" -#: ../src/utils/pacat.c:133 +#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 #, c-format msgid "pa_stream_peek() failed: %s\n" msgstr "pa_stream_peek() falhou: %s\n" -#: ../src/utils/pacat.c:169 -#, c-format +#: ../src/utils/pacat.c:302 msgid "Stream successfully created.\n" msgstr "O fluxo (stream) foi criado com sucesso.\n" -#: ../src/utils/pacat.c:172 +#: ../src/utils/pacat.c:305 #, c-format msgid "pa_stream_get_buffer_attr() failed: %s\n" msgstr "pa_stream_get_buffer_attr() falhou: %s\n" -#: ../src/utils/pacat.c:176 +#: ../src/utils/pacat.c:309 #, c-format msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgstr "Metrica do buffer: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:179 +#: ../src/utils/pacat.c:312 #, c-format msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgstr "Métrica do buffer: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:183 +#: ../src/utils/pacat.c:316 #, c-format msgid "Using sample spec '%s', channel map '%s'.\n" msgstr "Usando a espeficifação de amostragem '%s', mapa do canal '%s'.\n" -#: ../src/utils/pacat.c:187 +#: ../src/utils/pacat.c:320 #, c-format msgid "Connected to device %s (%u, %ssuspended).\n" msgstr "Conectado ao dispositivo %s (%u, %ssuspended).\n" -#: ../src/utils/pacat.c:197 +#: ../src/utils/pacat.c:330 #, c-format msgid "Stream error: %s\n" msgstr "Erro de fluxo: %s\n" -#: ../src/utils/pacat.c:207 +#: ../src/utils/pacat.c:340 #, c-format msgid "Stream device suspended.%s \n" msgstr "Dispositivo de fluxo suspenso.%s \n" -#: ../src/utils/pacat.c:209 +#: ../src/utils/pacat.c:342 #, c-format msgid "Stream device resumed.%s \n" msgstr "Dispositivo de fluxo prosseguiu.%s \n" -#: ../src/utils/pacat.c:217 +#: ../src/utils/pacat.c:350 #, c-format msgid "Stream underrun.%s \n" msgstr "Extravazamento do fluxo. %s\n" -#: ../src/utils/pacat.c:224 +#: ../src/utils/pacat.c:357 #, c-format msgid "Stream overrun.%s \n" msgstr "O fluxo extravazou.%s \n" -#: ../src/utils/pacat.c:231 +#: ../src/utils/pacat.c:364 #, c-format msgid "Stream started.%s \n" msgstr "O fluxo iniciou: %s\n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 #, c-format msgid "Stream moved to device %s (%u, %ssuspended).%s \n" msgstr "O fluxo foi movido para o dispositivo %s (%u, %ssuspended).%s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 msgid "not " msgstr "não" -#: ../src/utils/pacat.c:245 +#: ../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:278 +#: ../src/utils/pacat.c:411 #, c-format msgid "Connection established.%s \n" msgstr "Conexão estabelecida.%s \n" -#: ../src/utils/pacat.c:281 +#: ../src/utils/pacat.c:414 #, c-format msgid "pa_stream_new() failed: %s\n" msgstr "pa_stream_new() falhou: %s\n" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:442 #, c-format msgid "pa_stream_connect_playback() failed: %s\n" msgstr "pa_stream_connect_playback() falhou: %s\n" -#: ../src/utils/pacat.c:315 +#: ../src/utils/pacat.c:448 #, c-format msgid "pa_stream_connect_record() failed: %s\n" msgstr "pa_stream_connect_record() falhou: %s\n" -#: ../src/utils/pacat.c:329 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:762 ../src/utils/paplay.c:183 +#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 #, c-format msgid "Connection failure: %s\n" msgstr "Falha na conexão: %s\n" -#: ../src/utils/pacat.c:349 ../src/utils/paplay.c:75 -#, c-format -msgid "Failed to drain stream: %s\n" -msgstr "Falha em drenar o fluxo: %s\n" - -#: ../src/utils/pacat.c:354 ../src/utils/paplay.c:80 -#, c-format -msgid "Playback stream drained.\n" -msgstr "Drenado o fluxo de playback.\n" - -#: ../src/utils/pacat.c:364 ../src/utils/paplay.c:92 -#, c-format -msgid "Draining connection to server.\n" -msgstr "Drenando a conexão par ao servidor.\n" - -#: ../src/utils/pacat.c:390 -#, c-format +#: ../src/utils/pacat.c:495 msgid "Got EOF.\n" msgstr "Atingiu EOF.\n" -#: ../src/utils/pacat.c:396 -#, c-format -msgid "pa_stream_drain(): %s\n" -msgstr "pa_stream_drain(): %s\n" - -#: ../src/utils/pacat.c:406 +#: ../src/utils/pacat.c:500 #, c-format msgid "read() failed: %s\n" msgstr "read() falhou: %s\n" -#: ../src/utils/pacat.c:438 +#: ../src/utils/pacat.c:532 #, c-format msgid "write() failed: %s\n" msgstr "write() falhou: %s\n" -#: ../src/utils/pacat.c:459 -#, c-format +#: ../src/utils/pacat.c:553 msgid "Got signal, exiting.\n" msgstr "Sinal recebido, saindo (exiting).\n" -#: ../src/utils/pacat.c:473 +#: ../src/utils/pacat.c:567 #, c-format msgid "Failed to get latency: %s\n" msgstr "Falhou em obter a latência: %s\n" -#: ../src/utils/pacat.c:478 +#: ../src/utils/pacat.c:572 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "Tempo: %0.3f s; Latência: %0.0f us. \r" -#: ../src/utils/pacat.c:498 +#: ../src/utils/pacat.c:592 #, c-format msgid "pa_stream_update_timing_info() failed: %s\n" msgstr "Falha em pa_stream_update_timing_info(): %s\n" -#: ../src/utils/pacat.c:511 -#, c-format +#: ../src/utils/pacat.c:605 +#, fuzzy, c-format msgid "" "%s [options]\n" "\n" @@ -1464,8 +1443,10 @@ msgid "" "44100)\n" " --format=SAMPLEFORMAT The sample type, one of s16le, " "s16be, u8, float32le,\n" -" float32be, ulaw, alaw, s32le, s32be " -"(defaults to s16ne)\n" +" float32be, ulaw, alaw, s32le, s32be, " +"s24le, s24be,\n" +" s24-32le, s24-32be (defaults to " +"s16ne)\n" " --channels=CHANNELS The number of channels, 1 for mono, " "2 for stereo\n" " (defaults to 2)\n" @@ -1488,6 +1469,11 @@ msgid "" "bytes.\n" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" +" --property=PROPERTY=VALUE Set the specified property to the " +"specified value.\n" +" --raw Record/play raw PCM data.\n" +" --file-format=FFORMAT Record/play formatted PCM data.\n" +" --list-file-formats List available file formats.\n" msgstr "" "%s [opções]\n" "\n" @@ -1534,7 +1520,7 @@ msgstr "" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" -#: ../src/utils/pacat.c:612 +#: ../src/utils/pacat.c:727 #, c-format msgid "" "pacat %s\n" @@ -1545,88 +1531,133 @@ msgstr "" "Compilado com libpulse %s\n" "Linkado com libpulse %s\n" -#: ../src/utils/pacat.c:669 +#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "Mapa de canal inválido '%s'\n" + +#: ../src/utils/pacat.c:776 +#, fuzzy, c-format +msgid "Invalid stream name '%s'\n" +msgstr "Método de reamostragem inválido '%s'." + +#: ../src/utils/pacat.c:813 #, c-format msgid "Invalid channel map '%s'\n" msgstr "Mapa de canal inválido '%s'\n" -#: ../src/utils/pacat.c:698 +#: ../src/utils/pacat.c:842 #, c-format msgid "Invalid latency specification '%s'\n" msgstr "Especificação de latência inválida '%s'\n" -#: ../src/utils/pacat.c:705 +#: ../src/utils/pacat.c:849 #, c-format msgid "Invalid process time specification '%s'\n" msgstr "Especificação do tempo do processo inválida '%s'\n" -#: ../src/utils/pacat.c:716 +#: ../src/utils/pacat.c:861 +#, fuzzy, c-format +msgid "Invalid property '%s'\n" +msgstr "Método de reamostragem inválido '%s'." + +#: ../src/utils/pacat.c:878 #, c-format +msgid "Unknown file format %s." +msgstr "" + +#: ../src/utils/pacat.c:897 msgid "Invalid sample specification\n" msgstr "Especificação de amostragem inválida\n" -#: ../src/utils/pacat.c:721 +#: ../src/utils/pacat.c:907 +#, c-format +msgid "open(): %s\n" +msgstr "open(): %s\n" + +#: ../src/utils/pacat.c:912 #, c-format +msgid "dup2(): %s\n" +msgstr "dup2(): %s\n" + +#: ../src/utils/pacat.c:919 +msgid "Too many arguments.\n" +msgstr "Argumentos em excesso.\n" + +#: ../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" + +#: ../src/utils/pacat.c:950 +#, fuzzy +msgid "Failed to open audio file.\n" +msgstr "Falha em abrir o arquivo de som.\n" + +#: ../src/utils/pacat.c:956 +msgid "" +"Warning: specified sample specification will be overwritten with " +"specification from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "Falha em obter informações sobre a amostragem: %s\n" + +#: ../src/utils/pacat.c:968 +msgid "Warning: Failed to determine channel map from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:979 msgid "Channel map doesn't match sample specification\n" msgstr "O mapeamento do canal não casa com a especificação da amostragem\n" -#: ../src/utils/pacat.c:728 -#, c-format -msgid "Opening a %s stream with sample specification '%s'.\n" +#: ../src/utils/pacat.c:990 +msgid "Warning: failed to write channel map to file.\n" +msgstr "" + +#: ../src/utils/pacat.c:1005 +#, fuzzy, c-format +msgid "" +"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" msgstr "Abrindo um %s fluxo com a especificação de amostragem '%s'.\n" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "recording" msgstr "gravando" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "playback" msgstr "playback" -#: ../src/utils/pacat.c:736 -#, c-format -msgid "open(): %s\n" -msgstr "open(): %s\n" - -#: ../src/utils/pacat.c:741 -#, c-format -msgid "dup2(): %s\n" -msgstr "dup2(): %s\n" - -#: ../src/utils/pacat.c:751 -#, c-format -msgid "Too many arguments.\n" -msgstr "Argumentos em excesso.\n" - -#: ../src/utils/pacat.c:764 ../src/utils/pasuspender.c:280 -#: ../src/utils/pactl.c:1017 ../src/utils/paplay.c:381 +#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 +#: ../src/utils/pactl.c:1104 #, c-format msgid "pa_mainloop_new() failed.\n" msgstr "pa_mainloop_new() falhou.\n" -#: ../src/utils/pacat.c:785 -#, c-format +#: ../src/utils/pacat.c:1051 msgid "io_new() failed.\n" msgstr "io_new() falhou.\n" -#: ../src/utils/pacat.c:791 ../src/utils/pasuspender.c:293 -#: ../src/utils/pactl.c:1031 ../src/utils/paplay.c:396 +#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 +#: ../src/utils/pactl.c:1116 #, c-format msgid "pa_context_new() failed.\n" msgstr "pa_context_new() falhou.\n" -#: ../src/utils/pacat.c:799 +#: ../src/utils/pacat.c:1066 #, fuzzy, c-format msgid "pa_context_connect() failed: %s\n" msgstr "pa_context_new() falhou: %s" -#: ../src/utils/pacat.c:810 -#, c-format +#: ../src/utils/pacat.c:1077 msgid "time_new() failed.\n" msgstr "time_new() falhou.\n" -#: ../src/utils/pacat.c:817 ../src/utils/pasuspender.c:301 -#: ../src/utils/pactl.c:1042 ../src/utils/paplay.c:410 +#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 +#: ../src/utils/pactl.c:1127 #, c-format msgid "pa_mainloop_run() failed.\n" msgstr "pa_mainloop_run() falhou.\n" @@ -1658,8 +1689,7 @@ msgstr "" "AVISO: O servidor de som não é local, Sound server is not local, não está em " "suspenso.\n" -#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:768 -#: ../src/utils/paplay.c:191 +#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" msgstr "Recebido o SIGINT, saindo.\n" @@ -1687,7 +1717,7 @@ msgstr "" " -s, --server=SERVER Nome do servidor a ser conectado\n" "\n" -#: ../src/utils/pasuspender.c:251 +#: ../src/utils/pasuspender.c:248 #, c-format msgid "" "pasuspender %s\n" @@ -1698,32 +1728,32 @@ msgstr "" "Compilado com libpulse %s\n" "Linkado com libpulse %s\n" -#: ../src/utils/pactl.c:108 +#: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" msgstr "Falha em obter as estatÃsticas: %s\n" -#: ../src/utils/pactl.c:114 +#: ../src/utils/pactl.c:134 #, c-format msgid "Currently in use: %u blocks containing %s bytes total.\n" msgstr "Em uso no momento: %u blocos contendo %s bytes no total.\n" -#: ../src/utils/pactl.c:117 +#: ../src/utils/pactl.c:137 #, c-format msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n" msgstr "Alocado por todo o tempo: %u blocos contendo %s bytes no total.\n" -#: ../src/utils/pactl.c:120 +#: ../src/utils/pactl.c:140 #, c-format msgid "Sample cache size: %s\n" msgstr "Tamanho do cache para amostragem: %s\n" -#: ../src/utils/pactl.c:129 +#: ../src/utils/pactl.c:149 #, c-format msgid "Failed to get server information: %s\n" msgstr "Falha em obter a informação do servidor: %s\n" -#: ../src/utils/pactl.c:137 +#: ../src/utils/pactl.c:157 #, fuzzy, c-format msgid "" "User name: %s\n" @@ -1745,12 +1775,12 @@ msgstr "" "Fonte padrão %s\n" "Cookie: %08x\n" -#: ../src/utils/pactl.c:178 +#: ../src/utils/pactl.c:198 #, c-format msgid "Failed to get sink information: %s\n" msgstr "Falha em obter a informação do destino: %s\n" -#: ../src/utils/pactl.c:194 +#: ../src/utils/pactl.c:214 #, fuzzy, c-format msgid "" "Sink #%u\n" @@ -1784,12 +1814,22 @@ msgstr "" "Propriedades:\n" "%s" -#: ../src/utils/pactl.c:258 +#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 +#, c-format +msgid "\tPorts:\n" +msgstr "" + +#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 +#, fuzzy, c-format +msgid "\tActive Port: %s\n" +msgstr "O pipe falhou: %s" + +#: ../src/utils/pactl.c:290 #, c-format msgid "Failed to get source information: %s\n" msgstr "Falha em obter a informação da fonte: %s\n" -#: ../src/utils/pactl.c:274 +#: ../src/utils/pactl.c:306 #, fuzzy, c-format msgid "" "Source #%u\n" @@ -1823,20 +1863,20 @@ msgstr "" "Propriedades:\n" "%s" -#: ../src/utils/pactl.c:306 ../src/utils/pactl.c:350 ../src/utils/pactl.c:385 -#: ../src/utils/pactl.c:422 ../src/utils/pactl.c:481 ../src/utils/pactl.c:482 -#: ../src/utils/pactl.c:492 ../src/utils/pactl.c:536 ../src/utils/pactl.c:537 -#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:586 ../src/utils/pactl.c:587 -#: ../src/utils/pactl.c:594 +#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429 +#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526 +#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581 +#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631 +#: ../src/utils/pactl.c:638 msgid "n/a" msgstr "n/a" -#: ../src/utils/pactl.c:324 +#: ../src/utils/pactl.c:368 #, c-format msgid "Failed to get module information: %s\n" msgstr "Falha em obter a informação do módulo: %s\n" -#: ../src/utils/pactl.c:342 +#: ../src/utils/pactl.c:386 #, fuzzy, c-format msgid "" "Module #%u\n" @@ -1852,12 +1892,12 @@ msgstr "" "Contador de uso: %s\n" "Auto descarregar: %s\n" -#: ../src/utils/pactl.c:361 +#: ../src/utils/pactl.c:405 #, c-format msgid "Failed to get client information: %s\n" msgstr "Falhou ao obter a informação do cliente: %s\n" -#: ../src/utils/pactl.c:379 +#: ../src/utils/pactl.c:423 #, fuzzy, c-format msgid "" "Client #%u\n" @@ -1872,12 +1912,12 @@ msgstr "" "Propriedades:\n" "%s" -#: ../src/utils/pactl.c:396 +#: ../src/utils/pactl.c:440 #, fuzzy, c-format msgid "Failed to get card information: %s\n" msgstr "Falha em obter a informação do autoload: %s\n" -#: ../src/utils/pactl.c:414 +#: ../src/utils/pactl.c:458 #, fuzzy, c-format msgid "" "Card #%u\n" @@ -1893,22 +1933,22 @@ msgstr "" "Propriedades:\n" "%s" -#: ../src/utils/pactl.c:428 +#: ../src/utils/pactl.c:472 #, c-format msgid "\tProfiles:\n" msgstr "" -#: ../src/utils/pactl.c:434 +#: ../src/utils/pactl.c:478 #, fuzzy, c-format msgid "\tActive Profile: %s\n" msgstr "O pipe falhou: %s" -#: ../src/utils/pactl.c:445 +#: ../src/utils/pactl.c:489 #, c-format msgid "Failed to get sink input information: %s\n" msgstr "Falha na obtenção da informação de entrada do destino: %s\n" -#: ../src/utils/pactl.c:464 +#: ../src/utils/pactl.c:508 #, fuzzy, c-format msgid "" "Sink Input #%u\n" @@ -1942,12 +1982,12 @@ msgstr "" "Propriedades:\n" "%s" -#: ../src/utils/pactl.c:503 +#: ../src/utils/pactl.c:547 #, c-format msgid "Failed to get source output information: %s\n" msgstr "Falha em obter informações sobre a saÃda da fonte: %s\n" -#: ../src/utils/pactl.c:523 +#: ../src/utils/pactl.c:567 #, fuzzy, c-format msgid "" "Source Output #%u\n" @@ -1976,12 +2016,12 @@ msgstr "" "Propriedades:\n" "%s" -#: ../src/utils/pactl.c:554 +#: ../src/utils/pactl.c:598 #, c-format msgid "Failed to get sample information: %s\n" msgstr "Falha em obter informações sobre a amostragem: %s\n" -#: ../src/utils/pactl.c:572 +#: ../src/utils/pactl.c:616 #, fuzzy, c-format msgid "" "Sample #%u\n" @@ -2010,22 +2050,21 @@ msgstr "" "Propriedades:\n" "%s" -#: ../src/utils/pactl.c:602 ../src/utils/pactl.c:612 +#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 #, c-format msgid "Failure: %s\n" msgstr "Falha: %s\n" -#: ../src/utils/pactl.c:636 +#: ../src/utils/pactl.c:680 #, c-format msgid "Failed to upload sample: %s\n" msgstr "Falha em carregar a amostra: %s\n" -#: ../src/utils/pactl.c:653 -#, c-format +#: ../src/utils/pactl.c:697 msgid "Premature end of file\n" msgstr "Fim prematuro do arquivo\n" -#: ../src/utils/pactl.c:774 +#: ../src/utils/pactl.c:826 #, fuzzy, c-format msgid "" "%s [options] stat\n" @@ -2041,6 +2080,8 @@ msgid "" "%s [options] suspend-sink [SINK] 1|0\n" "%s [options] suspend-source [SOURCE] 1|0\n" "%s [options] set-card-profile [CARD] [PROFILE] \n" +"%s [options] set-sink-port [SINK] [PORT] \n" +"%s [options] set-source-port [SOURCE] [PORT] \n" "\n" " -h, --help Show this help\n" " --version Show version\n" @@ -2070,7 +2111,7 @@ msgstr "" " -n, --client-name=NAME Como chamar este cliente no " "servidor \n" -#: ../src/utils/pactl.c:826 +#: ../src/utils/pactl.c:880 #, c-format msgid "" "pactl %s\n" @@ -2081,49 +2122,46 @@ msgstr "" "Compilado com libpulse %s\n" "Linkado com libpulse %s\n" -#: ../src/utils/pactl.c:865 -#, c-format +#: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "Por favor, especifique o arquivo de amostra a ser carregado\n" -#: ../src/utils/pactl.c:887 -#, c-format +#: ../src/utils/pactl.c:939 msgid "Failed to open sound file.\n" msgstr "Falha em abrir o arquivo de som.\n" -#: ../src/utils/pactl.c:899 -#, c-format +#: ../src/utils/pactl.c:951 +#, fuzzy +msgid "Warning: Failed to determine sample specification from file.\n" +msgstr "Abrindo um %s fluxo com a especificação de amostragem '%s'.\n" + +#: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" msgstr "Você deve especificar um nome da amostra para ser executada\n" -#: ../src/utils/pactl.c:911 -#, c-format +#: ../src/utils/pactl.c:973 msgid "You have to specify a sample name to remove\n" msgstr "Você deve especificar um nome da amostra para ser removida\n" -#: ../src/utils/pactl.c:919 -#, c-format +#: ../src/utils/pactl.c:982 msgid "You have to specify a sink input index and a sink\n" msgstr "" "Você tem que especificar a entrada para o destino (sink) e um destino(sink)\n" -#: ../src/utils/pactl.c:928 -#, c-format +#: ../src/utils/pactl.c:992 msgid "You have to specify a source output index and a source\n" msgstr "Você tem que especificar um Ãndice de saÃda da fonte e uma fonte\n" -#: ../src/utils/pactl.c:942 -#, c-format +#: ../src/utils/pactl.c:1007 msgid "You have to specify a module name and arguments.\n" msgstr "Você deve especificar um nome do módulo e seus argumentos\n" -#: ../src/utils/pactl.c:962 -#, c-format +#: ../src/utils/pactl.c:1027 msgid "You have to specify a module index\n" msgstr "Você deve especificar um Ãndice de um módulo\n" -#: ../src/utils/pactl.c:972 -#, fuzzy, c-format +#: ../src/utils/pactl.c:1037 +#, fuzzy msgid "" "You may not specify more than one sink. You have to specify a boolean " "value.\n" @@ -2131,8 +2169,8 @@ msgstr "" "Você não pode especificar mais de um destino. Pelo menos um valor booleano " "deve ser especificado.\n" -#: ../src/utils/pactl.c:985 -#, fuzzy, c-format +#: ../src/utils/pactl.c:1050 +#, fuzzy msgid "" "You may not specify more than one source. You have to specify a boolean " "value.\n" @@ -2140,18 +2178,29 @@ msgstr "" "Você não pode especificar mais de uma fonte. Pelo menos um valor booleano " "deve ser especificado.\n" -#: ../src/utils/pactl.c:997 -#, fuzzy, c-format +#: ../src/utils/pactl.c:1062 +#, fuzzy msgid "You have to specify a card name/index and a profile name\n" msgstr "" "Você tem que especificar a entrada para o destino (sink) e um destino(sink)\n" -#: ../src/utils/pactl.c:1012 -#, c-format +#: ../src/utils/pactl.c:1073 +#, fuzzy +msgid "You have to specify a sink name/index and a port name\n" +msgstr "" +"Você tem que especificar a entrada para o destino (sink) e um destino(sink)\n" + +#: ../src/utils/pactl.c:1084 +#, fuzzy +msgid "You have to specify a source name/index and a port name\n" +msgstr "" +"Você tem que especificar a entrada para o destino (sink) e um destino(sink)\n" + +#: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "Nenhum comando válido especificado.\n" -#: ../src/utils/pactl.c:1037 ../src/utils/paplay.c:404 +#: ../src/utils/pactl.c:1122 #, c-format msgid "pa_context_connect() failed: %s" msgstr "pa_context_new() falhou: %s" @@ -2236,127 +2285,48 @@ msgstr "Falha em carregar os dados do cookie\n" msgid "Not yet implemented.\n" msgstr "Ainda não implementado.\n" -#: ../src/utils/pacmd.c:64 +#: ../src/utils/pacmd.c:61 +msgid "No PulseAudio daemon running, or not running as session daemon." +msgstr "" + +#: ../src/utils/pacmd.c:66 #, c-format msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s" msgstr "socket(PF_UNIX, SOCK_STREAM, 0): %s" -#: ../src/utils/pacmd.c:81 +#: ../src/utils/pacmd.c:83 #, c-format msgid "connect(): %s" msgstr "connect(): %s" -#: ../src/utils/pacmd.c:89 +#: ../src/utils/pacmd.c:91 msgid "Failed to kill PulseAudio daemon." msgstr "Falha em cancelar o daemon do PulseAudio." -#: ../src/utils/pacmd.c:97 +#: ../src/utils/pacmd.c:99 msgid "Daemon not responding." msgstr "Daemon não responde." -#: ../src/utils/pacmd.c:144 +#: ../src/utils/pacmd.c:146 #, c-format msgid "select(): %s" msgstr "select(): %s" -#: ../src/utils/pacmd.c:154 ../src/utils/pacmd.c:171 +#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173 #, c-format msgid "read(): %s" msgstr "read(): %s" -#: ../src/utils/pacmd.c:187 ../src/utils/pacmd.c:201 +#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203 #, c-format msgid "write(): %s" msgstr "write(): %s" -#: ../src/utils/paplay.c:139 -#, c-format -msgid "Stream successfully created\n" -msgstr "Fluxo criado com sucesso\n" - -#: ../src/utils/paplay.c:144 -#, c-format -msgid "Stream errror: %s\n" -msgstr "Erro de fluxo: %s\n" - -#: ../src/utils/paplay.c:165 -#, c-format -msgid "Connection established.\n" -msgstr "Conexão estabelecida.\n" - -#: ../src/utils/paplay.c:198 -#, c-format -msgid "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" -msgstr "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Mostra essa ajuda\n" -" --version Mostra a versão\n" -"\n" -" -v, --verbose Habilida a operação detalhada\n" -"\n" -" -s, --server=SERVER O nome do servidor a ser conectado\n" -" -d, --device=DEVICE O nome do destino a ser conectado\n" -" -n, --client-name=NAME Como chamar este cliente no " -"servidor\n" -" --stream-name=NAME Como chamar este fluxo no servidor\n" -" --volume=VOLUME Especifica o volume inicial (linear) " -"no intervalo 0...65536\n" -" --channel-map=CHANNELMAP Define o mapa do canal para uso\n" - -#: ../src/utils/paplay.c:255 -#, c-format -msgid "" -"paplay %s\n" -"Compiled with libpulse %s\n" -"Linked with libpulse %s\n" -msgstr "" -"paplay %s\n" -"Compilado com libpulse %s\n" -"Linkado com libpulse %s\n" - -#: ../src/utils/paplay.c:292 -#, c-format -msgid "Invalid channel map\n" -msgstr "Mapa de canais inválido\n" - -#: ../src/utils/paplay.c:314 -#, c-format -msgid "Failed to open file '%s'\n" -msgstr "Falha ao abrir o arquivo '%s'\n" - -#: ../src/utils/paplay.c:350 -#, c-format -msgid "Channel map doesn't match file.\n" -msgstr "O mapa dos canais não coincide com o arquivo.\n" - -#: ../src/utils/paplay.c:376 -#, c-format -msgid "Using sample spec '%s'\n" -msgstr "Usando a especificação da amostragem '%s'\n" - #: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 msgid "Cannot access autospawn lock." msgstr "Não foi possÃvel acessar a trava de autogeração." -#: ../src/modules/alsa/alsa-sink.c:393 ../src/modules/alsa/alsa-sink.c:541 +#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2367,7 +2337,7 @@ msgid "" "returned 0 or another value < min_avail." msgstr "" -#: ../src/modules/alsa/alsa-source.c:377 ../src/modules/alsa/alsa-source.c:516 +#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2378,38 +2348,92 @@ msgid "" "returned 0 or another value < min_avail." msgstr "" -#: ../src/modules/alsa/module-alsa-card.c:114 -#, c-format -msgid "Output %s + Input %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:117 -#, c-format -msgid "Output %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:121 -#, c-format -msgid "Input %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:170 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2006 +#: ../src/modules/alsa/module-alsa-card.c:152 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 msgid "Off" msgstr "" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1976 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 msgid "High Fidelity Playback (A2DP)" msgstr "" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1991 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 msgid "Telephony Duplex (HSP/HFP)" msgstr "" -#: ../src/modules/reserve-wrap.c:139 +#: ../src/modules/reserve-wrap.c:151 msgid "PulseAudio Sound Server" msgstr "" +#~ 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" +#~ " -h, --help Show this help\n" +#~ " --version Show version\n" +#~ "\n" +#~ " -v, --verbose Enable verbose operation\n" +#~ "\n" +#~ " -s, --server=SERVER The name of the server to connect " +#~ "to\n" +#~ " -d, --device=DEVICE The name of the sink to connect " +#~ "to\n" +#~ " -n, --client-name=NAME How to call this client on the " +#~ "server\n" +#~ " --stream-name=NAME How to call this stream on the " +#~ "server\n" +#~ " --volume=VOLUME Specify the initial (linear) " +#~ "volume in range 0...65536\n" +#~ " --channel-map=CHANNELMAP Set the channel map to the use\n" +#~ msgstr "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Mostra essa ajuda\n" +#~ " --version Mostra a versão\n" +#~ "\n" +#~ " -v, --verbose Habilida a operação detalhada\n" +#~ "\n" +#~ " -s, --server=SERVER O nome do servidor a ser " +#~ "conectado\n" +#~ " -d, --device=DEVICE O nome do destino a ser " +#~ "conectado\n" +#~ " -n, --client-name=NAME Como chamar este cliente no " +#~ "servidor\n" +#~ " --stream-name=NAME Como chamar este fluxo no " +#~ "servidor\n" +#~ " --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" +#~ "Linked with libpulse %s\n" +#~ 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" + #, fuzzy #~ msgid "" #~ "Called SUID root and real-time and/or high-priority scheduling was " @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-21 23:02+0200\n" +"POT-Creation-Date: 2009-06-17 23:42+0200\n" "PO-Revision-Date: 2009-04-07 23:02+0100\n" "Last-Translator: MiloÅ¡ KomarÄević <kmilos@gmail.com>\n" "Language-Team: Serbian <fedora-trans-sr@redhat.com>\n" @@ -19,52 +19,7 @@ msgstr "" "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Lokalize 0.3\n" -#: ../src/modules/alsa/alsa-util.c:532 -msgid "Analog Mono" -msgstr "Ðналогни моно" - -#: ../src/modules/alsa/alsa-util.c:540 -msgid "Analog Stereo" -msgstr "Ðналогни Ñтерео" - -#: ../src/modules/alsa/alsa-util.c:548 -msgid "Digital Stereo (IEC958)" -msgstr "Дигитални Ñтерео (IEC958)" - -#: ../src/modules/alsa/alsa-util.c:556 -msgid "Digital Stereo (HDMI)" -msgstr "Дигитални Ñтерео (HDMI)" - -#: ../src/modules/alsa/alsa-util.c:565 -msgid "Analog Surround 4.0" -msgstr "Ðналогни окружујући 4.0" - -#: ../src/modules/alsa/alsa-util.c:574 -msgid "Digital Surround 4.0 (IEC958/AC3)" -msgstr "Дигитални окружујући 4.0 (IEC958/AC3)" - -# Surround можемо превеÑти амбијентални или окружни или можда чак и Ñараунд? -- Игор -#: ../src/modules/alsa/alsa-util.c:584 -msgid "Analog Surround 4.1" -msgstr "Ðналогни окружујући 4.1" - -#: ../src/modules/alsa/alsa-util.c:594 -msgid "Analog Surround 5.0" -msgstr "Ðналогни окружујући 5.0" - -#: ../src/modules/alsa/alsa-util.c:604 -msgid "Analog Surround 5.1" -msgstr "Ðналогни окружујући 5.1" - -#: ../src/modules/alsa/alsa-util.c:614 -msgid "Digital Surround 5.1 (IEC958/AC3)" -msgstr "Дигитални окружујући 5.1 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:625 -msgid "Analog Surround 7.1" -msgstr "Ðналогни окружујући 7.1" - -#: ../src/modules/alsa/alsa-util.c:1646 +#: ../src/modules/alsa/alsa-util.c:1015 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -77,7 +32,7 @@ msgstr "" "Ово је највероватније грешка у „%s“ ALSA управљачком програму. Пријавите " "овај проблем ALSA програмерима." -#: ../src/modules/alsa/alsa-util.c:1687 +#: ../src/modules/alsa/alsa-util.c:1056 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -90,7 +45,7 @@ msgstr "" "Ово је највероватније грешка у „%s“ ALSA управљачком програму. Пријавите " "овај проблем ALSA програмерима." -#: ../src/modules/alsa/alsa-util.c:1734 +#: ../src/modules/alsa/alsa-util.c:1103 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -103,11 +58,24 @@ msgstr "" "Ово је највероватније грешка у „%s“ ALSA управљачком програму. Пријавите " "овај проблем ALSA програмерима." -#: ../src/pulsecore/sink.c:2141 +#: ../src/modules/module-ladspa-sink.c:49 +msgid "Virtual LADSPA sink" +msgstr "" + +#: ../src/modules/module-ladspa-sink.c:53 +msgid "" +"sink_name=<name for the sink> sink_properties=<properties for the sink> " +"master=<name of sink to filter> format=<sample format> rate=<sample rate> " +"channels=<number of channels> channel_map=<channel map> plugin=<ladspa " +"plugin name> label=<ladspa plugin label> control=<comma seperated list of " +"input control values>" +msgstr "" + +#: ../src/pulsecore/sink.c:2394 msgid "Internal Audio" msgstr "Унутрашњи звук" -#: ../src/pulsecore/sink.c:2147 +#: ../src/pulsecore/sink.c:2400 msgid "Modem" msgstr "Модем" @@ -177,107 +145,107 @@ msgstr "Ðе могу добити овлашћење: %s" msgid "PolicyKit responded with '%s'" msgstr "PolicyKit је одговорио Ñа „%s“" -#: ../src/daemon/main.c:138 +#: ../src/daemon/main.c:142 #, c-format msgid "Got signal %s." msgstr "Добих Ñигнал %s." -#: ../src/daemon/main.c:165 +#: ../src/daemon/main.c:169 msgid "Exiting." msgstr "Ðапуштам." -#: ../src/daemon/main.c:183 +#: ../src/daemon/main.c:187 #, c-format msgid "Failed to find user '%s'." msgstr "Ðе могу наћи кориÑника „%s“." -#: ../src/daemon/main.c:188 +#: ../src/daemon/main.c:192 #, c-format msgid "Failed to find group '%s'." msgstr "Ðе могу наћи групу „%s“." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:196 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "Ðађени Ñу кориÑник „%s“ (UID %lu) и група „%s“ (GID %lu)." -#: ../src/daemon/main.c:197 +#: ../src/daemon/main.c:201 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "GID кориÑника „%s“ Ñе не поклапа Ñа групом „%s“." -#: ../src/daemon/main.c:202 +#: ../src/daemon/main.c:206 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "Лични директоријум кориÑника „%s“ није „%s“, занемарујем." -#: ../src/daemon/main.c:205 ../src/daemon/main.c:210 +#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 #, c-format msgid "Failed to create '%s': %s" msgstr "ÐеуÑпешно прављење „%s“: %s" -#: ../src/daemon/main.c:217 +#: ../src/daemon/main.c:221 #, c-format msgid "Failed to change group list: %s" msgstr "ÐеуÑпешна промена групног ÑпиÑка: %s" -#: ../src/daemon/main.c:233 +#: ../src/daemon/main.c:237 #, c-format msgid "Failed to change GID: %s" msgstr "ÐеуÑпешна промена GID-а: %s" -#: ../src/daemon/main.c:249 +#: ../src/daemon/main.c:253 #, c-format msgid "Failed to change UID: %s" msgstr "ÐеуÑпешна промена UID-а: %s" -#: ../src/daemon/main.c:263 +#: ../src/daemon/main.c:267 msgid "Successfully dropped root privileges." msgstr "УÑпешно одбачена root овлашћења." -#: ../src/daemon/main.c:271 +#: ../src/daemon/main.c:275 msgid "System wide mode unsupported on this platform." msgstr "Режим за читав ÑиÑтем није подржан на овој платформи." -#: ../src/daemon/main.c:289 +#: ../src/daemon/main.c:293 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) није уÑпело: %s" -#: ../src/daemon/main.c:477 +#: ../src/daemon/main.c:481 msgid "Failed to parse command line." msgstr "ÐеуÑпешно тумачење командне линије." -#: ../src/daemon/main.c:501 +#: ../src/daemon/main.c:505 #, c-format msgid "We're in the group '%s', allowing high-priority scheduling." msgstr "" "Ðалазимо Ñе у групи „%s“ која дозвољава виÑокоприоритетно раÑпоређивање." -#: ../src/daemon/main.c:508 +#: ../src/daemon/main.c:512 #, c-format msgid "We're in the group '%s', allowing real-time scheduling." msgstr "" "Ðалазимо Ñе у групи „%s“ која дозвољава ÑтварновременÑко раÑпоређивање." -#: ../src/daemon/main.c:516 +#: ../src/daemon/main.c:520 msgid "PolicyKit grants us acquire-high-priority privilege." msgstr "PolicyKit нам је дао овлашћење за добијање виÑоког приоритета." -#: ../src/daemon/main.c:519 +#: ../src/daemon/main.c:523 msgid "PolicyKit refuses acquire-high-priority privilege." msgstr "PolicyKit одбија овлашћење за добијање виÑоког приоритета." -#: ../src/daemon/main.c:524 +#: ../src/daemon/main.c:528 msgid "PolicyKit grants us acquire-real-time privilege." msgstr "PolicyKit нам је дао овлашћење за добијање рада у Ñтварном времену." -#: ../src/daemon/main.c:527 +#: ../src/daemon/main.c:531 msgid "PolicyKit refuses acquire-real-time privilege." msgstr "PolicyKit одбија овлашћење за добијање рада у Ñтварном времену." # -#: ../src/daemon/main.c:556 +#: ../src/daemon/main.c:560 #, c-format msgid "" "Called SUID root and real-time and/or high-priority scheduling was requested " @@ -297,48 +265,48 @@ msgstr "" "или повећати ограничења за RLIMIT_NICE/RLIMIT_RTPRIO ÑредÑтва овог кориÑника " "како би омогућили ÑтварновременÑко или виÑокоприоритетно раÑпоређивање." -#: ../src/daemon/main.c:581 +#: ../src/daemon/main.c:585 msgid "" "High-priority scheduling enabled in configuration but not allowed by policy." msgstr "" "ВиÑокоприоритетно раÑпоређивање је омогућено у подешавањима, али политика то " "не дозвољава." -#: ../src/daemon/main.c:610 +#: ../src/daemon/main.c:614 msgid "Successfully increased RLIMIT_RTPRIO" msgstr "УÑпешно повећано RLIMIT_RTPRIO ограничење" -#: ../src/daemon/main.c:613 +#: ../src/daemon/main.c:617 #, c-format msgid "RLIMIT_RTPRIO failed: %s" msgstr "ÐеуÑпешно поÑтављање RLIMIT_RTPRIO-а:%s" -#: ../src/daemon/main.c:620 +#: ../src/daemon/main.c:624 msgid "Giving up CAP_NICE" msgstr "ОдуÑтајем од CAP_NICE" -#: ../src/daemon/main.c:627 +#: ../src/daemon/main.c:631 msgid "" "Real-time scheduling enabled in configuration but not allowed by policy." msgstr "" "СтварновременÑко раÑпоређивање је омогућено у подешавањима, али политика то " "не дозвољава." -#: ../src/daemon/main.c:688 +#: ../src/daemon/main.c:692 msgid "Daemon not running" msgstr "Демон није покренут" -#: ../src/daemon/main.c:690 +#: ../src/daemon/main.c:694 #, c-format msgid "Daemon running as PID %u" msgstr "Демон је покренут Ñа PID-ом %u" -#: ../src/daemon/main.c:700 +#: ../src/daemon/main.c:704 #, c-format msgid "Failed to kill daemon: %s" msgstr "ÐеуÑпешно убијање демона: %s" -#: ../src/daemon/main.c:718 +#: ../src/daemon/main.c:722 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -346,161 +314,171 @@ msgstr "" "Ðије намеравано да Ñе овај програм покреће из root налога (оÑим у Ñлучају " "када је --system наведено)" -#: ../src/daemon/main.c:720 +#: ../src/daemon/main.c:724 msgid "Root privileges required." msgstr "Потребна Ñу root овлашћења." -#: ../src/daemon/main.c:725 +#: ../src/daemon/main.c:729 msgid "--start not supported for system instances." msgstr "--start није подржано за ÑиÑтемÑке примерке." -#: ../src/daemon/main.c:730 +#: ../src/daemon/main.c:734 msgid "Running in system mode, but --disallow-exit not set!" msgstr "Покренуто у ÑиÑтемÑком режиму, али --disallow-exit није поÑтављено!" -#: ../src/daemon/main.c:733 +#: ../src/daemon/main.c:737 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "" "Покренуто у ÑиÑтемÑком режиму, али --disallow-module-loading није поÑтављено!" -#: ../src/daemon/main.c:736 +#: ../src/daemon/main.c:740 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "Покренуто у ÑиÑтемÑком режиму, приÑилно онемогућујем SHM режим!" -#: ../src/daemon/main.c:741 +#: ../src/daemon/main.c:745 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "" "Покренуто у ÑиÑтемÑком режиму, приÑилно онемогућујем гашење поÑле одређеног " "времена мировања!" -#: ../src/daemon/main.c:768 +#: ../src/daemon/main.c:772 msgid "Failed to acquire stdio." msgstr "ÐеуÑпешно проналажење Ñтандардног улаза/излаза." -#: ../src/daemon/main.c:774 +#: ../src/daemon/main.c:778 #, c-format msgid "pipe failed: %s" msgstr "ÐеуÑпешно пуштање података кроз цев: %s" -#: ../src/daemon/main.c:779 +#: ../src/daemon/main.c:783 #, c-format msgid "fork() failed: %s" msgstr "ÐеуÑпела функција fork(): %s" -#: ../src/daemon/main.c:793 +#: ../src/daemon/main.c:797 #, c-format msgid "read() failed: %s" msgstr "ÐеуÑпела функција read(): %s" -#: ../src/daemon/main.c:799 +#: ../src/daemon/main.c:803 msgid "Daemon startup failed." msgstr "ÐеуÑпешно покретање демона." -#: ../src/daemon/main.c:801 +#: ../src/daemon/main.c:805 msgid "Daemon startup successful." msgstr "Демон уÑпешно покренут." -#: ../src/daemon/main.c:871 +#: ../src/daemon/main.c:875 #, c-format msgid "This is PulseAudio %s" msgstr "Ово је PulseAudio %s" -#: ../src/daemon/main.c:872 +#: ../src/daemon/main.c:876 #, c-format msgid "Compilation host: %s" msgstr "Домаћин компајлирања: %s" -#: ../src/daemon/main.c:873 +#: ../src/daemon/main.c:877 #, c-format msgid "Compilation CFLAGS: %s" msgstr "CFLAGS компајлирања: %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:880 #, c-format msgid "Running on host: %s" msgstr "Покренут на домаћину: %s" -#: ../src/daemon/main.c:879 +#: ../src/daemon/main.c:883 #, c-format msgid "Found %u CPUs." msgstr "Ðашао %u процеÑор(а)" -#: ../src/daemon/main.c:881 +#: ../src/daemon/main.c:885 #, c-format msgid "Page size is %lu bytes" msgstr "Величина Ñтранице је %lu бајтова" -#: ../src/daemon/main.c:884 +#: ../src/daemon/main.c:888 msgid "Compiled with Valgrind support: yes" msgstr "Компајлирано Ñа подршком за Valgrind: да" -#: ../src/daemon/main.c:886 +#: ../src/daemon/main.c:890 msgid "Compiled with Valgrind support: no" msgstr "Компајлирано Ñа подршком за Valgrind: не" -#: ../src/daemon/main.c:889 +#: ../src/daemon/main.c:893 #, c-format msgid "Running in valgrind mode: %s" msgstr "Покренут у Valgrind режиму: %s" -#: ../src/daemon/main.c:892 +#: ../src/daemon/main.c:896 msgid "Optimized build: yes" msgstr "Оптимизована изградња: да" -#: ../src/daemon/main.c:894 +#: ../src/daemon/main.c:898 msgid "Optimized build: no" msgstr "Оптимизована изградња: не" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:902 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG дефиниÑан, Ñва обавештења иÑкључена." -#: ../src/daemon/main.c:900 +#: ../src/daemon/main.c:904 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "FASTPATH дефиниÑан, Ñамо обавештења брзе путање иÑкључена." -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:906 msgid "All asserts enabled." msgstr "Сва обавештења омогућена." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:910 msgid "Failed to get machine ID" msgstr "ÐеуÑпешно добављање ИБ машине" -#: ../src/daemon/main.c:909 +#: ../src/daemon/main.c:913 #, c-format msgid "Machine ID is %s." msgstr "ИБ машине је %s." -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:917 #, fuzzy, c-format msgid "Session ID is %s." msgstr "ИБ машине је %s." -#: ../src/daemon/main.c:919 +#: ../src/daemon/main.c:923 #, c-format msgid "Using runtime directory %s." msgstr "КориÑти Ñе %s извршни директоријум." -#: ../src/daemon/main.c:924 +#: ../src/daemon/main.c:928 #, c-format msgid "Using state directory %s." msgstr "КориÑти Ñе %s директоријум Ñтања." -#: ../src/daemon/main.c:927 +#: ../src/daemon/main.c:931 #, c-format msgid "Running in system mode: %s" msgstr "Покренуто у ÑиÑтемÑком режиму: %s" -#: ../src/daemon/main.c:942 +#: ../src/daemon/main.c:934 +msgid "" +"OK, so you are running PA in system mode. Please note that you most likely " +"shouldn't be doing that.\n" +"If you do it nonetheless then it's your own fault if things don't work as " +"expected.\n" +"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " +"explanation why system mode is usually a bad idea." +msgstr "" + +#: ../src/daemon/main.c:951 msgid "pa_pid_file_create() failed." msgstr "ÐеуÑпела функција pa_pid_file_create()." -#: ../src/daemon/main.c:954 +#: ../src/daemon/main.c:961 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "ДоÑтупни Ñу нови бројачи виÑоке резолуције! Пријатно!" -#: ../src/daemon/main.c:956 +#: ../src/daemon/main.c:963 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -508,31 +486,31 @@ msgstr "" "Ваше језгро није добро подешено за pulseaudio! Препоручује Вам Ñе да " "кориÑтите Linux језгро Ñа омогућеним бројачима виÑоке резолуције." -#: ../src/daemon/main.c:970 +#: ../src/daemon/main.c:988 msgid "pa_core_new() failed." msgstr "ÐеуÑпела функција pa_core_new()." -#: ../src/daemon/main.c:1032 +#: ../src/daemon/main.c:1050 msgid "Failed to initialize daemon." msgstr "ÐеуÑпешно покретање демона." -#: ../src/daemon/main.c:1037 +#: ../src/daemon/main.c:1055 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "Демон је покренут без иједног учитаног модула, одбија да ради." -#: ../src/daemon/main.c:1054 +#: ../src/daemon/main.c:1072 msgid "Daemon startup complete." msgstr "Покретање демона уÑпешно." -#: ../src/daemon/main.c:1060 +#: ../src/daemon/main.c:1078 msgid "Daemon shutdown initiated." msgstr "Покренуто гашење демона." -#: ../src/daemon/main.c:1082 +#: ../src/daemon/main.c:1100 msgid "Daemon terminated." msgstr "Рад демона је прекинут." -#: ../src/daemon/cmdline.c:121 +#: ../src/daemon/cmdline.c:115 #, c-format msgid "" "%s [options]\n" @@ -683,15 +661,15 @@ msgstr "" " -n Ðе учитавај подразумевану датотеку " "Ñкрипте.\n" -#: ../src/daemon/cmdline.c:252 +#: ../src/daemon/cmdline.c:247 msgid "--daemonize expects boolean argument" msgstr "--daemonize очекује логичку вредноÑÑ‚" -#: ../src/daemon/cmdline.c:259 +#: ../src/daemon/cmdline.c:254 msgid "--fail expects boolean argument" msgstr "--fail очекује логичку вредноÑÑ‚" -#: ../src/daemon/cmdline.c:269 +#: ../src/daemon/cmdline.c:264 msgid "" "--log-level expects log level argument (either numeric in range 0..4 or one " "of debug, info, notice, warn, error)." @@ -699,53 +677,53 @@ msgstr "" "--log-level очекује параметар за ниво опширноÑти (нумеричка вредноÑÑ‚ између " "0 и 4 или једно од: debug, info, notice, warn, error)." -#: ../src/daemon/cmdline.c:281 +#: ../src/daemon/cmdline.c:276 msgid "--high-priority expects boolean argument" msgstr "--high-priority очекује логичку вредноÑÑ‚" -#: ../src/daemon/cmdline.c:288 +#: ../src/daemon/cmdline.c:283 msgid "--realtime expects boolean argument" msgstr "--realtime очекује логичку вредноÑÑ‚" -#: ../src/daemon/cmdline.c:295 +#: ../src/daemon/cmdline.c:290 msgid "--disallow-module-loading expects boolean argument" msgstr "--disallow-module-loading очекује логичку вредноÑÑ‚" -#: ../src/daemon/cmdline.c:302 +#: ../src/daemon/cmdline.c:297 msgid "--disallow-exit expects boolean argument" msgstr "--disallow-exit очекује логичку вредноÑÑ‚" -#: ../src/daemon/cmdline.c:309 +#: ../src/daemon/cmdline.c:304 msgid "--use-pid-file expects boolean argument" msgstr "--use-pid-file очекује логичку вредноÑÑ‚" -#: ../src/daemon/cmdline.c:326 +#: ../src/daemon/cmdline.c:321 msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgstr "" "ÐеиÑправан циљни дневник: кориÑтите једно од „syslog“, „stderr“ или „auto“." -#: ../src/daemon/cmdline.c:333 +#: ../src/daemon/cmdline.c:328 msgid "--log-time expects boolean argument" msgstr "--log-time очекује логичку вредноÑÑ‚" -#: ../src/daemon/cmdline.c:340 +#: ../src/daemon/cmdline.c:335 msgid "--log-meta expects boolean argument" msgstr "--log-meta очекује логичку вредноÑÑ‚" -#: ../src/daemon/cmdline.c:359 +#: ../src/daemon/cmdline.c:354 #, c-format msgid "Invalid resample method '%s'." msgstr "ÐеиÑправан начин диÑкретизације „%s“." -#: ../src/daemon/cmdline.c:366 +#: ../src/daemon/cmdline.c:361 msgid "--system expects boolean argument" msgstr "--system очекује логичку вредноÑÑ‚" -#: ../src/daemon/cmdline.c:373 +#: ../src/daemon/cmdline.c:368 msgid "--no-cpu-limit expects boolean argument" msgstr "--no-cpu-limit очекује логичку вредноÑÑ‚" -#: ../src/daemon/cmdline.c:380 +#: ../src/daemon/cmdline.c:375 msgid "--disable-shm expects boolean argument" msgstr "--disable-shm очекује логичку вредноÑÑ‚" @@ -784,77 +762,82 @@ msgstr "Употреба: %s\n" msgid "Load Once: %s\n" msgstr "Учитај једном: %s\n" -#: ../src/daemon/dumpmodules.c:77 +#: ../src/daemon/dumpmodules.c:75 +#, c-format +msgid "DEPRECATION WARNING: %s\n" +msgstr "" + +#: ../src/daemon/dumpmodules.c:79 #, c-format msgid "Path: %s\n" msgstr "Путања: %s\n" -#: ../src/daemon/daemon-conf.c:215 +#: ../src/daemon/daemon-conf.c:216 #, c-format msgid "[%s:%u] Invalid log target '%s'." msgstr "[%s:%u] ÐеиÑправан циљни дневник „%s“." -#: ../src/daemon/daemon-conf.c:231 +#: ../src/daemon/daemon-conf.c:232 #, c-format msgid "[%s:%u] Invalid log level '%s'." msgstr "[%s:%u] ÐеиÑправан ниво опширноÑти у дневнику „%s“." -#: ../src/daemon/daemon-conf.c:247 +#: ../src/daemon/daemon-conf.c:248 #, c-format msgid "[%s:%u] Invalid resample method '%s'." msgstr "[%s:%u] ÐеиÑправан начин диÑкретизације „%s“." -#: ../src/daemon/daemon-conf.c:270 +#: ../src/daemon/daemon-conf.c:271 #, c-format msgid "[%s:%u] Invalid rlimit '%s'." msgstr "[%s:%u] ÐеиÑправан rlimit „%s“." -#: ../src/daemon/daemon-conf.c:277 +#: ../src/daemon/daemon-conf.c:278 #, c-format msgid "[%s:%u] rlimit not supported on this platform." msgstr "[%s:%u] rlimit није подржан на овој платформи." -#: ../src/daemon/daemon-conf.c:293 +#: ../src/daemon/daemon-conf.c:294 #, c-format msgid "[%s:%u] Invalid sample format '%s'." msgstr "[%s:%u] ÐеиÑправан формат узорка „%s“." -#: ../src/daemon/daemon-conf.c:311 +#: ../src/daemon/daemon-conf.c:312 #, c-format msgid "[%s:%u] Invalid sample rate '%s'." msgstr "[%s:%u] ÐеиÑправна учеÑтаноÑÑ‚ диÑкретизације „%s“." -#: ../src/daemon/daemon-conf.c:335 +#: ../src/daemon/daemon-conf.c:336 #, c-format msgid "[%s:%u] Invalid sample channels '%s'." msgstr "[%s:%u] ÐеиÑправни канали узорка „%s“." -#: ../src/daemon/daemon-conf.c:353 +#: ../src/daemon/daemon-conf.c:354 #, c-format msgid "[%s:%u] Invalid channel map '%s'." msgstr "[%s:%u] ÐеиÑправна мапа канала „%s“." -#: ../src/daemon/daemon-conf.c:371 +#: ../src/daemon/daemon-conf.c:372 #, c-format msgid "[%s:%u] Invalid number of fragments '%s'." msgstr "[%s:%u] ÐеиÑправан број одломака „%s“." -#: ../src/daemon/daemon-conf.c:389 +#: ../src/daemon/daemon-conf.c:390 #, c-format msgid "[%s:%u] Invalid fragment size '%s'." msgstr "[%s:%u] ÐеиÑправна величина одломка „%s“." -#: ../src/daemon/daemon-conf.c:407 +#: ../src/daemon/daemon-conf.c:408 #, c-format msgid "[%s:%u] Invalid nice level '%s'." msgstr "[%s:%u] ÐеиÑправан ниво приоритета „%s“." -#: ../src/daemon/daemon-conf.c:522 +#: ../src/daemon/daemon-conf.c:524 #, c-format msgid "Failed to open configuration file: %s" msgstr "ÐеуÑпело отварање датотеке подешавања: %s" -#: ../src/daemon/daemon-conf.c:538 +#: ../src/daemon/daemon-conf.c:540 msgid "" "The specified default channel map has a different number of channels than " "the specified default number of channels." @@ -907,237 +890,237 @@ msgstr "" "СиÑтемÑка политика Ñпречава PulseAudio-у да добије ÑтварновременÑко " "раÑпоређивање." -#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804 +#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Моно" -#: ../src/pulse/channelmap.c:105 +#: ../src/pulse/channelmap.c:107 msgid "Front Center" msgstr "Предњи централни" -#: ../src/pulse/channelmap.c:106 +#: ../src/pulse/channelmap.c:108 msgid "Front Left" msgstr "Предњи леви" -#: ../src/pulse/channelmap.c:107 +#: ../src/pulse/channelmap.c:109 msgid "Front Right" msgstr "Предњи деÑни" -#: ../src/pulse/channelmap.c:109 +#: ../src/pulse/channelmap.c:111 msgid "Rear Center" msgstr "ПозадинÑки централни" -#: ../src/pulse/channelmap.c:110 +#: ../src/pulse/channelmap.c:112 msgid "Rear Left" msgstr "ПозадинÑки леви" -#: ../src/pulse/channelmap.c:111 +#: ../src/pulse/channelmap.c:113 msgid "Rear Right" msgstr "ПозадинÑки деÑни" -#: ../src/pulse/channelmap.c:113 +#: ../src/pulse/channelmap.c:115 msgid "Low Frequency Emmiter" msgstr "Звучник за ниÑке фреквенције" -#: ../src/pulse/channelmap.c:115 +#: ../src/pulse/channelmap.c:117 msgid "Front Left-of-center" msgstr "Предњи лево од центра" -#: ../src/pulse/channelmap.c:116 +#: ../src/pulse/channelmap.c:118 msgid "Front Right-of-center" msgstr "Предњи деÑно од центра" -#: ../src/pulse/channelmap.c:118 +#: ../src/pulse/channelmap.c:120 msgid "Side Left" msgstr "Лева Ñтрана" -#: ../src/pulse/channelmap.c:119 +#: ../src/pulse/channelmap.c:121 msgid "Side Right" msgstr "ДеÑна Ñтрана" -#: ../src/pulse/channelmap.c:121 +#: ../src/pulse/channelmap.c:123 msgid "Auxiliary 0" msgstr "Споредни 0" -#: ../src/pulse/channelmap.c:122 +#: ../src/pulse/channelmap.c:124 msgid "Auxiliary 1" msgstr "Споредни 1" -#: ../src/pulse/channelmap.c:123 +#: ../src/pulse/channelmap.c:125 msgid "Auxiliary 2" msgstr "Споредни 2" -#: ../src/pulse/channelmap.c:124 +#: ../src/pulse/channelmap.c:126 msgid "Auxiliary 3" msgstr "Споредни 3" -#: ../src/pulse/channelmap.c:125 +#: ../src/pulse/channelmap.c:127 msgid "Auxiliary 4" msgstr "Споредни 4" -#: ../src/pulse/channelmap.c:126 +#: ../src/pulse/channelmap.c:128 msgid "Auxiliary 5" msgstr "Споредни 5" -#: ../src/pulse/channelmap.c:127 +#: ../src/pulse/channelmap.c:129 msgid "Auxiliary 6" msgstr "Споредни 6" -#: ../src/pulse/channelmap.c:128 +#: ../src/pulse/channelmap.c:130 msgid "Auxiliary 7" msgstr "Споредни 7" -#: ../src/pulse/channelmap.c:129 +#: ../src/pulse/channelmap.c:131 msgid "Auxiliary 8" msgstr "Споредни 8" -#: ../src/pulse/channelmap.c:130 +#: ../src/pulse/channelmap.c:132 msgid "Auxiliary 9" msgstr "Споредни 9" -#: ../src/pulse/channelmap.c:131 +#: ../src/pulse/channelmap.c:133 msgid "Auxiliary 10" msgstr "Споредни 10" -#: ../src/pulse/channelmap.c:132 +#: ../src/pulse/channelmap.c:134 msgid "Auxiliary 11" msgstr "Споредни 11" -#: ../src/pulse/channelmap.c:133 +#: ../src/pulse/channelmap.c:135 msgid "Auxiliary 12" msgstr "Споредни 12" -#: ../src/pulse/channelmap.c:134 +#: ../src/pulse/channelmap.c:136 msgid "Auxiliary 13" msgstr "Споредни 13" -#: ../src/pulse/channelmap.c:135 +#: ../src/pulse/channelmap.c:137 msgid "Auxiliary 14" msgstr "Споредни 14" -#: ../src/pulse/channelmap.c:136 +#: ../src/pulse/channelmap.c:138 msgid "Auxiliary 15" msgstr "Споредни 15" -#: ../src/pulse/channelmap.c:137 +#: ../src/pulse/channelmap.c:139 msgid "Auxiliary 16" msgstr "Споредни 16" -#: ../src/pulse/channelmap.c:138 +#: ../src/pulse/channelmap.c:140 msgid "Auxiliary 17" msgstr "Споредни 17" -#: ../src/pulse/channelmap.c:139 +#: ../src/pulse/channelmap.c:141 msgid "Auxiliary 18" msgstr "Споредни 18" -#: ../src/pulse/channelmap.c:140 +#: ../src/pulse/channelmap.c:142 msgid "Auxiliary 19" msgstr "Споредни 19" -#: ../src/pulse/channelmap.c:141 +#: ../src/pulse/channelmap.c:143 msgid "Auxiliary 20" msgstr "Споредни 20" -#: ../src/pulse/channelmap.c:142 +#: ../src/pulse/channelmap.c:144 msgid "Auxiliary 21" msgstr "Споредни 21" -#: ../src/pulse/channelmap.c:143 +#: ../src/pulse/channelmap.c:145 msgid "Auxiliary 22" msgstr "Споредни 22" -#: ../src/pulse/channelmap.c:144 +#: ../src/pulse/channelmap.c:146 msgid "Auxiliary 23" msgstr "Споредни 23" -#: ../src/pulse/channelmap.c:145 +#: ../src/pulse/channelmap.c:147 msgid "Auxiliary 24" msgstr "Споредни 024" -#: ../src/pulse/channelmap.c:146 +#: ../src/pulse/channelmap.c:148 msgid "Auxiliary 25" msgstr "Споредни 25" -#: ../src/pulse/channelmap.c:147 +#: ../src/pulse/channelmap.c:149 msgid "Auxiliary 26" msgstr "Споредни 26" -#: ../src/pulse/channelmap.c:148 +#: ../src/pulse/channelmap.c:150 msgid "Auxiliary 27" msgstr "Споредни 27" -#: ../src/pulse/channelmap.c:149 +#: ../src/pulse/channelmap.c:151 msgid "Auxiliary 28" msgstr "Споредни 28" -#: ../src/pulse/channelmap.c:150 +#: ../src/pulse/channelmap.c:152 msgid "Auxiliary 29" msgstr "Споредни 29" -#: ../src/pulse/channelmap.c:151 +#: ../src/pulse/channelmap.c:153 msgid "Auxiliary 30" msgstr "Споредни 30" -#: ../src/pulse/channelmap.c:152 +#: ../src/pulse/channelmap.c:154 msgid "Auxiliary 31" msgstr "Споредни 31" -#: ../src/pulse/channelmap.c:154 +#: ../src/pulse/channelmap.c:156 msgid "Top Center" msgstr "Горњи централни" -#: ../src/pulse/channelmap.c:156 +#: ../src/pulse/channelmap.c:158 msgid "Top Front Center" msgstr "Горњи предњи централни" -#: ../src/pulse/channelmap.c:157 +#: ../src/pulse/channelmap.c:159 msgid "Top Front Left" msgstr "Горњи предњи леви" -#: ../src/pulse/channelmap.c:158 +#: ../src/pulse/channelmap.c:160 msgid "Top Front Right" msgstr "Горњи предњи деÑни" -#: ../src/pulse/channelmap.c:160 +#: ../src/pulse/channelmap.c:162 msgid "Top Rear Center" msgstr "Горњи позадинÑки централни" -#: ../src/pulse/channelmap.c:161 +#: ../src/pulse/channelmap.c:163 msgid "Top Rear Left" msgstr "Горњи позадинÑки леви" -#: ../src/pulse/channelmap.c:162 +#: ../src/pulse/channelmap.c:164 msgid "Top Rear Right" msgstr "Горњи позадинÑки деÑни" -#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167 -#: ../src/pulse/volume.c:170 ../src/pulse/volume.c:196 -#: ../src/pulse/volume.c:216 ../src/pulse/volume.c:246 +#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167 +#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265 +#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315 msgid "(invalid)" msgstr "(неиÑправно)" -#: ../src/pulse/channelmap.c:808 +#: ../src/pulse/channelmap.c:751 msgid "Stereo" msgstr "Стерео" -#: ../src/pulse/channelmap.c:813 +#: ../src/pulse/channelmap.c:756 msgid "Surround 4.0" msgstr "Окружујући 4.0" -#: ../src/pulse/channelmap.c:819 +#: ../src/pulse/channelmap.c:762 msgid "Surround 4.1" msgstr "Окружујући 4.1" -#: ../src/pulse/channelmap.c:825 +#: ../src/pulse/channelmap.c:768 msgid "Surround 5.0" msgstr "Окружујући 5.0" -#: ../src/pulse/channelmap.c:831 +#: ../src/pulse/channelmap.c:774 msgid "Surround 5.1" msgstr "Окружујући 5.1" -#: ../src/pulse/channelmap.c:838 +#: ../src/pulse/channelmap.c:781 msgid "Surround 7.1" msgstr "Окружујући 7.1" @@ -1299,174 +1282,169 @@ msgstr "waitpid(): %s" msgid "Received message for unknown extension '%s'" msgstr "Примио поруку за непознати локал „%s“" -#: ../src/utils/pacat.c:94 +#: ../src/utils/pacat.c:107 +#, c-format +msgid "Failed to drain stream: %s\n" +msgstr "ÐеуÑпешно иÑушивање тока: %s\n" + +#: ../src/utils/pacat.c:112 +msgid "Playback stream drained.\n" +msgstr "Репродукциони ток иÑушен.\n" + +#: ../src/utils/pacat.c:122 +msgid "Draining connection to server.\n" +msgstr "Веза до Ñервера Ñе иÑушује.\n" + +#: ../src/utils/pacat.c:135 +#, c-format +msgid "pa_stream_drain(): %s\n" +msgstr "pa_stream_drain(): %s\n" + +#: ../src/utils/pacat.c:158 #, c-format msgid "pa_stream_write() failed: %s\n" msgstr "ÐеуÑпела функција pa_stream_write(): %s\n" -#: ../src/utils/pacat.c:133 +#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 #, c-format msgid "pa_stream_peek() failed: %s\n" msgstr "ÐеуÑпела функција pa_stream_peek(): %s\n" -#: ../src/utils/pacat.c:169 -#, c-format +#: ../src/utils/pacat.c:302 msgid "Stream successfully created.\n" msgstr "Ток уÑпешно направљен.\n" -#: ../src/utils/pacat.c:172 +#: ../src/utils/pacat.c:305 #, c-format msgid "pa_stream_get_buffer_attr() failed: %s\n" msgstr "ÐеуÑпешно pa_stream_get_buffer_attr(): %s\n" -#: ../src/utils/pacat.c:176 +#: ../src/utils/pacat.c:309 #, c-format msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgstr "Метрике бафера: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:179 +#: ../src/utils/pacat.c:312 #, c-format msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgstr "Метрике бафера: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:183 +#: ../src/utils/pacat.c:316 #, c-format msgid "Using sample spec '%s', channel map '%s'.\n" msgstr "КориÑтим Ñледеће параметре узорка „%s“ и мапу канала „%s“.\n" -#: ../src/utils/pacat.c:187 +#: ../src/utils/pacat.c:320 #, c-format msgid "Connected to device %s (%u, %ssuspended).\n" msgstr "Прикључен на уређај %s (%u, %s обуÑтављено).\n" -#: ../src/utils/pacat.c:197 +#: ../src/utils/pacat.c:330 #, c-format msgid "Stream error: %s\n" msgstr "Грешка тока: %s\n" -#: ../src/utils/pacat.c:207 +#: ../src/utils/pacat.c:340 #, c-format msgid "Stream device suspended.%s \n" msgstr "Уређај тока обуÑтављен.%s\n" -#: ../src/utils/pacat.c:209 +#: ../src/utils/pacat.c:342 #, c-format msgid "Stream device resumed.%s \n" msgstr "Уређај тока наÑтављен.%s \n" -#: ../src/utils/pacat.c:217 +#: ../src/utils/pacat.c:350 #, c-format msgid "Stream underrun.%s \n" msgstr "Ток није попуњен. %s \n" -#: ../src/utils/pacat.c:224 +#: ../src/utils/pacat.c:357 #, c-format msgid "Stream overrun.%s \n" msgstr "Ток Ñе прелива.%s \n" -#: ../src/utils/pacat.c:231 +#: ../src/utils/pacat.c:364 #, c-format msgid "Stream started.%s \n" msgstr "Ток покренут. %s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 #, c-format msgid "Stream moved to device %s (%u, %ssuspended).%s \n" msgstr "Ток пребачен на уређај %s (%u, %s обуÑтављено). %s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 msgid "not " msgstr "није" -#: ../src/utils/pacat.c:245 +#: ../src/utils/pacat.c:378 #, c-format msgid "Stream buffer attributes changed.%s \n" msgstr "Параметри бафера тока Ñу промењени. %s \n" -#: ../src/utils/pacat.c:278 +#: ../src/utils/pacat.c:411 #, c-format msgid "Connection established.%s \n" msgstr "Веза уÑпоÑтављена.%s \n" -#: ../src/utils/pacat.c:281 +#: ../src/utils/pacat.c:414 #, c-format msgid "pa_stream_new() failed: %s\n" msgstr "ÐеуÑпела функција pa_stream_new() : %s\n" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:442 #, c-format msgid "pa_stream_connect_playback() failed: %s\n" msgstr "ÐеуÑпела функција pa_stream_connect_playback(): %s\n" -#: ../src/utils/pacat.c:315 +#: ../src/utils/pacat.c:448 #, c-format msgid "pa_stream_connect_record() failed: %s\n" msgstr "ÐеуÑпела функција pa_stream_connect_record(): %s\n" -#: ../src/utils/pacat.c:329 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:762 ../src/utils/paplay.c:183 +#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 #, c-format msgid "Connection failure: %s\n" msgstr "ÐеуÑпешно повезивање: %s\n" -#: ../src/utils/pacat.c:349 ../src/utils/paplay.c:75 -#, c-format -msgid "Failed to drain stream: %s\n" -msgstr "ÐеуÑпешно иÑушивање тока: %s\n" - -#: ../src/utils/pacat.c:354 ../src/utils/paplay.c:80 -#, c-format -msgid "Playback stream drained.\n" -msgstr "Репродукциони ток иÑушен.\n" - -#: ../src/utils/pacat.c:364 ../src/utils/paplay.c:92 -#, c-format -msgid "Draining connection to server.\n" -msgstr "Веза до Ñервера Ñе иÑушује.\n" - -#: ../src/utils/pacat.c:390 -#, c-format +#: ../src/utils/pacat.c:495 msgid "Got EOF.\n" msgstr "Дошао до краја датотеке.\n" -#: ../src/utils/pacat.c:396 -#, c-format -msgid "pa_stream_drain(): %s\n" -msgstr "pa_stream_drain(): %s\n" - -#: ../src/utils/pacat.c:406 +#: ../src/utils/pacat.c:500 #, c-format msgid "read() failed: %s\n" msgstr "ÐеуÑпела функција read(): %s\n" -#: ../src/utils/pacat.c:438 +#: ../src/utils/pacat.c:532 #, c-format msgid "write() failed: %s\n" msgstr "ÐеуÑпела функција write(): %s\n" -#: ../src/utils/pacat.c:459 -#, c-format +#: ../src/utils/pacat.c:553 msgid "Got signal, exiting.\n" msgstr "Добио Ñигнал, излазим.\n" -#: ../src/utils/pacat.c:473 +#: ../src/utils/pacat.c:567 #, c-format msgid "Failed to get latency: %s\n" msgstr "Ðемогу добити вредноÑÑ‚ кашњења: %s\n" -#: ../src/utils/pacat.c:478 +#: ../src/utils/pacat.c:572 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "Време: %0.3f s. Кашњење: %0.0f μs. \r" -#: ../src/utils/pacat.c:498 +#: ../src/utils/pacat.c:592 #, c-format msgid "pa_stream_update_timing_info() failed: %s\n" msgstr "ÐеуÑпела функција pa_stream_update_timing_info(): %s\n" # Шта да радимо Ñа downmix и upmix. ПреÑликај навише и преÑликај наниже? -- Игор -#: ../src/utils/pacat.c:511 -#, c-format +#: ../src/utils/pacat.c:605 +#, fuzzy, c-format msgid "" "%s [options]\n" "\n" @@ -1492,8 +1470,10 @@ msgid "" "44100)\n" " --format=SAMPLEFORMAT The sample type, one of s16le, " "s16be, u8, float32le,\n" -" float32be, ulaw, alaw, s32le, s32be " -"(defaults to s16ne)\n" +" float32be, ulaw, alaw, s32le, s32be, " +"s24le, s24be,\n" +" s24-32le, s24-32be (defaults to " +"s16ne)\n" " --channels=CHANNELS The number of channels, 1 for mono, " "2 for stereo\n" " (defaults to 2)\n" @@ -1516,6 +1496,11 @@ msgid "" "bytes.\n" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" +" --property=PROPERTY=VALUE Set the specified property to the " +"specified value.\n" +" --raw Record/play raw PCM data.\n" +" --file-format=FFORMAT Record/play formatted PCM data.\n" +" --list-file-formats List available file formats.\n" msgstr "" "%s[опције]\n" "\n" @@ -1562,7 +1547,7 @@ msgstr "" " --process-time=БÐЈТОВРТражи наведено време процеÑа по " "захтеву у бајтовима.\n" -#: ../src/utils/pacat.c:612 +#: ../src/utils/pacat.c:727 #, c-format msgid "" "pacat %s\n" @@ -1573,88 +1558,133 @@ msgstr "" "Компајлирано Ñа libpulse %s\n" "Повезано Ñа libpulse %s\n" -#: ../src/utils/pacat.c:669 +#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "ÐеиÑправна мапа канала „%s“\n" + +#: ../src/utils/pacat.c:776 +#, fuzzy, c-format +msgid "Invalid stream name '%s'\n" +msgstr "ÐеиÑправан начин диÑкретизације „%s“." + +#: ../src/utils/pacat.c:813 #, c-format msgid "Invalid channel map '%s'\n" msgstr "ÐеиÑправна мапа канала „%s“\n" -#: ../src/utils/pacat.c:698 +#: ../src/utils/pacat.c:842 #, c-format msgid "Invalid latency specification '%s'\n" msgstr "ÐеиÑправан параметар кашњења „%s“\n" -#: ../src/utils/pacat.c:705 +#: ../src/utils/pacat.c:849 #, c-format msgid "Invalid process time specification '%s'\n" msgstr "ÐеиÑправан параметар за време процеÑа „%s“\n" -#: ../src/utils/pacat.c:716 +#: ../src/utils/pacat.c:861 +#, fuzzy, c-format +msgid "Invalid property '%s'\n" +msgstr "ÐеиÑправан начин диÑкретизације „%s“." + +#: ../src/utils/pacat.c:878 #, c-format +msgid "Unknown file format %s." +msgstr "" + +#: ../src/utils/pacat.c:897 msgid "Invalid sample specification\n" msgstr "ÐеиÑправни параметри узорка\n" -#: ../src/utils/pacat.c:721 +#: ../src/utils/pacat.c:907 +#, c-format +msgid "open(): %s\n" +msgstr "open(): %s\n" + +#: ../src/utils/pacat.c:912 #, c-format +msgid "dup2(): %s\n" +msgstr "dup2(): %s\n" + +#: ../src/utils/pacat.c:919 +msgid "Too many arguments.\n" +msgstr "Превише параметара.\n" + +#: ../src/utils/pacat.c:930 +#, fuzzy +msgid "Failed to generate sample specification for file.\n" +msgstr "Ðије уÑпело добављање података о узорку: %s\n" + +#: ../src/utils/pacat.c:950 +#, fuzzy +msgid "Failed to open audio file.\n" +msgstr "Ðије уÑпело отварање звучне датотеке.\n" + +#: ../src/utils/pacat.c:956 +msgid "" +"Warning: specified sample specification will be overwritten with " +"specification from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "Ðије уÑпело добављање података о узорку: %s\n" + +#: ../src/utils/pacat.c:968 +msgid "Warning: Failed to determine channel map from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:979 msgid "Channel map doesn't match sample specification\n" msgstr "Мапа канала Ñе не поклапа Ñа параметрима узорка\n" -#: ../src/utils/pacat.c:728 -#, c-format -msgid "Opening a %s stream with sample specification '%s'.\n" +#: ../src/utils/pacat.c:990 +msgid "Warning: failed to write channel map to file.\n" +msgstr "" + +#: ../src/utils/pacat.c:1005 +#, fuzzy, c-format +msgid "" +"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" msgstr "Отварам ток %s Ñа Ñледећим параметрима узорка „%s“.\n" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "recording" msgstr "Ñнима" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "playback" msgstr "пушта" -#: ../src/utils/pacat.c:736 -#, c-format -msgid "open(): %s\n" -msgstr "open(): %s\n" - -#: ../src/utils/pacat.c:741 -#, c-format -msgid "dup2(): %s\n" -msgstr "dup2(): %s\n" - -#: ../src/utils/pacat.c:751 -#, c-format -msgid "Too many arguments.\n" -msgstr "Превише параметара.\n" - -#: ../src/utils/pacat.c:764 ../src/utils/pasuspender.c:280 -#: ../src/utils/pactl.c:1017 ../src/utils/paplay.c:381 +#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 +#: ../src/utils/pactl.c:1104 #, c-format msgid "pa_mainloop_new() failed.\n" msgstr "ÐеуÑпела функција pa_mainloop_new().\n" -#: ../src/utils/pacat.c:785 -#, c-format +#: ../src/utils/pacat.c:1051 msgid "io_new() failed.\n" msgstr "ÐеуÑпела функција io_new() \n" -#: ../src/utils/pacat.c:791 ../src/utils/pasuspender.c:293 -#: ../src/utils/pactl.c:1031 ../src/utils/paplay.c:396 +#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 +#: ../src/utils/pactl.c:1116 #, c-format msgid "pa_context_new() failed.\n" msgstr "ÐеуÑпела функција pa_context_new().\n" -#: ../src/utils/pacat.c:799 +#: ../src/utils/pacat.c:1066 #, fuzzy, c-format msgid "pa_context_connect() failed: %s\n" msgstr "ÐеуÑпела функција pa_context_connect(): %s" -#: ../src/utils/pacat.c:810 -#, c-format +#: ../src/utils/pacat.c:1077 msgid "time_new() failed.\n" msgstr "ÐеуÑпела функција time_new() \n" -#: ../src/utils/pacat.c:817 ../src/utils/pasuspender.c:301 -#: ../src/utils/pactl.c:1042 ../src/utils/paplay.c:410 +#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 +#: ../src/utils/pactl.c:1127 #, c-format msgid "pa_mainloop_run() failed.\n" msgstr "ÐеуÑпела функција pa_mainloop_run().\n" @@ -1684,8 +1714,7 @@ msgstr "ÐеуÑпешно наÑтављање: %s\n" msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "УПОЗОРЕЊЕ: Звучни Ñервер није локални, не зауÑтављам.\n" -#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:768 -#: ../src/utils/paplay.c:191 +#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" msgstr "Добих SIGINT, излазим.\n" @@ -1713,7 +1742,7 @@ msgstr "" " -s, --server=СЕРВЕРИме Ñервера Ñа којим Ñе повезује\n" "\n" -#: ../src/utils/pasuspender.c:251 +#: ../src/utils/pasuspender.c:248 #, c-format msgid "" "pasuspender %s\n" @@ -1724,32 +1753,32 @@ msgstr "" "Компајлирано Ñа libpulse %s\n" "Повезано Ñа libpulse %s\n" -#: ../src/utils/pactl.c:108 +#: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" msgstr "ÐеуÑпешно добављање ÑтатиÑтике: %s\n" -#: ../src/utils/pactl.c:114 +#: ../src/utils/pactl.c:134 #, c-format msgid "Currently in use: %u blocks containing %s bytes total.\n" msgstr "Тренутно у употреби: %u блокова Ñадржи укупно %s бајтова.\n" -#: ../src/utils/pactl.c:117 +#: ../src/utils/pactl.c:137 #, c-format msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n" msgstr "Смештено од покретања: %u блокова Ñадржи укупно %s бајтова.\n" -#: ../src/utils/pactl.c:120 +#: ../src/utils/pactl.c:140 #, c-format msgid "Sample cache size: %s\n" msgstr "Величина кеш меморије узорка: %s\n" -#: ../src/utils/pactl.c:129 +#: ../src/utils/pactl.c:149 #, c-format msgid "Failed to get server information: %s\n" msgstr "ÐеуÑпешно добијање података о Ñерверу: %s\n" -#: ../src/utils/pactl.c:137 +#: ../src/utils/pactl.c:157 #, c-format msgid "" "User name: %s\n" @@ -1772,12 +1801,12 @@ msgstr "" "Подразумевани извор: %s\n" "Колачић: %08x\n" -#: ../src/utils/pactl.c:178 +#: ../src/utils/pactl.c:198 #, c-format msgid "Failed to get sink information: %s\n" msgstr "ÐеуÑпешно добијање података о Ñливнику: %s\n" -#: ../src/utils/pactl.c:194 +#: ../src/utils/pactl.c:214 #, c-format msgid "" "Sink #%u\n" @@ -1816,12 +1845,22 @@ msgstr "" "\tСвојÑтва:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:258 +#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 +#, fuzzy, c-format +msgid "\tPorts:\n" +msgstr "\tПрофили:\n" + +#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 +#, fuzzy, c-format +msgid "\tActive Port: %s\n" +msgstr "\tÐктивни профил: %s\n" + +#: ../src/utils/pactl.c:290 #, c-format msgid "Failed to get source information: %s\n" msgstr "Ðије уÑпело добављање података о извору: %s\n" -#: ../src/utils/pactl.c:274 +#: ../src/utils/pactl.c:306 #, c-format msgid "" "Source #%u\n" @@ -1860,20 +1899,20 @@ msgstr "" "\tСвојÑтва:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:306 ../src/utils/pactl.c:350 ../src/utils/pactl.c:385 -#: ../src/utils/pactl.c:422 ../src/utils/pactl.c:481 ../src/utils/pactl.c:482 -#: ../src/utils/pactl.c:492 ../src/utils/pactl.c:536 ../src/utils/pactl.c:537 -#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:586 ../src/utils/pactl.c:587 -#: ../src/utils/pactl.c:594 +#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429 +#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526 +#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581 +#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631 +#: ../src/utils/pactl.c:638 msgid "n/a" msgstr "непознато" -#: ../src/utils/pactl.c:324 +#: ../src/utils/pactl.c:368 #, c-format msgid "Failed to get module information: %s\n" msgstr "ÐеуÑпешно добијање података о модулу: %s\n" -#: ../src/utils/pactl.c:342 +#: ../src/utils/pactl.c:386 #, c-format msgid "" "Module #%u\n" @@ -1890,12 +1929,12 @@ msgstr "" "\tСвојÑтва:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:361 +#: ../src/utils/pactl.c:405 #, c-format msgid "Failed to get client information: %s\n" msgstr "ÐеуÑпешно добијање података о клијенту: %s\n" -#: ../src/utils/pactl.c:379 +#: ../src/utils/pactl.c:423 #, c-format msgid "" "Client #%u\n" @@ -1910,12 +1949,12 @@ msgstr "" "\tСвојÑтва:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:396 +#: ../src/utils/pactl.c:440 #, c-format msgid "Failed to get card information: %s\n" msgstr "ÐеуÑпешно добијање података о картици: %s\n" -#: ../src/utils/pactl.c:414 +#: ../src/utils/pactl.c:458 #, c-format msgid "" "Card #%u\n" @@ -1932,22 +1971,22 @@ msgstr "" "\tСвојÑтва:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:428 +#: ../src/utils/pactl.c:472 #, c-format msgid "\tProfiles:\n" msgstr "\tПрофили:\n" -#: ../src/utils/pactl.c:434 +#: ../src/utils/pactl.c:478 #, c-format msgid "\tActive Profile: %s\n" msgstr "\tÐктивни профил: %s\n" -#: ../src/utils/pactl.c:445 +#: ../src/utils/pactl.c:489 #, c-format msgid "Failed to get sink input information: %s\n" msgstr "Ðије уÑпело добијање података о улазу Ñливника: %s\n" -#: ../src/utils/pactl.c:464 +#: ../src/utils/pactl.c:508 #, c-format msgid "" "Sink Input #%u\n" @@ -1984,12 +2023,12 @@ msgstr "" "\tСвојÑтва:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:503 +#: ../src/utils/pactl.c:547 #, c-format msgid "Failed to get source output information: %s\n" msgstr "Ðије уÑпело добијање података о излазу извора: %s\n" -#: ../src/utils/pactl.c:523 +#: ../src/utils/pactl.c:567 #, c-format msgid "" "Source Output #%u\n" @@ -2018,12 +2057,12 @@ msgstr "" "\tСвојÑтва:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:554 +#: ../src/utils/pactl.c:598 #, c-format msgid "Failed to get sample information: %s\n" msgstr "Ðије уÑпело добављање података о узорку: %s\n" -#: ../src/utils/pactl.c:572 +#: ../src/utils/pactl.c:616 #, c-format msgid "" "Sample #%u\n" @@ -2054,23 +2093,22 @@ msgstr "" "\tСвојÑтва:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:602 ../src/utils/pactl.c:612 +#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 #, c-format msgid "Failure: %s\n" msgstr "ÐеуÑпех: %s\n" -#: ../src/utils/pactl.c:636 +#: ../src/utils/pactl.c:680 #, c-format msgid "Failed to upload sample: %s\n" msgstr "Ðије уÑпело учитавање узорка: %s\n" -#: ../src/utils/pactl.c:653 -#, c-format +#: ../src/utils/pactl.c:697 msgid "Premature end of file\n" msgstr "Прерани крај датотеке\n" -#: ../src/utils/pactl.c:774 -#, c-format +#: ../src/utils/pactl.c:826 +#, fuzzy, c-format msgid "" "%s [options] stat\n" "%s [options] list\n" @@ -2085,6 +2123,8 @@ msgid "" "%s [options] suspend-sink [SINK] 1|0\n" "%s [options] suspend-source [SOURCE] 1|0\n" "%s [options] set-card-profile [CARD] [PROFILE] \n" +"%s [options] set-sink-port [SINK] [PORT] \n" +"%s [options] set-source-port [SOURCE] [PORT] \n" "\n" " -h, --help Show this help\n" " --version Show version\n" @@ -2116,7 +2156,7 @@ msgstr "" " -n, --client-name=ИМЕ Како назвати овог клијента на " "Ñерверу\n" -#: ../src/utils/pactl.c:826 +#: ../src/utils/pactl.c:880 #, c-format msgid "" "pactl %s\n" @@ -2127,71 +2167,74 @@ msgstr "" "Компајлирано Ñа libpulse %s\n" "Повезано Ñа libpulse %s\n" -#: ../src/utils/pactl.c:865 -#, c-format +#: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "Ðаведите датотеку узорка коју треба учитати\n" -#: ../src/utils/pactl.c:887 -#, c-format +#: ../src/utils/pactl.c:939 msgid "Failed to open sound file.\n" msgstr "Ðије уÑпело отварање звучне датотеке.\n" -#: ../src/utils/pactl.c:899 -#, c-format +#: ../src/utils/pactl.c:951 +#, fuzzy +msgid "Warning: Failed to determine sample specification from file.\n" +msgstr "Отварам ток %s Ñа Ñледећим параметрима узорка „%s“.\n" + +#: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" msgstr "Морате навеÑти име узорка којег желите пуÑтити\n" -#: ../src/utils/pactl.c:911 -#, c-format +#: ../src/utils/pactl.c:973 msgid "You have to specify a sample name to remove\n" msgstr "Морате навеÑти име узорка којег желите уклонити\n" -#: ../src/utils/pactl.c:919 -#, c-format +#: ../src/utils/pactl.c:982 msgid "You have to specify a sink input index and a sink\n" msgstr "Морате навеÑти Ð¸Ð½Ð´ÐµÐºÑ ÑƒÐ»Ð°Ð·Ð° у Ñливнику и Ñливник\n" -#: ../src/utils/pactl.c:928 -#, c-format +#: ../src/utils/pactl.c:992 msgid "You have to specify a source output index and a source\n" msgstr "Морате навеÑти Ð¸Ð½Ð´ÐµÐºÑ Ð¸Ð·Ð»Ð°Ð·Ð° у извору и извор\n" -#: ../src/utils/pactl.c:942 -#, c-format +#: ../src/utils/pactl.c:1007 msgid "You have to specify a module name and arguments.\n" msgstr "Морате навеÑти име и параметре модула.\n" -#: ../src/utils/pactl.c:962 -#, c-format +#: ../src/utils/pactl.c:1027 msgid "You have to specify a module index\n" msgstr "Морате навеÑти Ð¸Ð½Ð´ÐµÐºÑ Ð¼Ð¾Ð´ÑƒÐ»Ð°\n" -#: ../src/utils/pactl.c:972 -#, c-format +#: ../src/utils/pactl.c:1037 msgid "" "You may not specify more than one sink. You have to specify a boolean " "value.\n" msgstr "Можете навеÑти Ñамо један Ñливник. Морате навеÑти логичку вредноÑÑ‚.\n" -#: ../src/utils/pactl.c:985 -#, c-format +#: ../src/utils/pactl.c:1050 msgid "" "You may not specify more than one source. You have to specify a boolean " "value.\n" msgstr "Можете навеÑти Ñамо један извор. Морате навеÑти логичку вредноÑÑ‚.\n" -#: ../src/utils/pactl.c:997 -#, c-format +#: ../src/utils/pactl.c:1062 msgid "You have to specify a card name/index and a profile name\n" msgstr "Морате навеÑти име/Ð¸Ð½Ð´ÐµÐºÑ ÐºÐ°Ñ€Ñ‚Ð¸Ñ†Ðµ и име профила\n" -#: ../src/utils/pactl.c:1012 -#, c-format +#: ../src/utils/pactl.c:1073 +#, fuzzy +msgid "You have to specify a sink name/index and a port name\n" +msgstr "Морате навеÑти име/Ð¸Ð½Ð´ÐµÐºÑ ÐºÐ°Ñ€Ñ‚Ð¸Ñ†Ðµ и име профила\n" + +#: ../src/utils/pactl.c:1084 +#, fuzzy +msgid "You have to specify a source name/index and a port name\n" +msgstr "Морате навеÑти име/Ð¸Ð½Ð´ÐµÐºÑ ÐºÐ°Ñ€Ñ‚Ð¸Ñ†Ðµ и име профила\n" + +#: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "Ðи једна иÑправна наредба није наведена.\n" -#: ../src/utils/pactl.c:1037 ../src/utils/paplay.c:404 +#: ../src/utils/pactl.c:1122 #, c-format msgid "pa_context_connect() failed: %s" msgstr "ÐеуÑпела функција pa_context_connect(): %s" @@ -2277,129 +2320,49 @@ msgstr "ÐеуÑпешно учитавање датотека колачића\ msgid "Not yet implemented.\n" msgstr "Ðије још имплементирано.\n" -#: ../src/utils/pacmd.c:64 +#: ../src/utils/pacmd.c:61 +msgid "No PulseAudio daemon running, or not running as session daemon." +msgstr "" + +#: ../src/utils/pacmd.c:66 #, c-format msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s" msgstr "socket(PF_UNIX, SOCK_STREAM, 0): %s" -#: ../src/utils/pacmd.c:81 +#: ../src/utils/pacmd.c:83 #, c-format msgid "connect(): %s" msgstr "connect(): %s" -#: ../src/utils/pacmd.c:89 +#: ../src/utils/pacmd.c:91 msgid "Failed to kill PulseAudio daemon." msgstr "Ðије уÑпело убијање PulseAudio демона." -#: ../src/utils/pacmd.c:97 +#: ../src/utils/pacmd.c:99 msgid "Daemon not responding." msgstr "Демон Ñе не одазива." -#: ../src/utils/pacmd.c:144 +#: ../src/utils/pacmd.c:146 #, c-format msgid "select(): %s" msgstr "select(): %s" -#: ../src/utils/pacmd.c:154 ../src/utils/pacmd.c:171 +#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173 #, c-format msgid "read(): %s" msgstr "read(): %s" -#: ../src/utils/pacmd.c:187 ../src/utils/pacmd.c:201 +#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203 #, c-format msgid "write(): %s" msgstr "write(): %s" -#: ../src/utils/paplay.c:139 -#, c-format -msgid "Stream successfully created\n" -msgstr "Ток уÑпешно направљен\n" - -#: ../src/utils/paplay.c:144 -#, c-format -msgid "Stream errror: %s\n" -msgstr "Грешка тока: %s\n" - -#: ../src/utils/paplay.c:165 -#, c-format -msgid "Connection established.\n" -msgstr "Веза уÑтановљена.\n" - -#: ../src/utils/paplay.c:198 -#, c-format -msgid "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" -msgstr "" -"%s [опције] [ДÐТОТЕКÐ]\n" -"\n" -" -h, --help Прикажи ову помоћ\n" -" --version Прикажи верзију\n" -"\n" -" -v, --verbose Омогући опширни Ð¾Ð¿Ð¸Ñ Ñ€Ð°Ð´ÑšÐ¸\n" -"\n" -" -s, --server=СЕРВЕРИме Ñервера на који Ñе повезује\n" -" -d, --device=УРЕЂÐЈ Име Ñливника на које Ñе повезује\n" -" -n, --client-name=ИМЕ Како назвати овог клијента на " -"Ñерверу\n" -" --stream-name=ИМЕ Како назвати овај ток на Ñерверу\n" -" --volume=ГЛÐСÐОСТ Ðаведи почетну (линеарну) јачину " -"звука из опÑега 0...65536\n" -" --channel-map=ÐœÐПÐКÐÐÐЛРПоÑтави мапу канала која ће Ñе " -"кориÑтити\n" - -#: ../src/utils/paplay.c:255 -#, c-format -msgid "" -"paplay %s\n" -"Compiled with libpulse %s\n" -"Linked with libpulse %s\n" -msgstr "" -"paplay %s\n" -"Компајлирано Ñа libpulse %s\n" -"Повезано Ñа libpulse %s\n" - -#: ../src/utils/paplay.c:292 -#, c-format -msgid "Invalid channel map\n" -msgstr "ÐеиÑправна мапа канала\n" - -#: ../src/utils/paplay.c:314 -#, c-format -msgid "Failed to open file '%s'\n" -msgstr "ÐеуÑпело отварање датотеке „%s“\n" - -#: ../src/utils/paplay.c:350 -#, c-format -msgid "Channel map doesn't match file.\n" -msgstr "Мапа канала Ñе не поклапа Ñа датотеком.\n" - -#: ../src/utils/paplay.c:376 -#, c-format -msgid "Using sample spec '%s'\n" -msgstr "КориÑте Ñе Ñледећи параметри узорка „%s“\n" - # Како превеÑти autospawn (могућноÑÑ‚ прављења или покретања процеÑа из иÑтог) -- Игор #: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 msgid "Cannot access autospawn lock." msgstr "Ðије могуће приÑтупити датотеци закључавања за Ñамоумножавање." -#: ../src/modules/alsa/alsa-sink.c:393 ../src/modules/alsa/alsa-sink.c:541 +#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2416,7 +2379,7 @@ msgstr "" "Пробуђени Ñмо Ñа поÑтављеним POLLOUT-ом -- али Ñледећи snd_pcm_avail() је " "вратио 0 или неку другу вредноÑÑ‚ мању од min_avail." -#: ../src/modules/alsa/alsa-source.c:377 ../src/modules/alsa/alsa-source.c:516 +#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2433,34 +2396,129 @@ msgstr "" "Пробуђени Ñмо Ñа поÑтављеним POLLIN-ом -- али Ñледећи snd_pcm_avail() је " "вратио 0 или неку другу вредноÑÑ‚ мању од min_avail." -#: ../src/modules/alsa/module-alsa-card.c:114 -#, c-format -msgid "Output %s + Input %s" -msgstr "Излаз %s + улаз %s" - -#: ../src/modules/alsa/module-alsa-card.c:117 -#, c-format -msgid "Output %s" -msgstr "Излаз %s" - -#: ../src/modules/alsa/module-alsa-card.c:121 -#, c-format -msgid "Input %s" -msgstr "Улаз %s" - -#: ../src/modules/alsa/module-alsa-card.c:170 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2006 +#: ../src/modules/alsa/module-alsa-card.c:152 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 msgid "Off" msgstr "ИÑкључено" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1976 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 msgid "High Fidelity Playback (A2DP)" msgstr "Репродукција виÑоке тачноÑти (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1991 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 msgid "Telephony Duplex (HSP/HFP)" msgstr "ДвоÑтрано телефонирање (HSP/HFP)" -#: ../src/modules/reserve-wrap.c:139 +#: ../src/modules/reserve-wrap.c:151 msgid "PulseAudio Sound Server" msgstr "PulseAudio звучни ÑиÑтем" + +#~ msgid "Analog Mono" +#~ msgstr "Ðналогни моно" + +#~ msgid "Analog Stereo" +#~ msgstr "Ðналогни Ñтерео" + +#~ msgid "Digital Stereo (IEC958)" +#~ msgstr "Дигитални Ñтерео (IEC958)" + +#~ msgid "Digital Stereo (HDMI)" +#~ msgstr "Дигитални Ñтерео (HDMI)" + +#~ msgid "Analog Surround 4.0" +#~ msgstr "Ðналогни окружујући 4.0" + +#~ msgid "Digital Surround 4.0 (IEC958/AC3)" +#~ msgstr "Дигитални окружујући 4.0 (IEC958/AC3)" + +# Surround можемо превеÑти амбијентални или окружни или можда чак и Ñараунд? -- Игор +#~ msgid "Analog Surround 4.1" +#~ msgstr "Ðналогни окружујући 4.1" + +#~ msgid "Analog Surround 5.0" +#~ msgstr "Ðналогни окружујући 5.0" + +#~ msgid "Analog Surround 5.1" +#~ msgstr "Ðналогни окружујући 5.1" + +#~ msgid "Digital Surround 5.1 (IEC958/AC3)" +#~ msgstr "Дигитални окружујући 5.1 (IEC958/AC3)" + +#~ msgid "Analog Surround 7.1" +#~ msgstr "Ðналогни окружујући 7.1" + +#~ msgid "Output %s + Input %s" +#~ msgstr "Излаз %s + улаз %s" + +#~ msgid "Output %s" +#~ msgstr "Излаз %s" + +#~ msgid "Input %s" +#~ msgstr "Улаз %s" + +#~ msgid "Stream successfully created\n" +#~ msgstr "Ток уÑпешно направљен\n" + +#~ msgid "Stream errror: %s\n" +#~ msgstr "Грешка тока: %s\n" + +#~ msgid "Connection established.\n" +#~ msgstr "Веза уÑтановљена.\n" + +#~ msgid "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Show this help\n" +#~ " --version Show version\n" +#~ "\n" +#~ " -v, --verbose Enable verbose operation\n" +#~ "\n" +#~ " -s, --server=SERVER The name of the server to connect " +#~ "to\n" +#~ " -d, --device=DEVICE The name of the sink to connect " +#~ "to\n" +#~ " -n, --client-name=NAME How to call this client on the " +#~ "server\n" +#~ " --stream-name=NAME How to call this stream on the " +#~ "server\n" +#~ " --volume=VOLUME Specify the initial (linear) " +#~ "volume in range 0...65536\n" +#~ " --channel-map=CHANNELMAP Set the channel map to the use\n" +#~ msgstr "" +#~ "%s [опције] [ДÐТОТЕКÐ]\n" +#~ "\n" +#~ " -h, --help Прикажи ову помоћ\n" +#~ " --version Прикажи верзију\n" +#~ "\n" +#~ " -v, --verbose Омогући опширни Ð¾Ð¿Ð¸Ñ Ñ€Ð°Ð´ÑšÐ¸\n" +#~ "\n" +#~ " -s, --server=СЕРВЕРИме Ñервера на који Ñе повезује\n" +#~ " -d, --device=УРЕЂÐЈ Име Ñливника на које Ñе повезује\n" +#~ " -n, --client-name=ИМЕ Како назвати овог клијента на " +#~ "Ñерверу\n" +#~ " --stream-name=ИМЕ Како назвати овај ток на Ñерверу\n" +#~ " --volume=ГЛÐСÐОСТ Ðаведи почетну (линеарну) јачину " +#~ "звука из опÑега 0...65536\n" +#~ " --channel-map=ÐœÐПÐКÐÐÐЛРПоÑтави мапу канала која ће Ñе " +#~ "кориÑтити\n" + +#~ msgid "" +#~ "paplay %s\n" +#~ "Compiled with libpulse %s\n" +#~ "Linked with libpulse %s\n" +#~ msgstr "" +#~ "paplay %s\n" +#~ "Компајлирано Ñа libpulse %s\n" +#~ "Повезано Ñа libpulse %s\n" + +#~ msgid "Invalid channel map\n" +#~ msgstr "ÐеиÑправна мапа канала\n" + +#~ msgid "Failed to open file '%s'\n" +#~ msgstr "ÐеуÑпело отварање датотеке „%s“\n" + +#~ msgid "Channel map doesn't match file.\n" +#~ msgstr "Мапа канала Ñе не поклапа Ñа датотеком.\n" + +#~ msgid "Using sample spec '%s'\n" +#~ msgstr "КориÑте Ñе Ñледећи параметри узорка „%s“\n" diff --git a/po/sr@latin.po b/po/sr@latin.po index 4ffaad20..e5b0f7b1 100644 --- a/po/sr@latin.po +++ b/po/sr@latin.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-21 23:02+0200\n" +"POT-Creation-Date: 2009-06-17 23:42+0200\n" "PO-Revision-Date: 2009-04-07 23:02+0100\n" "Last-Translator: MiloÅ¡ KomarÄević <kmilos@gmail.com>\n" "Language-Team: Serbian <fedora-trans-sr@redhat.com>\n" @@ -19,52 +19,7 @@ msgstr "" "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Lokalize 0.3\n" -#: ../src/modules/alsa/alsa-util.c:532 -msgid "Analog Mono" -msgstr "Analogni mono" - -#: ../src/modules/alsa/alsa-util.c:540 -msgid "Analog Stereo" -msgstr "Analogni stereo" - -#: ../src/modules/alsa/alsa-util.c:548 -msgid "Digital Stereo (IEC958)" -msgstr "Digitalni stereo (IEC958)" - -#: ../src/modules/alsa/alsa-util.c:556 -msgid "Digital Stereo (HDMI)" -msgstr "Digitalni stereo (HDMI)" - -#: ../src/modules/alsa/alsa-util.c:565 -msgid "Analog Surround 4.0" -msgstr "Analogni okružujući 4.0" - -#: ../src/modules/alsa/alsa-util.c:574 -msgid "Digital Surround 4.0 (IEC958/AC3)" -msgstr "Digitalni okružujući 4.0 (IEC958/AC3)" - -# Surround možemo prevesti ambijentalni ili okružni ili možda Äak i saraund? -- Igor -#: ../src/modules/alsa/alsa-util.c:584 -msgid "Analog Surround 4.1" -msgstr "Analogni okružujući 4.1" - -#: ../src/modules/alsa/alsa-util.c:594 -msgid "Analog Surround 5.0" -msgstr "Analogni okružujući 5.0" - -#: ../src/modules/alsa/alsa-util.c:604 -msgid "Analog Surround 5.1" -msgstr "Analogni okružujući 5.1" - -#: ../src/modules/alsa/alsa-util.c:614 -msgid "Digital Surround 5.1 (IEC958/AC3)" -msgstr "Digitalni okružujući 5.1 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:625 -msgid "Analog Surround 7.1" -msgstr "Analogni okružujući 7.1" - -#: ../src/modules/alsa/alsa-util.c:1646 +#: ../src/modules/alsa/alsa-util.c:1015 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -77,7 +32,7 @@ msgstr "" "Ovo je najverovatnije greÅ¡ka u „%s“ ALSA upravljaÄkom programu. Prijavite " "ovaj problem ALSA programerima." -#: ../src/modules/alsa/alsa-util.c:1687 +#: ../src/modules/alsa/alsa-util.c:1056 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -90,7 +45,7 @@ msgstr "" "Ovo je najverovatnije greÅ¡ka u „%s“ ALSA upravljaÄkom programu. Prijavite " "ovaj problem ALSA programerima." -#: ../src/modules/alsa/alsa-util.c:1734 +#: ../src/modules/alsa/alsa-util.c:1103 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -103,11 +58,24 @@ msgstr "" "Ovo je najverovatnije greÅ¡ka u „%s“ ALSA upravljaÄkom programu. Prijavite " "ovaj problem ALSA programerima." -#: ../src/pulsecore/sink.c:2141 +#: ../src/modules/module-ladspa-sink.c:49 +msgid "Virtual LADSPA sink" +msgstr "" + +#: ../src/modules/module-ladspa-sink.c:53 +msgid "" +"sink_name=<name for the sink> sink_properties=<properties for the sink> " +"master=<name of sink to filter> format=<sample format> rate=<sample rate> " +"channels=<number of channels> channel_map=<channel map> plugin=<ladspa " +"plugin name> label=<ladspa plugin label> control=<comma seperated list of " +"input control values>" +msgstr "" + +#: ../src/pulsecore/sink.c:2394 msgid "Internal Audio" msgstr "UnutraÅ¡nji zvuk" -#: ../src/pulsecore/sink.c:2147 +#: ../src/pulsecore/sink.c:2400 msgid "Modem" msgstr "Modem" @@ -177,107 +145,107 @@ msgstr "Ne mogu dobiti ovlašćenje: %s" msgid "PolicyKit responded with '%s'" msgstr "PolicyKit je odgovorio sa „%s“" -#: ../src/daemon/main.c:138 +#: ../src/daemon/main.c:142 #, c-format msgid "Got signal %s." msgstr "Dobih signal %s." -#: ../src/daemon/main.c:165 +#: ../src/daemon/main.c:169 msgid "Exiting." msgstr "NapuÅ¡tam." -#: ../src/daemon/main.c:183 +#: ../src/daemon/main.c:187 #, c-format msgid "Failed to find user '%s'." msgstr "Ne mogu naći korisnika „%s“." -#: ../src/daemon/main.c:188 +#: ../src/daemon/main.c:192 #, c-format msgid "Failed to find group '%s'." msgstr "Ne mogu naći grupu „%s“." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:196 #, 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:197 +#: ../src/daemon/main.c:201 #, 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:202 +#: ../src/daemon/main.c:206 #, 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:205 ../src/daemon/main.c:210 +#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 #, c-format msgid "Failed to create '%s': %s" msgstr "NeuspeÅ¡no pravljenje „%s“: %s" -#: ../src/daemon/main.c:217 +#: ../src/daemon/main.c:221 #, c-format msgid "Failed to change group list: %s" msgstr "NeuspeÅ¡na promena grupnog spiska: %s" -#: ../src/daemon/main.c:233 +#: ../src/daemon/main.c:237 #, c-format msgid "Failed to change GID: %s" msgstr "NeuspeÅ¡na promena GID-a: %s" -#: ../src/daemon/main.c:249 +#: ../src/daemon/main.c:253 #, c-format msgid "Failed to change UID: %s" msgstr "NeuspeÅ¡na promena UID-a: %s" -#: ../src/daemon/main.c:263 +#: ../src/daemon/main.c:267 msgid "Successfully dropped root privileges." msgstr "UspeÅ¡no odbaÄena root ovlašćenja." -#: ../src/daemon/main.c:271 +#: ../src/daemon/main.c:275 msgid "System wide mode unsupported on this platform." msgstr "Režim za Äitav sistem nije podržan na ovoj platformi." -#: ../src/daemon/main.c:289 +#: ../src/daemon/main.c:293 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) nije uspelo: %s" -#: ../src/daemon/main.c:477 +#: ../src/daemon/main.c:481 msgid "Failed to parse command line." msgstr "NeuspeÅ¡no tumaÄenje komandne linije." -#: ../src/daemon/main.c:501 +#: ../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:508 +#: ../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:516 +#: ../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:519 +#: ../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:524 +#: ../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:527 +#: ../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:556 +#: ../src/daemon/main.c:560 #, c-format msgid "" "Called SUID root and real-time and/or high-priority scheduling was requested " @@ -298,48 +266,48 @@ msgstr "" "korisnika kako bi omogućili stvarnovremensko ili visokoprioritetno " "rasporeÄ‘ivanje." -#: ../src/daemon/main.c:581 +#: ../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:610 +#: ../src/daemon/main.c:614 msgid "Successfully increased RLIMIT_RTPRIO" msgstr "UspeÅ¡no povećano RLIMIT_RTPRIO ograniÄenje" -#: ../src/daemon/main.c:613 +#: ../src/daemon/main.c:617 #, c-format msgid "RLIMIT_RTPRIO failed: %s" msgstr "NeuspeÅ¡no postavljanje RLIMIT_RTPRIO-a:%s" -#: ../src/daemon/main.c:620 +#: ../src/daemon/main.c:624 msgid "Giving up CAP_NICE" msgstr "Odustajem od CAP_NICE" -#: ../src/daemon/main.c:627 +#: ../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:688 +#: ../src/daemon/main.c:692 msgid "Daemon not running" msgstr "Demon nije pokrenut" -#: ../src/daemon/main.c:690 +#: ../src/daemon/main.c:694 #, c-format msgid "Daemon running as PID %u" msgstr "Demon je pokrenut sa PID-om %u" -#: ../src/daemon/main.c:700 +#: ../src/daemon/main.c:704 #, c-format msgid "Failed to kill daemon: %s" msgstr "NeuspeÅ¡no ubijanje demona: %s" -#: ../src/daemon/main.c:718 +#: ../src/daemon/main.c:722 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -347,162 +315,172 @@ msgstr "" "Nije nameravano da se ovaj program pokreće iz root naloga (osim u sluÄaju " "kada je --system navedeno)" -#: ../src/daemon/main.c:720 +#: ../src/daemon/main.c:724 msgid "Root privileges required." msgstr "Potrebna su root ovlašćenja." -#: ../src/daemon/main.c:725 +#: ../src/daemon/main.c:729 msgid "--start not supported for system instances." msgstr "--start nije podržano za sistemske primerke." -#: ../src/daemon/main.c:730 +#: ../src/daemon/main.c:734 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:733 +#: ../src/daemon/main.c:737 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:736 +#: ../src/daemon/main.c:740 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:741 +#: ../src/daemon/main.c:745 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:768 +#: ../src/daemon/main.c:772 msgid "Failed to acquire stdio." msgstr "NeuspeÅ¡no pronalaženje standardnog ulaza/izlaza." -#: ../src/daemon/main.c:774 +#: ../src/daemon/main.c:778 #, c-format msgid "pipe failed: %s" msgstr "NeuspeÅ¡no puÅ¡tanje podataka kroz cev: %s" -#: ../src/daemon/main.c:779 +#: ../src/daemon/main.c:783 #, c-format msgid "fork() failed: %s" msgstr "Neuspela funkcija fork(): %s" -#: ../src/daemon/main.c:793 +#: ../src/daemon/main.c:797 #, c-format msgid "read() failed: %s" msgstr "Neuspela funkcija read(): %s" -#: ../src/daemon/main.c:799 +#: ../src/daemon/main.c:803 msgid "Daemon startup failed." msgstr "NeuspeÅ¡no pokretanje demona." -#: ../src/daemon/main.c:801 +#: ../src/daemon/main.c:805 msgid "Daemon startup successful." msgstr "Demon uspeÅ¡no pokrenut." -#: ../src/daemon/main.c:871 +#: ../src/daemon/main.c:875 #, c-format msgid "This is PulseAudio %s" msgstr "Ovo je PulseAudio %s" -#: ../src/daemon/main.c:872 +#: ../src/daemon/main.c:876 #, c-format msgid "Compilation host: %s" msgstr "Domaćin kompajliranja: %s" -#: ../src/daemon/main.c:873 +#: ../src/daemon/main.c:877 #, c-format msgid "Compilation CFLAGS: %s" msgstr "CFLAGS kompajliranja: %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:880 #, c-format msgid "Running on host: %s" msgstr "Pokrenut na domaćinu: %s" -#: ../src/daemon/main.c:879 +#: ../src/daemon/main.c:883 #, c-format msgid "Found %u CPUs." msgstr "NaÅ¡ao %u procesor(a)" -#: ../src/daemon/main.c:881 +#: ../src/daemon/main.c:885 #, c-format msgid "Page size is %lu bytes" msgstr "VeliÄina stranice je %lu bajtova" -#: ../src/daemon/main.c:884 +#: ../src/daemon/main.c:888 msgid "Compiled with Valgrind support: yes" msgstr "Kompajlirano sa podrÅ¡kom za Valgrind: da" -#: ../src/daemon/main.c:886 +#: ../src/daemon/main.c:890 msgid "Compiled with Valgrind support: no" msgstr "Kompajlirano sa podrÅ¡kom za Valgrind: ne" -#: ../src/daemon/main.c:889 +#: ../src/daemon/main.c:893 #, c-format msgid "Running in valgrind mode: %s" msgstr "Pokrenut u Valgrind režimu: %s" -#: ../src/daemon/main.c:892 +#: ../src/daemon/main.c:896 msgid "Optimized build: yes" msgstr "Optimizovana izgradnja: da" -#: ../src/daemon/main.c:894 +#: ../src/daemon/main.c:898 msgid "Optimized build: no" msgstr "Optimizovana izgradnja: ne" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:902 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG definisan, sva obaveÅ¡tenja iskljuÄena." -#: ../src/daemon/main.c:900 +#: ../src/daemon/main.c:904 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "FASTPATH definisan, samo obaveÅ¡tenja brze putanje iskljuÄena." -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:906 msgid "All asserts enabled." msgstr "Sva obaveÅ¡tenja omogućena." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:910 msgid "Failed to get machine ID" msgstr "NeuspeÅ¡no dobavljanje IB maÅ¡ine" -#: ../src/daemon/main.c:909 +#: ../src/daemon/main.c:913 #, c-format msgid "Machine ID is %s." msgstr "IB maÅ¡ine je %s." -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:917 #, fuzzy, c-format msgid "Session ID is %s." msgstr "IB maÅ¡ine je %s." -#: ../src/daemon/main.c:919 +#: ../src/daemon/main.c:923 #, c-format msgid "Using runtime directory %s." msgstr "Koristi se %s izvrÅ¡ni direktorijum." -#: ../src/daemon/main.c:924 +#: ../src/daemon/main.c:928 #, c-format msgid "Using state directory %s." msgstr "Koristi se %s direktorijum stanja." -#: ../src/daemon/main.c:927 +#: ../src/daemon/main.c:931 #, c-format msgid "Running in system mode: %s" msgstr "Pokrenuto u sistemskom režimu: %s" -#: ../src/daemon/main.c:942 +#: ../src/daemon/main.c:934 +msgid "" +"OK, so you are running PA in system mode. Please note that you most likely " +"shouldn't be doing that.\n" +"If you do it nonetheless then it's your own fault if things don't work as " +"expected.\n" +"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " +"explanation why system mode is usually a bad idea." +msgstr "" + +#: ../src/daemon/main.c:951 msgid "pa_pid_file_create() failed." msgstr "Neuspela funkcija pa_pid_file_create()." -#: ../src/daemon/main.c:954 +#: ../src/daemon/main.c:961 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "Dostupni su novi brojaÄi visoke rezolucije! Prijatno!" -#: ../src/daemon/main.c:956 +#: ../src/daemon/main.c:963 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -510,31 +488,31 @@ 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:970 +#: ../src/daemon/main.c:988 msgid "pa_core_new() failed." msgstr "Neuspela funkcija pa_core_new()." -#: ../src/daemon/main.c:1032 +#: ../src/daemon/main.c:1050 msgid "Failed to initialize daemon." msgstr "NeuspeÅ¡no pokretanje demona." -#: ../src/daemon/main.c:1037 +#: ../src/daemon/main.c:1055 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "Demon je pokrenut bez ijednog uÄitanog modula, odbija da radi." -#: ../src/daemon/main.c:1054 +#: ../src/daemon/main.c:1072 msgid "Daemon startup complete." msgstr "Pokretanje demona uspeÅ¡no." -#: ../src/daemon/main.c:1060 +#: ../src/daemon/main.c:1078 msgid "Daemon shutdown initiated." msgstr "Pokrenuto gaÅ¡enje demona." -#: ../src/daemon/main.c:1082 +#: ../src/daemon/main.c:1100 msgid "Daemon terminated." msgstr "Rad demona je prekinut." -#: ../src/daemon/cmdline.c:121 +#: ../src/daemon/cmdline.c:115 #, c-format msgid "" "%s [options]\n" @@ -685,15 +663,15 @@ msgstr "" " -n Ne uÄitavaj podrazumevanu datoteku " "skripte.\n" -#: ../src/daemon/cmdline.c:252 +#: ../src/daemon/cmdline.c:247 msgid "--daemonize expects boolean argument" msgstr "--daemonize oÄekuje logiÄku vrednost" -#: ../src/daemon/cmdline.c:259 +#: ../src/daemon/cmdline.c:254 msgid "--fail expects boolean argument" msgstr "--fail oÄekuje logiÄku vrednost" -#: ../src/daemon/cmdline.c:269 +#: ../src/daemon/cmdline.c:264 msgid "" "--log-level expects log level argument (either numeric in range 0..4 or one " "of debug, info, notice, warn, error)." @@ -701,53 +679,53 @@ msgstr "" "--log-level oÄekuje parametar za nivo opÅ¡irnosti (numeriÄka vrednost izmeÄ‘u " "0 i 4 ili jedno od: debug, info, notice, warn, error)." -#: ../src/daemon/cmdline.c:281 +#: ../src/daemon/cmdline.c:276 msgid "--high-priority expects boolean argument" msgstr "--high-priority oÄekuje logiÄku vrednost" -#: ../src/daemon/cmdline.c:288 +#: ../src/daemon/cmdline.c:283 msgid "--realtime expects boolean argument" msgstr "--realtime oÄekuje logiÄku vrednost" -#: ../src/daemon/cmdline.c:295 +#: ../src/daemon/cmdline.c:290 msgid "--disallow-module-loading expects boolean argument" msgstr "--disallow-module-loading oÄekuje logiÄku vrednost" -#: ../src/daemon/cmdline.c:302 +#: ../src/daemon/cmdline.c:297 msgid "--disallow-exit expects boolean argument" msgstr "--disallow-exit oÄekuje logiÄku vrednost" -#: ../src/daemon/cmdline.c:309 +#: ../src/daemon/cmdline.c:304 msgid "--use-pid-file expects boolean argument" msgstr "--use-pid-file oÄekuje logiÄku vrednost" -#: ../src/daemon/cmdline.c:326 +#: ../src/daemon/cmdline.c:321 msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgstr "" "Neispravan ciljni dnevnik: koristite jedno od „syslog“, „stderr“ ili „auto“." -#: ../src/daemon/cmdline.c:333 +#: ../src/daemon/cmdline.c:328 msgid "--log-time expects boolean argument" msgstr "--log-time oÄekuje logiÄku vrednost" -#: ../src/daemon/cmdline.c:340 +#: ../src/daemon/cmdline.c:335 msgid "--log-meta expects boolean argument" msgstr "--log-meta oÄekuje logiÄku vrednost" -#: ../src/daemon/cmdline.c:359 +#: ../src/daemon/cmdline.c:354 #, c-format msgid "Invalid resample method '%s'." msgstr "Neispravan naÄin diskretizacije „%s“." -#: ../src/daemon/cmdline.c:366 +#: ../src/daemon/cmdline.c:361 msgid "--system expects boolean argument" msgstr "--system oÄekuje logiÄku vrednost" -#: ../src/daemon/cmdline.c:373 +#: ../src/daemon/cmdline.c:368 msgid "--no-cpu-limit expects boolean argument" msgstr "--no-cpu-limit oÄekuje logiÄku vrednost" -#: ../src/daemon/cmdline.c:380 +#: ../src/daemon/cmdline.c:375 msgid "--disable-shm expects boolean argument" msgstr "--disable-shm oÄekuje logiÄku vrednost" @@ -786,77 +764,82 @@ msgstr "Upotreba: %s\n" msgid "Load Once: %s\n" msgstr "UÄitaj jednom: %s\n" -#: ../src/daemon/dumpmodules.c:77 +#: ../src/daemon/dumpmodules.c:75 +#, c-format +msgid "DEPRECATION WARNING: %s\n" +msgstr "" + +#: ../src/daemon/dumpmodules.c:79 #, c-format msgid "Path: %s\n" msgstr "Putanja: %s\n" -#: ../src/daemon/daemon-conf.c:215 +#: ../src/daemon/daemon-conf.c:216 #, c-format msgid "[%s:%u] Invalid log target '%s'." msgstr "[%s:%u] Neispravan ciljni dnevnik „%s“." -#: ../src/daemon/daemon-conf.c:231 +#: ../src/daemon/daemon-conf.c:232 #, c-format msgid "[%s:%u] Invalid log level '%s'." msgstr "[%s:%u] Neispravan nivo opÅ¡irnosti u dnevniku „%s“." -#: ../src/daemon/daemon-conf.c:247 +#: ../src/daemon/daemon-conf.c:248 #, c-format msgid "[%s:%u] Invalid resample method '%s'." msgstr "[%s:%u] Neispravan naÄin diskretizacije „%s“." -#: ../src/daemon/daemon-conf.c:270 +#: ../src/daemon/daemon-conf.c:271 #, c-format msgid "[%s:%u] Invalid rlimit '%s'." msgstr "[%s:%u] Neispravan rlimit „%s“." -#: ../src/daemon/daemon-conf.c:277 +#: ../src/daemon/daemon-conf.c:278 #, c-format msgid "[%s:%u] rlimit not supported on this platform." msgstr "[%s:%u] rlimit nije podržan na ovoj platformi." -#: ../src/daemon/daemon-conf.c:293 +#: ../src/daemon/daemon-conf.c:294 #, c-format msgid "[%s:%u] Invalid sample format '%s'." msgstr "[%s:%u] Neispravan format uzorka „%s“." -#: ../src/daemon/daemon-conf.c:311 +#: ../src/daemon/daemon-conf.c:312 #, c-format msgid "[%s:%u] Invalid sample rate '%s'." msgstr "[%s:%u] Neispravna uÄestanost diskretizacije „%s“." -#: ../src/daemon/daemon-conf.c:335 +#: ../src/daemon/daemon-conf.c:336 #, c-format msgid "[%s:%u] Invalid sample channels '%s'." msgstr "[%s:%u] Neispravni kanali uzorka „%s“." -#: ../src/daemon/daemon-conf.c:353 +#: ../src/daemon/daemon-conf.c:354 #, c-format msgid "[%s:%u] Invalid channel map '%s'." msgstr "[%s:%u] Neispravna mapa kanala „%s“." -#: ../src/daemon/daemon-conf.c:371 +#: ../src/daemon/daemon-conf.c:372 #, c-format msgid "[%s:%u] Invalid number of fragments '%s'." msgstr "[%s:%u] Neispravan broj odlomaka „%s“." -#: ../src/daemon/daemon-conf.c:389 +#: ../src/daemon/daemon-conf.c:390 #, c-format msgid "[%s:%u] Invalid fragment size '%s'." msgstr "[%s:%u] Neispravna veliÄina odlomka „%s“." -#: ../src/daemon/daemon-conf.c:407 +#: ../src/daemon/daemon-conf.c:408 #, c-format msgid "[%s:%u] Invalid nice level '%s'." msgstr "[%s:%u] Neispravan nivo prioriteta „%s“." -#: ../src/daemon/daemon-conf.c:522 +#: ../src/daemon/daemon-conf.c:524 #, c-format msgid "Failed to open configuration file: %s" msgstr "Neuspelo otvaranje datoteke podeÅ¡avanja: %s" -#: ../src/daemon/daemon-conf.c:538 +#: ../src/daemon/daemon-conf.c:540 msgid "" "The specified default channel map has a different number of channels than " "the specified default number of channels." @@ -909,237 +892,237 @@ msgstr "" "Sistemska politika spreÄava PulseAudiu da dobije stvarnovremensko " "rasporeÄ‘ivanje." -#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804 +#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Mono" -#: ../src/pulse/channelmap.c:105 +#: ../src/pulse/channelmap.c:107 msgid "Front Center" msgstr "Prednji centralni" -#: ../src/pulse/channelmap.c:106 +#: ../src/pulse/channelmap.c:108 msgid "Front Left" msgstr "Prednji levi" -#: ../src/pulse/channelmap.c:107 +#: ../src/pulse/channelmap.c:109 msgid "Front Right" msgstr "Prednji desni" -#: ../src/pulse/channelmap.c:109 +#: ../src/pulse/channelmap.c:111 msgid "Rear Center" msgstr "Pozadinski centralni" -#: ../src/pulse/channelmap.c:110 +#: ../src/pulse/channelmap.c:112 msgid "Rear Left" msgstr "Pozadinski levi" -#: ../src/pulse/channelmap.c:111 +#: ../src/pulse/channelmap.c:113 msgid "Rear Right" msgstr "Pozadinski desni" -#: ../src/pulse/channelmap.c:113 +#: ../src/pulse/channelmap.c:115 msgid "Low Frequency Emmiter" msgstr "ZvuÄnik za niske frekvencije" -#: ../src/pulse/channelmap.c:115 +#: ../src/pulse/channelmap.c:117 msgid "Front Left-of-center" msgstr "Prednji levo od centra" -#: ../src/pulse/channelmap.c:116 +#: ../src/pulse/channelmap.c:118 msgid "Front Right-of-center" msgstr "Prednji desno od centra" -#: ../src/pulse/channelmap.c:118 +#: ../src/pulse/channelmap.c:120 msgid "Side Left" msgstr "Leva strana" -#: ../src/pulse/channelmap.c:119 +#: ../src/pulse/channelmap.c:121 msgid "Side Right" msgstr "Desna strana" -#: ../src/pulse/channelmap.c:121 +#: ../src/pulse/channelmap.c:123 msgid "Auxiliary 0" msgstr "Sporedni 0" -#: ../src/pulse/channelmap.c:122 +#: ../src/pulse/channelmap.c:124 msgid "Auxiliary 1" msgstr "Sporedni 1" -#: ../src/pulse/channelmap.c:123 +#: ../src/pulse/channelmap.c:125 msgid "Auxiliary 2" msgstr "Sporedni 2" -#: ../src/pulse/channelmap.c:124 +#: ../src/pulse/channelmap.c:126 msgid "Auxiliary 3" msgstr "Sporedni 3" -#: ../src/pulse/channelmap.c:125 +#: ../src/pulse/channelmap.c:127 msgid "Auxiliary 4" msgstr "Sporedni 4" -#: ../src/pulse/channelmap.c:126 +#: ../src/pulse/channelmap.c:128 msgid "Auxiliary 5" msgstr "Sporedni 5" -#: ../src/pulse/channelmap.c:127 +#: ../src/pulse/channelmap.c:129 msgid "Auxiliary 6" msgstr "Sporedni 6" -#: ../src/pulse/channelmap.c:128 +#: ../src/pulse/channelmap.c:130 msgid "Auxiliary 7" msgstr "Sporedni 7" -#: ../src/pulse/channelmap.c:129 +#: ../src/pulse/channelmap.c:131 msgid "Auxiliary 8" msgstr "Sporedni 8" -#: ../src/pulse/channelmap.c:130 +#: ../src/pulse/channelmap.c:132 msgid "Auxiliary 9" msgstr "Sporedni 9" -#: ../src/pulse/channelmap.c:131 +#: ../src/pulse/channelmap.c:133 msgid "Auxiliary 10" msgstr "Sporedni 10" -#: ../src/pulse/channelmap.c:132 +#: ../src/pulse/channelmap.c:134 msgid "Auxiliary 11" msgstr "Sporedni 11" -#: ../src/pulse/channelmap.c:133 +#: ../src/pulse/channelmap.c:135 msgid "Auxiliary 12" msgstr "Sporedni 12" -#: ../src/pulse/channelmap.c:134 +#: ../src/pulse/channelmap.c:136 msgid "Auxiliary 13" msgstr "Sporedni 13" -#: ../src/pulse/channelmap.c:135 +#: ../src/pulse/channelmap.c:137 msgid "Auxiliary 14" msgstr "Sporedni 14" -#: ../src/pulse/channelmap.c:136 +#: ../src/pulse/channelmap.c:138 msgid "Auxiliary 15" msgstr "Sporedni 15" -#: ../src/pulse/channelmap.c:137 +#: ../src/pulse/channelmap.c:139 msgid "Auxiliary 16" msgstr "Sporedni 16" -#: ../src/pulse/channelmap.c:138 +#: ../src/pulse/channelmap.c:140 msgid "Auxiliary 17" msgstr "Sporedni 17" -#: ../src/pulse/channelmap.c:139 +#: ../src/pulse/channelmap.c:141 msgid "Auxiliary 18" msgstr "Sporedni 18" -#: ../src/pulse/channelmap.c:140 +#: ../src/pulse/channelmap.c:142 msgid "Auxiliary 19" msgstr "Sporedni 19" -#: ../src/pulse/channelmap.c:141 +#: ../src/pulse/channelmap.c:143 msgid "Auxiliary 20" msgstr "Sporedni 20" -#: ../src/pulse/channelmap.c:142 +#: ../src/pulse/channelmap.c:144 msgid "Auxiliary 21" msgstr "Sporedni 21" -#: ../src/pulse/channelmap.c:143 +#: ../src/pulse/channelmap.c:145 msgid "Auxiliary 22" msgstr "Sporedni 22" -#: ../src/pulse/channelmap.c:144 +#: ../src/pulse/channelmap.c:146 msgid "Auxiliary 23" msgstr "Sporedni 23" -#: ../src/pulse/channelmap.c:145 +#: ../src/pulse/channelmap.c:147 msgid "Auxiliary 24" msgstr "Sporedni 024" -#: ../src/pulse/channelmap.c:146 +#: ../src/pulse/channelmap.c:148 msgid "Auxiliary 25" msgstr "Sporedni 25" -#: ../src/pulse/channelmap.c:147 +#: ../src/pulse/channelmap.c:149 msgid "Auxiliary 26" msgstr "Sporedni 26" -#: ../src/pulse/channelmap.c:148 +#: ../src/pulse/channelmap.c:150 msgid "Auxiliary 27" msgstr "Sporedni 27" -#: ../src/pulse/channelmap.c:149 +#: ../src/pulse/channelmap.c:151 msgid "Auxiliary 28" msgstr "Sporedni 28" -#: ../src/pulse/channelmap.c:150 +#: ../src/pulse/channelmap.c:152 msgid "Auxiliary 29" msgstr "Sporedni 29" -#: ../src/pulse/channelmap.c:151 +#: ../src/pulse/channelmap.c:153 msgid "Auxiliary 30" msgstr "Sporedni 30" -#: ../src/pulse/channelmap.c:152 +#: ../src/pulse/channelmap.c:154 msgid "Auxiliary 31" msgstr "Sporedni 31" -#: ../src/pulse/channelmap.c:154 +#: ../src/pulse/channelmap.c:156 msgid "Top Center" msgstr "Gornji centralni" -#: ../src/pulse/channelmap.c:156 +#: ../src/pulse/channelmap.c:158 msgid "Top Front Center" msgstr "Gornji prednji centralni" -#: ../src/pulse/channelmap.c:157 +#: ../src/pulse/channelmap.c:159 msgid "Top Front Left" msgstr "Gornji prednji levi" -#: ../src/pulse/channelmap.c:158 +#: ../src/pulse/channelmap.c:160 msgid "Top Front Right" msgstr "Gornji prednji desni" -#: ../src/pulse/channelmap.c:160 +#: ../src/pulse/channelmap.c:162 msgid "Top Rear Center" msgstr "Gornji pozadinski centralni" -#: ../src/pulse/channelmap.c:161 +#: ../src/pulse/channelmap.c:163 msgid "Top Rear Left" msgstr "Gornji pozadinski levi" -#: ../src/pulse/channelmap.c:162 +#: ../src/pulse/channelmap.c:164 msgid "Top Rear Right" msgstr "Gornji pozadinski desni" -#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167 -#: ../src/pulse/volume.c:170 ../src/pulse/volume.c:196 -#: ../src/pulse/volume.c:216 ../src/pulse/volume.c:246 +#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167 +#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265 +#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315 msgid "(invalid)" msgstr "(neispravno)" -#: ../src/pulse/channelmap.c:808 +#: ../src/pulse/channelmap.c:751 msgid "Stereo" msgstr "Stereo" -#: ../src/pulse/channelmap.c:813 +#: ../src/pulse/channelmap.c:756 msgid "Surround 4.0" msgstr "Okružujući 4.0" -#: ../src/pulse/channelmap.c:819 +#: ../src/pulse/channelmap.c:762 msgid "Surround 4.1" msgstr "Okružujući 4.1" -#: ../src/pulse/channelmap.c:825 +#: ../src/pulse/channelmap.c:768 msgid "Surround 5.0" msgstr "Okružujući 5.0" -#: ../src/pulse/channelmap.c:831 +#: ../src/pulse/channelmap.c:774 msgid "Surround 5.1" msgstr "Okružujući 5.1" -#: ../src/pulse/channelmap.c:838 +#: ../src/pulse/channelmap.c:781 msgid "Surround 7.1" msgstr "Okružujući 7.1" @@ -1301,174 +1284,169 @@ msgstr "waitpid(): %s" msgid "Received message for unknown extension '%s'" msgstr "Primio poruku za nepoznati lokal „%s“" -#: ../src/utils/pacat.c:94 +#: ../src/utils/pacat.c:107 +#, c-format +msgid "Failed to drain stream: %s\n" +msgstr "NeuspeÅ¡no isuÅ¡ivanje toka: %s\n" + +#: ../src/utils/pacat.c:112 +msgid "Playback stream drained.\n" +msgstr "Reprodukcioni tok isuÅ¡en.\n" + +#: ../src/utils/pacat.c:122 +msgid "Draining connection to server.\n" +msgstr "Veza do servera se isuÅ¡uje.\n" + +#: ../src/utils/pacat.c:135 +#, c-format +msgid "pa_stream_drain(): %s\n" +msgstr "pa_stream_drain(): %s\n" + +#: ../src/utils/pacat.c:158 #, c-format msgid "pa_stream_write() failed: %s\n" msgstr "Neuspela funkcija pa_stream_write(): %s\n" -#: ../src/utils/pacat.c:133 +#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 #, c-format msgid "pa_stream_peek() failed: %s\n" msgstr "Neuspela funkcija pa_stream_peek(): %s\n" -#: ../src/utils/pacat.c:169 -#, c-format +#: ../src/utils/pacat.c:302 msgid "Stream successfully created.\n" msgstr "Tok uspeÅ¡no napravljen.\n" -#: ../src/utils/pacat.c:172 +#: ../src/utils/pacat.c:305 #, c-format msgid "pa_stream_get_buffer_attr() failed: %s\n" msgstr "NeuspeÅ¡no pa_stream_get_buffer_attr(): %s\n" -#: ../src/utils/pacat.c:176 +#: ../src/utils/pacat.c:309 #, c-format msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgstr "Metrike bafera: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:179 +#: ../src/utils/pacat.c:312 #, c-format msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgstr "Metrike bafera: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:183 +#: ../src/utils/pacat.c:316 #, c-format msgid "Using sample spec '%s', channel map '%s'.\n" msgstr "Koristim sledeće parametre uzorka „%s“ i mapu kanala „%s“.\n" -#: ../src/utils/pacat.c:187 +#: ../src/utils/pacat.c:320 #, c-format msgid "Connected to device %s (%u, %ssuspended).\n" msgstr "PrikljuÄen na ureÄ‘aj %s (%u, %s obustavljeno).\n" -#: ../src/utils/pacat.c:197 +#: ../src/utils/pacat.c:330 #, c-format msgid "Stream error: %s\n" msgstr "GreÅ¡ka toka: %s\n" -#: ../src/utils/pacat.c:207 +#: ../src/utils/pacat.c:340 #, c-format msgid "Stream device suspended.%s \n" msgstr "UreÄ‘aj toka obustavljen.%s\n" -#: ../src/utils/pacat.c:209 +#: ../src/utils/pacat.c:342 #, c-format msgid "Stream device resumed.%s \n" msgstr "UreÄ‘aj toka nastavljen.%s \n" -#: ../src/utils/pacat.c:217 +#: ../src/utils/pacat.c:350 #, c-format msgid "Stream underrun.%s \n" msgstr "Tok nije popunjen. %s \n" -#: ../src/utils/pacat.c:224 +#: ../src/utils/pacat.c:357 #, c-format msgid "Stream overrun.%s \n" msgstr "Tok se preliva.%s \n" -#: ../src/utils/pacat.c:231 +#: ../src/utils/pacat.c:364 #, c-format msgid "Stream started.%s \n" msgstr "Tok pokrenut. %s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 #, c-format msgid "Stream moved to device %s (%u, %ssuspended).%s \n" msgstr "Tok prebaÄen na ureÄ‘aj %s (%u, %s obustavljeno). %s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 msgid "not " msgstr "nije" -#: ../src/utils/pacat.c:245 +#: ../src/utils/pacat.c:378 #, c-format msgid "Stream buffer attributes changed.%s \n" msgstr "Parametri bafera toka su promenjeni. %s \n" -#: ../src/utils/pacat.c:278 +#: ../src/utils/pacat.c:411 #, c-format msgid "Connection established.%s \n" msgstr "Veza uspostavljena.%s \n" -#: ../src/utils/pacat.c:281 +#: ../src/utils/pacat.c:414 #, c-format msgid "pa_stream_new() failed: %s\n" msgstr "Neuspela funkcija pa_stream_new() : %s\n" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:442 #, c-format msgid "pa_stream_connect_playback() failed: %s\n" msgstr "Neuspela funkcija pa_stream_connect_playback(): %s\n" -#: ../src/utils/pacat.c:315 +#: ../src/utils/pacat.c:448 #, c-format msgid "pa_stream_connect_record() failed: %s\n" msgstr "Neuspela funkcija pa_stream_connect_record(): %s\n" -#: ../src/utils/pacat.c:329 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:762 ../src/utils/paplay.c:183 +#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 #, c-format msgid "Connection failure: %s\n" msgstr "NeuspeÅ¡no povezivanje: %s\n" -#: ../src/utils/pacat.c:349 ../src/utils/paplay.c:75 -#, c-format -msgid "Failed to drain stream: %s\n" -msgstr "NeuspeÅ¡no isuÅ¡ivanje toka: %s\n" - -#: ../src/utils/pacat.c:354 ../src/utils/paplay.c:80 -#, c-format -msgid "Playback stream drained.\n" -msgstr "Reprodukcioni tok isuÅ¡en.\n" - -#: ../src/utils/pacat.c:364 ../src/utils/paplay.c:92 -#, c-format -msgid "Draining connection to server.\n" -msgstr "Veza do servera se isuÅ¡uje.\n" - -#: ../src/utils/pacat.c:390 -#, c-format +#: ../src/utils/pacat.c:495 msgid "Got EOF.\n" msgstr "DoÅ¡ao do kraja datoteke.\n" -#: ../src/utils/pacat.c:396 -#, c-format -msgid "pa_stream_drain(): %s\n" -msgstr "pa_stream_drain(): %s\n" - -#: ../src/utils/pacat.c:406 +#: ../src/utils/pacat.c:500 #, c-format msgid "read() failed: %s\n" msgstr "Neuspela funkcija read(): %s\n" -#: ../src/utils/pacat.c:438 +#: ../src/utils/pacat.c:532 #, c-format msgid "write() failed: %s\n" msgstr "Neuspela funkcija write(): %s\n" -#: ../src/utils/pacat.c:459 -#, c-format +#: ../src/utils/pacat.c:553 msgid "Got signal, exiting.\n" msgstr "Dobio signal, izlazim.\n" -#: ../src/utils/pacat.c:473 +#: ../src/utils/pacat.c:567 #, c-format msgid "Failed to get latency: %s\n" msgstr "Nemogu dobiti vrednost kaÅ¡njenja: %s\n" -#: ../src/utils/pacat.c:478 +#: ../src/utils/pacat.c:572 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "Vreme: %0.3f s. KaÅ¡njenje: %0.0f μs. \r" -#: ../src/utils/pacat.c:498 +#: ../src/utils/pacat.c:592 #, c-format msgid "pa_stream_update_timing_info() failed: %s\n" 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 -#: ../src/utils/pacat.c:511 -#, c-format +#: ../src/utils/pacat.c:605 +#, fuzzy, c-format msgid "" "%s [options]\n" "\n" @@ -1494,8 +1472,10 @@ msgid "" "44100)\n" " --format=SAMPLEFORMAT The sample type, one of s16le, " "s16be, u8, float32le,\n" -" float32be, ulaw, alaw, s32le, s32be " -"(defaults to s16ne)\n" +" float32be, ulaw, alaw, s32le, s32be, " +"s24le, s24be,\n" +" s24-32le, s24-32be (defaults to " +"s16ne)\n" " --channels=CHANNELS The number of channels, 1 for mono, " "2 for stereo\n" " (defaults to 2)\n" @@ -1518,6 +1498,11 @@ msgid "" "bytes.\n" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" +" --property=PROPERTY=VALUE Set the specified property to the " +"specified value.\n" +" --raw Record/play raw PCM data.\n" +" --file-format=FFORMAT Record/play formatted PCM data.\n" +" --list-file-formats List available file formats.\n" msgstr "" "%s[opcije]\n" "\n" @@ -1565,7 +1550,7 @@ msgstr "" " --process-time=BAJTOVA Traži navedeno vreme procesa po " "zahtevu u bajtovima.\n" -#: ../src/utils/pacat.c:612 +#: ../src/utils/pacat.c:727 #, c-format msgid "" "pacat %s\n" @@ -1576,88 +1561,133 @@ msgstr "" "Kompajlirano sa libpulse %s\n" "Povezano sa libpulse %s\n" -#: ../src/utils/pacat.c:669 +#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "Neispravna mapa kanala „%s“\n" + +#: ../src/utils/pacat.c:776 +#, fuzzy, c-format +msgid "Invalid stream name '%s'\n" +msgstr "Neispravan naÄin diskretizacije „%s“." + +#: ../src/utils/pacat.c:813 #, c-format msgid "Invalid channel map '%s'\n" msgstr "Neispravna mapa kanala „%s“\n" -#: ../src/utils/pacat.c:698 +#: ../src/utils/pacat.c:842 #, c-format msgid "Invalid latency specification '%s'\n" msgstr "Neispravan parametar kaÅ¡njenja „%s“\n" -#: ../src/utils/pacat.c:705 +#: ../src/utils/pacat.c:849 #, c-format msgid "Invalid process time specification '%s'\n" msgstr "Neispravan parametar za vreme procesa „%s“\n" -#: ../src/utils/pacat.c:716 +#: ../src/utils/pacat.c:861 +#, fuzzy, c-format +msgid "Invalid property '%s'\n" +msgstr "Neispravan naÄin diskretizacije „%s“." + +#: ../src/utils/pacat.c:878 #, c-format +msgid "Unknown file format %s." +msgstr "" + +#: ../src/utils/pacat.c:897 msgid "Invalid sample specification\n" msgstr "Neispravni parametri uzorka\n" -#: ../src/utils/pacat.c:721 +#: ../src/utils/pacat.c:907 +#, c-format +msgid "open(): %s\n" +msgstr "open(): %s\n" + +#: ../src/utils/pacat.c:912 #, c-format +msgid "dup2(): %s\n" +msgstr "dup2(): %s\n" + +#: ../src/utils/pacat.c:919 +msgid "Too many arguments.\n" +msgstr "PreviÅ¡e parametara.\n" + +#: ../src/utils/pacat.c:930 +#, fuzzy +msgid "Failed to generate sample specification for file.\n" +msgstr "Nije uspelo dobavljanje podataka o uzorku: %s\n" + +#: ../src/utils/pacat.c:950 +#, fuzzy +msgid "Failed to open audio file.\n" +msgstr "Nije uspelo otvaranje zvuÄne datoteke.\n" + +#: ../src/utils/pacat.c:956 +msgid "" +"Warning: specified sample specification will be overwritten with " +"specification from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "Nije uspelo dobavljanje podataka o uzorku: %s\n" + +#: ../src/utils/pacat.c:968 +msgid "Warning: Failed to determine channel map from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:979 msgid "Channel map doesn't match sample specification\n" msgstr "Mapa kanala se ne poklapa sa parametrima uzorka\n" -#: ../src/utils/pacat.c:728 -#, c-format -msgid "Opening a %s stream with sample specification '%s'.\n" +#: ../src/utils/pacat.c:990 +msgid "Warning: failed to write channel map to file.\n" +msgstr "" + +#: ../src/utils/pacat.c:1005 +#, fuzzy, c-format +msgid "" +"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" msgstr "Otvaram tok %s sa sledećim parametrima uzorka „%s“.\n" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "recording" msgstr "snima" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "playback" msgstr "puÅ¡ta" -#: ../src/utils/pacat.c:736 -#, c-format -msgid "open(): %s\n" -msgstr "open(): %s\n" - -#: ../src/utils/pacat.c:741 -#, c-format -msgid "dup2(): %s\n" -msgstr "dup2(): %s\n" - -#: ../src/utils/pacat.c:751 -#, c-format -msgid "Too many arguments.\n" -msgstr "PreviÅ¡e parametara.\n" - -#: ../src/utils/pacat.c:764 ../src/utils/pasuspender.c:280 -#: ../src/utils/pactl.c:1017 ../src/utils/paplay.c:381 +#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 +#: ../src/utils/pactl.c:1104 #, c-format msgid "pa_mainloop_new() failed.\n" msgstr "Neuspela funkcija pa_mainloop_new().\n" -#: ../src/utils/pacat.c:785 -#, c-format +#: ../src/utils/pacat.c:1051 msgid "io_new() failed.\n" msgstr "Neuspela funkcija io_new() \n" -#: ../src/utils/pacat.c:791 ../src/utils/pasuspender.c:293 -#: ../src/utils/pactl.c:1031 ../src/utils/paplay.c:396 +#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 +#: ../src/utils/pactl.c:1116 #, c-format msgid "pa_context_new() failed.\n" msgstr "Neuspela funkcija pa_context_new().\n" -#: ../src/utils/pacat.c:799 +#: ../src/utils/pacat.c:1066 #, fuzzy, c-format msgid "pa_context_connect() failed: %s\n" msgstr "Neuspela funkcija pa_context_connect(): %s" -#: ../src/utils/pacat.c:810 -#, c-format +#: ../src/utils/pacat.c:1077 msgid "time_new() failed.\n" msgstr "Neuspela funkcija time_new() \n" -#: ../src/utils/pacat.c:817 ../src/utils/pasuspender.c:301 -#: ../src/utils/pactl.c:1042 ../src/utils/paplay.c:410 +#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 +#: ../src/utils/pactl.c:1127 #, c-format msgid "pa_mainloop_run() failed.\n" msgstr "Neuspela funkcija pa_mainloop_run().\n" @@ -1687,8 +1717,7 @@ msgstr "NeuspeÅ¡no nastavljanje: %s\n" msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "UPOZORENJE: ZvuÄni server nije lokalni, ne zaustavljam.\n" -#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:768 -#: ../src/utils/paplay.c:191 +#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" msgstr "Dobih SIGINT, izlazim.\n" @@ -1716,7 +1745,7 @@ msgstr "" " -s, --server=SERVER Ime servera sa kojim se povezuje\n" "\n" -#: ../src/utils/pasuspender.c:251 +#: ../src/utils/pasuspender.c:248 #, c-format msgid "" "pasuspender %s\n" @@ -1727,32 +1756,32 @@ msgstr "" "Kompajlirano sa libpulse %s\n" "Povezano sa libpulse %s\n" -#: ../src/utils/pactl.c:108 +#: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" msgstr "NeuspeÅ¡no dobavljanje statistike: %s\n" -#: ../src/utils/pactl.c:114 +#: ../src/utils/pactl.c:134 #, c-format msgid "Currently in use: %u blocks containing %s bytes total.\n" msgstr "Trenutno u upotrebi: %u blokova sadrži ukupno %s bajtova.\n" -#: ../src/utils/pactl.c:117 +#: ../src/utils/pactl.c:137 #, c-format msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n" msgstr "SmeÅ¡teno od pokretanja: %u blokova sadrži ukupno %s bajtova.\n" -#: ../src/utils/pactl.c:120 +#: ../src/utils/pactl.c:140 #, c-format msgid "Sample cache size: %s\n" msgstr "VeliÄina keÅ¡ memorije uzorka: %s\n" -#: ../src/utils/pactl.c:129 +#: ../src/utils/pactl.c:149 #, c-format msgid "Failed to get server information: %s\n" msgstr "NeuspeÅ¡no dobijanje podataka o serveru: %s\n" -#: ../src/utils/pactl.c:137 +#: ../src/utils/pactl.c:157 #, c-format msgid "" "User name: %s\n" @@ -1775,12 +1804,12 @@ msgstr "" "Podrazumevani izvor: %s\n" "KolaÄić: %08x\n" -#: ../src/utils/pactl.c:178 +#: ../src/utils/pactl.c:198 #, c-format msgid "Failed to get sink information: %s\n" msgstr "NeuspeÅ¡no dobijanje podataka o slivniku: %s\n" -#: ../src/utils/pactl.c:194 +#: ../src/utils/pactl.c:214 #, c-format msgid "" "Sink #%u\n" @@ -1819,12 +1848,22 @@ msgstr "" "\tSvojstva:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:258 +#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 +#, fuzzy, c-format +msgid "\tPorts:\n" +msgstr "\tProfili:\n" + +#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 +#, fuzzy, c-format +msgid "\tActive Port: %s\n" +msgstr "\tAktivni profil: %s\n" + +#: ../src/utils/pactl.c:290 #, c-format msgid "Failed to get source information: %s\n" msgstr "Nije uspelo dobavljanje podataka o izvoru: %s\n" -#: ../src/utils/pactl.c:274 +#: ../src/utils/pactl.c:306 #, c-format msgid "" "Source #%u\n" @@ -1863,20 +1902,20 @@ msgstr "" "\tSvojstva:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:306 ../src/utils/pactl.c:350 ../src/utils/pactl.c:385 -#: ../src/utils/pactl.c:422 ../src/utils/pactl.c:481 ../src/utils/pactl.c:482 -#: ../src/utils/pactl.c:492 ../src/utils/pactl.c:536 ../src/utils/pactl.c:537 -#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:586 ../src/utils/pactl.c:587 -#: ../src/utils/pactl.c:594 +#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429 +#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526 +#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581 +#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631 +#: ../src/utils/pactl.c:638 msgid "n/a" msgstr "nepoznato" -#: ../src/utils/pactl.c:324 +#: ../src/utils/pactl.c:368 #, c-format msgid "Failed to get module information: %s\n" msgstr "NeuspeÅ¡no dobijanje podataka o modulu: %s\n" -#: ../src/utils/pactl.c:342 +#: ../src/utils/pactl.c:386 #, c-format msgid "" "Module #%u\n" @@ -1893,12 +1932,12 @@ msgstr "" "\tSvojstva:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:361 +#: ../src/utils/pactl.c:405 #, c-format msgid "Failed to get client information: %s\n" msgstr "NeuspeÅ¡no dobijanje podataka o klijentu: %s\n" -#: ../src/utils/pactl.c:379 +#: ../src/utils/pactl.c:423 #, c-format msgid "" "Client #%u\n" @@ -1913,12 +1952,12 @@ msgstr "" "\tSvojstva:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:396 +#: ../src/utils/pactl.c:440 #, c-format msgid "Failed to get card information: %s\n" msgstr "NeuspeÅ¡no dobijanje podataka o kartici: %s\n" -#: ../src/utils/pactl.c:414 +#: ../src/utils/pactl.c:458 #, c-format msgid "" "Card #%u\n" @@ -1935,22 +1974,22 @@ msgstr "" "\tSvojstva:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:428 +#: ../src/utils/pactl.c:472 #, c-format msgid "\tProfiles:\n" msgstr "\tProfili:\n" -#: ../src/utils/pactl.c:434 +#: ../src/utils/pactl.c:478 #, c-format msgid "\tActive Profile: %s\n" msgstr "\tAktivni profil: %s\n" -#: ../src/utils/pactl.c:445 +#: ../src/utils/pactl.c:489 #, c-format msgid "Failed to get sink input information: %s\n" msgstr "Nije uspelo dobijanje podataka o ulazu slivnika: %s\n" -#: ../src/utils/pactl.c:464 +#: ../src/utils/pactl.c:508 #, c-format msgid "" "Sink Input #%u\n" @@ -1987,12 +2026,12 @@ msgstr "" "\tSvojstva:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:503 +#: ../src/utils/pactl.c:547 #, c-format msgid "Failed to get source output information: %s\n" msgstr "Nije uspelo dobijanje podataka o izlazu izvora: %s\n" -#: ../src/utils/pactl.c:523 +#: ../src/utils/pactl.c:567 #, c-format msgid "" "Source Output #%u\n" @@ -2021,12 +2060,12 @@ msgstr "" "\tSvojstva:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:554 +#: ../src/utils/pactl.c:598 #, c-format msgid "Failed to get sample information: %s\n" msgstr "Nije uspelo dobavljanje podataka o uzorku: %s\n" -#: ../src/utils/pactl.c:572 +#: ../src/utils/pactl.c:616 #, c-format msgid "" "Sample #%u\n" @@ -2057,23 +2096,22 @@ msgstr "" "\tSvojstva:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:602 ../src/utils/pactl.c:612 +#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 #, c-format msgid "Failure: %s\n" msgstr "Neuspeh: %s\n" -#: ../src/utils/pactl.c:636 +#: ../src/utils/pactl.c:680 #, c-format msgid "Failed to upload sample: %s\n" msgstr "Nije uspelo uÄitavanje uzorka: %s\n" -#: ../src/utils/pactl.c:653 -#, c-format +#: ../src/utils/pactl.c:697 msgid "Premature end of file\n" msgstr "Prerani kraj datoteke\n" -#: ../src/utils/pactl.c:774 -#, c-format +#: ../src/utils/pactl.c:826 +#, fuzzy, c-format msgid "" "%s [options] stat\n" "%s [options] list\n" @@ -2088,6 +2126,8 @@ msgid "" "%s [options] suspend-sink [SINK] 1|0\n" "%s [options] suspend-source [SOURCE] 1|0\n" "%s [options] set-card-profile [CARD] [PROFILE] \n" +"%s [options] set-sink-port [SINK] [PORT] \n" +"%s [options] set-source-port [SOURCE] [PORT] \n" "\n" " -h, --help Show this help\n" " --version Show version\n" @@ -2119,7 +2159,7 @@ msgstr "" " -n, --client-name=IME Kako nazvati ovog klijenta na " "serveru\n" -#: ../src/utils/pactl.c:826 +#: ../src/utils/pactl.c:880 #, c-format msgid "" "pactl %s\n" @@ -2130,71 +2170,74 @@ msgstr "" "Kompajlirano sa libpulse %s\n" "Povezano sa libpulse %s\n" -#: ../src/utils/pactl.c:865 -#, c-format +#: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "Navedite datoteku uzorka koju treba uÄitati\n" -#: ../src/utils/pactl.c:887 -#, c-format +#: ../src/utils/pactl.c:939 msgid "Failed to open sound file.\n" msgstr "Nije uspelo otvaranje zvuÄne datoteke.\n" -#: ../src/utils/pactl.c:899 -#, c-format +#: ../src/utils/pactl.c:951 +#, fuzzy +msgid "Warning: Failed to determine sample specification from file.\n" +msgstr "Otvaram tok %s sa sledećim parametrima uzorka „%s“.\n" + +#: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" msgstr "Morate navesti ime uzorka kojeg želite pustiti\n" -#: ../src/utils/pactl.c:911 -#, c-format +#: ../src/utils/pactl.c:973 msgid "You have to specify a sample name to remove\n" msgstr "Morate navesti ime uzorka kojeg želite ukloniti\n" -#: ../src/utils/pactl.c:919 -#, c-format +#: ../src/utils/pactl.c:982 msgid "You have to specify a sink input index and a sink\n" msgstr "Morate navesti indeks ulaza u slivniku i slivnik\n" -#: ../src/utils/pactl.c:928 -#, c-format +#: ../src/utils/pactl.c:992 msgid "You have to specify a source output index and a source\n" msgstr "Morate navesti indeks izlaza u izvoru i izvor\n" -#: ../src/utils/pactl.c:942 -#, c-format +#: ../src/utils/pactl.c:1007 msgid "You have to specify a module name and arguments.\n" msgstr "Morate navesti ime i parametre modula.\n" -#: ../src/utils/pactl.c:962 -#, c-format +#: ../src/utils/pactl.c:1027 msgid "You have to specify a module index\n" msgstr "Morate navesti indeks modula\n" -#: ../src/utils/pactl.c:972 -#, c-format +#: ../src/utils/pactl.c:1037 msgid "" "You may not specify more than one sink. You have to specify a boolean " "value.\n" msgstr "Možete navesti samo jedan slivnik. Morate navesti logiÄku vrednost.\n" -#: ../src/utils/pactl.c:985 -#, c-format +#: ../src/utils/pactl.c:1050 msgid "" "You may not specify more than one source. You have to specify a boolean " "value.\n" msgstr "Možete navesti samo jedan izvor. Morate navesti logiÄku vrednost.\n" -#: ../src/utils/pactl.c:997 -#, c-format +#: ../src/utils/pactl.c:1062 msgid "You have to specify a card name/index and a profile name\n" msgstr "Morate navesti ime/indeks kartice i ime profila\n" -#: ../src/utils/pactl.c:1012 -#, c-format +#: ../src/utils/pactl.c:1073 +#, fuzzy +msgid "You have to specify a sink name/index and a port name\n" +msgstr "Morate navesti ime/indeks kartice i ime profila\n" + +#: ../src/utils/pactl.c:1084 +#, fuzzy +msgid "You have to specify a source name/index and a port name\n" +msgstr "Morate navesti ime/indeks kartice i ime profila\n" + +#: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "Ni jedna ispravna naredba nije navedena.\n" -#: ../src/utils/pactl.c:1037 ../src/utils/paplay.c:404 +#: ../src/utils/pactl.c:1122 #, c-format msgid "pa_context_connect() failed: %s" msgstr "Neuspela funkcija pa_context_connect(): %s" @@ -2280,129 +2323,49 @@ msgstr "NeuspeÅ¡no uÄitavanje datoteka kolaÄića\n" msgid "Not yet implemented.\n" msgstr "Nije joÅ¡ implementirano.\n" -#: ../src/utils/pacmd.c:64 +#: ../src/utils/pacmd.c:61 +msgid "No PulseAudio daemon running, or not running as session daemon." +msgstr "" + +#: ../src/utils/pacmd.c:66 #, c-format msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s" msgstr "socket(PF_UNIX, SOCK_STREAM, 0): %s" -#: ../src/utils/pacmd.c:81 +#: ../src/utils/pacmd.c:83 #, c-format msgid "connect(): %s" msgstr "connect(): %s" -#: ../src/utils/pacmd.c:89 +#: ../src/utils/pacmd.c:91 msgid "Failed to kill PulseAudio daemon." msgstr "Nije uspelo ubijanje PulseAudio demona." -#: ../src/utils/pacmd.c:97 +#: ../src/utils/pacmd.c:99 msgid "Daemon not responding." msgstr "Demon se ne odaziva." -#: ../src/utils/pacmd.c:144 +#: ../src/utils/pacmd.c:146 #, c-format msgid "select(): %s" msgstr "select(): %s" -#: ../src/utils/pacmd.c:154 ../src/utils/pacmd.c:171 +#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173 #, c-format msgid "read(): %s" msgstr "read(): %s" -#: ../src/utils/pacmd.c:187 ../src/utils/pacmd.c:201 +#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203 #, c-format msgid "write(): %s" msgstr "write(): %s" -#: ../src/utils/paplay.c:139 -#, c-format -msgid "Stream successfully created\n" -msgstr "Tok uspeÅ¡no napravljen\n" - -#: ../src/utils/paplay.c:144 -#, c-format -msgid "Stream errror: %s\n" -msgstr "GreÅ¡ka toka: %s\n" - -#: ../src/utils/paplay.c:165 -#, c-format -msgid "Connection established.\n" -msgstr "Veza ustanovljena.\n" - -#: ../src/utils/paplay.c:198 -#, c-format -msgid "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" -msgstr "" -"%s [opcije] [DATOTEKA]\n" -"\n" -" -h, --help Prikaži ovu pomoć\n" -" --version Prikaži verziju\n" -"\n" -" -v, --verbose Omogući opÅ¡irni opis radnji\n" -"\n" -" -s, --server=SERVER Ime servera na koji se povezuje\n" -" -d, --device=UREÄAJ Ime slivnika na koje se povezuje\n" -" -n, --client-name=IME Kako nazvati ovog klijenta na " -"serveru\n" -" --stream-name=IME Kako nazvati ovaj tok na serveru\n" -" --volume=GLASNOST Navedi poÄetnu (linearnu) jaÄinu " -"zvuka iz opsega 0...65536\n" -" --channel-map=MAPAKANALA Postavi mapu kanala koja će se " -"koristiti\n" - -#: ../src/utils/paplay.c:255 -#, c-format -msgid "" -"paplay %s\n" -"Compiled with libpulse %s\n" -"Linked with libpulse %s\n" -msgstr "" -"paplay %s\n" -"Kompajlirano sa libpulse %s\n" -"Povezano sa libpulse %s\n" - -#: ../src/utils/paplay.c:292 -#, c-format -msgid "Invalid channel map\n" -msgstr "Neispravna mapa kanala\n" - -#: ../src/utils/paplay.c:314 -#, c-format -msgid "Failed to open file '%s'\n" -msgstr "Neuspelo otvaranje datoteke „%s“\n" - -#: ../src/utils/paplay.c:350 -#, c-format -msgid "Channel map doesn't match file.\n" -msgstr "Mapa kanala se ne poklapa sa datotekom.\n" - -#: ../src/utils/paplay.c:376 -#, c-format -msgid "Using sample spec '%s'\n" -msgstr "Koriste se sledeći parametri uzorka „%s“\n" - # Kako prevesti autospawn (mogućnost pravljenja ili pokretanja procesa iz istog) -- Igor #: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 msgid "Cannot access autospawn lock." msgstr "Nije moguće pristupiti datoteci zakljuÄavanja za samoumnožavanje." -#: ../src/modules/alsa/alsa-sink.c:393 ../src/modules/alsa/alsa-sink.c:541 +#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2419,7 +2382,7 @@ msgstr "" "ProbuÄ‘eni smo sa postavljenim POLLOUT-om -- ali sledeći snd_pcm_avail() je " "vratio 0 ili neku drugu vrednost manju od min_avail." -#: ../src/modules/alsa/alsa-source.c:377 ../src/modules/alsa/alsa-source.c:516 +#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2436,34 +2399,129 @@ msgstr "" "ProbuÄ‘eni smo sa postavljenim POLLIN-om -- ali sledeći snd_pcm_avail() je " "vratio 0 ili neku drugu vrednost manju od min_avail." -#: ../src/modules/alsa/module-alsa-card.c:114 -#, c-format -msgid "Output %s + Input %s" -msgstr "Izlaz %s + ulaz %s" - -#: ../src/modules/alsa/module-alsa-card.c:117 -#, c-format -msgid "Output %s" -msgstr "Izlaz %s" - -#: ../src/modules/alsa/module-alsa-card.c:121 -#, c-format -msgid "Input %s" -msgstr "Ulaz %s" - -#: ../src/modules/alsa/module-alsa-card.c:170 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2006 +#: ../src/modules/alsa/module-alsa-card.c:152 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 msgid "Off" msgstr "IskljuÄeno" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1976 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 msgid "High Fidelity Playback (A2DP)" msgstr "Reprodukcija visoke taÄnosti (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1991 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 msgid "Telephony Duplex (HSP/HFP)" msgstr "Dvostrano telefoniranje (HSP/HFP)" -#: ../src/modules/reserve-wrap.c:139 +#: ../src/modules/reserve-wrap.c:151 msgid "PulseAudio Sound Server" msgstr "PulseAudio zvuÄni sistem" + +#~ msgid "Analog Mono" +#~ msgstr "Analogni mono" + +#~ msgid "Analog Stereo" +#~ msgstr "Analogni stereo" + +#~ msgid "Digital Stereo (IEC958)" +#~ msgstr "Digitalni stereo (IEC958)" + +#~ msgid "Digital Stereo (HDMI)" +#~ msgstr "Digitalni stereo (HDMI)" + +#~ msgid "Analog Surround 4.0" +#~ msgstr "Analogni okružujući 4.0" + +#~ msgid "Digital Surround 4.0 (IEC958/AC3)" +#~ msgstr "Digitalni okružujući 4.0 (IEC958/AC3)" + +# Surround možemo prevesti ambijentalni ili okružni ili možda Äak i saraund? -- Igor +#~ msgid "Analog Surround 4.1" +#~ msgstr "Analogni okružujući 4.1" + +#~ msgid "Analog Surround 5.0" +#~ msgstr "Analogni okružujući 5.0" + +#~ msgid "Analog Surround 5.1" +#~ msgstr "Analogni okružujući 5.1" + +#~ msgid "Digital Surround 5.1 (IEC958/AC3)" +#~ msgstr "Digitalni okružujući 5.1 (IEC958/AC3)" + +#~ msgid "Analog Surround 7.1" +#~ msgstr "Analogni okružujući 7.1" + +#~ msgid "Output %s + Input %s" +#~ msgstr "Izlaz %s + ulaz %s" + +#~ msgid "Output %s" +#~ msgstr "Izlaz %s" + +#~ msgid "Input %s" +#~ msgstr "Ulaz %s" + +#~ msgid "Stream successfully created\n" +#~ msgstr "Tok uspeÅ¡no napravljen\n" + +#~ msgid "Stream errror: %s\n" +#~ msgstr "GreÅ¡ka toka: %s\n" + +#~ msgid "Connection established.\n" +#~ msgstr "Veza ustanovljena.\n" + +#~ msgid "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Show this help\n" +#~ " --version Show version\n" +#~ "\n" +#~ " -v, --verbose Enable verbose operation\n" +#~ "\n" +#~ " -s, --server=SERVER The name of the server to connect " +#~ "to\n" +#~ " -d, --device=DEVICE The name of the sink to connect " +#~ "to\n" +#~ " -n, --client-name=NAME How to call this client on the " +#~ "server\n" +#~ " --stream-name=NAME How to call this stream on the " +#~ "server\n" +#~ " --volume=VOLUME Specify the initial (linear) " +#~ "volume in range 0...65536\n" +#~ " --channel-map=CHANNELMAP Set the channel map to the use\n" +#~ msgstr "" +#~ "%s [opcije] [DATOTEKA]\n" +#~ "\n" +#~ " -h, --help Prikaži ovu pomoć\n" +#~ " --version Prikaži verziju\n" +#~ "\n" +#~ " -v, --verbose Omogući opÅ¡irni opis radnji\n" +#~ "\n" +#~ " -s, --server=SERVER Ime servera na koji se povezuje\n" +#~ " -d, --device=UREÄAJ Ime slivnika na koje se povezuje\n" +#~ " -n, --client-name=IME Kako nazvati ovog klijenta na " +#~ "serveru\n" +#~ " --stream-name=IME Kako nazvati ovaj tok na serveru\n" +#~ " --volume=GLASNOST Navedi poÄetnu (linearnu) jaÄinu " +#~ "zvuka iz opsega 0...65536\n" +#~ " --channel-map=MAPAKANALA Postavi mapu kanala koja će se " +#~ "koristiti\n" + +#~ msgid "" +#~ "paplay %s\n" +#~ "Compiled with libpulse %s\n" +#~ "Linked with libpulse %s\n" +#~ msgstr "" +#~ "paplay %s\n" +#~ "Kompajlirano sa libpulse %s\n" +#~ "Povezano sa libpulse %s\n" + +#~ msgid "Invalid channel map\n" +#~ msgstr "Neispravna mapa kanala\n" + +#~ msgid "Failed to open file '%s'\n" +#~ msgstr "Neuspelo otvaranje datoteke „%s“\n" + +#~ msgid "Channel map doesn't match file.\n" +#~ msgstr "Mapa kanala se ne poklapa sa datotekom.\n" + +#~ msgid "Using sample spec '%s'\n" +#~ msgstr "Koriste se sledeći parametri uzorka „%s“\n" @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-21 23:02+0200\n" +"POT-Creation-Date: 2009-06-17 23:42+0200\n" "PO-Revision-Date: 2008-09-05 18:24+0100\n" "Last-Translator: Daniel Nylander <po@danielnylander.se>\n" "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" @@ -15,51 +15,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../src/modules/alsa/alsa-util.c:532 -msgid "Analog Mono" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:540 -msgid "Analog Stereo" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:548 -msgid "Digital Stereo (IEC958)" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:556 -msgid "Digital Stereo (HDMI)" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:565 -msgid "Analog Surround 4.0" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:574 -msgid "Digital Surround 4.0 (IEC958/AC3)" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:584 -msgid "Analog Surround 4.1" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:594 -msgid "Analog Surround 5.0" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:604 -msgid "Analog Surround 5.1" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:614 -msgid "Digital Surround 5.1 (IEC958/AC3)" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:625 -msgid "Analog Surround 7.1" -msgstr "" - -#: ../src/modules/alsa/alsa-util.c:1646 +#: ../src/modules/alsa/alsa-util.c:1015 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -68,7 +24,7 @@ msgid "" "to the ALSA developers." msgstr "" -#: ../src/modules/alsa/alsa-util.c:1687 +#: ../src/modules/alsa/alsa-util.c:1056 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -77,7 +33,7 @@ msgid "" "to the ALSA developers." msgstr "" -#: ../src/modules/alsa/alsa-util.c:1734 +#: ../src/modules/alsa/alsa-util.c:1103 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -86,12 +42,25 @@ msgid "" "to the ALSA developers." msgstr "" -#: ../src/pulsecore/sink.c:2141 +#: ../src/modules/module-ladspa-sink.c:49 +msgid "Virtual LADSPA sink" +msgstr "" + +#: ../src/modules/module-ladspa-sink.c:53 +msgid "" +"sink_name=<name for the sink> sink_properties=<properties for the sink> " +"master=<name of sink to filter> format=<sample format> rate=<sample rate> " +"channels=<number of channels> channel_map=<channel map> plugin=<ladspa " +"plugin name> label=<ladspa plugin label> control=<comma seperated list of " +"input control values>" +msgstr "" + +#: ../src/pulsecore/sink.c:2394 #, fuzzy msgid "Internal Audio" msgstr "Internt fel" -#: ../src/pulsecore/sink.c:2147 +#: ../src/pulsecore/sink.c:2400 msgid "Modem" msgstr "" @@ -162,104 +131,104 @@ msgstr "" msgid "PolicyKit responded with '%s'" msgstr "PolicyKit svarade med \"%s\"" -#: ../src/daemon/main.c:138 +#: ../src/daemon/main.c:142 #, c-format msgid "Got signal %s." msgstr "Fick signal %s." -#: ../src/daemon/main.c:165 +#: ../src/daemon/main.c:169 msgid "Exiting." msgstr "Avslutar." -#: ../src/daemon/main.c:183 +#: ../src/daemon/main.c:187 #, c-format msgid "Failed to find user '%s'." msgstr "Misslyckades med att hitta användaren \"%s\"." -#: ../src/daemon/main.c:188 +#: ../src/daemon/main.c:192 #, c-format msgid "Failed to find group '%s'." msgstr "Misslyckades med att hitta gruppen \"%s\"." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:196 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "" -#: ../src/daemon/main.c:197 +#: ../src/daemon/main.c:201 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "" -#: ../src/daemon/main.c:202 +#: ../src/daemon/main.c:206 #, 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:205 ../src/daemon/main.c:210 +#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 #, c-format msgid "Failed to create '%s': %s" msgstr "Misslyckades med att skapa \"%s\": %s" -#: ../src/daemon/main.c:217 +#: ../src/daemon/main.c:221 #, c-format msgid "Failed to change group list: %s" msgstr "" -#: ../src/daemon/main.c:233 +#: ../src/daemon/main.c:237 #, c-format msgid "Failed to change GID: %s" msgstr "" -#: ../src/daemon/main.c:249 +#: ../src/daemon/main.c:253 #, c-format msgid "Failed to change UID: %s" msgstr "" -#: ../src/daemon/main.c:263 +#: ../src/daemon/main.c:267 msgid "Successfully dropped root privileges." msgstr "" -#: ../src/daemon/main.c:271 +#: ../src/daemon/main.c:275 msgid "System wide mode unsupported on this platform." msgstr "" -#: ../src/daemon/main.c:289 +#: ../src/daemon/main.c:293 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) misslyckades: %s" -#: ../src/daemon/main.c:477 +#: ../src/daemon/main.c:481 msgid "Failed to parse command line." msgstr "" -#: ../src/daemon/main.c:501 +#: ../src/daemon/main.c:505 #, c-format msgid "We're in the group '%s', allowing high-priority scheduling." msgstr "" -#: ../src/daemon/main.c:508 +#: ../src/daemon/main.c:512 #, c-format msgid "We're in the group '%s', allowing real-time scheduling." msgstr "" -#: ../src/daemon/main.c:516 +#: ../src/daemon/main.c:520 msgid "PolicyKit grants us acquire-high-priority privilege." msgstr "" -#: ../src/daemon/main.c:519 +#: ../src/daemon/main.c:523 msgid "PolicyKit refuses acquire-high-priority privilege." msgstr "" -#: ../src/daemon/main.c:524 +#: ../src/daemon/main.c:528 msgid "PolicyKit grants us acquire-real-time privilege." msgstr "" -#: ../src/daemon/main.c:527 +#: ../src/daemon/main.c:531 msgid "PolicyKit refuses acquire-real-time privilege." msgstr "" -#: ../src/daemon/main.c:556 +#: ../src/daemon/main.c:560 #, c-format msgid "" "Called SUID root and real-time and/or high-priority scheduling was requested " @@ -272,44 +241,44 @@ msgid "" "the RLIMIT_NICE/RLIMIT_RTPRIO resource limits for this user." msgstr "" -#: ../src/daemon/main.c:581 +#: ../src/daemon/main.c:585 msgid "" "High-priority scheduling enabled in configuration but not allowed by policy." msgstr "" -#: ../src/daemon/main.c:610 +#: ../src/daemon/main.c:614 msgid "Successfully increased RLIMIT_RTPRIO" msgstr "" -#: ../src/daemon/main.c:613 +#: ../src/daemon/main.c:617 #, c-format msgid "RLIMIT_RTPRIO failed: %s" msgstr "RLIMIT_RTPRIO misslyckades: %s" -#: ../src/daemon/main.c:620 +#: ../src/daemon/main.c:624 msgid "Giving up CAP_NICE" msgstr "" -#: ../src/daemon/main.c:627 +#: ../src/daemon/main.c:631 msgid "" "Real-time scheduling enabled in configuration but not allowed by policy." msgstr "" -#: ../src/daemon/main.c:688 +#: ../src/daemon/main.c:692 msgid "Daemon not running" msgstr "" -#: ../src/daemon/main.c:690 +#: ../src/daemon/main.c:694 #, c-format msgid "Daemon running as PID %u" msgstr "" -#: ../src/daemon/main.c:700 +#: ../src/daemon/main.c:704 #, c-format msgid "Failed to kill daemon: %s" msgstr "" -#: ../src/daemon/main.c:718 +#: ../src/daemon/main.c:722 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -317,189 +286,199 @@ msgstr "" "Detta program är inte tänkt att köras som root (sÃ¥vida inte --system har " "angivits)." -#: ../src/daemon/main.c:720 +#: ../src/daemon/main.c:724 #, fuzzy msgid "Root privileges required." msgstr "Root-behörighet krävs." -#: ../src/daemon/main.c:725 +#: ../src/daemon/main.c:729 msgid "--start not supported for system instances." msgstr "--start stöds inte för systeminstanser." -#: ../src/daemon/main.c:730 +#: ../src/daemon/main.c:734 msgid "Running in system mode, but --disallow-exit not set!" msgstr "" -#: ../src/daemon/main.c:733 +#: ../src/daemon/main.c:737 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "" -#: ../src/daemon/main.c:736 +#: ../src/daemon/main.c:740 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "" -#: ../src/daemon/main.c:741 +#: ../src/daemon/main.c:745 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "" -#: ../src/daemon/main.c:768 +#: ../src/daemon/main.c:772 msgid "Failed to acquire stdio." msgstr "" -#: ../src/daemon/main.c:774 +#: ../src/daemon/main.c:778 #, c-format msgid "pipe failed: %s" msgstr "pipe misslyckades: %s" -#: ../src/daemon/main.c:779 +#: ../src/daemon/main.c:783 #, c-format msgid "fork() failed: %s" msgstr "fork() misslyckades: %s" -#: ../src/daemon/main.c:793 +#: ../src/daemon/main.c:797 #, c-format msgid "read() failed: %s" msgstr "read() misslyckades: %s" -#: ../src/daemon/main.c:799 +#: ../src/daemon/main.c:803 msgid "Daemon startup failed." msgstr "" -#: ../src/daemon/main.c:801 +#: ../src/daemon/main.c:805 msgid "Daemon startup successful." msgstr "" -#: ../src/daemon/main.c:871 +#: ../src/daemon/main.c:875 #, c-format msgid "This is PulseAudio %s" msgstr "Detta är PulseAudio %s" -#: ../src/daemon/main.c:872 +#: ../src/daemon/main.c:876 #, c-format msgid "Compilation host: %s" msgstr "" -#: ../src/daemon/main.c:873 +#: ../src/daemon/main.c:877 #, c-format msgid "Compilation CFLAGS: %s" msgstr "" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:880 #, c-format msgid "Running on host: %s" msgstr "" -#: ../src/daemon/main.c:879 +#: ../src/daemon/main.c:883 #, c-format msgid "Found %u CPUs." msgstr "" -#: ../src/daemon/main.c:881 +#: ../src/daemon/main.c:885 #, c-format msgid "Page size is %lu bytes" msgstr "" -#: ../src/daemon/main.c:884 +#: ../src/daemon/main.c:888 msgid "Compiled with Valgrind support: yes" msgstr "" -#: ../src/daemon/main.c:886 +#: ../src/daemon/main.c:890 msgid "Compiled with Valgrind support: no" msgstr "" -#: ../src/daemon/main.c:889 +#: ../src/daemon/main.c:893 #, c-format msgid "Running in valgrind mode: %s" msgstr "" -#: ../src/daemon/main.c:892 +#: ../src/daemon/main.c:896 msgid "Optimized build: yes" msgstr "" -#: ../src/daemon/main.c:894 +#: ../src/daemon/main.c:898 msgid "Optimized build: no" msgstr "" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:902 msgid "NDEBUG defined, all asserts disabled." msgstr "" -#: ../src/daemon/main.c:900 +#: ../src/daemon/main.c:904 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:906 msgid "All asserts enabled." msgstr "" -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:910 msgid "Failed to get machine ID" msgstr "" -#: ../src/daemon/main.c:909 +#: ../src/daemon/main.c:913 #, c-format msgid "Machine ID is %s." msgstr "" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:917 #, c-format msgid "Session ID is %s." msgstr "" -#: ../src/daemon/main.c:919 +#: ../src/daemon/main.c:923 #, c-format msgid "Using runtime directory %s." msgstr "" -#: ../src/daemon/main.c:924 +#: ../src/daemon/main.c:928 #, c-format msgid "Using state directory %s." msgstr "" -#: ../src/daemon/main.c:927 +#: ../src/daemon/main.c:931 #, c-format msgid "Running in system mode: %s" msgstr "" -#: ../src/daemon/main.c:942 +#: ../src/daemon/main.c:934 +msgid "" +"OK, so you are running PA in system mode. Please note that you most likely " +"shouldn't be doing that.\n" +"If you do it nonetheless then it's your own fault if things don't work as " +"expected.\n" +"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " +"explanation why system mode is usually a bad idea." +msgstr "" + +#: ../src/daemon/main.c:951 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() misslyckades." -#: ../src/daemon/main.c:954 +#: ../src/daemon/main.c:961 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "" -#: ../src/daemon/main.c:956 +#: ../src/daemon/main.c:963 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" msgstr "" -#: ../src/daemon/main.c:970 +#: ../src/daemon/main.c:988 msgid "pa_core_new() failed." msgstr "pa_core_new() misslyckades." -#: ../src/daemon/main.c:1032 +#: ../src/daemon/main.c:1050 msgid "Failed to initialize daemon." msgstr "" -#: ../src/daemon/main.c:1037 +#: ../src/daemon/main.c:1055 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "" -#: ../src/daemon/main.c:1054 +#: ../src/daemon/main.c:1072 msgid "Daemon startup complete." msgstr "" -#: ../src/daemon/main.c:1060 +#: ../src/daemon/main.c:1078 msgid "Daemon shutdown initiated." msgstr "" -#: ../src/daemon/main.c:1082 +#: ../src/daemon/main.c:1100 msgid "Daemon terminated." msgstr "" -#: ../src/daemon/cmdline.c:121 +#: ../src/daemon/cmdline.c:115 #, c-format msgid "" "%s [options]\n" @@ -573,69 +552,69 @@ msgid "" " -n Don't load default script file\n" msgstr "" -#: ../src/daemon/cmdline.c:252 +#: ../src/daemon/cmdline.c:247 msgid "--daemonize expects boolean argument" msgstr "--daemonize förväntar sig ett booleskt argument" -#: ../src/daemon/cmdline.c:259 +#: ../src/daemon/cmdline.c:254 msgid "--fail expects boolean argument" msgstr "--fail förväntar sig ett booleskt argument" -#: ../src/daemon/cmdline.c:269 +#: ../src/daemon/cmdline.c:264 msgid "" "--log-level expects log level argument (either numeric in range 0..4 or one " "of debug, info, notice, warn, error)." msgstr "" -#: ../src/daemon/cmdline.c:281 +#: ../src/daemon/cmdline.c:276 msgid "--high-priority expects boolean argument" msgstr "--high-priority förväntar sig ett booleskt argument" -#: ../src/daemon/cmdline.c:288 +#: ../src/daemon/cmdline.c:283 msgid "--realtime expects boolean argument" msgstr "--realtime förväntar sig ett booleskt argument" -#: ../src/daemon/cmdline.c:295 +#: ../src/daemon/cmdline.c:290 msgid "--disallow-module-loading expects boolean argument" msgstr "--disallow-module-loading förväntar sig ett booleskt argument" -#: ../src/daemon/cmdline.c:302 +#: ../src/daemon/cmdline.c:297 #, fuzzy msgid "--disallow-exit expects boolean argument" msgstr "--disallow-exit booleskt argument" -#: ../src/daemon/cmdline.c:309 +#: ../src/daemon/cmdline.c:304 msgid "--use-pid-file expects boolean argument" msgstr "--use-pid-file förväntar sig ett booleskt argument" -#: ../src/daemon/cmdline.c:326 +#: ../src/daemon/cmdline.c:321 msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgstr "" -#: ../src/daemon/cmdline.c:333 +#: ../src/daemon/cmdline.c:328 #, fuzzy msgid "--log-time expects boolean argument" msgstr "--realtime förväntar sig ett booleskt argument" -#: ../src/daemon/cmdline.c:340 +#: ../src/daemon/cmdline.c:335 #, fuzzy msgid "--log-meta expects boolean argument" msgstr "--disallow-exit booleskt argument" -#: ../src/daemon/cmdline.c:359 +#: ../src/daemon/cmdline.c:354 #, c-format msgid "Invalid resample method '%s'." msgstr "" -#: ../src/daemon/cmdline.c:366 +#: ../src/daemon/cmdline.c:361 msgid "--system expects boolean argument" msgstr "--system förväntar sig ett booleskt argument" -#: ../src/daemon/cmdline.c:373 +#: ../src/daemon/cmdline.c:368 msgid "--no-cpu-limit expects boolean argument" msgstr "--no-cpu-limit förväntar sig ett booleskt argument" -#: ../src/daemon/cmdline.c:380 +#: ../src/daemon/cmdline.c:375 msgid "--disable-shm expects boolean argument" msgstr "--disable-shm förväntar sig ett booleskt argument" @@ -674,77 +653,82 @@ msgstr "Användning: %s\n" msgid "Load Once: %s\n" msgstr "" -#: ../src/daemon/dumpmodules.c:77 +#: ../src/daemon/dumpmodules.c:75 +#, c-format +msgid "DEPRECATION WARNING: %s\n" +msgstr "" + +#: ../src/daemon/dumpmodules.c:79 #, c-format msgid "Path: %s\n" msgstr "Sökväg: %s\n" -#: ../src/daemon/daemon-conf.c:215 +#: ../src/daemon/daemon-conf.c:216 #, c-format msgid "[%s:%u] Invalid log target '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:231 +#: ../src/daemon/daemon-conf.c:232 #, c-format msgid "[%s:%u] Invalid log level '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:247 +#: ../src/daemon/daemon-conf.c:248 #, c-format msgid "[%s:%u] Invalid resample method '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:270 +#: ../src/daemon/daemon-conf.c:271 #, c-format msgid "[%s:%u] Invalid rlimit '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:277 +#: ../src/daemon/daemon-conf.c:278 #, c-format msgid "[%s:%u] rlimit not supported on this platform." msgstr "" -#: ../src/daemon/daemon-conf.c:293 +#: ../src/daemon/daemon-conf.c:294 #, c-format msgid "[%s:%u] Invalid sample format '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:311 +#: ../src/daemon/daemon-conf.c:312 #, c-format msgid "[%s:%u] Invalid sample rate '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:335 +#: ../src/daemon/daemon-conf.c:336 #, c-format msgid "[%s:%u] Invalid sample channels '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:353 +#: ../src/daemon/daemon-conf.c:354 #, c-format msgid "[%s:%u] Invalid channel map '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:371 +#: ../src/daemon/daemon-conf.c:372 #, c-format msgid "[%s:%u] Invalid number of fragments '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:389 +#: ../src/daemon/daemon-conf.c:390 #, c-format msgid "[%s:%u] Invalid fragment size '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:407 +#: ../src/daemon/daemon-conf.c:408 #, c-format msgid "[%s:%u] Invalid nice level '%s'." msgstr "" -#: ../src/daemon/daemon-conf.c:522 +#: ../src/daemon/daemon-conf.c:524 #, c-format msgid "Failed to open configuration file: %s" msgstr "Misslyckades med att öppna konfigurationsfil: %s" -#: ../src/daemon/daemon-conf.c:538 +#: ../src/daemon/daemon-conf.c:540 msgid "" "The specified default channel map has a different number of channels than " "the specified default number of channels." @@ -790,238 +774,238 @@ msgstr "" msgid "System policy prevents PulseAudio from acquiring real-time scheduling." msgstr "" -#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804 +#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Mono" -#: ../src/pulse/channelmap.c:105 +#: ../src/pulse/channelmap.c:107 msgid "Front Center" msgstr "Center fram" -#: ../src/pulse/channelmap.c:106 +#: ../src/pulse/channelmap.c:108 msgid "Front Left" msgstr "Vänster fram" -#: ../src/pulse/channelmap.c:107 +#: ../src/pulse/channelmap.c:109 msgid "Front Right" msgstr "Höger fram" -#: ../src/pulse/channelmap.c:109 +#: ../src/pulse/channelmap.c:111 msgid "Rear Center" msgstr "Center bak" -#: ../src/pulse/channelmap.c:110 +#: ../src/pulse/channelmap.c:112 msgid "Rear Left" msgstr "Vänster bak" -#: ../src/pulse/channelmap.c:111 +#: ../src/pulse/channelmap.c:113 msgid "Rear Right" msgstr "Höger bak" -#: ../src/pulse/channelmap.c:113 +#: ../src/pulse/channelmap.c:115 msgid "Low Frequency Emmiter" msgstr "" -#: ../src/pulse/channelmap.c:115 +#: ../src/pulse/channelmap.c:117 msgid "Front Left-of-center" msgstr "Vänster-om-center fram" -#: ../src/pulse/channelmap.c:116 +#: ../src/pulse/channelmap.c:118 msgid "Front Right-of-center" msgstr "Höger-om-center fram" -#: ../src/pulse/channelmap.c:118 +#: ../src/pulse/channelmap.c:120 msgid "Side Left" msgstr "Vänster sida" -#: ../src/pulse/channelmap.c:119 +#: ../src/pulse/channelmap.c:121 msgid "Side Right" msgstr "Höger sida" -#: ../src/pulse/channelmap.c:121 +#: ../src/pulse/channelmap.c:123 msgid "Auxiliary 0" msgstr "" -#: ../src/pulse/channelmap.c:122 +#: ../src/pulse/channelmap.c:124 msgid "Auxiliary 1" msgstr "" -#: ../src/pulse/channelmap.c:123 +#: ../src/pulse/channelmap.c:125 msgid "Auxiliary 2" msgstr "" -#: ../src/pulse/channelmap.c:124 +#: ../src/pulse/channelmap.c:126 msgid "Auxiliary 3" msgstr "" -#: ../src/pulse/channelmap.c:125 +#: ../src/pulse/channelmap.c:127 msgid "Auxiliary 4" msgstr "" -#: ../src/pulse/channelmap.c:126 +#: ../src/pulse/channelmap.c:128 msgid "Auxiliary 5" msgstr "" -#: ../src/pulse/channelmap.c:127 +#: ../src/pulse/channelmap.c:129 msgid "Auxiliary 6" msgstr "" -#: ../src/pulse/channelmap.c:128 +#: ../src/pulse/channelmap.c:130 msgid "Auxiliary 7" msgstr "" -#: ../src/pulse/channelmap.c:129 +#: ../src/pulse/channelmap.c:131 msgid "Auxiliary 8" msgstr "" -#: ../src/pulse/channelmap.c:130 +#: ../src/pulse/channelmap.c:132 msgid "Auxiliary 9" msgstr "" -#: ../src/pulse/channelmap.c:131 +#: ../src/pulse/channelmap.c:133 msgid "Auxiliary 10" msgstr "" -#: ../src/pulse/channelmap.c:132 +#: ../src/pulse/channelmap.c:134 msgid "Auxiliary 11" msgstr "" -#: ../src/pulse/channelmap.c:133 +#: ../src/pulse/channelmap.c:135 msgid "Auxiliary 12" msgstr "" -#: ../src/pulse/channelmap.c:134 +#: ../src/pulse/channelmap.c:136 msgid "Auxiliary 13" msgstr "" -#: ../src/pulse/channelmap.c:135 +#: ../src/pulse/channelmap.c:137 msgid "Auxiliary 14" msgstr "" -#: ../src/pulse/channelmap.c:136 +#: ../src/pulse/channelmap.c:138 msgid "Auxiliary 15" msgstr "" -#: ../src/pulse/channelmap.c:137 +#: ../src/pulse/channelmap.c:139 msgid "Auxiliary 16" msgstr "" -#: ../src/pulse/channelmap.c:138 +#: ../src/pulse/channelmap.c:140 msgid "Auxiliary 17" msgstr "" -#: ../src/pulse/channelmap.c:139 +#: ../src/pulse/channelmap.c:141 msgid "Auxiliary 18" msgstr "" -#: ../src/pulse/channelmap.c:140 +#: ../src/pulse/channelmap.c:142 msgid "Auxiliary 19" msgstr "" -#: ../src/pulse/channelmap.c:141 +#: ../src/pulse/channelmap.c:143 msgid "Auxiliary 20" msgstr "" -#: ../src/pulse/channelmap.c:142 +#: ../src/pulse/channelmap.c:144 msgid "Auxiliary 21" msgstr "" -#: ../src/pulse/channelmap.c:143 +#: ../src/pulse/channelmap.c:145 msgid "Auxiliary 22" msgstr "" -#: ../src/pulse/channelmap.c:144 +#: ../src/pulse/channelmap.c:146 msgid "Auxiliary 23" msgstr "" -#: ../src/pulse/channelmap.c:145 +#: ../src/pulse/channelmap.c:147 msgid "Auxiliary 24" msgstr "" -#: ../src/pulse/channelmap.c:146 +#: ../src/pulse/channelmap.c:148 msgid "Auxiliary 25" msgstr "" -#: ../src/pulse/channelmap.c:147 +#: ../src/pulse/channelmap.c:149 msgid "Auxiliary 26" msgstr "" -#: ../src/pulse/channelmap.c:148 +#: ../src/pulse/channelmap.c:150 msgid "Auxiliary 27" msgstr "" -#: ../src/pulse/channelmap.c:149 +#: ../src/pulse/channelmap.c:151 msgid "Auxiliary 28" msgstr "" -#: ../src/pulse/channelmap.c:150 +#: ../src/pulse/channelmap.c:152 msgid "Auxiliary 29" msgstr "" -#: ../src/pulse/channelmap.c:151 +#: ../src/pulse/channelmap.c:153 msgid "Auxiliary 30" msgstr "" -#: ../src/pulse/channelmap.c:152 +#: ../src/pulse/channelmap.c:154 msgid "Auxiliary 31" msgstr "" -#: ../src/pulse/channelmap.c:154 +#: ../src/pulse/channelmap.c:156 msgid "Top Center" msgstr "" -#: ../src/pulse/channelmap.c:156 +#: ../src/pulse/channelmap.c:158 msgid "Top Front Center" msgstr "" -#: ../src/pulse/channelmap.c:157 +#: ../src/pulse/channelmap.c:159 msgid "Top Front Left" msgstr "" -#: ../src/pulse/channelmap.c:158 +#: ../src/pulse/channelmap.c:160 msgid "Top Front Right" msgstr "" -#: ../src/pulse/channelmap.c:160 +#: ../src/pulse/channelmap.c:162 msgid "Top Rear Center" msgstr "" -#: ../src/pulse/channelmap.c:161 +#: ../src/pulse/channelmap.c:163 msgid "Top Rear Left" msgstr "" -#: ../src/pulse/channelmap.c:162 +#: ../src/pulse/channelmap.c:164 msgid "Top Rear Right" msgstr "" -#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167 -#: ../src/pulse/volume.c:170 ../src/pulse/volume.c:196 -#: ../src/pulse/volume.c:216 ../src/pulse/volume.c:246 +#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167 +#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265 +#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315 #, fuzzy msgid "(invalid)" msgstr "Ogiltig" -#: ../src/pulse/channelmap.c:808 +#: ../src/pulse/channelmap.c:751 msgid "Stereo" msgstr "" -#: ../src/pulse/channelmap.c:813 +#: ../src/pulse/channelmap.c:756 msgid "Surround 4.0" msgstr "" -#: ../src/pulse/channelmap.c:819 +#: ../src/pulse/channelmap.c:762 msgid "Surround 4.1" msgstr "" -#: ../src/pulse/channelmap.c:825 +#: ../src/pulse/channelmap.c:768 msgid "Surround 5.0" msgstr "" -#: ../src/pulse/channelmap.c:831 +#: ../src/pulse/channelmap.c:774 msgid "Surround 5.1" msgstr "" -#: ../src/pulse/channelmap.c:838 +#: ../src/pulse/channelmap.c:781 msgid "Surround 7.1" msgstr "" @@ -1182,172 +1166,167 @@ msgstr "waitpid(): %s" msgid "Received message for unknown extension '%s'" msgstr "" -#: ../src/utils/pacat.c:94 +#: ../src/utils/pacat.c:107 +#, c-format +msgid "Failed to drain stream: %s\n" +msgstr "" + +#: ../src/utils/pacat.c:112 +msgid "Playback stream drained.\n" +msgstr "" + +#: ../src/utils/pacat.c:122 +msgid "Draining connection to server.\n" +msgstr "" + +#: ../src/utils/pacat.c:135 +#, c-format +msgid "pa_stream_drain(): %s\n" +msgstr "pa_stream_drain(): %s\n" + +#: ../src/utils/pacat.c:158 #, c-format msgid "pa_stream_write() failed: %s\n" msgstr "pa_stream_write() misslyckades: %s\n" -#: ../src/utils/pacat.c:133 +#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 #, c-format msgid "pa_stream_peek() failed: %s\n" msgstr "pa_stream_peek() misslyckades: %s\n" -#: ../src/utils/pacat.c:169 -#, c-format +#: ../src/utils/pacat.c:302 msgid "Stream successfully created.\n" msgstr "" -#: ../src/utils/pacat.c:172 +#: ../src/utils/pacat.c:305 #, c-format msgid "pa_stream_get_buffer_attr() failed: %s\n" msgstr "pa_stream_get_buffer_attr() misslyckades: %s\n" -#: ../src/utils/pacat.c:176 +#: ../src/utils/pacat.c:309 #, c-format msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgstr "" -#: ../src/utils/pacat.c:179 +#: ../src/utils/pacat.c:312 #, c-format msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgstr "" -#: ../src/utils/pacat.c:183 +#: ../src/utils/pacat.c:316 #, c-format msgid "Using sample spec '%s', channel map '%s'.\n" msgstr "" -#: ../src/utils/pacat.c:187 +#: ../src/utils/pacat.c:320 #, c-format msgid "Connected to device %s (%u, %ssuspended).\n" msgstr "" -#: ../src/utils/pacat.c:197 +#: ../src/utils/pacat.c:330 #, c-format msgid "Stream error: %s\n" msgstr "Strömfel: %s\n" -#: ../src/utils/pacat.c:207 +#: ../src/utils/pacat.c:340 #, c-format msgid "Stream device suspended.%s \n" msgstr "" -#: ../src/utils/pacat.c:209 +#: ../src/utils/pacat.c:342 #, c-format msgid "Stream device resumed.%s \n" msgstr "" -#: ../src/utils/pacat.c:217 +#: ../src/utils/pacat.c:350 #, c-format msgid "Stream underrun.%s \n" msgstr "" -#: ../src/utils/pacat.c:224 +#: ../src/utils/pacat.c:357 #, c-format msgid "Stream overrun.%s \n" msgstr "" -#: ../src/utils/pacat.c:231 +#: ../src/utils/pacat.c:364 #, c-format msgid "Stream started.%s \n" msgstr "" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 #, c-format msgid "Stream moved to device %s (%u, %ssuspended).%s \n" msgstr "" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 msgid "not " msgstr "inte " -#: ../src/utils/pacat.c:245 +#: ../src/utils/pacat.c:378 #, c-format msgid "Stream buffer attributes changed.%s \n" msgstr "" -#: ../src/utils/pacat.c:278 +#: ../src/utils/pacat.c:411 #, c-format msgid "Connection established.%s \n" msgstr "" -#: ../src/utils/pacat.c:281 +#: ../src/utils/pacat.c:414 #, c-format msgid "pa_stream_new() failed: %s\n" msgstr "pa_stream_new() misslyckades: %s\n" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:442 #, c-format msgid "pa_stream_connect_playback() failed: %s\n" msgstr "pa_stream_connect_playback() misslyckades: %s\n" -#: ../src/utils/pacat.c:315 +#: ../src/utils/pacat.c:448 #, c-format msgid "pa_stream_connect_record() failed: %s\n" msgstr "pa_stream_connect_record() misslyckades: %s\n" -#: ../src/utils/pacat.c:329 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:762 ../src/utils/paplay.c:183 +#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 #, c-format msgid "Connection failure: %s\n" msgstr "Anslutningsfel: %s\n" -#: ../src/utils/pacat.c:349 ../src/utils/paplay.c:75 -#, c-format -msgid "Failed to drain stream: %s\n" -msgstr "" - -#: ../src/utils/pacat.c:354 ../src/utils/paplay.c:80 -#, c-format -msgid "Playback stream drained.\n" -msgstr "" - -#: ../src/utils/pacat.c:364 ../src/utils/paplay.c:92 -#, c-format -msgid "Draining connection to server.\n" -msgstr "" - -#: ../src/utils/pacat.c:390 -#, c-format +#: ../src/utils/pacat.c:495 msgid "Got EOF.\n" msgstr "Fick filslut.\n" -#: ../src/utils/pacat.c:396 -#, c-format -msgid "pa_stream_drain(): %s\n" -msgstr "pa_stream_drain(): %s\n" - -#: ../src/utils/pacat.c:406 +#: ../src/utils/pacat.c:500 #, c-format msgid "read() failed: %s\n" msgstr "read() misslyckades: %s\n" -#: ../src/utils/pacat.c:438 +#: ../src/utils/pacat.c:532 #, c-format msgid "write() failed: %s\n" msgstr "write() misslyckades: %s\n" -#: ../src/utils/pacat.c:459 -#, c-format +#: ../src/utils/pacat.c:553 msgid "Got signal, exiting.\n" msgstr "" -#: ../src/utils/pacat.c:473 +#: ../src/utils/pacat.c:567 #, c-format msgid "Failed to get latency: %s\n" msgstr "" -#: ../src/utils/pacat.c:478 +#: ../src/utils/pacat.c:572 #, 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:498 +#: ../src/utils/pacat.c:592 #, c-format msgid "pa_stream_update_timing_info() failed: %s\n" msgstr "pa_stream_update_timing_info() misslyckades: %s\n" -#: ../src/utils/pacat.c:511 +#: ../src/utils/pacat.c:605 #, c-format msgid "" "%s [options]\n" @@ -1374,8 +1353,10 @@ msgid "" "44100)\n" " --format=SAMPLEFORMAT The sample type, one of s16le, " "s16be, u8, float32le,\n" -" float32be, ulaw, alaw, s32le, s32be " -"(defaults to s16ne)\n" +" float32be, ulaw, alaw, s32le, s32be, " +"s24le, s24be,\n" +" s24-32le, s24-32be (defaults to " +"s16ne)\n" " --channels=CHANNELS The number of channels, 1 for mono, " "2 for stereo\n" " (defaults to 2)\n" @@ -1398,9 +1379,14 @@ msgid "" "bytes.\n" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" +" --property=PROPERTY=VALUE Set the specified property to the " +"specified value.\n" +" --raw Record/play raw PCM data.\n" +" --file-format=FFORMAT Record/play formatted PCM data.\n" +" --list-file-formats List available file formats.\n" msgstr "" -#: ../src/utils/pacat.c:612 +#: ../src/utils/pacat.c:727 #, c-format msgid "" "pacat %s\n" @@ -1408,88 +1394,132 @@ msgid "" "Linked with libpulse %s\n" msgstr "" -#: ../src/utils/pacat.c:669 +#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 #, c-format -msgid "Invalid channel map '%s'\n" +msgid "Invalid client name '%s'\n" msgstr "" -#: ../src/utils/pacat.c:698 +#: ../src/utils/pacat.c:776 #, c-format -msgid "Invalid latency specification '%s'\n" +msgid "Invalid stream name '%s'\n" msgstr "" -#: ../src/utils/pacat.c:705 +#: ../src/utils/pacat.c:813 #, c-format -msgid "Invalid process time specification '%s'\n" +msgid "Invalid channel map '%s'\n" msgstr "" -#: ../src/utils/pacat.c:716 +#: ../src/utils/pacat.c:842 #, c-format -msgid "Invalid sample specification\n" +msgid "Invalid latency specification '%s'\n" msgstr "" -#: ../src/utils/pacat.c:721 +#: ../src/utils/pacat.c:849 #, c-format -msgid "Channel map doesn't match sample specification\n" +msgid "Invalid process time specification '%s'\n" msgstr "" -#: ../src/utils/pacat.c:728 -#, c-format -msgid "Opening a %s stream with sample specification '%s'.\n" -msgstr "" +#: ../src/utils/pacat.c:861 +#, fuzzy, c-format +msgid "Invalid property '%s'\n" +msgstr "Ogiltig server" -#: ../src/utils/pacat.c:728 -msgid "recording" +#: ../src/utils/pacat.c:878 +#, c-format +msgid "Unknown file format %s." msgstr "" -#: ../src/utils/pacat.c:728 -msgid "playback" +#: ../src/utils/pacat.c:897 +msgid "Invalid sample specification\n" msgstr "" -#: ../src/utils/pacat.c:736 +#: ../src/utils/pacat.c:907 #, c-format msgid "open(): %s\n" msgstr "open(): %s\n" -#: ../src/utils/pacat.c:741 +#: ../src/utils/pacat.c:912 #, c-format msgid "dup2(): %s\n" msgstr "dup2(): %s\n" -#: ../src/utils/pacat.c:751 -#, c-format +#: ../src/utils/pacat.c:919 msgid "Too many arguments.\n" msgstr "För mÃ¥nga argument.\n" -#: ../src/utils/pacat.c:764 ../src/utils/pasuspender.c:280 -#: ../src/utils/pactl.c:1017 ../src/utils/paplay.c:381 +#: ../src/utils/pacat.c:930 +#, fuzzy +msgid "Failed to generate sample specification for file.\n" +msgstr "Misslyckades med att fÃ¥ modulinformation: %s\n" + +#: ../src/utils/pacat.c:950 +#, fuzzy +msgid "Failed to open audio file.\n" +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" +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:968 +msgid "Warning: Failed to determine channel map from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:979 +msgid "Channel map doesn't match sample specification\n" +msgstr "" + +#: ../src/utils/pacat.c:990 +msgid "Warning: failed to write channel map to file.\n" +msgstr "" + +#: ../src/utils/pacat.c:1005 +#, c-format +msgid "" +"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +msgstr "" + +#: ../src/utils/pacat.c:1006 +msgid "recording" +msgstr "" + +#: ../src/utils/pacat.c:1006 +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 "pa_mainloop_new() misslyckades.\n" -#: ../src/utils/pacat.c:785 -#, c-format +#: ../src/utils/pacat.c:1051 msgid "io_new() failed.\n" msgstr "io_new() misslyckades.\n" -#: ../src/utils/pacat.c:791 ../src/utils/pasuspender.c:293 -#: ../src/utils/pactl.c:1031 ../src/utils/paplay.c:396 +#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 +#: ../src/utils/pactl.c:1116 #, c-format msgid "pa_context_new() failed.\n" msgstr "pa_context_new() misslyckades.\n" -#: ../src/utils/pacat.c:799 +#: ../src/utils/pacat.c:1066 #, fuzzy, c-format msgid "pa_context_connect() failed: %s\n" msgstr "pa_context_new() misslyckades.\n" -#: ../src/utils/pacat.c:810 -#, c-format +#: ../src/utils/pacat.c:1077 msgid "time_new() failed.\n" msgstr "time_new() misslyckades.\n" -#: ../src/utils/pacat.c:817 ../src/utils/pasuspender.c:301 -#: ../src/utils/pactl.c:1042 ../src/utils/paplay.c:410 +#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 +#: ../src/utils/pactl.c:1127 #, c-format msgid "pa_mainloop_run() failed.\n" msgstr "pa_mainloop_run() misslyckades.\n" @@ -1519,8 +1549,7 @@ msgstr "" msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "" -#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:768 -#: ../src/utils/paplay.c:191 +#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" msgstr "" @@ -1542,7 +1571,7 @@ msgid "" "\n" msgstr "" -#: ../src/utils/pasuspender.c:251 +#: ../src/utils/pasuspender.c:248 #, c-format msgid "" "pasuspender %s\n" @@ -1553,32 +1582,32 @@ msgstr "" "Kompilerad med libpulse %s\n" "Länkad med libpulse %s\n" -#: ../src/utils/pactl.c:108 +#: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" msgstr "Misslyckades med att fÃ¥ statistik: %s\n" -#: ../src/utils/pactl.c:114 +#: ../src/utils/pactl.c:134 #, c-format msgid "Currently in use: %u blocks containing %s bytes total.\n" msgstr "" -#: ../src/utils/pactl.c:117 +#: ../src/utils/pactl.c:137 #, c-format msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n" msgstr "" -#: ../src/utils/pactl.c:120 +#: ../src/utils/pactl.c:140 #, c-format msgid "Sample cache size: %s\n" msgstr "" -#: ../src/utils/pactl.c:129 +#: ../src/utils/pactl.c:149 #, c-format msgid "Failed to get server information: %s\n" msgstr "" -#: ../src/utils/pactl.c:137 +#: ../src/utils/pactl.c:157 #, c-format msgid "" "User name: %s\n" @@ -1592,12 +1621,12 @@ msgid "" "Cookie: %08x\n" msgstr "" -#: ../src/utils/pactl.c:178 +#: ../src/utils/pactl.c:198 #, c-format msgid "Failed to get sink information: %s\n" msgstr "" -#: ../src/utils/pactl.c:194 +#: ../src/utils/pactl.c:214 #, c-format msgid "" "Sink #%u\n" @@ -1619,12 +1648,22 @@ msgid "" "\t\t%s\n" msgstr "" -#: ../src/utils/pactl.c:258 +#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 +#, c-format +msgid "\tPorts:\n" +msgstr "" + +#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 +#, fuzzy, c-format +msgid "\tActive Port: %s\n" +msgstr "pipe misslyckades: %s" + +#: ../src/utils/pactl.c:290 #, c-format msgid "Failed to get source information: %s\n" msgstr "" -#: ../src/utils/pactl.c:274 +#: ../src/utils/pactl.c:306 #, c-format msgid "" "Source #%u\n" @@ -1646,20 +1685,20 @@ msgid "" "\t\t%s\n" msgstr "" -#: ../src/utils/pactl.c:306 ../src/utils/pactl.c:350 ../src/utils/pactl.c:385 -#: ../src/utils/pactl.c:422 ../src/utils/pactl.c:481 ../src/utils/pactl.c:482 -#: ../src/utils/pactl.c:492 ../src/utils/pactl.c:536 ../src/utils/pactl.c:537 -#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:586 ../src/utils/pactl.c:587 -#: ../src/utils/pactl.c:594 +#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429 +#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526 +#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581 +#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631 +#: ../src/utils/pactl.c:638 msgid "n/a" msgstr "" -#: ../src/utils/pactl.c:324 +#: ../src/utils/pactl.c:368 #, c-format msgid "Failed to get module information: %s\n" msgstr "Misslyckades med att fÃ¥ modulinformation: %s\n" -#: ../src/utils/pactl.c:342 +#: ../src/utils/pactl.c:386 #, c-format msgid "" "Module #%u\n" @@ -1670,12 +1709,12 @@ msgid "" "\t\t%s\n" msgstr "" -#: ../src/utils/pactl.c:361 +#: ../src/utils/pactl.c:405 #, c-format msgid "Failed to get client information: %s\n" msgstr "Misslyckades med att fÃ¥ klientinformation: %s\n" -#: ../src/utils/pactl.c:379 +#: ../src/utils/pactl.c:423 #, c-format msgid "" "Client #%u\n" @@ -1685,12 +1724,12 @@ msgid "" "\t\t%s\n" msgstr "" -#: ../src/utils/pactl.c:396 +#: ../src/utils/pactl.c:440 #, fuzzy, c-format msgid "Failed to get card information: %s\n" msgstr "Misslyckades med att fÃ¥ modulinformation: %s\n" -#: ../src/utils/pactl.c:414 +#: ../src/utils/pactl.c:458 #, c-format msgid "" "Card #%u\n" @@ -1701,22 +1740,22 @@ msgid "" "\t\t%s\n" msgstr "" -#: ../src/utils/pactl.c:428 +#: ../src/utils/pactl.c:472 #, c-format msgid "\tProfiles:\n" msgstr "" -#: ../src/utils/pactl.c:434 +#: ../src/utils/pactl.c:478 #, fuzzy, c-format msgid "\tActive Profile: %s\n" msgstr "pipe misslyckades: %s" -#: ../src/utils/pactl.c:445 +#: ../src/utils/pactl.c:489 #, c-format msgid "Failed to get sink input information: %s\n" msgstr "" -#: ../src/utils/pactl.c:464 +#: ../src/utils/pactl.c:508 #, c-format msgid "" "Sink Input #%u\n" @@ -1737,12 +1776,12 @@ msgid "" "\t\t%s\n" msgstr "" -#: ../src/utils/pactl.c:503 +#: ../src/utils/pactl.c:547 #, c-format msgid "Failed to get source output information: %s\n" msgstr "" -#: ../src/utils/pactl.c:523 +#: ../src/utils/pactl.c:567 #, c-format msgid "" "Source Output #%u\n" @@ -1759,12 +1798,12 @@ msgid "" "\t\t%s\n" msgstr "" -#: ../src/utils/pactl.c:554 +#: ../src/utils/pactl.c:598 #, c-format msgid "Failed to get sample information: %s\n" msgstr "" -#: ../src/utils/pactl.c:572 +#: ../src/utils/pactl.c:616 #, c-format msgid "" "Sample #%u\n" @@ -1782,22 +1821,21 @@ msgid "" "\t\t%s\n" msgstr "" -#: ../src/utils/pactl.c:602 ../src/utils/pactl.c:612 +#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 #, c-format msgid "Failure: %s\n" msgstr "Fel: %s\n" -#: ../src/utils/pactl.c:636 +#: ../src/utils/pactl.c:680 #, c-format msgid "Failed to upload sample: %s\n" msgstr "" -#: ../src/utils/pactl.c:653 -#, c-format +#: ../src/utils/pactl.c:697 msgid "Premature end of file\n" msgstr "" -#: ../src/utils/pactl.c:774 +#: ../src/utils/pactl.c:826 #, c-format msgid "" "%s [options] stat\n" @@ -1813,6 +1851,8 @@ msgid "" "%s [options] suspend-sink [SINK] 1|0\n" "%s [options] suspend-source [SOURCE] 1|0\n" "%s [options] set-card-profile [CARD] [PROFILE] \n" +"%s [options] set-sink-port [SINK] [PORT] \n" +"%s [options] set-source-port [SOURCE] [PORT] \n" "\n" " -h, --help Show this help\n" " --version Show version\n" @@ -1823,7 +1863,7 @@ msgid "" "server\n" msgstr "" -#: ../src/utils/pactl.c:826 +#: ../src/utils/pactl.c:880 #, c-format msgid "" "pactl %s\n" @@ -1834,71 +1874,71 @@ msgstr "" "Kompilerad med libpulse %s\n" "Länkad med libpulse %s\n" -#: ../src/utils/pactl.c:865 -#, c-format +#: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "" -#: ../src/utils/pactl.c:887 -#, c-format +#: ../src/utils/pactl.c:939 msgid "Failed to open sound file.\n" msgstr "Misslyckades med att öppna ljudfil.\n" -#: ../src/utils/pactl.c:899 -#, c-format +#: ../src/utils/pactl.c:951 +msgid "Warning: Failed to determine sample specification from file.\n" +msgstr "" + +#: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" msgstr "" -#: ../src/utils/pactl.c:911 -#, c-format +#: ../src/utils/pactl.c:973 msgid "You have to specify a sample name to remove\n" msgstr "" -#: ../src/utils/pactl.c:919 -#, c-format +#: ../src/utils/pactl.c:982 msgid "You have to specify a sink input index and a sink\n" msgstr "" -#: ../src/utils/pactl.c:928 -#, c-format +#: ../src/utils/pactl.c:992 msgid "You have to specify a source output index and a source\n" msgstr "" -#: ../src/utils/pactl.c:942 -#, c-format +#: ../src/utils/pactl.c:1007 msgid "You have to specify a module name and arguments.\n" msgstr "" -#: ../src/utils/pactl.c:962 -#, c-format +#: ../src/utils/pactl.c:1027 msgid "You have to specify a module index\n" msgstr "" -#: ../src/utils/pactl.c:972 -#, c-format +#: ../src/utils/pactl.c:1037 msgid "" "You may not specify more than one sink. You have to specify a boolean " "value.\n" msgstr "" -#: ../src/utils/pactl.c:985 -#, c-format +#: ../src/utils/pactl.c:1050 msgid "" "You may not specify more than one source. You have to specify a boolean " "value.\n" msgstr "" -#: ../src/utils/pactl.c:997 -#, c-format +#: ../src/utils/pactl.c:1062 msgid "You have to specify a card name/index and a profile name\n" msgstr "" -#: ../src/utils/pactl.c:1012 -#, c-format +#: ../src/utils/pactl.c:1073 +msgid "You have to specify a sink name/index and a port name\n" +msgstr "" + +#: ../src/utils/pactl.c:1084 +msgid "You have to specify a source name/index and a port name\n" +msgstr "" + +#: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "" -#: ../src/utils/pactl.c:1037 ../src/utils/paplay.c:404 +#: ../src/utils/pactl.c:1122 #, fuzzy, c-format msgid "pa_context_connect() failed: %s" msgstr "pa_context_new() misslyckades.\n" @@ -1975,112 +2015,48 @@ msgstr "" msgid "Not yet implemented.\n" msgstr "Ännu inte implementerad.\n" -#: ../src/utils/pacmd.c:64 +#: ../src/utils/pacmd.c:61 +msgid "No PulseAudio daemon running, or not running as session daemon." +msgstr "" + +#: ../src/utils/pacmd.c:66 #, c-format msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s" msgstr "" -#: ../src/utils/pacmd.c:81 +#: ../src/utils/pacmd.c:83 #, c-format msgid "connect(): %s" msgstr "connect(): %s" -#: ../src/utils/pacmd.c:89 +#: ../src/utils/pacmd.c:91 msgid "Failed to kill PulseAudio daemon." msgstr "" -#: ../src/utils/pacmd.c:97 +#: ../src/utils/pacmd.c:99 msgid "Daemon not responding." msgstr "" -#: ../src/utils/pacmd.c:144 +#: ../src/utils/pacmd.c:146 #, c-format msgid "select(): %s" msgstr "select(): %s" -#: ../src/utils/pacmd.c:154 ../src/utils/pacmd.c:171 +#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173 #, c-format msgid "read(): %s" msgstr "read(): %s" -#: ../src/utils/pacmd.c:187 ../src/utils/pacmd.c:201 +#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203 #, c-format msgid "write(): %s" msgstr "write(): %s" -#: ../src/utils/paplay.c:139 -#, c-format -msgid "Stream successfully created\n" -msgstr "" - -#: ../src/utils/paplay.c:144 -#, c-format -msgid "Stream errror: %s\n" -msgstr "" - -#: ../src/utils/paplay.c:165 -#, c-format -msgid "Connection established.\n" -msgstr "Anslutning etablerad.\n" - -#: ../src/utils/paplay.c:198 -#, c-format -msgid "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" -msgstr "" - -#: ../src/utils/paplay.c:255 -#, c-format -msgid "" -"paplay %s\n" -"Compiled with libpulse %s\n" -"Linked with libpulse %s\n" -msgstr "" -"paplay %s\n" -"Kompilerad med libpulse %s\n" -"Länkad med libpulse %s\n" - -#: ../src/utils/paplay.c:292 -#, c-format -msgid "Invalid channel map\n" -msgstr "" - -#: ../src/utils/paplay.c:314 -#, c-format -msgid "Failed to open file '%s'\n" -msgstr "Misslyckades med att öppna filen \"%s\"\n" - -#: ../src/utils/paplay.c:350 -#, c-format -msgid "Channel map doesn't match file.\n" -msgstr "" - -#: ../src/utils/paplay.c:376 -#, c-format -msgid "Using sample spec '%s'\n" -msgstr "" - #: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 msgid "Cannot access autospawn lock." msgstr "" -#: ../src/modules/alsa/alsa-sink.c:393 ../src/modules/alsa/alsa-sink.c:541 +#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2091,7 +2067,7 @@ msgid "" "returned 0 or another value < min_avail." msgstr "" -#: ../src/modules/alsa/alsa-source.c:377 ../src/modules/alsa/alsa-source.c:516 +#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2102,38 +2078,38 @@ msgid "" "returned 0 or another value < min_avail." msgstr "" -#: ../src/modules/alsa/module-alsa-card.c:114 -#, c-format -msgid "Output %s + Input %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:117 -#, c-format -msgid "Output %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:121 -#, c-format -msgid "Input %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:170 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2006 +#: ../src/modules/alsa/module-alsa-card.c:152 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 msgid "Off" msgstr "" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1976 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 msgid "High Fidelity Playback (A2DP)" msgstr "" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1991 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 msgid "Telephony Duplex (HSP/HFP)" msgstr "" -#: ../src/modules/reserve-wrap.c:139 +#: ../src/modules/reserve-wrap.c:151 msgid "PulseAudio Sound Server" msgstr "" +#~ msgid "Connection established.\n" +#~ msgstr "Anslutning etablerad.\n" + +#~ msgid "" +#~ "paplay %s\n" +#~ "Compiled with libpulse %s\n" +#~ "Linked with libpulse %s\n" +#~ msgstr "" +#~ "paplay %s\n" +#~ "Kompilerad med libpulse %s\n" +#~ "Länkad med libpulse %s\n" + +#~ msgid "Failed to open file '%s'\n" +#~ msgstr "Misslyckades med att öppna filen \"%s\"\n" + #, fuzzy #~ msgid "--log-time boolean argument" #~ msgstr "--disallow-exit booleskt argument" @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio.master-tx.pulseaudio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-21 23:02+0200\n" +"POT-Creation-Date: 2009-06-17 23:42+0200\n" "PO-Revision-Date: 2009-04-12 05:02+0530\n" "Last-Translator: I. Felix <ifelix@redhat.com>\n" "Language-Team: Tamil <fedora-trans-ta@redhat.com>\n" @@ -34,51 +34,7 @@ msgstr "" "\n" "\n" -#: ../src/modules/alsa/alsa-util.c:532 -msgid "Analog Mono" -msgstr "Analog Mono" - -#: ../src/modules/alsa/alsa-util.c:540 -msgid "Analog Stereo" -msgstr "Analog Stereo" - -#: ../src/modules/alsa/alsa-util.c:548 -msgid "Digital Stereo (IEC958)" -msgstr "Digital Stereo (IEC958)" - -#: ../src/modules/alsa/alsa-util.c:556 -msgid "Digital Stereo (HDMI)" -msgstr "Digital Stereo (HDMI)" - -#: ../src/modules/alsa/alsa-util.c:565 -msgid "Analog Surround 4.0" -msgstr "Analog Surround 4.0" - -#: ../src/modules/alsa/alsa-util.c:574 -msgid "Digital Surround 4.0 (IEC958/AC3)" -msgstr "Digital Surround 4.0 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:584 -msgid "Analog Surround 4.1" -msgstr "Analog Surround 4.1" - -#: ../src/modules/alsa/alsa-util.c:594 -msgid "Analog Surround 5.0" -msgstr "Analog Surround 5.0" - -#: ../src/modules/alsa/alsa-util.c:604 -msgid "Analog Surround 5.1" -msgstr "Analog Surround 5.1" - -#: ../src/modules/alsa/alsa-util.c:614 -msgid "Digital Surround 5.1 (IEC958/AC3)" -msgstr "Digital Surround 5.1 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:625 -msgid "Analog Surround 7.1" -msgstr "Analog Surround 7.1" - -#: ../src/modules/alsa/alsa-util.c:1646 +#: ../src/modules/alsa/alsa-util.c:1015 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -91,7 +47,7 @@ msgstr "" "Most likely this is a bug in the ALSA driver '%s'. Please report this issue " "to the ALSA developers." -#: ../src/modules/alsa/alsa-util.c:1687 +#: ../src/modules/alsa/alsa-util.c:1056 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -104,7 +60,7 @@ msgstr "" "Most likely this is a bug in the ALSA driver '%s'. Please report this issue " "to the ALSA developers." -#: ../src/modules/alsa/alsa-util.c:1734 +#: ../src/modules/alsa/alsa-util.c:1103 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -117,11 +73,24 @@ msgstr "" "Most likely this is a bug in the ALSA driver '%s'. Please report this issue " "to the ALSA developers." -#: ../src/pulsecore/sink.c:2141 +#: ../src/modules/module-ladspa-sink.c:49 +msgid "Virtual LADSPA sink" +msgstr "" + +#: ../src/modules/module-ladspa-sink.c:53 +msgid "" +"sink_name=<name for the sink> sink_properties=<properties for the sink> " +"master=<name of sink to filter> format=<sample format> rate=<sample rate> " +"channels=<number of channels> channel_map=<channel map> plugin=<ladspa " +"plugin name> label=<ladspa plugin label> control=<comma seperated list of " +"input control values>" +msgstr "" + +#: ../src/pulsecore/sink.c:2394 msgid "Internal Audio" msgstr "உடà¯à®ªà¯à®± ஆடியோ" -#: ../src/pulsecore/sink.c:2147 +#: ../src/pulsecore/sink.c:2400 msgid "Modem" msgstr "மாதிரி" @@ -191,106 +160,106 @@ msgstr "auth஠பெற à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %s" msgid "PolicyKit responded with '%s'" msgstr "'%s'உடன௠பாலிஸிகிட௠ஒதà¯à®¤à¯à®ªà¯‹à®•à®¿à®±à®¤à¯" -#: ../src/daemon/main.c:138 +#: ../src/daemon/main.c:142 #, c-format msgid "Got signal %s." msgstr "%sகà¯à®•à¯ சிகà¯à®©à®²à¯ கிடைதà¯à®¤à¯à®µà®¿à®Ÿà¯à®Ÿà®¤à¯." -#: ../src/daemon/main.c:165 +#: ../src/daemon/main.c:169 msgid "Exiting." msgstr "வெளியேறà¯à®¤à®²à¯." -#: ../src/daemon/main.c:183 +#: ../src/daemon/main.c:187 #, c-format msgid "Failed to find user '%s'." msgstr "'%s' பயனரை கணà¯à®Ÿà¯à®ªà®¿à®Ÿà®¿à®ªà¯à®ªà®¤à®¿à®²à¯ தோலà¯à®µà®¿." -#: ../src/daemon/main.c:188 +#: ../src/daemon/main.c:192 #, c-format msgid "Failed to find group '%s'." msgstr "'%s' கà¯à®´à¯à®µà¯ˆ கணà¯à®Ÿà¯à®ªà®¿à®Ÿà®¿à®ªà¯à®ªà®¤à®¿à®²à¯ தோலà¯à®µà®¿." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:196 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "'%s'பயனர௠கணà¯à®Ÿà¯à®ªà®¿à®Ÿà®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¾à®°à¯ (UID %lu) மறà¯à®±à¯à®®à¯ கà¯à®´à¯ '%s' (GID %lu)." -#: ../src/daemon/main.c:197 +#: ../src/daemon/main.c:201 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "GID ன௠பயனர௠'%s' மறà¯à®±à¯à®®à¯ '%s' கà¯à®´à¯à®µà¯à®Ÿà®©à¯ ஒதà¯à®¤à¯ போகவிலà¯à®²à¯ˆ." -#: ../src/daemon/main.c:202 +#: ../src/daemon/main.c:206 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "à®®à¯à®•à®ªà¯à®ªà¯ அடைவ௠பயனரான'%s' '%s'ஆலà¯, பà¯à®±à®•à¯à®•à®£à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ." -#: ../src/daemon/main.c:205 ../src/daemon/main.c:210 +#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 #, c-format msgid "Failed to create '%s': %s" msgstr "'%s'஠உரà¯à®µà®¾à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %s" -#: ../src/daemon/main.c:217 +#: ../src/daemon/main.c:221 #, c-format msgid "Failed to change group list: %s" msgstr "கà¯à®´à¯à®ªà¯ படà¯à®Ÿà®¿à®¯à®²à¯ˆ மாறà¯à®± à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %s" -#: ../src/daemon/main.c:233 +#: ../src/daemon/main.c:237 #, c-format msgid "Failed to change GID: %s" msgstr "GIDகà¯à®•à¯ மாறà¯à®±à¯à®µà®¤à®¿à®²à¯ தோலà¯à®µà®¿: %s" -#: ../src/daemon/main.c:249 +#: ../src/daemon/main.c:253 #, c-format msgid "Failed to change UID: %s" msgstr "UIDகà¯à®•à¯ மாறà¯à®±à¯à®µà®¤à®¿à®²à¯ தோலà¯à®µà®¿: %s" -#: ../src/daemon/main.c:263 +#: ../src/daemon/main.c:267 msgid "Successfully dropped root privileges." msgstr "ரூட௠மà¯à®©à¯à®©à¯à®°à®¿à®®à¯ˆà®•à®³à¯ வெறà¯à®±à®¿à®•à®°à®®à®¾à®• விடபà¯à®ªà®Ÿà¯à®Ÿà®¤à¯." -#: ../src/daemon/main.c:271 +#: ../src/daemon/main.c:275 msgid "System wide mode unsupported on this platform." msgstr "இநà¯à®¤ தளதà¯à®¤à®¿à®²à¯ கணினியின௠திறநà¯à®¤ à®®à¯à®±à¯ˆà®®à¯ˆ தà¯à®£à¯ˆà®ªà¯à®°à®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ." -#: ../src/daemon/main.c:289 +#: ../src/daemon/main.c:293 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯: %s" -#: ../src/daemon/main.c:477 +#: ../src/daemon/main.c:481 msgid "Failed to parse command line." msgstr "கடà¯à®Ÿà®³à¯ˆ வரியை மாறà¯à®±à¯à®µà®¤à®¿à®²à¯ தோலà¯à®µà®¿." -#: ../src/daemon/main.c:501 +#: ../src/daemon/main.c:505 #, c-format msgid "We're in the group '%s', allowing high-priority scheduling." msgstr "" "நாம௠கà¯à®´à¯ '%s'ல௠இரà¯à®¨à¯à®¤ போத௠, உயரà¯à®¨à¯à®¤ à®®à¯à®¤à®©à¯à®®à¯ˆ அடà¯à®Ÿà®µà®£à¯ˆà®ªà¯à®ªà®Ÿà¯à®¤à¯à®¤ அனà¯à®®à®¤à®¿ " "அளிகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¿à®°à¯à®¨à¯à®¤à®¤à¯." -#: ../src/daemon/main.c:508 +#: ../src/daemon/main.c:512 #, c-format msgid "We're in the group '%s', allowing real-time scheduling." msgstr "கà¯à®´à¯ '%s'இல௠இரà¯à®•à¯à®•à®¿à®±à¯‹à®®à¯, நிகழà¯à®¨à¯‡à®° திடà¯à®Ÿà®®à®¿à®Ÿà¯à®¤à®²à¯ˆ அனà¯à®®à®¤à®¿à®•à¯à®•à®¿à®±à®¤à¯." -#: ../src/daemon/main.c:516 +#: ../src/daemon/main.c:520 msgid "PolicyKit grants us acquire-high-priority privilege." msgstr "நமகà¯à®•à®¾à®• PolicyKit உயரà¯à®¨à¯à®¤ à®®à¯à®•à¯à®•à®¿à®¯ à®®à¯à®©à¯à®©à¯à®°à®¿à®®à¯ˆà®¯à¯ˆ வழஙà¯à®•à¯à®•à®¿à®±à®¤à¯." -#: ../src/daemon/main.c:519 +#: ../src/daemon/main.c:523 msgid "PolicyKit refuses acquire-high-priority privilege." msgstr "PolicyKit உயரà¯à®¨à¯à®¤ à®®à¯à®•à¯à®•à®¿à®¯ à®®à¯à®©à¯à®©à¯à®°à®¿à®®à¯ˆà®¯à¯ˆ மறà¯à®•à¯à®•à®¿à®±à®¤à¯." -#: ../src/daemon/main.c:524 +#: ../src/daemon/main.c:528 msgid "PolicyKit grants us acquire-real-time privilege." msgstr "PolicyKit acquire-real-time à®®à¯à®©à¯à®©à¯à®°à®¿à®®à¯ˆà®•à®³à¯ˆ கொடà¯à®•à¯à®•à®¿à®±à®¤à¯." -#: ../src/daemon/main.c:527 +#: ../src/daemon/main.c:531 msgid "PolicyKit refuses acquire-real-time privilege." msgstr "PolicyKit acquire-real-time à®®à¯à®©à¯à®©à¯à®°à®¿à®®à¯ˆà®•à®³à¯ˆ நிராகரிகà¯à®•à®¿à®±à®¤à¯." -#: ../src/daemon/main.c:556 +#: ../src/daemon/main.c:560 #, c-format msgid "" "Called SUID root and real-time and/or high-priority scheduling was requested " @@ -311,207 +280,217 @@ msgstr "" "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:581 +#: ../src/daemon/main.c:585 msgid "" "High-priority scheduling enabled in configuration but not allowed by policy." msgstr "" "உயரà¯à®¨à¯à®¤ சலà¯à®•à¯ˆà®•à®³à®¿à®©à¯ அடà¯à®Ÿà®µà®£à¯ˆà®¯à¯ˆ கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà®¿à®²à¯ செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯ ஆனால௠பாலிசியால௠" "அனà¯à®®à®¤à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ." -#: ../src/daemon/main.c:610 +#: ../src/daemon/main.c:614 msgid "Successfully increased RLIMIT_RTPRIO" msgstr "வெறà¯à®±à®¿à®•à®°à®®à®¾à®• அதிகரிகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯ RLIMIT_RTPRIO" -#: ../src/daemon/main.c:613 +#: ../src/daemon/main.c:617 #, c-format msgid "RLIMIT_RTPRIO failed: %s" msgstr "RLIMIT_RTPRIO தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯: %s" -#: ../src/daemon/main.c:620 +#: ../src/daemon/main.c:624 msgid "Giving up CAP_NICE" msgstr "" "CAP_NICE஠மேலே கொடà¯à®•à¯à®•à®¿à®±à®¤à¯ (_N\n" ")" -#: ../src/daemon/main.c:627 +#: ../src/daemon/main.c:631 msgid "" "Real-time scheduling enabled in configuration but not allowed by policy." msgstr "" "நிகழà¯à®¨à¯‡à®° திடà¯à®Ÿà®®à®¿à®Ÿà¯à®¤à®²à¯ கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà®¿à®²à¯ செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯ ஆனால௠கொளà¯à®•à¯ˆà®¯à®¾à®²à¯ அனà¯à®®à®¤à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®µà®¤à®¿à®²à¯à®²à¯ˆ" -#: ../src/daemon/main.c:688 +#: ../src/daemon/main.c:692 msgid "Daemon not running" msgstr "டோமோன௠இயஙà¯à®•à®µà®¿à®²à¯à®²à¯ˆ" -#: ../src/daemon/main.c:690 +#: ../src/daemon/main.c:694 #, c-format msgid "Daemon running as PID %u" msgstr "PID %uவாக டோமோன௠இயஙà¯à®•à¯à®•à®¿à®±à®¤à¯" -#: ../src/daemon/main.c:700 +#: ../src/daemon/main.c:704 #, c-format msgid "Failed to kill daemon: %s" msgstr "டோமோனà¯à®•à¯à®•à¯ à®®à¯à®Ÿà®¿à®µà¯ கடà¯à®Ÿà¯à®µà®¤à®¿à®²à¯ தோலà¯à®µà®¿: %s" -#: ../src/daemon/main.c:718 +#: ../src/daemon/main.c:722 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." msgstr "இநà¯à®¤ நிரல௠ரூடà¯à®Ÿà®¾à®• இயஙà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ (--system கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®¾à®¤ வரை)." -#: ../src/daemon/main.c:720 +#: ../src/daemon/main.c:724 msgid "Root privileges required." msgstr "ரூட௠மà¯à®©à¯à®©à¯à®°à®¿à®®à¯ˆà®•à®³à¯ தேவைபà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯." -#: ../src/daemon/main.c:725 +#: ../src/daemon/main.c:729 msgid "--start not supported for system instances." msgstr "--start கணினி நிகழà¯à®µà®¿à®²à¯ தà¯à®£à¯ˆà®ªà¯à®°à®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ." -#: ../src/daemon/main.c:730 +#: ../src/daemon/main.c:734 msgid "Running in system mode, but --disallow-exit not set!" msgstr "கணினி à®®à¯à®±à¯ˆà®®à¯ˆà®¯à®¿à®²à¯ இயஙà¯à®•à¯à®•à®¿à®±à®¤à¯, ஆனால௠--disallow-exit அமைகà¯à®•à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ!" -#: ../src/daemon/main.c:733 +#: ../src/daemon/main.c:737 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "" "கணினி à®®à¯à®±à¯ˆà®®à¯ˆà®¯à®¿à®²à¯ இயஙà¯à®•à¯à®•à®¿à®±à®¤à¯, ஆனால௠--disallow-module-loading அமைகà¯à®•à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ!" -#: ../src/daemon/main.c:736 +#: ../src/daemon/main.c:740 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "கணினி à®®à¯à®±à¯ˆà®®à¯ˆà®¯à®¿à®²à¯ இயஙà¯à®•à¯à®•à®¿à®±à®¤à¯, SHM à®®à¯à®±à¯ˆà®®à¯ˆ செயலà¯à®¨à¯€à®•à¯à®•à¯à®¤à®²à¯ கடà¯à®Ÿà®¾à®¯à®ªà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®•à®¿à®±à®¤à¯!" -#: ../src/daemon/main.c:741 +#: ../src/daemon/main.c:745 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "கணினி à®®à¯à®±à¯ˆà®®à¯ˆà®¯à®¿à®²à¯ இயஙà¯à®•à¯à®•à®¿à®±à®¤à¯, வெறà¯à®®à¯ˆ நேரதà¯à®¤à¯ˆ செயலà¯à®¨à¯€à®•à¯à®• கடà¯à®Ÿà®¾à®¯à®ªà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®•à®¿à®±à®¤à¯!" -#: ../src/daemon/main.c:768 +#: ../src/daemon/main.c:772 msgid "Failed to acquire stdio." msgstr "stdio஠பெற à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ." -#: ../src/daemon/main.c:774 +#: ../src/daemon/main.c:778 #, c-format msgid "pipe failed: %s" msgstr "பைப௠தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯: %s" -#: ../src/daemon/main.c:779 +#: ../src/daemon/main.c:783 #, c-format msgid "fork() failed: %s" msgstr "fork() தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯: %s" -#: ../src/daemon/main.c:793 +#: ../src/daemon/main.c:797 #, c-format msgid "read() failed: %s" msgstr "வாசிபà¯à®ªà®¤à®¿à®²à¯() தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯: %s" -#: ../src/daemon/main.c:799 +#: ../src/daemon/main.c:803 msgid "Daemon startup failed." msgstr "டோமோனை தà¯à®µà®•à¯à®•à¯à®µà®¤à®¿à®²à¯ தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯." -#: ../src/daemon/main.c:801 +#: ../src/daemon/main.c:805 msgid "Daemon startup successful." msgstr "டோமோனை வெறà¯à®±à®¿à®•à®°à®®à®¾à®• தà¯à®µà®•à¯à®•à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯." -#: ../src/daemon/main.c:871 +#: ../src/daemon/main.c:875 #, c-format msgid "This is PulseAudio %s" msgstr "இத௠தான௠பளà¯à®¸à¯ ஆடியோ %s" -#: ../src/daemon/main.c:872 +#: ../src/daemon/main.c:876 #, c-format msgid "Compilation host: %s" msgstr "தொகà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ பà¯à®°à®µà®²à®©à¯: %s" -#: ../src/daemon/main.c:873 +#: ../src/daemon/main.c:877 #, c-format msgid "Compilation CFLAGS: %s" msgstr "தொகà¯à®ªà¯à®ªà¯ CFLAGS: %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:880 #, c-format msgid "Running on host: %s" msgstr "பà¯à®°à®µà®²à®©à®¾à®• இயஙà¯à®•à¯à®•à®¿à®±à®¤: %s" -#: ../src/daemon/main.c:879 +#: ../src/daemon/main.c:883 #, c-format msgid "Found %u CPUs." msgstr "CPUs %uவில௠காணபà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯ ." -#: ../src/daemon/main.c:881 +#: ../src/daemon/main.c:885 #, c-format msgid "Page size is %lu bytes" msgstr "பகà¯à®• அளவà¯à®•à®³à¯ %lu பைடà¯à®¸à¯" -#: ../src/daemon/main.c:884 +#: ../src/daemon/main.c:888 msgid "Compiled with Valgrind support: yes" msgstr "Compiled with Valgrind support: yes" -#: ../src/daemon/main.c:886 +#: ../src/daemon/main.c:890 msgid "Compiled with Valgrind support: no" msgstr "Compiled with Valgrind support: no" -#: ../src/daemon/main.c:889 +#: ../src/daemon/main.c:893 #, c-format msgid "Running in valgrind mode: %s" msgstr "valgrind à®®à¯à®±à¯ˆà®®à¯ˆà®¯à®¿à®²à¯ இயஙà¯à®•à¯à®•à®¿à®±à®¤à¯: %s" -#: ../src/daemon/main.c:892 +#: ../src/daemon/main.c:896 msgid "Optimized build: yes" msgstr "Optimized build: yes" -#: ../src/daemon/main.c:894 +#: ../src/daemon/main.c:898 msgid "Optimized build: no" msgstr "சà¯à®°à¯à®•à¯à®•à®®à®¾à®© உரà¯à®µà®¾à®•à¯à®•à®®à¯: இலà¯à®²à¯ˆ" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:902 msgid "NDEBUG defined, all asserts disabled." msgstr "" -#: ../src/daemon/main.c:900 +#: ../src/daemon/main.c:904 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:906 msgid "All asserts enabled." msgstr "" -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:910 msgid "Failed to get machine ID" msgstr "கணினி கà¯à®±à®¿à®¯à¯€à®Ÿà¯ˆ பெறà¯à®µà®¤à®¿à®²à¯ தோலà¯à®µà®¿" -#: ../src/daemon/main.c:909 +#: ../src/daemon/main.c:913 #, c-format msgid "Machine ID is %s." msgstr "கணினி கà¯à®±à®¿à®¯à¯€à®Ÿà¯ %s." -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:917 #, fuzzy, c-format msgid "Session ID is %s." msgstr "கணினி கà¯à®±à®¿à®¯à¯€à®Ÿà¯ %s." -#: ../src/daemon/main.c:919 +#: ../src/daemon/main.c:923 #, c-format msgid "Using runtime directory %s." msgstr "ஓடà¯à®®à¯à®¨à¯‡à®°à®®à¯ %s அடைவை பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®•à®¿à®±à®¤à¯." -#: ../src/daemon/main.c:924 +#: ../src/daemon/main.c:928 #, c-format msgid "Using state directory %s." msgstr "%s நிலை அடைவினை பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®•à®¿à®±à®¤à¯." -#: ../src/daemon/main.c:927 +#: ../src/daemon/main.c:931 #, c-format msgid "Running in system mode: %s" msgstr "கணினியின௠மà¯à®±à¯ˆà®®à¯ˆà®¯à®¿à®²à¯ இயஙà¯à®•à¯à®•à®¿à®±à®¤à¯: %s" -#: ../src/daemon/main.c:942 +#: ../src/daemon/main.c:934 +msgid "" +"OK, so you are running PA in system mode. Please note that you most likely " +"shouldn't be doing that.\n" +"If you do it nonetheless then it's your own fault if things don't work as " +"expected.\n" +"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " +"explanation why system mode is usually a bad idea." +msgstr "" + +#: ../src/daemon/main.c:951 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯." -#: ../src/daemon/main.c:954 +#: ../src/daemon/main.c:961 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "உயரà¯à®¨à¯à®¤ திரைதà¯à®¤à®¿à®±à®©à¯ நேரமà¯à®•à®¾à®Ÿà¯à®Ÿà®¿ கிடைகà¯à®•à®¿à®³à®¤à¯! Bon appetit!" -#: ../src/daemon/main.c:956 +#: ../src/daemon/main.c:963 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -519,31 +498,31 @@ msgstr "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" -#: ../src/daemon/main.c:970 +#: ../src/daemon/main.c:988 msgid "pa_core_new() failed." msgstr "pa_core_new() தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯." -#: ../src/daemon/main.c:1032 +#: ../src/daemon/main.c:1050 msgid "Failed to initialize daemon." msgstr "டோமோனை ஆரமà¯à®ªà®¿à®ªà¯à®ªà®¤à®¿à®²à¯ தோலà¯à®µà®¿." -#: ../src/daemon/main.c:1037 +#: ../src/daemon/main.c:1055 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "டீமான௠தà¯à®µà®•à¯à®•à®®à¯ எநà¯à®¤ தொகà¯à®¤à®¿à®•à®³à¯à®®à¯ à®à®±à¯à®±à®ªà¯à®ªà®Ÿà®¾à®®à®²à¯, வேலையை நிராகரிகà¯à®•à®¿à®±à®¤à¯." -#: ../src/daemon/main.c:1054 +#: ../src/daemon/main.c:1072 msgid "Daemon startup complete." msgstr "டோமோன௠தà¯à®µà®•à¯à®•à¯à®µà®¤à¯ à®®à¯à®Ÿà®¿à®µà®Ÿà¯ˆà®¨à¯à®¤à®¤à¯." -#: ../src/daemon/main.c:1060 +#: ../src/daemon/main.c:1078 msgid "Daemon shutdown initiated." msgstr "டோமோன௠பணிநிறà¯à®¤à¯à®¤à®®à¯ à®®à¯à®©à¯ˆà®•à®¿à®±à®¤à¯." -#: ../src/daemon/main.c:1082 +#: ../src/daemon/main.c:1100 msgid "Daemon terminated." msgstr "டோமோன௠நீகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®¤à¯." -#: ../src/daemon/cmdline.c:121 +#: ../src/daemon/cmdline.c:115 #, c-format msgid "" "%s [options]\n" @@ -686,15 +665,15 @@ msgstr "" "\n" " -n Don't load default script file\n" -#: ../src/daemon/cmdline.c:252 +#: ../src/daemon/cmdline.c:247 msgid "--daemonize expects boolean argument" msgstr "--daemonize பூலியன௠அளவà¯à®°à¯ எதிரà¯à®ªà®¾à®°à¯à®•à¯à®•à®¿à®±à®¤à¯" -#: ../src/daemon/cmdline.c:259 +#: ../src/daemon/cmdline.c:254 msgid "--fail expects boolean argument" msgstr "--fail பூலியன௠அளவà¯à®°à¯ எதிரà¯à®ªà®¾à®°à¯à®•à¯à®•à®¿à®±à®¤à¯" -#: ../src/daemon/cmdline.c:269 +#: ../src/daemon/cmdline.c:264 msgid "" "--log-level expects log level argument (either numeric in range 0..4 or one " "of debug, info, notice, warn, error)." @@ -702,52 +681,52 @@ msgstr "" "--log-level பதிவ௠நிலை அளவà¯à®°à¯à®µà¯ˆ எதிரà¯à®ªà®¾à®°à¯à®•à¯à®•à®¿à®±à®¤à¯ (எண௠0..4 அலà¯à®²à®¤à¯ debug, info, " "notice, warn, errorஇல௠ஒனà¯à®±à¯)." -#: ../src/daemon/cmdline.c:281 +#: ../src/daemon/cmdline.c:276 msgid "--high-priority expects boolean argument" msgstr "--high-priority பூலியன௠அளவà¯à®°à¯ எதிரà¯à®ªà®¾à®°à¯à®•à¯à®•à®¿à®±à®¤à¯" -#: ../src/daemon/cmdline.c:288 +#: ../src/daemon/cmdline.c:283 msgid "--realtime expects boolean argument" msgstr "--realtime பூலியன௠அளவà¯à®°à¯ எதிரà¯à®ªà®¾à®°à¯à®•à¯à®•à®¿à®±à®¤à¯" -#: ../src/daemon/cmdline.c:295 +#: ../src/daemon/cmdline.c:290 msgid "--disallow-module-loading expects boolean argument" msgstr "--disallow-module-loading பூலியன௠அளவà¯à®°à¯ எதிரà¯à®ªà®¾à®°à¯à®•à¯à®•à®¿à®±à®¤à¯" -#: ../src/daemon/cmdline.c:302 +#: ../src/daemon/cmdline.c:297 msgid "--disallow-exit expects boolean argument" msgstr "--disallow-exit பூலியன௠அளவà¯à®°à¯ எதிரà¯à®ªà®¾à®°à¯à®•à¯à®•à®¿à®±à®¤à¯" -#: ../src/daemon/cmdline.c:309 +#: ../src/daemon/cmdline.c:304 msgid "--use-pid-file expects boolean argument" msgstr "--use-pid-file பூலியன௠அளவà¯à®°à¯ எதிரà¯à®ªà®¾à®°à¯à®•à¯à®•à®¿à®±à®¤à¯" -#: ../src/daemon/cmdline.c:326 +#: ../src/daemon/cmdline.c:321 msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgstr "தவறான பதிவ௠இலகà¯à®•à¯: 'syslog', 'stderr' அலà¯à®²à®¤à¯ 'auto'஠பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®µà¯à®®à¯." -#: ../src/daemon/cmdline.c:333 +#: ../src/daemon/cmdline.c:328 msgid "--log-time expects boolean argument" msgstr "--log-time பூலியன௠அளவà¯à®°à¯ எதிரà¯à®ªà®¾à®°à¯à®•à¯à®•à®¿à®±à®¤à¯" -#: ../src/daemon/cmdline.c:340 +#: ../src/daemon/cmdline.c:335 msgid "--log-meta expects boolean argument" msgstr "--log-meta பூலியன௠அளவà¯à®°à¯ எதிரà¯à®ªà®¾à®°à¯à®•à¯à®•à®¿à®±à®¤à¯" -#: ../src/daemon/cmdline.c:359 +#: ../src/daemon/cmdline.c:354 #, c-format msgid "Invalid resample method '%s'." msgstr "தவறான மறà¯à®®à®¾à®¤à®¿à®°à®¿ à®®à¯à®±à¯ˆ '%s'." -#: ../src/daemon/cmdline.c:366 +#: ../src/daemon/cmdline.c:361 msgid "--system expects boolean argument" msgstr "--system பூலியன௠அளவà¯à®°à¯ எதிரà¯à®ªà®¾à®°à¯à®•à¯à®•à®¿à®±à®¤à¯" -#: ../src/daemon/cmdline.c:373 +#: ../src/daemon/cmdline.c:368 msgid "--no-cpu-limit expects boolean argument" msgstr "--no-cpu-limit பூலியன௠அளவà¯à®°à¯ எதிரà¯à®ªà®¾à®°à¯à®•à¯à®•à®¿à®±à®¤à¯" -#: ../src/daemon/cmdline.c:380 +#: ../src/daemon/cmdline.c:375 msgid "--disable-shm expects boolean argument" msgstr "--disable-shm பூலியன௠அளவà¯à®°à¯ எதிரà¯à®ªà®¾à®°à¯à®•à¯à®•à®¿à®±à®¤à¯" @@ -786,77 +765,82 @@ msgstr "பயனà¯à®ªà®¾à®Ÿà¯: %s\n" msgid "Load Once: %s\n" msgstr "à®’à®°à¯à®®à¯à®±à¯ˆ à®à®±à¯à®±à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯: %s\n" -#: ../src/daemon/dumpmodules.c:77 +#: ../src/daemon/dumpmodules.c:75 +#, c-format +msgid "DEPRECATION WARNING: %s\n" +msgstr "" + +#: ../src/daemon/dumpmodules.c:79 #, c-format msgid "Path: %s\n" msgstr "பாதை: %s\n" -#: ../src/daemon/daemon-conf.c:215 +#: ../src/daemon/daemon-conf.c:216 #, c-format msgid "[%s:%u] Invalid log target '%s'." msgstr "[%s:%u] தவறான பதிவ௠இலகà¯à®•à¯ '%s'." -#: ../src/daemon/daemon-conf.c:231 +#: ../src/daemon/daemon-conf.c:232 #, c-format msgid "[%s:%u] Invalid log level '%s'." msgstr "[%s:%u] தவறான பதிவ௠இலகà¯à®•à¯ '%s'." -#: ../src/daemon/daemon-conf.c:247 +#: ../src/daemon/daemon-conf.c:248 #, c-format msgid "[%s:%u] Invalid resample method '%s'." msgstr "[%s:%u] தவறான மறà¯à®®à®¾à®¤à®¿à®°à®¿ à®®à¯à®±à¯ˆ '%s'." -#: ../src/daemon/daemon-conf.c:270 +#: ../src/daemon/daemon-conf.c:271 #, c-format msgid "[%s:%u] Invalid rlimit '%s'." msgstr "[%s:%u] தவறான rlimit '%s'." -#: ../src/daemon/daemon-conf.c:277 +#: ../src/daemon/daemon-conf.c:278 #, c-format msgid "[%s:%u] rlimit not supported on this platform." msgstr "[%s:%u] rlimit இநà¯à®¤ தளதà¯à®¤à®¿à®²à¯ தà¯à®£à¯ˆà®ªà¯à®°à®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ." -#: ../src/daemon/daemon-conf.c:293 +#: ../src/daemon/daemon-conf.c:294 #, c-format msgid "[%s:%u] Invalid sample format '%s'." msgstr "[%s:%u] தவறான மாதிரி à®®à¯à®±à¯ˆ '%s'." -#: ../src/daemon/daemon-conf.c:311 +#: ../src/daemon/daemon-conf.c:312 #, c-format msgid "[%s:%u] Invalid sample rate '%s'." msgstr "[%s:%u] தவறான மாதிரி விலை '%s'." -#: ../src/daemon/daemon-conf.c:335 +#: ../src/daemon/daemon-conf.c:336 #, c-format msgid "[%s:%u] Invalid sample channels '%s'." msgstr "[%s:%u] தவறான மாதிரி சேனலà¯à®•à®³à¯ '%s'." -#: ../src/daemon/daemon-conf.c:353 +#: ../src/daemon/daemon-conf.c:354 #, c-format msgid "[%s:%u] Invalid channel map '%s'." msgstr "[%s:%u] தவறான சேனல௠படம௠'%s'." -#: ../src/daemon/daemon-conf.c:371 +#: ../src/daemon/daemon-conf.c:372 #, c-format msgid "[%s:%u] Invalid number of fragments '%s'." msgstr "[%s:%u] பகà¯à®ªà¯à®ªà¯ '%s'கà¯à®•à¯ தவறான எணà¯" -#: ../src/daemon/daemon-conf.c:389 +#: ../src/daemon/daemon-conf.c:390 #, c-format msgid "[%s:%u] Invalid fragment size '%s'." msgstr "[%s:%u] தவறான பகà¯à®ªà¯à®ªà¯ அளவ௠'%s'." -#: ../src/daemon/daemon-conf.c:407 +#: ../src/daemon/daemon-conf.c:408 #, c-format msgid "[%s:%u] Invalid nice level '%s'." msgstr "[%s:%u] தவறான நலà¯à®² நிலை '%s'." -#: ../src/daemon/daemon-conf.c:522 +#: ../src/daemon/daemon-conf.c:524 #, c-format msgid "Failed to open configuration file: %s" msgstr "கடà¯à®Ÿà®®à¯ˆà®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ கோபà¯à®ªà®¿à®©à¯ˆ திறபà¯à®ªà®¤à®¿à®²à¯ தோலà¯à®µà®¿: %s" -#: ../src/daemon/daemon-conf.c:538 +#: ../src/daemon/daemon-conf.c:540 msgid "" "The specified default channel map has a different number of channels than " "the specified default number of channels." @@ -905,237 +889,237 @@ msgstr "" msgid "System policy prevents PulseAudio from acquiring real-time scheduling." msgstr "கணினி கொளà¯à®•à¯ˆ PulseAudio ஠நிகழà¯à®¨à¯‡à®° திடà¯à®Ÿà®®à®¿à®Ÿà¯à®¤à®²à¯ˆ எடà¯à®•à¯à®•à®¿à®±à®¤à¯." -#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804 +#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "மோனோ" -#: ../src/pulse/channelmap.c:105 +#: ../src/pulse/channelmap.c:107 msgid "Front Center" msgstr "à®®à¯à®©à¯ நடà¯à®µà®¿à®²à¯" -#: ../src/pulse/channelmap.c:106 +#: ../src/pulse/channelmap.c:108 msgid "Front Left" msgstr "à®®à¯à®©à¯ இடதà¯" -#: ../src/pulse/channelmap.c:107 +#: ../src/pulse/channelmap.c:109 msgid "Front Right" msgstr "à®®à¯à®©à¯ வலதà¯" -#: ../src/pulse/channelmap.c:109 +#: ../src/pulse/channelmap.c:111 msgid "Rear Center" msgstr "பின௠நடà¯à®µà®¿à®²à¯" -#: ../src/pulse/channelmap.c:110 +#: ../src/pulse/channelmap.c:112 msgid "Rear Left" msgstr "பின௠இடதà¯" -#: ../src/pulse/channelmap.c:111 +#: ../src/pulse/channelmap.c:113 msgid "Rear Right" msgstr "பின௠வலதà¯" -#: ../src/pulse/channelmap.c:113 +#: ../src/pulse/channelmap.c:115 msgid "Low Frequency Emmiter" msgstr "கà¯à®±à¯ˆà®¨à¯à®¤ அலைவரிசை எமà¯à®®à®¿à®Ÿà¯à®Ÿà®°à¯" -#: ../src/pulse/channelmap.c:115 +#: ../src/pulse/channelmap.c:117 msgid "Front Left-of-center" msgstr "à®®à¯à®©à¯ இடத௠பகà¯à®•à®¤à¯à®¤à®¿à®©à¯ நடà¯à®µà®¿à®²à¯" -#: ../src/pulse/channelmap.c:116 +#: ../src/pulse/channelmap.c:118 msgid "Front Right-of-center" msgstr "à®®à¯à®©à¯ வலத௠பகà¯à®•à®¤à¯à®¤à®¿à®©à¯ நடà¯à®µà®¿à®²à¯" -#: ../src/pulse/channelmap.c:118 +#: ../src/pulse/channelmap.c:120 msgid "Side Left" msgstr "இடத௠பகà¯à®•à®®à¯" -#: ../src/pulse/channelmap.c:119 +#: ../src/pulse/channelmap.c:121 msgid "Side Right" msgstr "வலத௠பகà¯à®•à®®à¯" -#: ../src/pulse/channelmap.c:121 +#: ../src/pulse/channelmap.c:123 msgid "Auxiliary 0" msgstr "Auxiliary 0" -#: ../src/pulse/channelmap.c:122 +#: ../src/pulse/channelmap.c:124 msgid "Auxiliary 1" msgstr "Auxiliary 1" -#: ../src/pulse/channelmap.c:123 +#: ../src/pulse/channelmap.c:125 msgid "Auxiliary 2" msgstr "Auxiliary 2" -#: ../src/pulse/channelmap.c:124 +#: ../src/pulse/channelmap.c:126 msgid "Auxiliary 3" msgstr "Auxiliary 3" -#: ../src/pulse/channelmap.c:125 +#: ../src/pulse/channelmap.c:127 msgid "Auxiliary 4" msgstr "Auxiliary 4" -#: ../src/pulse/channelmap.c:126 +#: ../src/pulse/channelmap.c:128 msgid "Auxiliary 5" msgstr "Auxiliary 5" -#: ../src/pulse/channelmap.c:127 +#: ../src/pulse/channelmap.c:129 msgid "Auxiliary 6" msgstr "Auxiliary 6" -#: ../src/pulse/channelmap.c:128 +#: ../src/pulse/channelmap.c:130 msgid "Auxiliary 7" msgstr "Auxiliary 7" -#: ../src/pulse/channelmap.c:129 +#: ../src/pulse/channelmap.c:131 msgid "Auxiliary 8" msgstr "Auxiliary 8" -#: ../src/pulse/channelmap.c:130 +#: ../src/pulse/channelmap.c:132 msgid "Auxiliary 9" msgstr "Auxiliary 9" -#: ../src/pulse/channelmap.c:131 +#: ../src/pulse/channelmap.c:133 msgid "Auxiliary 10" msgstr "Auxiliary 10" -#: ../src/pulse/channelmap.c:132 +#: ../src/pulse/channelmap.c:134 msgid "Auxiliary 11" msgstr "Auxiliary 11" -#: ../src/pulse/channelmap.c:133 +#: ../src/pulse/channelmap.c:135 msgid "Auxiliary 12" msgstr "Auxiliary 12" -#: ../src/pulse/channelmap.c:134 +#: ../src/pulse/channelmap.c:136 msgid "Auxiliary 13" msgstr "Auxiliary 13" -#: ../src/pulse/channelmap.c:135 +#: ../src/pulse/channelmap.c:137 msgid "Auxiliary 14" msgstr "Auxiliary 14" -#: ../src/pulse/channelmap.c:136 +#: ../src/pulse/channelmap.c:138 msgid "Auxiliary 15" msgstr "Auxiliary 15" -#: ../src/pulse/channelmap.c:137 +#: ../src/pulse/channelmap.c:139 msgid "Auxiliary 16" msgstr "Auxiliary 16" -#: ../src/pulse/channelmap.c:138 +#: ../src/pulse/channelmap.c:140 msgid "Auxiliary 17" msgstr "Auxiliary 17" -#: ../src/pulse/channelmap.c:139 +#: ../src/pulse/channelmap.c:141 msgid "Auxiliary 18" msgstr "Auxiliary 18" -#: ../src/pulse/channelmap.c:140 +#: ../src/pulse/channelmap.c:142 msgid "Auxiliary 19" msgstr "Auxiliary 19" -#: ../src/pulse/channelmap.c:141 +#: ../src/pulse/channelmap.c:143 msgid "Auxiliary 20" msgstr "Auxiliary 20" -#: ../src/pulse/channelmap.c:142 +#: ../src/pulse/channelmap.c:144 msgid "Auxiliary 21" msgstr "Auxiliary 21" -#: ../src/pulse/channelmap.c:143 +#: ../src/pulse/channelmap.c:145 msgid "Auxiliary 22" msgstr "Auxiliary 22" -#: ../src/pulse/channelmap.c:144 +#: ../src/pulse/channelmap.c:146 msgid "Auxiliary 23" msgstr "Auxiliary 23" -#: ../src/pulse/channelmap.c:145 +#: ../src/pulse/channelmap.c:147 msgid "Auxiliary 24" msgstr "Auxiliary 24" -#: ../src/pulse/channelmap.c:146 +#: ../src/pulse/channelmap.c:148 msgid "Auxiliary 25" msgstr "Auxiliary 25" -#: ../src/pulse/channelmap.c:147 +#: ../src/pulse/channelmap.c:149 msgid "Auxiliary 26" msgstr "Auxiliary 26" -#: ../src/pulse/channelmap.c:148 +#: ../src/pulse/channelmap.c:150 msgid "Auxiliary 27" msgstr "Auxiliary 27" -#: ../src/pulse/channelmap.c:149 +#: ../src/pulse/channelmap.c:151 msgid "Auxiliary 28" msgstr "Auxiliary 28" -#: ../src/pulse/channelmap.c:150 +#: ../src/pulse/channelmap.c:152 msgid "Auxiliary 29" msgstr "Auxiliary 29" -#: ../src/pulse/channelmap.c:151 +#: ../src/pulse/channelmap.c:153 msgid "Auxiliary 30" msgstr "Auxiliary 30" -#: ../src/pulse/channelmap.c:152 +#: ../src/pulse/channelmap.c:154 msgid "Auxiliary 31" msgstr "Auxiliary 31" -#: ../src/pulse/channelmap.c:154 +#: ../src/pulse/channelmap.c:156 msgid "Top Center" msgstr "மேல௠நடà¯à®µà®¿à®²" -#: ../src/pulse/channelmap.c:156 +#: ../src/pulse/channelmap.c:158 msgid "Top Front Center" msgstr "மேலை à®®à¯à®©à¯ நடà¯à®µà®¿à®²à¯" -#: ../src/pulse/channelmap.c:157 +#: ../src/pulse/channelmap.c:159 msgid "Top Front Left" msgstr "மேலே à®®à¯à®©à¯ இடதà¯" -#: ../src/pulse/channelmap.c:158 +#: ../src/pulse/channelmap.c:160 msgid "Top Front Right" msgstr "மேலே à®®à¯à®©à¯ வலதà¯" -#: ../src/pulse/channelmap.c:160 +#: ../src/pulse/channelmap.c:162 msgid "Top Rear Center" msgstr "மேலே பின௠நடà¯à®µà®¿à®²à¯" -#: ../src/pulse/channelmap.c:161 +#: ../src/pulse/channelmap.c:163 msgid "Top Rear Left" msgstr "மேலே பின௠இடதà¯" -#: ../src/pulse/channelmap.c:162 +#: ../src/pulse/channelmap.c:164 msgid "Top Rear Right" msgstr "மேலே பின௠வலதà¯" -#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167 -#: ../src/pulse/volume.c:170 ../src/pulse/volume.c:196 -#: ../src/pulse/volume.c:216 ../src/pulse/volume.c:246 +#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167 +#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265 +#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315 msgid "(invalid)" msgstr "(தவறான)" -#: ../src/pulse/channelmap.c:808 +#: ../src/pulse/channelmap.c:751 msgid "Stereo" msgstr "ஸà¯à®Ÿà®¿à®°à®¿à®¯à¯‹" -#: ../src/pulse/channelmap.c:813 +#: ../src/pulse/channelmap.c:756 msgid "Surround 4.0" msgstr "Surround 4.0" -#: ../src/pulse/channelmap.c:819 +#: ../src/pulse/channelmap.c:762 msgid "Surround 4.1" msgstr "Surround 4.1" -#: ../src/pulse/channelmap.c:825 +#: ../src/pulse/channelmap.c:768 msgid "Surround 5.0" msgstr "Surround 5.0" -#: ../src/pulse/channelmap.c:831 +#: ../src/pulse/channelmap.c:774 msgid "Surround 5.1" msgstr "Surround 5.1" -#: ../src/pulse/channelmap.c:838 +#: ../src/pulse/channelmap.c:781 msgid "Surround 7.1" msgstr "Surround 7.1" @@ -1296,173 +1280,168 @@ msgstr "waitpid(): %s" msgid "Received message for unknown extension '%s'" msgstr "தெரியாத தொடரிசà¯à®šà®¿à®¯à®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ '%s'கà¯à®•à¯ செயà¯à®¤à®¿à®•à®³à¯ பெறபà¯à®ªà®Ÿà¯à®Ÿà®©" -#: ../src/utils/pacat.c:94 +#: ../src/utils/pacat.c:107 +#, c-format +msgid "Failed to drain stream: %s\n" +msgstr "ஸà¯à®Ÿà¯€à®°à®¿à®®à¯ˆ டà¯à®°à¯ˆà®©à¯ செயà¯à®¯ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %s\n" + +#: ../src/utils/pacat.c:112 +msgid "Playback stream drained.\n" +msgstr "டà¯à®°à¯ˆà®©à¯ செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿ ஸà¯à®Ÿà¯€à®°à®¿à®®à¯.\n" + +#: ../src/utils/pacat.c:122 +msgid "Draining connection to server.\n" +msgstr "டà¯à®°à¯ˆà®©à¯ செயà¯à®¯à¯à®®à¯ இணைபà¯à®ªà¯ சேவையகதà¯à®¤à®¿à®±à¯à®•à¯.\n" + +#: ../src/utils/pacat.c:135 +#, c-format +msgid "pa_stream_drain(): %s\n" +msgstr "pa_stream_drain(): %s\n" + +#: ../src/utils/pacat.c:158 #, c-format msgid "pa_stream_write() failed: %s\n" msgstr "pa_stream_write() தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯: %s\n" -#: ../src/utils/pacat.c:133 +#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 #, c-format msgid "pa_stream_peek() failed: %s\n" msgstr "pa_stream_peek() தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯: %s\n" -#: ../src/utils/pacat.c:169 -#, c-format +#: ../src/utils/pacat.c:302 msgid "Stream successfully created.\n" msgstr "ஸà¯à®Ÿà®¿à®°à¯€à®®à¯ வெறà¯à®±à®¿à®•à®°à®®à®¾à®• உரà¯à®µà®¾à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯.\n" -#: ../src/utils/pacat.c:172 +#: ../src/utils/pacat.c:305 #, c-format msgid "pa_stream_get_buffer_attr() failed: %s\n" msgstr "pa_stream_get_buffer_attr() தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯: %s\n" -#: ../src/utils/pacat.c:176 +#: ../src/utils/pacat.c:309 #, c-format msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgstr "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:179 +#: ../src/utils/pacat.c:312 #, c-format msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgstr "Buffer metrics: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:183 +#: ../src/utils/pacat.c:316 #, c-format msgid "Using sample spec '%s', channel map '%s'.\n" msgstr "கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®Ÿ கà¯à®±à®¿à®ªà¯à®ªà¯ '%s', சேனல௠மேப௠'%s'஠பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®¿.\n" -#: ../src/utils/pacat.c:187 +#: ../src/utils/pacat.c:320 #, c-format msgid "Connected to device %s (%u, %ssuspended).\n" msgstr "%s சாதனதà¯à®¤à¯à®Ÿà®©à¯ இணைகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯ (%u, %ssuspended).\n" -#: ../src/utils/pacat.c:197 +#: ../src/utils/pacat.c:330 #, c-format msgid "Stream error: %s\n" msgstr "ஸà¯à®Ÿà®¿à®°à¯€à®®à¯ பிழை: %s\n" -#: ../src/utils/pacat.c:207 +#: ../src/utils/pacat.c:340 #, c-format msgid "Stream device suspended.%s \n" msgstr "ஸà¯à®Ÿà¯€à®°à®¿à®®à¯ சாதனம௠இடைநீகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯.%s \n" -#: ../src/utils/pacat.c:209 +#: ../src/utils/pacat.c:342 #, c-format msgid "Stream device resumed.%s \n" msgstr "ஸà¯à®Ÿà¯€à®°à®¿à®®à¯ சாதனம௠தொடரà¯à®•à®¿à®±à®¤à¯.%s \n" -#: ../src/utils/pacat.c:217 +#: ../src/utils/pacat.c:350 #, c-format msgid "Stream underrun.%s \n" msgstr "ஸà¯à®Ÿà¯€à®°à®¿à®®à¯ இயஙà¯à®•à¯à®•à®¿à®±à®¤à¯.%s \n" -#: ../src/utils/pacat.c:224 +#: ../src/utils/pacat.c:357 #, c-format msgid "Stream overrun.%s \n" msgstr "ஸà¯à®Ÿà¯€à®°à®¿à®®à¯ அதிகளவ௠இயஙà¯à®•à®¿à®¯à®¤à¯.%s \n" -#: ../src/utils/pacat.c:231 +#: ../src/utils/pacat.c:364 #, c-format msgid "Stream started.%s \n" msgstr "ஸà¯à®Ÿà®¿à®°à¯€à®®à¯ %s தà¯à®µà®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯ \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 #, c-format msgid "Stream moved to device %s (%u, %ssuspended).%s \n" msgstr "ஸà¯à®Ÿà®¿à®°à¯€à®®à¯ %s இயகà¯à®•à®¿à®•à¯à®•à¯ நகரà¯à®¨à¯à®¤à®¤à¯ (%u, %ssuspended).%s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 msgid "not " msgstr "இலà¯à®²à¯ˆ" -#: ../src/utils/pacat.c:245 +#: ../src/utils/pacat.c:378 #, fuzzy, c-format msgid "Stream buffer attributes changed.%s \n" msgstr "ஸà¯à®Ÿà¯€à®°à®¿à®®à¯ இயஙà¯à®•à¯à®•à®¿à®±à®¤à¯.%s \n" -#: ../src/utils/pacat.c:278 +#: ../src/utils/pacat.c:411 #, c-format msgid "Connection established.%s \n" msgstr "இணைபà¯à®ªà¯ தà¯à®µà®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯.%s \n" -#: ../src/utils/pacat.c:281 +#: ../src/utils/pacat.c:414 #, c-format msgid "pa_stream_new() failed: %s\n" msgstr "pa_stream_new() தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯: %s\n" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:442 #, c-format msgid "pa_stream_connect_playback() failed: %s\n" msgstr "pa_stream_connect_playback() தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯: %s\n" -#: ../src/utils/pacat.c:315 +#: ../src/utils/pacat.c:448 #, c-format msgid "pa_stream_connect_record() failed: %s\n" msgstr "pa_stream_connect_record() தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯: %s\n" -#: ../src/utils/pacat.c:329 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:762 ../src/utils/paplay.c:183 +#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 #, c-format msgid "Connection failure: %s\n" msgstr "இணைபà¯à®ªà®¤à®¿à®²à¯ தோலà¯à®µà®¿: %s\n" -#: ../src/utils/pacat.c:349 ../src/utils/paplay.c:75 -#, c-format -msgid "Failed to drain stream: %s\n" -msgstr "ஸà¯à®Ÿà¯€à®°à®¿à®®à¯ˆ டà¯à®°à¯ˆà®©à¯ செயà¯à®¯ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %s\n" - -#: ../src/utils/pacat.c:354 ../src/utils/paplay.c:80 -#, c-format -msgid "Playback stream drained.\n" -msgstr "டà¯à®°à¯ˆà®©à¯ செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿ ஸà¯à®Ÿà¯€à®°à®¿à®®à¯.\n" - -#: ../src/utils/pacat.c:364 ../src/utils/paplay.c:92 -#, c-format -msgid "Draining connection to server.\n" -msgstr "டà¯à®°à¯ˆà®©à¯ செயà¯à®¯à¯à®®à¯ இணைபà¯à®ªà¯ சேவையகதà¯à®¤à®¿à®±à¯à®•à¯.\n" - -#: ../src/utils/pacat.c:390 -#, c-format +#: ../src/utils/pacat.c:495 msgid "Got EOF.\n" msgstr "EOF கிடைகà¯à®•à®ªà¯ பெறà¯à®±à®¤à¯\n" -#: ../src/utils/pacat.c:396 -#, c-format -msgid "pa_stream_drain(): %s\n" -msgstr "pa_stream_drain(): %s\n" - -#: ../src/utils/pacat.c:406 +#: ../src/utils/pacat.c:500 #, c-format msgid "read() failed: %s\n" msgstr "வாசிபà¯à®ªà®¤à®¿à®²à¯ () தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯: %s\n" -#: ../src/utils/pacat.c:438 +#: ../src/utils/pacat.c:532 #, c-format msgid "write() failed: %s\n" msgstr "எழà¯à®¤à¯à®µà®¤à®¿à®²à¯ () தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯: %s\n" -#: ../src/utils/pacat.c:459 -#, c-format +#: ../src/utils/pacat.c:553 msgid "Got signal, exiting.\n" msgstr "சிகà¯à®©à®²à¯ கிடைதà¯à®¤à®¤à¯, வெளியேறà¯à®•à®¿à®±à®¤à¯.\n" -#: ../src/utils/pacat.c:473 +#: ../src/utils/pacat.c:567 #, c-format msgid "Failed to get latency: %s\n" msgstr "லடனà¯à®šà®¿à®¯à¯ˆ பெற à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %s\n" -#: ../src/utils/pacat.c:478 +#: ../src/utils/pacat.c:572 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "Time: %0.3f sec; Latency: %0.0f usec. \r" -#: ../src/utils/pacat.c:498 +#: ../src/utils/pacat.c:592 #, c-format msgid "pa_stream_update_timing_info() failed: %s\n" msgstr "pa_stream_update_timing_info() தோலà¯à®µà®¿: %s\n" -#: ../src/utils/pacat.c:511 -#, c-format +#: ../src/utils/pacat.c:605 +#, fuzzy, c-format msgid "" "%s [options]\n" "\n" @@ -1488,8 +1467,10 @@ msgid "" "44100)\n" " --format=SAMPLEFORMAT The sample type, one of s16le, " "s16be, u8, float32le,\n" -" float32be, ulaw, alaw, s32le, s32be " -"(defaults to s16ne)\n" +" float32be, ulaw, alaw, s32le, s32be, " +"s24le, s24be,\n" +" s24-32le, s24-32be (defaults to " +"s16ne)\n" " --channels=CHANNELS The number of channels, 1 for mono, " "2 for stereo\n" " (defaults to 2)\n" @@ -1512,6 +1493,11 @@ msgid "" "bytes.\n" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" +" --property=PROPERTY=VALUE Set the specified property to the " +"specified value.\n" +" --raw Record/play raw PCM data.\n" +" --file-format=FFORMAT Record/play formatted PCM data.\n" +" --list-file-formats List available file formats.\n" msgstr "" "%s [options]\n" "\n" @@ -1562,7 +1548,7 @@ msgstr "" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" -#: ../src/utils/pacat.c:612 +#: ../src/utils/pacat.c:727 #, c-format msgid "" "pacat %s\n" @@ -1573,88 +1559,133 @@ msgstr "" "Compiled with libpulse %s\n" "Linked with libpulse %s\n" -#: ../src/utils/pacat.c:669 +#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "தவறான சேனல௠வரைபடம௠'%s'\n" + +#: ../src/utils/pacat.c:776 +#, fuzzy, c-format +msgid "Invalid stream name '%s'\n" +msgstr "தவறான மறà¯à®®à®¾à®¤à®¿à®°à®¿ à®®à¯à®±à¯ˆ '%s'." + +#: ../src/utils/pacat.c:813 #, c-format msgid "Invalid channel map '%s'\n" msgstr "தவறான சேனல௠வரைபடம௠'%s'\n" -#: ../src/utils/pacat.c:698 +#: ../src/utils/pacat.c:842 #, c-format msgid "Invalid latency specification '%s'\n" msgstr "தவறான லேடனà¯à®šà®¿ கà¯à®±à®¿à®ªà¯à®ªà¯€à®Ÿà¯ '%s'\n" -#: ../src/utils/pacat.c:705 +#: ../src/utils/pacat.c:849 #, c-format msgid "Invalid process time specification '%s'\n" msgstr "தவறான செயல௠நேர கà¯à®±à®¿à®ªà¯à®ªà¯€à®Ÿà¯ '%s'\n" -#: ../src/utils/pacat.c:716 +#: ../src/utils/pacat.c:861 +#, fuzzy, c-format +msgid "Invalid property '%s'\n" +msgstr "தவறான மறà¯à®®à®¾à®¤à®¿à®°à®¿ à®®à¯à®±à¯ˆ '%s'." + +#: ../src/utils/pacat.c:878 #, c-format +msgid "Unknown file format %s." +msgstr "" + +#: ../src/utils/pacat.c:897 msgid "Invalid sample specification\n" msgstr "தவறான மாதிரி கà¯à®±à®¿à®ªà¯à®ªà¯€à®Ÿà¯\n" -#: ../src/utils/pacat.c:721 +#: ../src/utils/pacat.c:907 +#, c-format +msgid "open(): %s\n" +msgstr "open(): %s\n" + +#: ../src/utils/pacat.c:912 #, c-format +msgid "dup2(): %s\n" +msgstr "dup2(): %s\n" + +#: ../src/utils/pacat.c:919 +msgid "Too many arguments.\n" +msgstr "நிறைய விவாதஙà¯à®•à®³à¯.\n" + +#: ../src/utils/pacat.c:930 +#, fuzzy +msgid "Failed to generate sample specification for file.\n" +msgstr "மாதிரி தகவலை பெற à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ.: %s\n" + +#: ../src/utils/pacat.c:950 +#, fuzzy +msgid "Failed to open audio file.\n" +msgstr "ஒலி கோபà¯à®ªà®¿à®©à¯ˆ திறகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ.\n" + +#: ../src/utils/pacat.c:956 +msgid "" +"Warning: specified sample specification will be overwritten with " +"specification from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "மாதிரி தகவலை பெற à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ.: %s\n" + +#: ../src/utils/pacat.c:968 +msgid "Warning: Failed to determine channel map from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:979 msgid "Channel map doesn't match sample specification\n" msgstr "சேனல௠மேப௠மாதிரி கà¯à®±à®¿à®ªà¯à®ªà¯€à®Ÿà¯à®Ÿà¯à®Ÿà®©à¯ பொரà¯à®¨à¯à®¤à®µà®¿à®²à¯à®²à¯ˆ\n" -#: ../src/utils/pacat.c:728 -#, c-format -msgid "Opening a %s stream with sample specification '%s'.\n" +#: ../src/utils/pacat.c:990 +msgid "Warning: failed to write channel map to file.\n" +msgstr "" + +#: ../src/utils/pacat.c:1005 +#, fuzzy, c-format +msgid "" +"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" msgstr "ஒர௠%s ஸà¯à®Ÿà¯€à®°à®®à¯ˆ மாதிரி கà¯à®±à®¿à®ªà¯à®ªà¯€à®Ÿà¯ '%s'உடன௠திறகà¯à®•à®¿à®±à®¤à¯.\n" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "recording" msgstr "ஒலிபà¯à®ªà®¤à®¿à®µà¯" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "playback" msgstr "பிணà¯à®£à®©à®¿" -#: ../src/utils/pacat.c:736 -#, c-format -msgid "open(): %s\n" -msgstr "open(): %s\n" - -#: ../src/utils/pacat.c:741 -#, c-format -msgid "dup2(): %s\n" -msgstr "dup2(): %s\n" - -#: ../src/utils/pacat.c:751 -#, c-format -msgid "Too many arguments.\n" -msgstr "நிறைய விவாதஙà¯à®•à®³à¯.\n" - -#: ../src/utils/pacat.c:764 ../src/utils/pasuspender.c:280 -#: ../src/utils/pactl.c:1017 ../src/utils/paplay.c:381 +#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 +#: ../src/utils/pactl.c:1104 #, c-format msgid "pa_mainloop_new() failed.\n" msgstr "pa_mainloop_new() தோலà¯à®µà®¿.\n" -#: ../src/utils/pacat.c:785 -#, c-format +#: ../src/utils/pacat.c:1051 msgid "io_new() failed.\n" msgstr "io_பà¯à®¤à®¿à®¯() தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯.(_n) \n" -#: ../src/utils/pacat.c:791 ../src/utils/pasuspender.c:293 -#: ../src/utils/pactl.c:1031 ../src/utils/paplay.c:396 +#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 +#: ../src/utils/pactl.c:1116 #, c-format msgid "pa_context_new() failed.\n" msgstr "pa_context_new() தோலà¯à®µà®¿.\n" -#: ../src/utils/pacat.c:799 +#: ../src/utils/pacat.c:1066 #, fuzzy, c-format msgid "pa_context_connect() failed: %s\n" msgstr "pa_context_connect() தோலà¯à®µà®¿: %s" -#: ../src/utils/pacat.c:810 -#, c-format +#: ../src/utils/pacat.c:1077 msgid "time_new() failed.\n" msgstr "time_new() தோலà¯à®µà®¿.\n" -#: ../src/utils/pacat.c:817 ../src/utils/pasuspender.c:301 -#: ../src/utils/pactl.c:1042 ../src/utils/paplay.c:410 +#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 +#: ../src/utils/pactl.c:1127 #, c-format msgid "pa_mainloop_run() failed.\n" msgstr "pa_mainloop_run() தோலà¯à®µà®¿.\n" @@ -1684,8 +1715,7 @@ msgstr "தொடர à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %s\n" msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "எசà¯à®šà®°à®¿à®•à¯à®•à¯ˆ: ஒலி சேவையம௠உளà¯à®³à®®à¯ˆà®µà®¾à®• இலà¯à®²à¯ˆ, இடைநிறà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ.\n" -#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:768 -#: ../src/utils/paplay.c:191 +#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" msgstr "SIGINT பெறபà¯à®ªà®Ÿà¯à®Ÿà®¤à¯, வெளியேறà¯à®•à®¿à®±à®¤à¯.\n" @@ -1713,7 +1743,7 @@ msgstr "" " -s, --சேவையகமà¯=SERVER பெயரிடபà¯à®ªà®Ÿà¯à®Ÿ சேவையகம௠இணைகà¯à®•à®ªà¯à®ªà®Ÿ வேணà¯à®Ÿà¯à®®à¯\n" "\n" -#: ../src/utils/pasuspender.c:251 +#: ../src/utils/pasuspender.c:248 #, c-format msgid "" "pasuspender %s\n" @@ -1724,33 +1754,33 @@ msgstr "" "Compiled with libpulse %s\n" "Linked with libpulse %s\n" -#: ../src/utils/pactl.c:108 +#: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" msgstr "பà¯à®³à¯à®³à®¿à®µà®¿à®µà®°à®¤à¯à®¤à¯ˆ பெற இயலாதà¯: %s\n" -#: ../src/utils/pactl.c:114 +#: ../src/utils/pactl.c:134 #, c-format msgid "Currently in use: %u blocks containing %s bytes total.\n" msgstr "தறà¯à®ªà¯‹à®¤à¯ பயனிலà¯à®³à¯à®³à®¤à¯: %u தொகà¯à®¤à®¿à®•à®³à¯ %s பைடà¯à®•à®³à¯ˆ மொதà¯à®¤à®®à®¾à®• கொணà¯à®Ÿà¯à®³à¯à®³à®¤à¯.\n" -#: ../src/utils/pactl.c:117 +#: ../src/utils/pactl.c:137 #, c-format msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n" msgstr "" "வாழà¯à®•à¯à®•à¯ˆ à®®à¯à®´à¯à®µà®¤à¯à®®à¯ ஒதà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯: %u தொகà¯à®¤à®¿à®•à®³à¯ %s பைடà¯à®•à®³à¯ˆ மொதà¯à®¤à®®à®¾à®• கொணà¯à®Ÿà¯à®³à¯à®³à®¤à¯.\n" -#: ../src/utils/pactl.c:120 +#: ../src/utils/pactl.c:140 #, c-format msgid "Sample cache size: %s\n" msgstr "மாதிரி இடையக அளவà¯: %s\n" -#: ../src/utils/pactl.c:129 +#: ../src/utils/pactl.c:149 #, c-format msgid "Failed to get server information: %s\n" msgstr "சேவையகதà¯à®¤à®¿à®©à¯ தகவலை பெற இயலவிலà¯à®²à¯ˆ: %s\n" -#: ../src/utils/pactl.c:137 +#: ../src/utils/pactl.c:157 #, c-format msgid "" "User name: %s\n" @@ -1773,12 +1803,12 @@ msgstr "" "à®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯ மூலஙà¯à®•à®³à¯: %s\n" "கூகà¯à®•à®¿: %08x\n" -#: ../src/utils/pactl.c:178 +#: ../src/utils/pactl.c:198 #, c-format msgid "Failed to get sink information: %s\n" msgstr "சà¯à®°à¯à®•à¯à®•à®®à®¾à®© தகவலை பெற௠மà¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %s\n" -#: ../src/utils/pactl.c:194 +#: ../src/utils/pactl.c:214 #, c-format msgid "" "Sink #%u\n" @@ -1817,12 +1847,22 @@ msgstr "" "\tProperties:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:258 +#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 +#, fuzzy, c-format +msgid "\tPorts:\n" +msgstr "\tவிவரகà¯à®•à¯à®±à®¿à®ªà¯à®ªà¯à®•à®³à¯:\n" + +#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 +#, fuzzy, c-format +msgid "\tActive Port: %s\n" +msgstr "\tசெயலà¯à®ªà®¾à®Ÿà¯à®Ÿà®¿à®²à¯à®³à¯à®³ விவரகà¯à®•à¯à®±à®¿à®ªà¯à®ªà¯à®•à®³à¯: %s\n" + +#: ../src/utils/pactl.c:290 #, c-format msgid "Failed to get source information: %s\n" msgstr "மூலதà¯à®¤à®¿à®©à¯ தகவலை பெற இயலவிலà¯à®²à¯ˆ: %s\n" -#: ../src/utils/pactl.c:274 +#: ../src/utils/pactl.c:306 #, c-format msgid "" "Source #%u\n" @@ -1861,20 +1901,20 @@ msgstr "" "\tபணà¯à®ªà¯à®•à®³à¯:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:306 ../src/utils/pactl.c:350 ../src/utils/pactl.c:385 -#: ../src/utils/pactl.c:422 ../src/utils/pactl.c:481 ../src/utils/pactl.c:482 -#: ../src/utils/pactl.c:492 ../src/utils/pactl.c:536 ../src/utils/pactl.c:537 -#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:586 ../src/utils/pactl.c:587 -#: ../src/utils/pactl.c:594 +#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429 +#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526 +#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581 +#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631 +#: ../src/utils/pactl.c:638 msgid "n/a" msgstr "n/a" -#: ../src/utils/pactl.c:324 +#: ../src/utils/pactl.c:368 #, c-format msgid "Failed to get module information: %s\n" msgstr "தொகà¯à®¤à®¿ தகவலை பெற à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %s\n" -#: ../src/utils/pactl.c:342 +#: ../src/utils/pactl.c:386 #, c-format msgid "" "Module #%u\n" @@ -1891,12 +1931,12 @@ msgstr "" "\tபணà¯à®ªà¯à®•à®³à¯:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:361 +#: ../src/utils/pactl.c:405 #, c-format msgid "Failed to get client information: %s\n" msgstr "கிளையனà¯à®Ÿà¯ தகவலை பெற à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %s\n" -#: ../src/utils/pactl.c:379 +#: ../src/utils/pactl.c:423 #, c-format msgid "" "Client #%u\n" @@ -1911,12 +1951,12 @@ msgstr "" "\tபணà¯à®ªà¯à®•à®³à¯:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:396 +#: ../src/utils/pactl.c:440 #, c-format msgid "Failed to get card information: %s\n" msgstr "அடà¯à®Ÿà¯ˆ தகவலை பெற à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %s\n" -#: ../src/utils/pactl.c:414 +#: ../src/utils/pactl.c:458 #, c-format msgid "" "Card #%u\n" @@ -1933,22 +1973,22 @@ msgstr "" "\tProperties:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:428 +#: ../src/utils/pactl.c:472 #, c-format msgid "\tProfiles:\n" msgstr "\tவிவரகà¯à®•à¯à®±à®¿à®ªà¯à®ªà¯à®•à®³à¯:\n" -#: ../src/utils/pactl.c:434 +#: ../src/utils/pactl.c:478 #, c-format msgid "\tActive Profile: %s\n" msgstr "\tசெயலà¯à®ªà®¾à®Ÿà¯à®Ÿà®¿à®²à¯à®³à¯à®³ விவரகà¯à®•à¯à®±à®¿à®ªà¯à®ªà¯à®•à®³à¯: %s\n" -#: ../src/utils/pactl.c:445 +#: ../src/utils/pactl.c:489 #, c-format msgid "Failed to get sink input information: %s\n" msgstr "சிஙà¯à®•à¯ தகவலை பெற à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %s\n" -#: ../src/utils/pactl.c:464 +#: ../src/utils/pactl.c:508 #, c-format msgid "" "Sink Input #%u\n" @@ -1985,12 +2025,12 @@ msgstr "" "\tProperties:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:503 +#: ../src/utils/pactl.c:547 #, c-format msgid "Failed to get source output information: %s\n" msgstr "மூல வெளிபà¯à®ªà®¾à®Ÿà¯ தகவலை பெற à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %s\n" -#: ../src/utils/pactl.c:523 +#: ../src/utils/pactl.c:567 #, c-format msgid "" "Source Output #%u\n" @@ -2019,12 +2059,12 @@ msgstr "" "\tProperties:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:554 +#: ../src/utils/pactl.c:598 #, c-format msgid "Failed to get sample information: %s\n" msgstr "மாதிரி தகவலை பெற à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ.: %s\n" -#: ../src/utils/pactl.c:572 +#: ../src/utils/pactl.c:616 #, c-format msgid "" "Sample #%u\n" @@ -2055,23 +2095,22 @@ msgstr "" "\tProperties:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:602 ../src/utils/pactl.c:612 +#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 #, c-format msgid "Failure: %s\n" msgstr "தோலà¯à®µà®¿: %s\n" -#: ../src/utils/pactl.c:636 +#: ../src/utils/pactl.c:680 #, c-format msgid "Failed to upload sample: %s\n" msgstr "மாதிரியை மேமà¯à®ªà®Ÿà¯à®¤à¯à®¤ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %s\n" -#: ../src/utils/pactl.c:653 -#, c-format +#: ../src/utils/pactl.c:697 msgid "Premature end of file\n" msgstr "à®®à¯à®©à¯à®©à®¾à®• கோபà¯à®ªà¯ à®®à¯à®Ÿà®¿à®¤à¯à®¤à®²à¯\n" -#: ../src/utils/pactl.c:774 -#, c-format +#: ../src/utils/pactl.c:826 +#, fuzzy, c-format msgid "" "%s [options] stat\n" "%s [options] list\n" @@ -2086,6 +2125,8 @@ msgid "" "%s [options] suspend-sink [SINK] 1|0\n" "%s [options] suspend-source [SOURCE] 1|0\n" "%s [options] set-card-profile [CARD] [PROFILE] \n" +"%s [options] set-sink-port [SINK] [PORT] \n" +"%s [options] set-source-port [SOURCE] [PORT] \n" "\n" " -h, --help Show this help\n" " --version Show version\n" @@ -2117,7 +2158,7 @@ msgstr "" " -n, --client-name=NAME How to call this client on the " "server\n" -#: ../src/utils/pactl.c:826 +#: ../src/utils/pactl.c:880 #, c-format msgid "" "pactl %s\n" @@ -2128,56 +2169,51 @@ msgstr "" "Compiled with libpulse %s\n" "Linked with libpulse %s\n" -#: ../src/utils/pactl.c:865 -#, c-format +#: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "à®à®±à¯à®±à¯à®µà®¤à®±à¯à®•à¯ ஒர௠மாதிரி கோபà¯à®ªà®¿à®©à¯ˆ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®µà¯à®®à¯\n" -#: ../src/utils/pactl.c:887 -#, c-format +#: ../src/utils/pactl.c:939 msgid "Failed to open sound file.\n" msgstr "ஒலி கோபà¯à®ªà®¿à®©à¯ˆ திறகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ.\n" -#: ../src/utils/pactl.c:899 -#, c-format +#: ../src/utils/pactl.c:951 +#, fuzzy +msgid "Warning: Failed to determine sample specification from file.\n" +msgstr "ஒர௠%s ஸà¯à®Ÿà¯€à®°à®®à¯ˆ மாதிரி கà¯à®±à®¿à®ªà¯à®ªà¯€à®Ÿà¯ '%s'உடன௠திறகà¯à®•à®¿à®±à®¤à¯.\n" + +#: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" msgstr "இயகà¯à®•à®¿à®µà®¤à®±à¯à®•à¯ நீஙà¯à®•à®³à¯ ஒர௠மாதிரி பெயர௠கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿ வேணà¯à®Ÿà¯à®®à¯\n" -#: ../src/utils/pactl.c:911 -#, c-format +#: ../src/utils/pactl.c:973 msgid "You have to specify a sample name to remove\n" msgstr "நீகà¯à®•à¯à®µà®¤à®±à¯à®•à¯ நீஙà¯à®•à®³à¯ ஒர௠மாதிரி பெயர௠கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿ வேணà¯à®Ÿà¯à®®à¯\n" -#: ../src/utils/pactl.c:919 -#, c-format +#: ../src/utils/pactl.c:982 msgid "You have to specify a sink input index and a sink\n" msgstr "நீஙà¯à®•à®³à¯ ஒர௠சிஙà¯à®•à¯ உளà¯à®³à¯€à®Ÿà¯ சà¯à®Ÿà¯à®Ÿà®¿ மறà¯à®±à¯à®®à¯ ஒர௠சிஙà¯à®•à¯ˆ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿ வேணà¯à®Ÿà¯à®®à¯\n" -#: ../src/utils/pactl.c:928 -#, c-format +#: ../src/utils/pactl.c:992 msgid "You have to specify a source output index and a source\n" msgstr "நீஙà¯à®•à®³à¯ ஒர௠மூல வெளிபà¯à®ªà®¾à®Ÿà¯ சà¯à®Ÿà¯à®Ÿà®¿ மறà¯à®±à¯à®®à¯ ஒர௠மூலதà¯à®¤à¯ˆ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿ வேணà¯à®Ÿà¯à®®à¯\n" -#: ../src/utils/pactl.c:942 -#, c-format +#: ../src/utils/pactl.c:1007 msgid "You have to specify a module name and arguments.\n" msgstr "தொகà¯à®¤à®¿ பெயர௠மறà¯à®±à¯à®®à¯ விவாதஙà¯à®•à®³à¯ˆ நீஙà¯à®•à®³à¯ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿ வேணà¯à®Ÿà¯à®®à¯. \n" -#: ../src/utils/pactl.c:962 -#, c-format +#: ../src/utils/pactl.c:1027 msgid "You have to specify a module index\n" msgstr "தொகà¯à®¤à®¿ அடà¯à®Ÿà®µà®£à¯ˆà®¯à¯ˆ நீஙà¯à®•à®³à¯ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿ வேணà¯à®Ÿà¯à®®à¯\n" -#: ../src/utils/pactl.c:972 -#, c-format +#: ../src/utils/pactl.c:1037 msgid "" "You may not specify more than one sink. You have to specify a boolean " "value.\n" msgstr "" "ஒர௠சிஙà¯à®•à®¿à®±à¯à®•à¯ மேல௠நீஙà¯à®•à®³à¯ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®•à¯ கூடாதà¯. பூலியன௠மதிபà¯à®ªà¯ˆ நீஙà¯à®•à®³à¯ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿ வேணà¯à®Ÿà¯à®®à¯.\n" -#: ../src/utils/pactl.c:985 -#, c-format +#: ../src/utils/pactl.c:1050 msgid "" "You may not specify more than one source. You have to specify a boolean " "value.\n" @@ -2185,18 +2221,28 @@ msgstr "" "ஒர௠மூலதà¯à®¤à®¿à®±à¯à®•à¯ மேல௠நீஙà¯à®•à®³à¯ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®•à¯ கூடாதà¯. பூலியன௠மதிபà¯à®ªà¯ˆ நீஙà¯à®•à®³à¯ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿ " "வேணà¯à®Ÿà¯à®®à¯.\n" -#: ../src/utils/pactl.c:997 -#, c-format +#: ../src/utils/pactl.c:1062 msgid "You have to specify a card name/index and a profile name\n" msgstr "" "ஒர௠அடà¯à®Ÿà¯ˆ பெயரà¯/ à®®à¯à®©à¯à®ªà®•à¯à®•à®®à¯ மறà¯à®±à¯à®®à¯ ஒர௠விவரசà¯à®šà¯€à®Ÿà¯à®Ÿà¯ பெயர௠நீஙà¯à®•à®³à¯ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿ வேணà¯à®Ÿà¯à®®à¯ \n" -#: ../src/utils/pactl.c:1012 -#, c-format +#: ../src/utils/pactl.c:1073 +#, fuzzy +msgid "You have to specify a sink name/index and a port name\n" +msgstr "" +"ஒர௠அடà¯à®Ÿà¯ˆ பெயரà¯/ à®®à¯à®©à¯à®ªà®•à¯à®•à®®à¯ மறà¯à®±à¯à®®à¯ ஒர௠விவரசà¯à®šà¯€à®Ÿà¯à®Ÿà¯ பெயர௠நீஙà¯à®•à®³à¯ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿ வேணà¯à®Ÿà¯à®®à¯ \n" + +#: ../src/utils/pactl.c:1084 +#, fuzzy +msgid "You have to specify a source name/index and a port name\n" +msgstr "" +"ஒர௠அடà¯à®Ÿà¯ˆ பெயரà¯/ à®®à¯à®©à¯à®ªà®•à¯à®•à®®à¯ மறà¯à®±à¯à®®à¯ ஒர௠விவரசà¯à®šà¯€à®Ÿà¯à®Ÿà¯ பெயர௠நீஙà¯à®•à®³à¯ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿ வேணà¯à®Ÿà¯à®®à¯ \n" + +#: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "சரியான கடà¯à®Ÿà®³à¯ˆ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ \n" -#: ../src/utils/pactl.c:1037 ../src/utils/paplay.c:404 +#: ../src/utils/pactl.c:1122 #, c-format msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect() தோலà¯à®µà®¿: %s" @@ -2280,129 +2326,48 @@ msgstr "கà¯à®•à¯à®•à¯€ தரவை à®à®±à¯à®± à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯ msgid "Not yet implemented.\n" msgstr "இனà¯à®©à¯à®®à¯ செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ.\n" -#: ../src/utils/pacmd.c:64 +#: ../src/utils/pacmd.c:61 +msgid "No PulseAudio daemon running, or not running as session daemon." +msgstr "" + +#: ../src/utils/pacmd.c:66 #, c-format msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s" msgstr "socket(PF_UNIX, SOCK_STREAM, 0): %s" -#: ../src/utils/pacmd.c:81 +#: ../src/utils/pacmd.c:83 #, c-format msgid "connect(): %s" msgstr "connect(): %s" -#: ../src/utils/pacmd.c:89 +#: ../src/utils/pacmd.c:91 msgid "Failed to kill PulseAudio daemon." msgstr "PulseAudio daemon஠நிறà¯à®¤à¯à®¤ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ." -#: ../src/utils/pacmd.c:97 +#: ../src/utils/pacmd.c:99 msgid "Daemon not responding." msgstr "டோமோன௠பதிலளிகà¯à®• மறà¯à®•à¯à®•à®¿à®±à®¤à¯." -#: ../src/utils/pacmd.c:144 +#: ../src/utils/pacmd.c:146 #, c-format msgid "select(): %s" msgstr "select(): %s" -#: ../src/utils/pacmd.c:154 ../src/utils/pacmd.c:171 +#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173 #, c-format msgid "read(): %s" msgstr "read(): %s" -#: ../src/utils/pacmd.c:187 ../src/utils/pacmd.c:201 +#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203 #, c-format msgid "write(): %s" msgstr "write(): %s" -#: ../src/utils/paplay.c:139 -#, c-format -msgid "Stream successfully created\n" -msgstr "ஸà¯à®Ÿà®¿à®°à¯€à®®à¯ வெறà¯à®±à®¿à®•à®°à®®à®¾à®• உரà¯à®µà®¾à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯\n" - -#: ../src/utils/paplay.c:144 -#, c-format -msgid "Stream errror: %s\n" -msgstr "ஸà¯à®Ÿà®¿à®°à¯€à®®à¯ பிழை: %s\n" - -#: ../src/utils/paplay.c:165 -#, c-format -msgid "Connection established.\n" -msgstr "இணைபà¯à®ªà®¿à®©à¯ˆ à®à®±à¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®•à®¿à®±à®¤à¯.\n" - -#: ../src/utils/paplay.c:198 -#, c-format -msgid "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" -msgstr "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" - -#: ../src/utils/paplay.c:255 -#, c-format -msgid "" -"paplay %s\n" -"Compiled with libpulse %s\n" -"Linked with libpulse %s\n" -msgstr "" -"paplay %s\n" -"Compiled with libpulse %s\n" -"Linked with libpulse %s\n" - -#: ../src/utils/paplay.c:292 -#, c-format -msgid "Invalid channel map\n" -msgstr "தவறான சேனல௠வரைபடம௠\n" - -#: ../src/utils/paplay.c:314 -#, c-format -msgid "Failed to open file '%s'\n" -msgstr "கோபà¯à®ªà¯ '%s'஠திறகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ\n" - -#: ../src/utils/paplay.c:350 -#, c-format -msgid "Channel map doesn't match file.\n" -msgstr "சேனல௠வரைபடம௠கோபà¯à®ªà¯à®Ÿà®©à¯ ஒதà¯à®¤à¯à®ªà¯ பொகவிலà¯à®²à¯ˆ.\n" - -#: ../src/utils/paplay.c:376 -#, c-format -msgid "Using sample spec '%s'\n" -msgstr "மாதிரி கà¯à®±à®¿à®ªà¯à®ªà¯€à®Ÿà¯ '%s'஠பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®¿\n" - #: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 msgid "Cannot access autospawn lock." msgstr "autospawn பூடà¯à®Ÿà¯ˆ அணà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ." -#: ../src/modules/alsa/alsa-sink.c:393 ../src/modules/alsa/alsa-sink.c:541 +#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2413,7 +2378,7 @@ msgid "" "returned 0 or another value < min_avail." msgstr "" -#: ../src/modules/alsa/alsa-source.c:377 ../src/modules/alsa/alsa-source.c:516 +#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2424,35 +2389,122 @@ msgid "" "returned 0 or another value < min_avail." msgstr "" -#: ../src/modules/alsa/module-alsa-card.c:114 -#, c-format -msgid "Output %s + Input %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:117 -#, c-format -msgid "Output %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:121 -#, c-format -msgid "Input %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:170 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2006 +#: ../src/modules/alsa/module-alsa-card.c:152 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 msgid "Off" msgstr "" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1976 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 msgid "High Fidelity Playback (A2DP)" msgstr "" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1991 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 msgid "Telephony Duplex (HSP/HFP)" msgstr "" -#: ../src/modules/reserve-wrap.c:139 +#: ../src/modules/reserve-wrap.c:151 #, fuzzy msgid "PulseAudio Sound Server" msgstr "பளà¯à®¸à¯ ஆடியோ ஒலி கணினி" + +#~ msgid "Analog Mono" +#~ msgstr "Analog Mono" + +#~ msgid "Analog Stereo" +#~ msgstr "Analog Stereo" + +#~ msgid "Digital Stereo (IEC958)" +#~ msgstr "Digital Stereo (IEC958)" + +#~ msgid "Digital Stereo (HDMI)" +#~ msgstr "Digital Stereo (HDMI)" + +#~ msgid "Analog Surround 4.0" +#~ msgstr "Analog Surround 4.0" + +#~ msgid "Digital Surround 4.0 (IEC958/AC3)" +#~ msgstr "Digital Surround 4.0 (IEC958/AC3)" + +#~ msgid "Analog Surround 4.1" +#~ msgstr "Analog Surround 4.1" + +#~ msgid "Analog Surround 5.0" +#~ msgstr "Analog Surround 5.0" + +#~ msgid "Analog Surround 5.1" +#~ msgstr "Analog Surround 5.1" + +#~ msgid "Digital Surround 5.1 (IEC958/AC3)" +#~ msgstr "Digital Surround 5.1 (IEC958/AC3)" + +#~ msgid "Analog Surround 7.1" +#~ msgstr "Analog Surround 7.1" + +#~ msgid "Stream successfully created\n" +#~ msgstr "ஸà¯à®Ÿà®¿à®°à¯€à®®à¯ வெறà¯à®±à®¿à®•à®°à®®à®¾à®• உரà¯à®µà®¾à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯\n" + +#~ msgid "Stream errror: %s\n" +#~ msgstr "ஸà¯à®Ÿà®¿à®°à¯€à®®à¯ பிழை: %s\n" + +#~ msgid "Connection established.\n" +#~ msgstr "இணைபà¯à®ªà®¿à®©à¯ˆ à®à®±à¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®•à®¿à®±à®¤à¯.\n" + +#~ msgid "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Show this help\n" +#~ " --version Show version\n" +#~ "\n" +#~ " -v, --verbose Enable verbose operation\n" +#~ "\n" +#~ " -s, --server=SERVER The name of the server to connect " +#~ "to\n" +#~ " -d, --device=DEVICE The name of the sink to connect " +#~ "to\n" +#~ " -n, --client-name=NAME How to call this client on the " +#~ "server\n" +#~ " --stream-name=NAME How to call this stream on the " +#~ "server\n" +#~ " --volume=VOLUME Specify the initial (linear) " +#~ "volume in range 0...65536\n" +#~ " --channel-map=CHANNELMAP Set the channel map to the use\n" +#~ msgstr "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Show this help\n" +#~ " --version Show version\n" +#~ "\n" +#~ " -v, --verbose Enable verbose operation\n" +#~ "\n" +#~ " -s, --server=SERVER The name of the server to connect " +#~ "to\n" +#~ " -d, --device=DEVICE The name of the sink to connect " +#~ "to\n" +#~ " -n, --client-name=NAME How to call this client on the " +#~ "server\n" +#~ " --stream-name=NAME How to call this stream on the " +#~ "server\n" +#~ " --volume=VOLUME Specify the initial (linear) " +#~ "volume in range 0...65536\n" +#~ " --channel-map=CHANNELMAP Set the channel map to the use\n" + +#~ msgid "" +#~ "paplay %s\n" +#~ "Compiled with libpulse %s\n" +#~ "Linked with libpulse %s\n" +#~ msgstr "" +#~ "paplay %s\n" +#~ "Compiled with libpulse %s\n" +#~ "Linked with libpulse %s\n" + +#~ msgid "Invalid channel map\n" +#~ msgstr "தவறான சேனல௠வரைபடம௠\n" + +#~ msgid "Failed to open file '%s'\n" +#~ msgstr "கோபà¯à®ªà¯ '%s'஠திறகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ\n" + +#~ msgid "Channel map doesn't match file.\n" +#~ msgstr "சேனல௠வரைபடம௠கோபà¯à®ªà¯à®Ÿà®©à¯ ஒதà¯à®¤à¯à®ªà¯ பொகவிலà¯à®²à¯ˆ.\n" + +#~ msgid "Using sample spec '%s'\n" +#~ msgstr "மாதிரி கà¯à®±à®¿à®ªà¯à®ªà¯€à®Ÿà¯ '%s'஠பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®¿\n" @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio.master-tx.te\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-21 23:02+0200\n" +"POT-Creation-Date: 2009-06-17 23:42+0200\n" "PO-Revision-Date: 2009-04-08 18:21+0530\n" "Last-Translator: Krishna Babu K <kkrothap@redhat.com>\n" "Language-Team: Telugu <en@li.org>\n" @@ -21,51 +21,7 @@ msgstr "" "\n" "\n" -#: ../src/modules/alsa/alsa-util.c:532 -msgid "Analog Mono" -msgstr "ఎనలాగౠమోనో" - -#: ../src/modules/alsa/alsa-util.c:540 -msgid "Analog Stereo" -msgstr "ఎనలాగౠసà±à°Ÿà±€à°°à°¿à°¯à±‹" - -#: ../src/modules/alsa/alsa-util.c:548 -msgid "Digital Stereo (IEC958)" -msgstr "డిజటలౠసà±à°Ÿà±€à°°à°¿à°¯à±‹ (IEC958)" - -#: ../src/modules/alsa/alsa-util.c:556 -msgid "Digital Stereo (HDMI)" -msgstr "డిజిటలౠసà±à°Ÿà±€à°°à°¿à°¯à±‹ (HDMI)" - -#: ../src/modules/alsa/alsa-util.c:565 -msgid "Analog Surround 4.0" -msgstr "ఎనలాగౠసరౌండౠ4.0" - -#: ../src/modules/alsa/alsa-util.c:574 -msgid "Digital Surround 4.0 (IEC958/AC3)" -msgstr "డిజిటలౠసరౌండౠ4.0 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:584 -msgid "Analog Surround 4.1" -msgstr "ఎనలాగౠసరౌండౠ4.1" - -#: ../src/modules/alsa/alsa-util.c:594 -msgid "Analog Surround 5.0" -msgstr "ఎనలాగౠసరౌండౠ5.0" - -#: ../src/modules/alsa/alsa-util.c:604 -msgid "Analog Surround 5.1" -msgstr "ఎనలాగౠసరౌండౠ5.1" - -#: ../src/modules/alsa/alsa-util.c:614 -msgid "Digital Surround 5.1 (IEC958/AC3)" -msgstr "డిజిటలౠసరౌండౠ5.1 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:625 -msgid "Analog Surround 7.1" -msgstr "ఎనలాగౠసరౌండౠ7.1" - -#: ../src/modules/alsa/alsa-util.c:1646 +#: ../src/modules/alsa/alsa-util.c:1015 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -77,7 +33,7 @@ msgstr "" "సాదారణంగా యిది ALSA à°¡à±à°°à±ˆà°µà°°à± '%s' నందలి బగౠకావచà±à°šà±à°¨à±. దయచేసి దీనిని ALSA à°…à°à°¿à°µà±ƒà°¦à±à°¦à°¿ కారà±à°²à°•à± " "నివేదించà±à°®à±." -#: ../src/modules/alsa/alsa-util.c:1687 +#: ../src/modules/alsa/alsa-util.c:1056 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -89,7 +45,7 @@ msgstr "" "సాదారణంగా యిది ALSA à°¡à±à°°à±ˆà°µà°°à± '%s' నందౠబగౠకావచà±à°šà±à°¨à± . దయచేసి దీనిని ALSA à°…à°à°¿à°µà±ƒà°¦à±à°¦à°¿à°•à°¾à°°à±à°²à°• " "నివేదించà±à°®à±." -#: ../src/modules/alsa/alsa-util.c:1734 +#: ../src/modules/alsa/alsa-util.c:1103 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -100,11 +56,24 @@ msgstr "" "snd_pcm_mmap_begin() à°…à°¨à±à°¨à°¦à°¿ పెదà±à°¦ విలà±à°µà°¨à± యిచà±à°šà°¿à°¨à°¦à°¿: %lu bytes (%lu ms).\n" "సాదారణంగా యిది ALSA à°¡à±à°°à±ˆà°µà°°à± '%s'నందలి బగౠకావచà±à°šà±à°¨à±. దయచేసి దీనిని ALSA à°…à°à°¿à°µà±ƒà°¦à±à°¦à°¿à°•à°¾à°°à±à°²à°¨à± నివేదించండి." -#: ../src/pulsecore/sink.c:2141 +#: ../src/modules/module-ladspa-sink.c:49 +msgid "Virtual LADSPA sink" +msgstr "" + +#: ../src/modules/module-ladspa-sink.c:53 +msgid "" +"sink_name=<name for the sink> sink_properties=<properties for the sink> " +"master=<name of sink to filter> format=<sample format> rate=<sample rate> " +"channels=<number of channels> channel_map=<channel map> plugin=<ladspa " +"plugin name> label=<ladspa plugin label> control=<comma seperated list of " +"input control values>" +msgstr "" + +#: ../src/pulsecore/sink.c:2394 msgid "Internal Audio" msgstr "అంతరà±à°—à°¤ ఆడియో" -#: ../src/pulsecore/sink.c:2147 +#: ../src/pulsecore/sink.c:2400 msgid "Modem" msgstr "మోడెమà±" @@ -174,104 +143,104 @@ msgstr "దృవీకరణ పొందలేక పోయింది: %s" msgid "PolicyKit responded with '%s'" msgstr "PolicyKit à°¸à±à°ªà°‚దిచినది దీనితో '%s'" -#: ../src/daemon/main.c:138 +#: ../src/daemon/main.c:142 #, c-format msgid "Got signal %s." msgstr "సంకేతమౠ%s పొందినది." -#: ../src/daemon/main.c:165 +#: ../src/daemon/main.c:169 msgid "Exiting." msgstr "నిషà±à°•à±à°°à°®à°¿à°‚à°šà±à°šà±à°¨à±à°¨à°¦à°¿." -#: ../src/daemon/main.c:183 +#: ../src/daemon/main.c:187 #, c-format msgid "Failed to find user '%s'." msgstr "వినియోగదారి '%s'నౠకనà±à°—ొనà±à°Ÿà°•à± విఫలమైంది." -#: ../src/daemon/main.c:188 +#: ../src/daemon/main.c:192 #, c-format msgid "Failed to find group '%s'." msgstr "సమూహం '%s' à°•à°¨à±à°—ొనà±à°Ÿà°•à± విఫలమైంది." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:196 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "వినియోగదారి '%s' (UID %lu) మరియౠసమూహమౠ'%s' (GID %lu) కనబడినవి." -#: ../src/daemon/main.c:197 +#: ../src/daemon/main.c:201 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "వినియోగదారి '%s' మరియౠసమూహమౠ'%s' యొకà±à°• GID సరితూగలేదà±." -#: ../src/daemon/main.c:202 +#: ../src/daemon/main.c:206 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "వినియోగదారి '%s' యొకà±à°• నివాస డైరెకà±à°Ÿà°°à±€ '%s' కాదà±, వదిలివేయà±à°šà±à°¨à±à°¨à°¦à°¿." -#: ../src/daemon/main.c:205 ../src/daemon/main.c:210 +#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 #, c-format msgid "Failed to create '%s': %s" msgstr "'%s' సృషà±à°Ÿà°¿à°‚à°šà±à°Ÿà°•à± విఫలమైంది: %s" -#: ../src/daemon/main.c:217 +#: ../src/daemon/main.c:221 #, c-format msgid "Failed to change group list: %s" msgstr "సమూహ జాబితా మారà±à°šà±à°Ÿà°•à± విఫలమైంది: %s" -#: ../src/daemon/main.c:233 +#: ../src/daemon/main.c:237 #, c-format msgid "Failed to change GID: %s" msgstr "GID మారà±à°šà±à°Ÿà°•à± విఫలమైంది: %s" -#: ../src/daemon/main.c:249 +#: ../src/daemon/main.c:253 #, c-format msgid "Failed to change UID: %s" msgstr "UID మారà±à°šà°Ÿà°•à± విఫలమైంది: %s" -#: ../src/daemon/main.c:263 +#: ../src/daemon/main.c:267 msgid "Successfully dropped root privileges." msgstr "root à°…à°¨à±à°®à°¤à±à°²à± విజయవంతంగా తిసివేయబడినాయి." -#: ../src/daemon/main.c:271 +#: ../src/daemon/main.c:275 msgid "System wide mode unsupported on this platform." msgstr "à°ˆ à°ªà±à°²à°¾à°Ÿà±â€Œà°«à°¾à°‚ నందౠసిసà±à°Ÿà°®à± తరహా రీతి మదà±à°¦à°¤à±€à°¯à°¬à°¡à°¦à±." -#: ../src/daemon/main.c:289 +#: ../src/daemon/main.c:293 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) విఫలమైంది: %s" -#: ../src/daemon/main.c:477 +#: ../src/daemon/main.c:481 msgid "Failed to parse command line." msgstr "ఆదేశ వరà±à°¸à°¨à± పారà±à°¶à± చేయà±à°Ÿà°•à± విఫలమైంది." -#: ../src/daemon/main.c:501 +#: ../src/daemon/main.c:505 #, c-format msgid "We're in the group '%s', allowing high-priority scheduling." msgstr "మనమౠసమూహమౠ'%s' నందౠవà±à°¨à±à°¨à°¾à°®à±, అదిక-à°ªà±à°°à°¾à°®à±à°–à±à°¯à°¤à°¾ పణాళికనౠఅనà±à°®à°¤à°¿à°‚à°šà±à°šà±à°¨à±à°¨à°¦à°¿." -#: ../src/daemon/main.c:508 +#: ../src/daemon/main.c:512 #, c-format msgid "We're in the group '%s', allowing real-time scheduling." msgstr "మనమౠసమూహమౠ'%s' నందౠవà±à°¨à±à°¨à°¾à°®à±, వాసà±à°¤à°µ-సమయ à°ªà±à°°à°£à°¾à°³à°¿à°•à°¨à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°šà±à°¨à±à°¨à°¦à°¿." -#: ../src/daemon/main.c:516 +#: ../src/daemon/main.c:520 msgid "PolicyKit grants us acquire-high-priority privilege." msgstr "PolicyKit మనకౠacquire-high-priority à°…à°¨à±à°®à°¤à°¿à°¨à°¿ యిచà±à°šà±à°šà±à°¨à±à°¨à°¦à°¿." -#: ../src/daemon/main.c:519 +#: ../src/daemon/main.c:523 msgid "PolicyKit refuses acquire-high-priority privilege." msgstr "PolicyKit à°…à°¨à±à°¨à°¦à°¿ acquire-high-priority à°…à°¨à±à°®à°¤à°¿à°¨à°¿ తిరసà±à°•à°°à°¿à°‚à°šà±à°šà±à°¨à±à°¨à°¦à°¿." -#: ../src/daemon/main.c:524 +#: ../src/daemon/main.c:528 msgid "PolicyKit grants us acquire-real-time privilege." msgstr "PolicyKit మనకౠacquire-real-time à°…à°¨à±à°®à°¤à°¿à°¨à°¿ యిచà±à°šà±à°šà±à°¨à±à°¨à°¦à°¿." -#: ../src/daemon/main.c:527 +#: ../src/daemon/main.c:531 msgid "PolicyKit refuses acquire-real-time privilege." msgstr "PolicyKit acquire-real-time à°…à°¨à±à°®à°¤à°¿à°¨à°¿ తిరసà±à°•à°°à°¿à°‚à°šà±à°šà±à°¨à±à°¨à°¦à°¿." -#: ../src/daemon/main.c:556 +#: ../src/daemon/main.c:560 #, c-format msgid "" "Called SUID root and real-time and/or high-priority scheduling was requested " @@ -291,231 +260,241 @@ msgstr "" "లేదా '%s' యొకà±à°• à°¸à°à±à°¯à±à°¨à°¿à°µà°¿ à°•à°®à±à°®à±, లేదా à°ˆ వినియోగదారికి RLIMIT_NICE/RLIMIT_RTPRIO వనరౠ" "పరిమితà±à°²à°¨à± పెంచà±à°®à±." -#: ../src/daemon/main.c:581 +#: ../src/daemon/main.c:585 msgid "" "High-priority scheduling enabled in configuration but not allowed by policy." msgstr "అధిక-à°ªà±à°°à°¾à°®à±à°–à±à°¯à°¤à°¾ à°ªà±à°°à°£à°¾à°³à°¿à°• ఆకృతీకరణనందౠచేతనమà±à°šà±‡à°¯à°¬à°¡à°¿à°‚ది కాని విధానమౠదà±à°µà°¾à°°à°¾ à°…à°¨à±à°®à°¤à°¿à°‚చబడింది." -#: ../src/daemon/main.c:610 +#: ../src/daemon/main.c:614 msgid "Successfully increased RLIMIT_RTPRIO" msgstr "సమరà±à°§à°µà°‚తంగా RLIMIT_RTPRIOనౠపెంచినది" -#: ../src/daemon/main.c:613 +#: ../src/daemon/main.c:617 #, c-format msgid "RLIMIT_RTPRIO failed: %s" msgstr "RLIMIT_RTPRIO విఫలమైంది: %s" -#: ../src/daemon/main.c:620 +#: ../src/daemon/main.c:624 msgid "Giving up CAP_NICE" msgstr "CAP_NICE యిసà±à°¤à±‹à°‚ది" -#: ../src/daemon/main.c:627 +#: ../src/daemon/main.c:631 msgid "" "Real-time scheduling enabled in configuration but not allowed by policy." msgstr "వాసà±à°¤à°µ-సమయ à°ªà±à°°à°£à°¾à°³à°¿à°• ఆకృతీకరణనందౠచేతనంచేయబడింది కాని విధానమౠదà±à°µà°¾à°°à°¾ à°…à°¨à±à°®à°¤à°¿à°‚చబడలేదà±." -#: ../src/daemon/main.c:688 +#: ../src/daemon/main.c:692 msgid "Daemon not running" msgstr "డెమోనౠనడà±à°šà±à°Ÿ లేదà±" -#: ../src/daemon/main.c:690 +#: ../src/daemon/main.c:694 #, c-format msgid "Daemon running as PID %u" msgstr "డెమోనౠPID %u వలె నడà±à°šà±à°šà±à°¨à±à°¨à°¦à°¿" -#: ../src/daemon/main.c:700 +#: ../src/daemon/main.c:704 #, c-format msgid "Failed to kill daemon: %s" msgstr "డెమోనౠచంపà±à°Ÿà°•à± విఫలమైంది: %s" -#: ../src/daemon/main.c:718 +#: ../src/daemon/main.c:722 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." msgstr "à°ˆ à°ªà±à°°à±‹à°—à±à°°à°¾à°®à± root లా నడà±à°ªà°µà°²à°¸à°¿à°‚ది కాదౠ(--system తెలిపితే తపà±à°ª)" -#: ../src/daemon/main.c:720 +#: ../src/daemon/main.c:724 msgid "Root privileges required." msgstr "Root à°…à°¨à±à°®à°¤à±à°²à± అవసరమà±." -#: ../src/daemon/main.c:725 +#: ../src/daemon/main.c:729 msgid "--start not supported for system instances." msgstr "--start సిసà±à°Ÿà°®à± సంà°à°µà°¾à°² à°¦à±à°µà°¾à°°à°¾ మదà±à°¦à°¤à±€à°¯à°¬à°¡à°¦à±." -#: ../src/daemon/main.c:730 +#: ../src/daemon/main.c:734 msgid "Running in system mode, but --disallow-exit not set!" msgstr "సిసà±à°Ÿà°®à± మోడౠనందౠనడà±à°ªà±à°¤à±‹à°‚ది, అయితే --disallow-exit అమరà±à°šà°²à±‡à°¦à±!" -#: ../src/daemon/main.c:733 +#: ../src/daemon/main.c:737 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "సిసà±à°Ÿà°®à± రీతినందౠనడà±à°šà±à°šà±à°¨à±à°¨à°¦à°¿, అయితే --disallow-module-loading అమరà±à°šà°²à±‡à°¦à±!" -#: ../src/daemon/main.c:736 +#: ../src/daemon/main.c:740 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "సిసà±à°Ÿà°®à± రీతినందౠనడà±à°ªà±à°šà±à°¨à±à°¨à°¦à°¿, బలవంతంగా SHM రీతిని అచేతనమౠచేసà±à°¤à±‹à°‚ది!" -#: ../src/daemon/main.c:741 +#: ../src/daemon/main.c:745 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "సిసà±à°Ÿà°®à± రీతినందౠనడà±à°šà±à°šà±à°¨à±à°¨à°¦à°¿, బలవంతంగా నిషà±à°•à±à°°à°®à°£ వృధా సమయానà±à°¨à°¿ అచేతనమౠచేయà±à°šà±à°¨à±à°¨à°¦à°¿!" -#: ../src/daemon/main.c:768 +#: ../src/daemon/main.c:772 msgid "Failed to acquire stdio." msgstr "stdio పొందà±à°Ÿà°•à± విఫలమైంది." -#: ../src/daemon/main.c:774 +#: ../src/daemon/main.c:778 #, c-format msgid "pipe failed: %s" msgstr "పైరౠవిఫలమైంది: %s" -#: ../src/daemon/main.c:779 +#: ../src/daemon/main.c:783 #, c-format msgid "fork() failed: %s" msgstr "fork() విఫలమైంది: %s" -#: ../src/daemon/main.c:793 +#: ../src/daemon/main.c:797 #, c-format msgid "read() failed: %s" msgstr "read() విఫలమైంది: %s" -#: ../src/daemon/main.c:799 +#: ../src/daemon/main.c:803 msgid "Daemon startup failed." msgstr "డెమోనౠపà±à°°à°¾à°°à°‚à°à°‚ విఫలమైంది." -#: ../src/daemon/main.c:801 +#: ../src/daemon/main.c:805 msgid "Daemon startup successful." msgstr "డెమోనౠపà±à°°à°¾à°°à°‚à°à°®à± సఫలమైంది." -#: ../src/daemon/main.c:871 +#: ../src/daemon/main.c:875 #, c-format msgid "This is PulseAudio %s" msgstr "ఇది PulseAudio %s" -#: ../src/daemon/main.c:872 +#: ../src/daemon/main.c:876 #, c-format msgid "Compilation host: %s" msgstr "నిరà±à°µà°°à±à°¤à°¨ హోసà±à°Ÿà±: %s" -#: ../src/daemon/main.c:873 +#: ../src/daemon/main.c:877 #, c-format msgid "Compilation CFLAGS: %s" msgstr "నిరà±à°µà°°à±à°¤à°¨ CFLAGS: %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:880 #, c-format msgid "Running on host: %s" msgstr "హోసà±à°Ÿà±à°¨à± నడà±à°ªà±à°šà±à°¨à±à°¨à°¦à°¿: %s" -#: ../src/daemon/main.c:879 +#: ../src/daemon/main.c:883 #, c-format msgid "Found %u CPUs." msgstr "%u CPUలనౠకనà±à°—ొనà±à°¨à°¦à°¿." -#: ../src/daemon/main.c:881 +#: ../src/daemon/main.c:885 #, c-format msgid "Page size is %lu bytes" msgstr "పేజీ పరిమాణమౠ%lu బైటà±à°²à±" -#: ../src/daemon/main.c:884 +#: ../src/daemon/main.c:888 msgid "Compiled with Valgrind support: yes" msgstr "Valgrind మదà±à°¦à°¤à±à°¤à±‹ నిరà±à°µà°°à±à°¤à°¿à°‚చబడింది: à°…à°µà±à°¨à±" -#: ../src/daemon/main.c:886 +#: ../src/daemon/main.c:890 msgid "Compiled with Valgrind support: no" msgstr "Valgrind మదà±à°¦à°¤à±à°¤à±‹ నిరà±à°µà°°à±à°¤à°¿à°‚చబడింది: లేదà±" -#: ../src/daemon/main.c:889 +#: ../src/daemon/main.c:893 #, c-format msgid "Running in valgrind mode: %s" msgstr "valgrind రీతినందౠనడà±à°ªà±à°šà±à°¨à±à°¨à°¦à°¿: %s" -#: ../src/daemon/main.c:892 +#: ../src/daemon/main.c:896 msgid "Optimized build: yes" msgstr "ఆపà±à°Ÿà°¿à°®à±ˆà°œà±à°¡à± à°¬à±à°²à±à°¡à±: à°…à°µà±à°¨à±" -#: ../src/daemon/main.c:894 +#: ../src/daemon/main.c:898 msgid "Optimized build: no" msgstr "ఆపà±à°Ÿà°¿à°®à±ˆà°œà±à°¡à± à°¬à±à°²à±à°¡à±: కాదà±" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:902 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG నిరà±à°µà°šà°¿à°‚చబడింది, à°…à°¨à±à°¨à°¿ à°¸à±à°¥à°¿à°°à°°à°¾à°¶à±à°²à± అచేతనమైనవి." -#: ../src/daemon/main.c:900 +#: ../src/daemon/main.c:904 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "FASTPATH నిరà±à°µà°šà°¿à°‚చబడింది, ఫాసà±à°Ÿà± పాతౠసà±à°¥à°¿à°°à°°à°¾à°¶à±à°²à± మాతà±à°°à°®à±‡ అచేతనమైనవి." -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:906 msgid "All asserts enabled." msgstr "à°…à°¨à±à°¨à°¿ à°¸à±à°¥à°¿à°°à°°à°¾à°¶à±à°²à± చేతనమైనవి." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:910 msgid "Failed to get machine ID" msgstr "మిషనౠID పొందà±à°Ÿà°•à± విఫలమైంది" -#: ../src/daemon/main.c:909 +#: ../src/daemon/main.c:913 #, c-format msgid "Machine ID is %s." msgstr "మిషనౠID %s." -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:917 #, fuzzy, c-format msgid "Session ID is %s." msgstr "మిషనౠID %s." -#: ../src/daemon/main.c:919 +#: ../src/daemon/main.c:923 #, c-format msgid "Using runtime directory %s." msgstr "à°°à°¨à±â€Œà°Ÿà±ˆà°®à± డైరెకà±à°Ÿà°°à±€à°¨à± à°µà±à°ªà°¯à±‹à°—à°¿à°‚à°šà±à°šà±à°¨à±à°¨à°¦à°¿ %s." -#: ../src/daemon/main.c:924 +#: ../src/daemon/main.c:928 #, c-format msgid "Using state directory %s." msgstr "à°¸à±à°¥à°¿à°¤à°¿ డైరెకà±à°Ÿà°°à±€à°¨à± à°µà±à°ªà°¯à±‹à°—à°¿à°‚à°šà±à°šà±à°¨à±à°¨à°¦à°¿ %s." -#: ../src/daemon/main.c:927 +#: ../src/daemon/main.c:931 #, c-format msgid "Running in system mode: %s" msgstr "సిసà±à°Ÿà°®à± రీతినందౠవà±à°ªà°¯à±‹à°—à°¿à°‚à°šà±à°šà±à°¨à±à°¨à°¦à°¿: %s" -#: ../src/daemon/main.c:942 +#: ../src/daemon/main.c:934 +msgid "" +"OK, so you are running PA in system mode. Please note that you most likely " +"shouldn't be doing that.\n" +"If you do it nonetheless then it's your own fault if things don't work as " +"expected.\n" +"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " +"explanation why system mode is usually a bad idea." +msgstr "" + +#: ../src/daemon/main.c:951 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() విఫలమైంది." -#: ../src/daemon/main.c:954 +#: ../src/daemon/main.c:961 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "తాజా అధిక-తీవà±à°°à°¤ కాలసూచికలౠఅందà±à°¬à°¾à°Ÿà±à°²à±‹ à°µà±à°¨à±à°¨à°¾à°¯à°¿! బానౠఎపటైటà±!" -#: ../src/daemon/main.c:956 +#: ../src/daemon/main.c:963 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" msgstr "మితà±à°°à°®à°¾, నీ కెరà±à°¨à°²à± చెడిపోయింది! అధిక-తీవà±à°°à°¤ కాలసూచకిలనౠచేతనమౠచేయమని సూచించడమైనది!" -#: ../src/daemon/main.c:970 +#: ../src/daemon/main.c:988 msgid "pa_core_new() failed." msgstr "pa_core_new() విఫలమైంది." -#: ../src/daemon/main.c:1032 +#: ../src/daemon/main.c:1050 msgid "Failed to initialize daemon." msgstr "డెమోనౠసిదà±à°¦à°®à±à°šà±‡à°¯à±à°Ÿà°•à± విఫలమైంది." -#: ../src/daemon/main.c:1037 +#: ../src/daemon/main.c:1055 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "à°à°µà°¿à°§à°®à±ˆà°¨ మాడà±à°¯à±‚à°³à±à°³à± లోడవకà±à°‚à°¡à°¾ డెమోనౠపà±à°°à°¾à°°à°‚à°à°®à±, పనిచేయà±à°Ÿà°•à± తిరసà±à°•à°°à°¿à°‚చబడింది." -#: ../src/daemon/main.c:1054 +#: ../src/daemon/main.c:1072 msgid "Daemon startup complete." msgstr "డెమోనౠపà±à°°à°¾à°°à°‚à°à°®à± పూరà±à°¤à±ˆà°¨à°¦à°¿." -#: ../src/daemon/main.c:1060 +#: ../src/daemon/main.c:1078 msgid "Daemon shutdown initiated." msgstr "డెమోనౠమూసివేత సిదà±à°¦à°®à±à°šà±‡à°¯à°¬à°¡à°¿à°‚ది." -#: ../src/daemon/main.c:1082 +#: ../src/daemon/main.c:1100 msgid "Daemon terminated." msgstr "డెమోనౠఅంతమà±à°šà±‡à°¯à°¬à°¡à°¿à°‚ది." -#: ../src/daemon/cmdline.c:121 +#: ../src/daemon/cmdline.c:115 #, c-format msgid "" "%s [options]\n" @@ -658,15 +637,15 @@ msgstr "" "\n" " -n Don't load default script file\n" -#: ../src/daemon/cmdline.c:252 +#: ../src/daemon/cmdline.c:247 msgid "--daemonize expects boolean argument" msgstr "--daemonize బూలియనౠఆరà±à°—à±à°®à±†à°‚à°Ÿà±à°¨à± కోరà±à°•à±à°‚à°Ÿà±à°‚ది" -#: ../src/daemon/cmdline.c:259 +#: ../src/daemon/cmdline.c:254 msgid "--fail expects boolean argument" msgstr "--fail బూలియనౠఆరà±à°—à±à°®à±†à°‚à°Ÿà±à°¨à± కోరà±à°•à±à°‚à°Ÿà±à°‚ది" -#: ../src/daemon/cmdline.c:269 +#: ../src/daemon/cmdline.c:264 msgid "" "--log-level expects log level argument (either numeric in range 0..4 or one " "of debug, info, notice, warn, error)." @@ -674,52 +653,52 @@ msgstr "" "--log-level లాగౠసà±à°¥à°¾à°¯à°¿ ఆరà±à°—à±à°®à±†à°‚à°Ÿà±â€Œà°¨à± కోరà±à°•à±à°‚టోంది (సహజసంఖà±à°¯à°¨à± 0..4 విసà±à°¤à±ƒà°¤à°¿à°²à±‹ కాని లేదా డీబగà±â€Œ, " "సమాచారమà±, నోటీసà±, హెచà±à°šà°°à°¿à°•, దోషమౠవీటిలో వొకటికాని)." -#: ../src/daemon/cmdline.c:281 +#: ../src/daemon/cmdline.c:276 msgid "--high-priority expects boolean argument" msgstr "--high-priority బూలియనౠఆరà±à°—à±à°®à±†à°‚à°Ÿà±à°¨à± కోరà±à°•à±à°‚à°Ÿà±à°‚ది" -#: ../src/daemon/cmdline.c:288 +#: ../src/daemon/cmdline.c:283 msgid "--realtime expects boolean argument" msgstr "--realtime బూలియనౠఆరà±à°—à±à°®à±†à°‚à°Ÿà±à°¨à± కోరà±à°•à±à°‚à°Ÿà±à°‚ది" -#: ../src/daemon/cmdline.c:295 +#: ../src/daemon/cmdline.c:290 msgid "--disallow-module-loading expects boolean argument" msgstr "--disallow-module-loading బూలియనౠఆరà±à°—à±à°®à±†à°‚à°Ÿà±à°¨à± కోరà±à°•à±à°‚à°Ÿà±à°‚ది" -#: ../src/daemon/cmdline.c:302 +#: ../src/daemon/cmdline.c:297 msgid "--disallow-exit expects boolean argument" msgstr "--disallow-exit బూలియనౠఆరà±à°—à±à°®à±†à°‚à°Ÿà±à°¨à± కోరà±à°•à±à°‚à°Ÿà±à°‚ది" -#: ../src/daemon/cmdline.c:309 +#: ../src/daemon/cmdline.c:304 msgid "--use-pid-file expects boolean argument" msgstr "--use-pid-file బూలియనౠఆరà±à°—à±à°®à±†à°‚à°Ÿà±à°¨à± కోరà±à°•à±à°‚à°Ÿà±à°‚ది" -#: ../src/daemon/cmdline.c:326 +#: ../src/daemon/cmdline.c:321 msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgstr "చెలà±à°²à°¨à°¿ లాగౠటారà±à°—ెటà±: 'syslog', 'stderr' లేదా 'auto' à°µà±à°ªà°¯à±‹à°—à°¿à°‚à°šà±à°®à±." -#: ../src/daemon/cmdline.c:333 +#: ../src/daemon/cmdline.c:328 msgid "--log-time expects boolean argument" msgstr "--log-time బూలియనౠఆరà±à°—à±à°®à±†à°‚à°Ÿà±à°¨à± కోరà±à°•à±à°‚à°Ÿà±à°‚ది" -#: ../src/daemon/cmdline.c:340 +#: ../src/daemon/cmdline.c:335 msgid "--log-meta expects boolean argument" msgstr "--log-meta బూలియనౠఆరà±à°—à±à°®à±†à°‚à°Ÿà±à°¨à± కోరà±à°•à±à°‚à°Ÿà±à°‚ది" -#: ../src/daemon/cmdline.c:359 +#: ../src/daemon/cmdline.c:354 #, c-format msgid "Invalid resample method '%s'." msgstr "చెలà±à°²à°¨à°¿ à°ªà±à°¨à°ƒà°µà±à°¦à°¾à°¹à°°à°£ పదà±à°¦à°¤à°¿ '%s'." -#: ../src/daemon/cmdline.c:366 +#: ../src/daemon/cmdline.c:361 msgid "--system expects boolean argument" msgstr "--system బూలియనౠఆరà±à°—à±à°®à±†à°‚à°Ÿà±à°¨à± కోరà±à°•à±à°‚à°Ÿà±à°‚ది" -#: ../src/daemon/cmdline.c:373 +#: ../src/daemon/cmdline.c:368 msgid "--no-cpu-limit expects boolean argument" msgstr "--no-cpu-limit బూలియనౠఆరà±à°—à±à°®à±†à°‚à°Ÿà±à°¨à± కోరà±à°•à±à°‚à°Ÿà±à°‚ది" -#: ../src/daemon/cmdline.c:380 +#: ../src/daemon/cmdline.c:375 msgid "--disable-shm expects boolean argument" msgstr "--disable-shm బూలియనౠఆరà±à°—à±à°®à±†à°‚à°Ÿà±à°¨à± కోరà±à°•à±à°‚à°Ÿà±à°‚ది" @@ -758,77 +737,82 @@ msgstr "వాడà±à°•: %s\n" msgid "Load Once: %s\n" msgstr "ఒకసారి లోడà±à°šà±‡à°¯à±à°®à±: %s\n" -#: ../src/daemon/dumpmodules.c:77 +#: ../src/daemon/dumpmodules.c:75 +#, c-format +msgid "DEPRECATION WARNING: %s\n" +msgstr "" + +#: ../src/daemon/dumpmodules.c:79 #, c-format msgid "Path: %s\n" msgstr "పాతà±: %s\n" -#: ../src/daemon/daemon-conf.c:215 +#: ../src/daemon/daemon-conf.c:216 #, c-format msgid "[%s:%u] Invalid log target '%s'." msgstr "[%s:%u] చెలà±à°²à°¨à°¿ లాగౠలకà±à°·à±à°¯à°®à± '%s'." -#: ../src/daemon/daemon-conf.c:231 +#: ../src/daemon/daemon-conf.c:232 #, c-format msgid "[%s:%u] Invalid log level '%s'." msgstr "[%s:%u] చెలà±à°²à°¨à°¿ లాగౠసà±à°¥à°¾à°¯à°¿ '%s'." -#: ../src/daemon/daemon-conf.c:247 +#: ../src/daemon/daemon-conf.c:248 #, c-format msgid "[%s:%u] Invalid resample method '%s'." msgstr "[%s:%u] చెలà±à°²à°¨à°¿ à°ªà±à°¨à°ƒà°µà±à°¦à°¾à°¹à°°à°£ పదà±à°¦à°¤à°¿ '%s'." -#: ../src/daemon/daemon-conf.c:270 +#: ../src/daemon/daemon-conf.c:271 #, c-format msgid "[%s:%u] Invalid rlimit '%s'." msgstr "[%s:%u] చెలà±à°²à°¨à°¿ rlimit '%s'." -#: ../src/daemon/daemon-conf.c:277 +#: ../src/daemon/daemon-conf.c:278 #, c-format msgid "[%s:%u] rlimit not supported on this platform." msgstr "[%s:%u] rlimit à°…à°¨à±à°¨à°¦à°¿ à°ˆ à°ªà±à°²à°¾à°Ÿà±â€Œà°«à°¾à°‚ నందౠమదà±à°¦à°¤à°¿à°µà±à°µà°¬à°¡à°¦à±." -#: ../src/daemon/daemon-conf.c:293 +#: ../src/daemon/daemon-conf.c:294 #, c-format msgid "[%s:%u] Invalid sample format '%s'." msgstr "[%s:%u] చెలà±à°²à°¨à°¿ మాదిరి ఫారà±à°®à°¾à°Ÿà± '%s'." -#: ../src/daemon/daemon-conf.c:311 +#: ../src/daemon/daemon-conf.c:312 #, c-format msgid "[%s:%u] Invalid sample rate '%s'." msgstr "[%s:%u] చెలà±à°²à°¨à°¿ మాదిరి రేటౠ'%s'." -#: ../src/daemon/daemon-conf.c:335 +#: ../src/daemon/daemon-conf.c:336 #, c-format msgid "[%s:%u] Invalid sample channels '%s'." msgstr "[%s:%u] చెలà±à°²à°¨à°¿ మాదిరి చానళà±à°³à± '%s'." -#: ../src/daemon/daemon-conf.c:353 +#: ../src/daemon/daemon-conf.c:354 #, c-format msgid "[%s:%u] Invalid channel map '%s'." msgstr "[%s:%u] చెలà±à°²à°¨à°¿ ఛానలౠమాపౠ'%s'." -#: ../src/daemon/daemon-conf.c:371 +#: ../src/daemon/daemon-conf.c:372 #, c-format msgid "[%s:%u] Invalid number of fragments '%s'." msgstr "[%s:%u] చెలà±à°²à°¨à°¿ à°®à±à°•à±à°•à°²à± సంఖà±à°¯ '%s'." -#: ../src/daemon/daemon-conf.c:389 +#: ../src/daemon/daemon-conf.c:390 #, c-format msgid "[%s:%u] Invalid fragment size '%s'." msgstr "[%s:%u] చెలà±à°²à°¨à°¿ à°®à±à°•à±à°• పరిమాణమౠ'%s'." -#: ../src/daemon/daemon-conf.c:407 +#: ../src/daemon/daemon-conf.c:408 #, c-format msgid "[%s:%u] Invalid nice level '%s'." msgstr "[%s:%u] చెలà±à°²à°¨à°¿ సాదా à°¸à±à°¥à°¾à°¯à°¿ '%s'." -#: ../src/daemon/daemon-conf.c:522 +#: ../src/daemon/daemon-conf.c:524 #, c-format msgid "Failed to open configuration file: %s" msgstr "ఆకృతీకరణ దసà±à°¤à±à°°à°®à±à°¨à± తెరà±à°šà±à°Ÿà°•à± విఫలమైంది: %s" -#: ../src/daemon/daemon-conf.c:538 +#: ../src/daemon/daemon-conf.c:540 msgid "" "The specified default channel map has a different number of channels than " "the specified default number of channels." @@ -875,237 +859,237 @@ msgstr "సిసà±à°Ÿà°®à± విధానమౠPulseAudio అధిక-à°ªà msgid "System policy prevents PulseAudio from acquiring real-time scheduling." msgstr "సిసà±à°Ÿà°®à± విధానమౠPulseAudio వాసà±à°¤à°µ-సమయ à°ªà±à°°à°£à°¾à°³à°¿à°•à°¨à± పొందకà±à°‚à°¡à°¾ నిరోధిసà±à°¤à±‹à°‚ది." -#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804 +#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "మోనో" -#: ../src/pulse/channelmap.c:105 +#: ../src/pulse/channelmap.c:107 msgid "Front Center" msgstr "à°®à±à°‚దౠమధà±à°¯à°¨" -#: ../src/pulse/channelmap.c:106 +#: ../src/pulse/channelmap.c:108 msgid "Front Left" msgstr "à°®à±à°‚దౠఎడమవైపà±" -#: ../src/pulse/channelmap.c:107 +#: ../src/pulse/channelmap.c:109 msgid "Front Right" msgstr "à°®à±à°‚దౠకà±à°¡à°¿à°µà±ˆà°ªà±" -#: ../src/pulse/channelmap.c:109 +#: ../src/pulse/channelmap.c:111 msgid "Rear Center" msgstr "వెనà±à°• మధà±à°¯à°¨" -#: ../src/pulse/channelmap.c:110 +#: ../src/pulse/channelmap.c:112 msgid "Rear Left" msgstr "వెనà±à°• ఎడమవైపà±" -#: ../src/pulse/channelmap.c:111 +#: ../src/pulse/channelmap.c:113 msgid "Rear Right" msgstr "వెనà±à°• à°•à±à°¡à°¿à°µà±ˆà°ªà±" -#: ../src/pulse/channelmap.c:113 +#: ../src/pulse/channelmap.c:115 msgid "Low Frequency Emmiter" msgstr "తకà±à°•à±à°µ తరచà±à°¦à°¨à°‚ వెలà±à°µà°°à°¿à°‚à°šà±à°¨à°¦à°¿" -#: ../src/pulse/channelmap.c:115 +#: ../src/pulse/channelmap.c:117 msgid "Front Left-of-center" msgstr "à°®à±à°‚దౠఎడమ-మధà±à°¯" -#: ../src/pulse/channelmap.c:116 +#: ../src/pulse/channelmap.c:118 msgid "Front Right-of-center" msgstr "à°®à±à°‚దౠకà±à°¡à°¿-మధà±à°¯" -#: ../src/pulse/channelmap.c:118 +#: ../src/pulse/channelmap.c:120 msgid "Side Left" msgstr "à°Žà°¡à°® à°ªà±à°°à°•à±à°•" -#: ../src/pulse/channelmap.c:119 +#: ../src/pulse/channelmap.c:121 msgid "Side Right" msgstr "à°•à±à°¡à°¿ à°ªà±à°°à°•à±à°•" -#: ../src/pulse/channelmap.c:121 +#: ../src/pulse/channelmap.c:123 msgid "Auxiliary 0" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 0" -#: ../src/pulse/channelmap.c:122 +#: ../src/pulse/channelmap.c:124 msgid "Auxiliary 1" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 1" -#: ../src/pulse/channelmap.c:123 +#: ../src/pulse/channelmap.c:125 msgid "Auxiliary 2" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 2" -#: ../src/pulse/channelmap.c:124 +#: ../src/pulse/channelmap.c:126 msgid "Auxiliary 3" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 3" -#: ../src/pulse/channelmap.c:125 +#: ../src/pulse/channelmap.c:127 msgid "Auxiliary 4" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 4" -#: ../src/pulse/channelmap.c:126 +#: ../src/pulse/channelmap.c:128 msgid "Auxiliary 5" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 5" -#: ../src/pulse/channelmap.c:127 +#: ../src/pulse/channelmap.c:129 msgid "Auxiliary 6" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 6" -#: ../src/pulse/channelmap.c:128 +#: ../src/pulse/channelmap.c:130 msgid "Auxiliary 7" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 7" -#: ../src/pulse/channelmap.c:129 +#: ../src/pulse/channelmap.c:131 msgid "Auxiliary 8" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 8" -#: ../src/pulse/channelmap.c:130 +#: ../src/pulse/channelmap.c:132 msgid "Auxiliary 9" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 9" -#: ../src/pulse/channelmap.c:131 +#: ../src/pulse/channelmap.c:133 msgid "Auxiliary 10" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 10" -#: ../src/pulse/channelmap.c:132 +#: ../src/pulse/channelmap.c:134 msgid "Auxiliary 11" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 11" -#: ../src/pulse/channelmap.c:133 +#: ../src/pulse/channelmap.c:135 msgid "Auxiliary 12" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 12" -#: ../src/pulse/channelmap.c:134 +#: ../src/pulse/channelmap.c:136 msgid "Auxiliary 13" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 13" -#: ../src/pulse/channelmap.c:135 +#: ../src/pulse/channelmap.c:137 msgid "Auxiliary 14" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 14" -#: ../src/pulse/channelmap.c:136 +#: ../src/pulse/channelmap.c:138 msgid "Auxiliary 15" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 15" -#: ../src/pulse/channelmap.c:137 +#: ../src/pulse/channelmap.c:139 msgid "Auxiliary 16" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 16" -#: ../src/pulse/channelmap.c:138 +#: ../src/pulse/channelmap.c:140 msgid "Auxiliary 17" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 17" -#: ../src/pulse/channelmap.c:139 +#: ../src/pulse/channelmap.c:141 msgid "Auxiliary 18" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 18" -#: ../src/pulse/channelmap.c:140 +#: ../src/pulse/channelmap.c:142 msgid "Auxiliary 19" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 19" -#: ../src/pulse/channelmap.c:141 +#: ../src/pulse/channelmap.c:143 msgid "Auxiliary 20" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 20" -#: ../src/pulse/channelmap.c:142 +#: ../src/pulse/channelmap.c:144 msgid "Auxiliary 21" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 21" -#: ../src/pulse/channelmap.c:143 +#: ../src/pulse/channelmap.c:145 msgid "Auxiliary 22" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 22" -#: ../src/pulse/channelmap.c:144 +#: ../src/pulse/channelmap.c:146 msgid "Auxiliary 23" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 23" -#: ../src/pulse/channelmap.c:145 +#: ../src/pulse/channelmap.c:147 msgid "Auxiliary 24" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 24" -#: ../src/pulse/channelmap.c:146 +#: ../src/pulse/channelmap.c:148 msgid "Auxiliary 25" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 25" -#: ../src/pulse/channelmap.c:147 +#: ../src/pulse/channelmap.c:149 msgid "Auxiliary 26" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 26" -#: ../src/pulse/channelmap.c:148 +#: ../src/pulse/channelmap.c:150 msgid "Auxiliary 27" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 27" -#: ../src/pulse/channelmap.c:149 +#: ../src/pulse/channelmap.c:151 msgid "Auxiliary 28" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 28" -#: ../src/pulse/channelmap.c:150 +#: ../src/pulse/channelmap.c:152 msgid "Auxiliary 29" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 29" -#: ../src/pulse/channelmap.c:151 +#: ../src/pulse/channelmap.c:153 msgid "Auxiliary 30" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 30" -#: ../src/pulse/channelmap.c:152 +#: ../src/pulse/channelmap.c:154 msgid "Auxiliary 31" msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 31" -#: ../src/pulse/channelmap.c:154 +#: ../src/pulse/channelmap.c:156 msgid "Top Center" msgstr "పై మధà±à°¯à°¨" -#: ../src/pulse/channelmap.c:156 +#: ../src/pulse/channelmap.c:158 msgid "Top Front Center" msgstr "పైన à°®à±à°‚దౠమధà±à°¯à°¨" -#: ../src/pulse/channelmap.c:157 +#: ../src/pulse/channelmap.c:159 msgid "Top Front Left" msgstr "పైన à°®à±à°‚దౠఎడమవైపà±" -#: ../src/pulse/channelmap.c:158 +#: ../src/pulse/channelmap.c:160 msgid "Top Front Right" msgstr "పైన à°®à±à°‚దౠకà±à°¡à°¿à°µà±ˆà°ªà±" -#: ../src/pulse/channelmap.c:160 +#: ../src/pulse/channelmap.c:162 msgid "Top Rear Center" msgstr "పైన వెనà±à°• మధà±à°¯à°¨" -#: ../src/pulse/channelmap.c:161 +#: ../src/pulse/channelmap.c:163 msgid "Top Rear Left" msgstr "పైన వెనà±à°• ఎడమవైపà±" -#: ../src/pulse/channelmap.c:162 +#: ../src/pulse/channelmap.c:164 msgid "Top Rear Right" msgstr "పైన వెనà±à°• à°•à±à°¡à°¿à°µà±ˆà°ªà±à°¨" -#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167 -#: ../src/pulse/volume.c:170 ../src/pulse/volume.c:196 -#: ../src/pulse/volume.c:216 ../src/pulse/volume.c:246 +#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167 +#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265 +#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315 msgid "(invalid)" msgstr "(చెలà±à°²à°¨à°¿)" -#: ../src/pulse/channelmap.c:808 +#: ../src/pulse/channelmap.c:751 msgid "Stereo" msgstr "à°¸à±à°Ÿà±€à°°à°¿à°¯à±‹" -#: ../src/pulse/channelmap.c:813 +#: ../src/pulse/channelmap.c:756 msgid "Surround 4.0" msgstr "సరౌండౠ4.0" -#: ../src/pulse/channelmap.c:819 +#: ../src/pulse/channelmap.c:762 msgid "Surround 4.1" msgstr "సరౌండౠ4.1" -#: ../src/pulse/channelmap.c:825 +#: ../src/pulse/channelmap.c:768 msgid "Surround 5.0" msgstr "సరౌండౠ5.0" -#: ../src/pulse/channelmap.c:831 +#: ../src/pulse/channelmap.c:774 msgid "Surround 5.1" msgstr "సరౌండౠ5.1" -#: ../src/pulse/channelmap.c:838 +#: ../src/pulse/channelmap.c:781 msgid "Surround 7.1" msgstr "సరౌండౠ7.1" @@ -1266,173 +1250,168 @@ msgstr "waitpid(): %s" msgid "Received message for unknown extension '%s'" msgstr "తెలియని పొడిగింపౠకొరకౠసందేశమౠసà±à°µà±€à°•à°°à°¿à°‚చింది '%s'" -#: ../src/utils/pacat.c:94 +#: ../src/utils/pacat.c:107 +#, c-format +msgid "Failed to drain stream: %s\n" +msgstr "à°¸à±à°Ÿà±à°°à±€à°®à± à°Žà°‚à°¡à°—à°Ÿà±à°Ÿà±à°Ÿà°•à± విఫలమైంది: %s\n" + +#: ../src/utils/pacat.c:112 +msgid "Playback stream drained.\n" +msgstr "à°ªà±à°²à±‡à°¬à±à°¯à°¾à°•à± à°¸à±à°Ÿà±à°°à±€à°®à± à°Žà°‚à°¡à°—à°Ÿà±à°Ÿà°¿à°¨à°¦à°¿.\n" + +#: ../src/utils/pacat.c:122 +msgid "Draining connection to server.\n" +msgstr "సేవికకౠఅనà±à°¸à°‚ధానమà±à°¨à± నశింపచేసà±à°¤à±‹à°‚ది.\n" + +#: ../src/utils/pacat.c:135 +#, c-format +msgid "pa_stream_drain(): %s\n" +msgstr "pa_stream_drain(): %s\n" + +#: ../src/utils/pacat.c:158 #, c-format msgid "pa_stream_write() failed: %s\n" msgstr "pa_stream_write() విఫలమైంది: %s\n" -#: ../src/utils/pacat.c:133 +#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 #, c-format msgid "pa_stream_peek() failed: %s\n" msgstr "pa_stream_peek() విఫలమైంది: %s\n" -#: ../src/utils/pacat.c:169 -#, c-format +#: ../src/utils/pacat.c:302 msgid "Stream successfully created.\n" msgstr "à°¸à±à°Ÿà±à°°à±€à°®à± సమరà±à°§à°µà°‚తంగా సృషà±à°Ÿà°¿à°‚చబడింది.\n" -#: ../src/utils/pacat.c:172 +#: ../src/utils/pacat.c:305 #, c-format msgid "pa_stream_get_buffer_attr() failed: %s\n" msgstr "pa_stream_get_buffer_attr() విఫలమైంది: %s\n" -#: ../src/utils/pacat.c:176 +#: ../src/utils/pacat.c:309 #, c-format msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgstr "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:179 +#: ../src/utils/pacat.c:312 #, c-format msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgstr "Buffer metrics: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:183 +#: ../src/utils/pacat.c:316 #, c-format msgid "Using sample spec '%s', channel map '%s'.\n" msgstr "సాదారణ విశదీకరణ(à°¸à±à°ªà±†à°•à±) '%s' à°µà±à°ªà°¯à±‹à°—à°¿à°¸à±à°¤à±‹à°‚ది, à°ªà±à°°à°¸à°¾à°°à°®à°¾à°°à±à°—à°‚ మాపౠ'%s'.\n" -#: ../src/utils/pacat.c:187 +#: ../src/utils/pacat.c:320 #, c-format msgid "Connected to device %s (%u, %ssuspended).\n" msgstr "పరికరమౠ%s (%u, %ssuspended) à°•à± à°…à°¨à±à°¸à°‚ధానించబడింది.\n" -#: ../src/utils/pacat.c:197 +#: ../src/utils/pacat.c:330 #, c-format msgid "Stream error: %s\n" msgstr "à°¸à±à°Ÿà±à°°à±€à°®à± దోషమà±: %s\n" -#: ../src/utils/pacat.c:207 +#: ../src/utils/pacat.c:340 #, c-format msgid "Stream device suspended.%s \n" msgstr "à°¸à±à°Ÿà±à°°à±€à°®à± పరికరమౠఅరà±à°¦à°¾à°‚తరమà±à°—à°¾ నిలిపివేయి.%s \n" -#: ../src/utils/pacat.c:209 +#: ../src/utils/pacat.c:342 #, c-format msgid "Stream device resumed.%s \n" msgstr "à°¸à±à°Ÿà±à°°à±€à°®à± పరికరమౠతిరిగికొనసాగించబడింది.%s \n" -#: ../src/utils/pacat.c:217 +#: ../src/utils/pacat.c:350 #, c-format msgid "Stream underrun.%s \n" msgstr "à°¸à±à°Ÿà±à°°à±€à°®à± తకà±à°•à±à°µà°—ానడà±à°šà±à°šà±à°¨à±à°¨à°¦à°¿.%s \n" -#: ../src/utils/pacat.c:224 +#: ../src/utils/pacat.c:357 #, c-format msgid "Stream overrun.%s \n" msgstr "à°¸à±à°Ÿà±à°°à±€à°®à± మించినడà±à°šà±à°šà±à°¨à±à°¨à°¦à°¿.%s \n" -#: ../src/utils/pacat.c:231 +#: ../src/utils/pacat.c:364 #, c-format msgid "Stream started.%s \n" msgstr "à°¸à±à°Ÿà±à°°à±€à°®à± à°ªà±à°°à°¾à°°à°‚à°à°®à±ˆà°‚ది.%s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 #, c-format msgid "Stream moved to device %s (%u, %ssuspended).%s \n" msgstr "à°¸à±à°Ÿà±à°°à±€à°®à± పరికరమౠ%s (%u, %ssuspended) à°•à± à°•à°¦à±à°ªà°¬à°¡à°¿à°‚ది.%s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 msgid "not " msgstr "కాదౠ" -#: ../src/utils/pacat.c:245 +#: ../src/utils/pacat.c:378 #, c-format msgid "Stream buffer attributes changed.%s \n" msgstr "à°¸à±à°Ÿà±à°°à±€à°®à± బఫరౠయాటà±à°°à°¿à°¬à±à°¯à±‚à°Ÿà±à°²à± మారà±à°šà°¬à°¡à°¿à°¨à°µà°¿.%s \n" -#: ../src/utils/pacat.c:278 +#: ../src/utils/pacat.c:411 #, c-format msgid "Connection established.%s \n" msgstr "à°…à°¨à±à°¸à°‚ధానమౠà°à°°à±à°ªà°¡à°¿à°¨à°¦à°¿.%s \n" -#: ../src/utils/pacat.c:281 +#: ../src/utils/pacat.c:414 #, c-format msgid "pa_stream_new() failed: %s\n" msgstr "pa_stream_new() విఫలమైంది: %s\n" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:442 #, c-format msgid "pa_stream_connect_playback() failed: %s\n" msgstr "pa_stream_connect_playback() విఫలమైంది: %s\n" -#: ../src/utils/pacat.c:315 +#: ../src/utils/pacat.c:448 #, c-format msgid "pa_stream_connect_record() failed: %s\n" msgstr "pa_stream_connect_record() విఫలమైంది: %s\n" -#: ../src/utils/pacat.c:329 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:762 ../src/utils/paplay.c:183 +#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 #, c-format msgid "Connection failure: %s\n" msgstr "à°…à°¨à±à°¸à°‚ధానమౠవైఫలà±à°¯à°®à±: %s\n" -#: ../src/utils/pacat.c:349 ../src/utils/paplay.c:75 -#, c-format -msgid "Failed to drain stream: %s\n" -msgstr "à°¸à±à°Ÿà±à°°à±€à°®à± à°Žà°‚à°¡à°—à°Ÿà±à°Ÿà±à°Ÿà°•à± విఫలమైంది: %s\n" - -#: ../src/utils/pacat.c:354 ../src/utils/paplay.c:80 -#, c-format -msgid "Playback stream drained.\n" -msgstr "à°ªà±à°²à±‡à°¬à±à°¯à°¾à°•à± à°¸à±à°Ÿà±à°°à±€à°®à± à°Žà°‚à°¡à°—à°Ÿà±à°Ÿà°¿à°¨à°¦à°¿.\n" - -#: ../src/utils/pacat.c:364 ../src/utils/paplay.c:92 -#, c-format -msgid "Draining connection to server.\n" -msgstr "సేవికకౠఅనà±à°¸à°‚ధానమà±à°¨à± నశింపచేసà±à°¤à±‹à°‚ది.\n" - -#: ../src/utils/pacat.c:390 -#, c-format +#: ../src/utils/pacat.c:495 msgid "Got EOF.\n" msgstr "EOF పొందింది.\n" -#: ../src/utils/pacat.c:396 -#, c-format -msgid "pa_stream_drain(): %s\n" -msgstr "pa_stream_drain(): %s\n" - -#: ../src/utils/pacat.c:406 +#: ../src/utils/pacat.c:500 #, c-format msgid "read() failed: %s\n" msgstr "read() విఫలమైంది: %s\n" -#: ../src/utils/pacat.c:438 +#: ../src/utils/pacat.c:532 #, c-format msgid "write() failed: %s\n" msgstr "write() విఫలమైంది: %s\n" -#: ../src/utils/pacat.c:459 -#, c-format +#: ../src/utils/pacat.c:553 msgid "Got signal, exiting.\n" msgstr "సంకేతమౠపొందినది, నిషà±à°•à±à°°à°®à°¿à°‚à°šà±à°šà±à°¨à±à°¨à°¦à°¿.\n" -#: ../src/utils/pacat.c:473 +#: ../src/utils/pacat.c:567 #, c-format msgid "Failed to get latency: %s\n" msgstr "à°•à±à°°à°¿à°¯à°¾à°¹à±€à°¨à°¤à°¨à± పొందà±à°Ÿà°²à±‹ విఫలమైంది: %s\n" -#: ../src/utils/pacat.c:478 +#: ../src/utils/pacat.c:572 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "సమయం: %0.3f sec; à°•à±à°°à°¿à°¯à°¾à°¹à±€à°¨à°¤: %0.0f usec. \r" -#: ../src/utils/pacat.c:498 +#: ../src/utils/pacat.c:592 #, c-format msgid "pa_stream_update_timing_info() failed: %s\n" msgstr "pa_stream_update_timing_info() విఫలమైంది: %s\n" -#: ../src/utils/pacat.c:511 -#, c-format +#: ../src/utils/pacat.c:605 +#, fuzzy, c-format msgid "" "%s [options]\n" "\n" @@ -1458,8 +1437,10 @@ msgid "" "44100)\n" " --format=SAMPLEFORMAT The sample type, one of s16le, " "s16be, u8, float32le,\n" -" float32be, ulaw, alaw, s32le, s32be " -"(defaults to s16ne)\n" +" float32be, ulaw, alaw, s32le, s32be, " +"s24le, s24be,\n" +" s24-32le, s24-32be (defaults to " +"s16ne)\n" " --channels=CHANNELS The number of channels, 1 for mono, " "2 for stereo\n" " (defaults to 2)\n" @@ -1482,6 +1463,11 @@ msgid "" "bytes.\n" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" +" --property=PROPERTY=VALUE Set the specified property to the " +"specified value.\n" +" --raw Record/play raw PCM data.\n" +" --file-format=FFORMAT Record/play formatted PCM data.\n" +" --list-file-formats List available file formats.\n" msgstr "" "%s [options]\n" "\n" @@ -1532,7 +1518,7 @@ msgstr "" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" -#: ../src/utils/pacat.c:612 +#: ../src/utils/pacat.c:727 #, c-format msgid "" "pacat %s\n" @@ -1543,88 +1529,133 @@ msgstr "" "libpulse తో నిరà±à°µà°°à±à°¤à°¿à°‚చబడింది %s\n" "libpulse లింకైనది %s\n" -#: ../src/utils/pacat.c:669 +#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "చెలà±à°²à°¨à°¿ à°ªà±à°°à°¸à°¾à°°à°®à°¾à°°à±à°— మాపౠ'%s'\n" + +#: ../src/utils/pacat.c:776 +#, fuzzy, c-format +msgid "Invalid stream name '%s'\n" +msgstr "చెలà±à°²à°¨à°¿ à°ªà±à°¨à°ƒà°µà±à°¦à°¾à°¹à°°à°£ పదà±à°¦à°¤à°¿ '%s'." + +#: ../src/utils/pacat.c:813 #, c-format msgid "Invalid channel map '%s'\n" msgstr "చెలà±à°²à°¨à°¿ à°ªà±à°°à°¸à°¾à°°à°®à°¾à°°à±à°— మాపౠ'%s'\n" -#: ../src/utils/pacat.c:698 +#: ../src/utils/pacat.c:842 #, c-format msgid "Invalid latency specification '%s'\n" msgstr "చెలà±à°²à°¨à°¿ à°•à±à°°à°¿à°¯à°¾à°¹à±€à°¨ విశదీకరణమౠ'%s'\n" -#: ../src/utils/pacat.c:705 +#: ../src/utils/pacat.c:849 #, c-format msgid "Invalid process time specification '%s'\n" msgstr "చెలà±à°²à°¨à°¿ కారà±à°¯à°•à±à°°à°®à°®à± సమయ విశదీకరణ '%s'\n" -#: ../src/utils/pacat.c:716 +#: ../src/utils/pacat.c:861 +#, fuzzy, c-format +msgid "Invalid property '%s'\n" +msgstr "చెలà±à°²à°¨à°¿ à°ªà±à°¨à°ƒà°µà±à°¦à°¾à°¹à°°à°£ పదà±à°¦à°¤à°¿ '%s'." + +#: ../src/utils/pacat.c:878 #, c-format +msgid "Unknown file format %s." +msgstr "" + +#: ../src/utils/pacat.c:897 msgid "Invalid sample specification\n" msgstr "చెలà±à°²à°¨à°Ÿà±à°µà°‚à°Ÿà°¿ మాదిరి విశదీకరణ\n" -#: ../src/utils/pacat.c:721 +#: ../src/utils/pacat.c:907 +#, c-format +msgid "open(): %s\n" +msgstr "open(): %s\n" + +#: ../src/utils/pacat.c:912 #, c-format +msgid "dup2(): %s\n" +msgstr "dup2(): %s\n" + +#: ../src/utils/pacat.c:919 +msgid "Too many arguments.\n" +msgstr "చాలా యెకà±à°•à±à°µ ఆరà±à°—à±à°®à±†à°‚à°Ÿà±à°²à±.\n" + +#: ../src/utils/pacat.c:930 +#, fuzzy +msgid "Failed to generate sample specification for file.\n" +msgstr "మాదిరి సమాచారమౠపొందà±à°Ÿà°•à± విఫలమైంది: %s\n" + +#: ../src/utils/pacat.c:950 +#, fuzzy +msgid "Failed to open audio file.\n" +msgstr "శబà±à°¦à°ªà± దసà±à°¤à±à°°à°®à±à°¨à± తెరà±à°µà±à°Ÿà°•à± విఫలమైంది.\n" + +#: ../src/utils/pacat.c:956 +msgid "" +"Warning: specified sample specification will be overwritten with " +"specification from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "మాదిరి సమాచారమౠపొందà±à°Ÿà°•à± విఫలమైంది: %s\n" + +#: ../src/utils/pacat.c:968 +msgid "Warning: Failed to determine channel map from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:979 msgid "Channel map doesn't match sample specification\n" msgstr "à°ªà±à°°à°¸à°¾à°°à°®à°¾à°°à±à°— మాపౠమాదిరి విశదీకరణితో సరిపోలà±à°Ÿà°²à±‡à°¦à±\n" -#: ../src/utils/pacat.c:728 -#, c-format -msgid "Opening a %s stream with sample specification '%s'.\n" +#: ../src/utils/pacat.c:990 +msgid "Warning: failed to write channel map to file.\n" +msgstr "" + +#: ../src/utils/pacat.c:1005 +#, fuzzy, c-format +msgid "" +"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" msgstr "%s à°¸à±à°Ÿà±à°°à±€à°®à±â€Œà°¨à± మాదిరి విశదీకరణి '%s'తో తెరà±à°šà±à°šà±à°¨à±à°¨à°¦à°¿.\n" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "recording" msgstr "రికారà±à°¡à°¿à°‚à°—à±" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "playback" msgstr "à°ªà±à°²à±‡à°¬à°¾à°•à±" -#: ../src/utils/pacat.c:736 -#, c-format -msgid "open(): %s\n" -msgstr "open(): %s\n" - -#: ../src/utils/pacat.c:741 -#, c-format -msgid "dup2(): %s\n" -msgstr "dup2(): %s\n" - -#: ../src/utils/pacat.c:751 -#, c-format -msgid "Too many arguments.\n" -msgstr "చాలా యెకà±à°•à±à°µ ఆరà±à°—à±à°®à±†à°‚à°Ÿà±à°²à±.\n" - -#: ../src/utils/pacat.c:764 ../src/utils/pasuspender.c:280 -#: ../src/utils/pactl.c:1017 ../src/utils/paplay.c:381 +#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 +#: ../src/utils/pactl.c:1104 #, c-format msgid "pa_mainloop_new() failed.\n" msgstr "pa_mainloop_new() విఫలమైంది.\n" -#: ../src/utils/pacat.c:785 -#, c-format +#: ../src/utils/pacat.c:1051 msgid "io_new() failed.\n" msgstr "io_new() విఫలమైంది.\n" -#: ../src/utils/pacat.c:791 ../src/utils/pasuspender.c:293 -#: ../src/utils/pactl.c:1031 ../src/utils/paplay.c:396 +#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 +#: ../src/utils/pactl.c:1116 #, c-format msgid "pa_context_new() failed.\n" msgstr "pa_context_new() విఫలమైంది.\n" -#: ../src/utils/pacat.c:799 +#: ../src/utils/pacat.c:1066 #, fuzzy, c-format msgid "pa_context_connect() failed: %s\n" msgstr "pa_context_connect() విఫలమైంది: %s" -#: ../src/utils/pacat.c:810 -#, c-format +#: ../src/utils/pacat.c:1077 msgid "time_new() failed.\n" msgstr "time_new() విఫలమైంది.\n" -#: ../src/utils/pacat.c:817 ../src/utils/pasuspender.c:301 -#: ../src/utils/pactl.c:1042 ../src/utils/paplay.c:410 +#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 +#: ../src/utils/pactl.c:1127 #, c-format msgid "pa_mainloop_run() failed.\n" msgstr "pa_mainloop_run() విఫలమైంది.\n" @@ -1654,8 +1685,7 @@ msgstr "తిరిగికొనసాగింపౠవైఫలà±à°¯à°®à± msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "హెచà±à°šà°°à°¿à°•: శబà±à°§à°ªà± సేవిక à°¸à±à°¥à°¾à°¨à°¿à°•à°‚ కాదà±, à°…à°°à±à°§à°¾à°‚తరనిలà±à°ªà±à°¦à°² కావడంలేదà±.\n" -#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:768 -#: ../src/utils/paplay.c:191 +#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" msgstr "SIGINT పొందింది, నిషà±à°•à±à°°à°®à°¿à°‚à°šà±à°šà±à°¨à±à°¨à°¦à°¿.\n" @@ -1684,7 +1714,7 @@ msgstr "" "to\n" "\n" -#: ../src/utils/pasuspender.c:251 +#: ../src/utils/pasuspender.c:248 #, c-format msgid "" "pasuspender %s\n" @@ -1695,32 +1725,32 @@ msgstr "" "libpulse తో నిరà±à°µà°°à±à°¤à°¿à°‚చబడింది %s\n" "libpulse తో నిరà±à°µà°°à±à°¤à°¿à°‚చబడింది %s\n" -#: ../src/utils/pactl.c:108 +#: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" msgstr "గణాంకాలనౠపొందà±à°Ÿà°•à± విఫలమైంది: %s\n" -#: ../src/utils/pactl.c:114 +#: ../src/utils/pactl.c:134 #, c-format msgid "Currently in use: %u blocks containing %s bytes total.\n" msgstr "à°ªà±à°°à°¸à±à°¤à±à°¤à°‚ à°µà±à°ªà°¯à±‹à°—ంలోవà±à°‚ది: %u à°¬à±à°²à°¾à°•à±â€Œà°²à± %s బైటà±à°²à°¨à± మొతà±à°¤à°‚à°—à°¾ కలిగి à°µà±à°¨à±à°¨à°¾à°¯à°¿.\n" -#: ../src/utils/pactl.c:117 +#: ../src/utils/pactl.c:137 #, c-format msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n" msgstr "మొతà±à°¤à°‚ లైఫà±â€Œà°Ÿà±ˆà°®à±à°²à±‹ కేటాయించబడింది: %u à°¬à±à°²à°¾à°•à±à°²à± %s బైటà±à°²à°¨à± మొతà±à°¤à°‚à°—à°¾ కలిగివà±à°¨à±à°¨à°¾à°¯à°¿.\n" -#: ../src/utils/pactl.c:120 +#: ../src/utils/pactl.c:140 #, c-format msgid "Sample cache size: %s\n" msgstr "మాదిరి à°•à±à°¯à°¾à°šà°¿ పరిమాణమà±: %s\n" -#: ../src/utils/pactl.c:129 +#: ../src/utils/pactl.c:149 #, c-format msgid "Failed to get server information: %s\n" msgstr "సేవిక సమాచారమà±à°¨à± పొందà±à°Ÿà°•à± విఫలమైంది: %s\n" -#: ../src/utils/pactl.c:137 +#: ../src/utils/pactl.c:157 #, c-format msgid "" "User name: %s\n" @@ -1743,12 +1773,12 @@ msgstr "" "à°…à°ªà±à°°à°®à±‡à°¯ మూలమà±: %s\n" "à°•à±à°•à±€: %08x\n" -#: ../src/utils/pactl.c:178 +#: ../src/utils/pactl.c:198 #, c-format msgid "Failed to get sink information: %s\n" msgstr "సింకౠసమాచారమà±à°¨à± పొందà±à°Ÿà°•à± విఫలమైంది: %s\n" -#: ../src/utils/pactl.c:194 +#: ../src/utils/pactl.c:214 #, c-format msgid "" "Sink #%u\n" @@ -1787,12 +1817,22 @@ msgstr "" "\tలకà±à°·à°£à°¾à°²à±:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:258 +#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 +#, fuzzy, c-format +msgid "\tPorts:\n" +msgstr "\tà°ªà±à°°à±‹à°«à±ˆà°²à±à°¸à±:\n" + +#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 +#, fuzzy, c-format +msgid "\tActive Port: %s\n" +msgstr "\tà°•à±à°°à°¿à°¯à°¾à°¶à±€à°² à°ªà±à°°à±Šà°«à±ˆà°²à±: %s\n" + +#: ../src/utils/pactl.c:290 #, c-format msgid "Failed to get source information: %s\n" msgstr "మూలమౠసమాచారమౠపొందà±à°Ÿà°•à± విఫలమైంది: %s\n" -#: ../src/utils/pactl.c:274 +#: ../src/utils/pactl.c:306 #, c-format msgid "" "Source #%u\n" @@ -1831,20 +1871,20 @@ msgstr "" "\tలకà±à°·à°£à°¾à°²à±:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:306 ../src/utils/pactl.c:350 ../src/utils/pactl.c:385 -#: ../src/utils/pactl.c:422 ../src/utils/pactl.c:481 ../src/utils/pactl.c:482 -#: ../src/utils/pactl.c:492 ../src/utils/pactl.c:536 ../src/utils/pactl.c:537 -#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:586 ../src/utils/pactl.c:587 -#: ../src/utils/pactl.c:594 +#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429 +#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526 +#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581 +#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631 +#: ../src/utils/pactl.c:638 msgid "n/a" msgstr "వరà±à°¤à°¿à°‚à°šà°¦à±" -#: ../src/utils/pactl.c:324 +#: ../src/utils/pactl.c:368 #, c-format msgid "Failed to get module information: %s\n" msgstr "మాడà±à°¯à±‚లౠసమాచారమౠపొందà±à°Ÿà°•à± విఫలమైంది: %s\n" -#: ../src/utils/pactl.c:342 +#: ../src/utils/pactl.c:386 #, c-format msgid "" "Module #%u\n" @@ -1861,12 +1901,12 @@ msgstr "" "\tలకà±à°·à°£à°¾à°²à±:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:361 +#: ../src/utils/pactl.c:405 #, c-format msgid "Failed to get client information: %s\n" msgstr "à°•à°•à±à°·à°¿à°¦à°¾à°°à°¿ సమాచారమౠపొందà±à°Ÿà°²à±‹ విఫలమైంది: %s\n" -#: ../src/utils/pactl.c:379 +#: ../src/utils/pactl.c:423 #, c-format msgid "" "Client #%u\n" @@ -1881,12 +1921,12 @@ msgstr "" "\tలకà±à°·à°£à°¾à°²à±:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:396 +#: ../src/utils/pactl.c:440 #, c-format msgid "Failed to get card information: %s\n" msgstr "కారà±à°¡à± సమాచారమౠపొందà±à°Ÿà°•à± విఫలమైంది: %s\n" -#: ../src/utils/pactl.c:414 +#: ../src/utils/pactl.c:458 #, c-format msgid "" "Card #%u\n" @@ -1903,22 +1943,22 @@ msgstr "" "\tలకà±à°·à°£à°¾à°²à±:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:428 +#: ../src/utils/pactl.c:472 #, c-format msgid "\tProfiles:\n" msgstr "\tà°ªà±à°°à±‹à°«à±ˆà°²à±à°¸à±:\n" -#: ../src/utils/pactl.c:434 +#: ../src/utils/pactl.c:478 #, c-format msgid "\tActive Profile: %s\n" msgstr "\tà°•à±à°°à°¿à°¯à°¾à°¶à±€à°² à°ªà±à°°à±Šà°«à±ˆà°²à±: %s\n" -#: ../src/utils/pactl.c:445 +#: ../src/utils/pactl.c:489 #, c-format msgid "Failed to get sink input information: %s\n" msgstr "సింకౠఇనà±à°ªà±à°Ÿà± సమాచారమౠపొందà±à°Ÿà°•à± విఫలమైంది: %s\n" -#: ../src/utils/pactl.c:464 +#: ../src/utils/pactl.c:508 #, c-format msgid "" "Sink Input #%u\n" @@ -1955,12 +1995,12 @@ msgstr "" "\tలకà±à°·à°£à°¾à°²à±:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:503 +#: ../src/utils/pactl.c:547 #, c-format msgid "Failed to get source output information: %s\n" msgstr "మూలపౠఅవà±à°Ÿà±à°ªà±à°Ÿà± సమాచారమౠపొందà±à°Ÿà°•à± విఫలమైంది: %s\n" -#: ../src/utils/pactl.c:523 +#: ../src/utils/pactl.c:567 #, c-format msgid "" "Source Output #%u\n" @@ -1989,12 +2029,12 @@ msgstr "" "\tలకà±à°·à°£à°¾à°²à±:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:554 +#: ../src/utils/pactl.c:598 #, c-format msgid "Failed to get sample information: %s\n" msgstr "మాదిరి సమాచారమౠపొందà±à°Ÿà°•à± విఫలమైంది: %s\n" -#: ../src/utils/pactl.c:572 +#: ../src/utils/pactl.c:616 #, c-format msgid "" "Sample #%u\n" @@ -2025,23 +2065,22 @@ msgstr "" "\tలకà±à°·à°£à°¾à°²à±:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:602 ../src/utils/pactl.c:612 +#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 #, c-format msgid "Failure: %s\n" msgstr "విఫైలà±à°¯à°®à±: %s\n" -#: ../src/utils/pactl.c:636 +#: ../src/utils/pactl.c:680 #, c-format msgid "Failed to upload sample: %s\n" msgstr "మాదిరి à°…à°ªà±â€Œà°²à±‹à°¡à± చేయà±à°Ÿà°•à± విఫలమైంది: %s\n" -#: ../src/utils/pactl.c:653 -#, c-format +#: ../src/utils/pactl.c:697 msgid "Premature end of file\n" msgstr "దసà±à°¤à±à°°à°®à± యొకà±à°• అపరిపకà±à°µ à°®à±à°—à°¿à°‚à°ªà±\n" -#: ../src/utils/pactl.c:774 -#, c-format +#: ../src/utils/pactl.c:826 +#, fuzzy, c-format msgid "" "%s [options] stat\n" "%s [options] list\n" @@ -2056,6 +2095,8 @@ msgid "" "%s [options] suspend-sink [SINK] 1|0\n" "%s [options] suspend-source [SOURCE] 1|0\n" "%s [options] set-card-profile [CARD] [PROFILE] \n" +"%s [options] set-sink-port [SINK] [PORT] \n" +"%s [options] set-source-port [SOURCE] [PORT] \n" "\n" " -h, --help Show this help\n" " --version Show version\n" @@ -2087,7 +2128,7 @@ msgstr "" " -n, --client-name=NAME How to call this client on the " "server\n" -#: ../src/utils/pactl.c:826 +#: ../src/utils/pactl.c:880 #, c-format msgid "" "pactl %s\n" @@ -2098,73 +2139,76 @@ msgstr "" "libpulse తో నిరà±à°µà°°à±à°¤à°¿à°‚చబడింది%s\n" "libpulse తో లింకà±à°šà±‡à°¯à°¬à°¡à°¿à°‚ది %s\n" -#: ../src/utils/pactl.c:865 -#, c-format +#: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "లోడà±à°µà±à°µà±à°Ÿà°•à± దయచేసి మాదిరి దసà±à°¤à±à°°à°®à±à°¨à± తెలà±à°ªà±à°®à±\n" -#: ../src/utils/pactl.c:887 -#, c-format +#: ../src/utils/pactl.c:939 msgid "Failed to open sound file.\n" msgstr "శబà±à°¦à°ªà± దసà±à°¤à±à°°à°®à±à°¨à± తెరà±à°µà±à°Ÿà°•à± విఫలమైంది.\n" -#: ../src/utils/pactl.c:899 -#, c-format +#: ../src/utils/pactl.c:951 +#, fuzzy +msgid "Warning: Failed to determine sample specification from file.\n" +msgstr "%s à°¸à±à°Ÿà±à°°à±€à°®à±â€Œà°¨à± మాదిరి విశదీకరణి '%s'తో తెరà±à°šà±à°šà±à°¨à±à°¨à°¦à°¿.\n" + +#: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" msgstr "à°ªà±à°²à±‡ చేయà±à°Ÿà°•à± మీరౠమాదిరి నామమà±à°¨à± తెలà±à°ªà°µà°²à°¸à°¿ à°µà±à°‚ది\n" -#: ../src/utils/pactl.c:911 -#, c-format +#: ../src/utils/pactl.c:973 msgid "You have to specify a sample name to remove\n" msgstr "తొలగించà±à°Ÿà°•à± మీరౠమాదిరి నామమà±à°¨à± తెలà±à°ªà°µà°²à°¸à°¿ à°µà±à°‚ది\n" -#: ../src/utils/pactl.c:919 -#, c-format +#: ../src/utils/pactl.c:982 msgid "You have to specify a sink input index and a sink\n" msgstr "మీరౠసింకౠఇనà±à°ªà±à°Ÿà± విషయసూచిక మరియౠసింకౠతెలà±à°ªà°µà°²à°¸à°¿ à°µà±à°‚ది\n" -#: ../src/utils/pactl.c:928 -#, c-format +#: ../src/utils/pactl.c:992 msgid "You have to specify a source output index and a source\n" msgstr "మీరౠమూలమౠఅవà±à°Ÿà±à°ªà±à°Ÿà± విషయసూచిక మరియౠమూలమౠతెలà±à°ªà°µà°²à°¸à°¿ à°µà±à°‚ది\n" -#: ../src/utils/pactl.c:942 -#, c-format +#: ../src/utils/pactl.c:1007 msgid "You have to specify a module name and arguments.\n" msgstr "మీరౠమాడà±à°¯à±‚లౠనామమౠమరియౠఆరà±à°—à±à°®à±†à°‚à°Ÿà±à°²à± తెలà±à°ªà°µà°²à°¸à°¿ à°µà±à°‚ది.\n" -#: ../src/utils/pactl.c:962 -#, c-format +#: ../src/utils/pactl.c:1027 msgid "You have to specify a module index\n" msgstr "మీరౠమాడà±à°¯à±‚లౠవిషయసూచిక తెలà±à°ªà°µà°²à°¸à°¿ à°µà±à°‚ది\n" -#: ../src/utils/pactl.c:972 -#, c-format +#: ../src/utils/pactl.c:1037 msgid "" "You may not specify more than one sink. You have to specify a boolean " "value.\n" msgstr "" "మీరౠవొక సింకౠకనà±à°¨à°¾ యెకà±à°•à±à°µ తెలà±à°ªà°µà°²à°¸à°¿ à°µà±à°‚డకపోవచà±à°šà±. మీరౠబూలియనౠవిలà±à°µà°¨à± తెలà±à°ªà°µà°²à°¸à°¿ à°µà±à°‚ది.\n" -#: ../src/utils/pactl.c:985 -#, c-format +#: ../src/utils/pactl.c:1050 msgid "" "You may not specify more than one source. You have to specify a boolean " "value.\n" msgstr "" "మీరౠవొక మూలమౠకనà±à°¨à°¾ యెకà±à°•à±à°µ తెలà±à°ªà°µà°²à°¸à°¿ à°µà±à°‚డకపోవచà±à°šà±. మీరౠబూలియనౠవిలà±à°µà°¨à± తెలà±à°ªà°µà°²à°¸à°¿ à°µà±à°‚ది.\n" -#: ../src/utils/pactl.c:997 -#, c-format +#: ../src/utils/pactl.c:1062 msgid "You have to specify a card name/index and a profile name\n" msgstr "మీరౠకారà±à°¡à± నామమà±/విషయసూచిక మరియౠపà±à°°à±Šà°«à±ˆà°²à± నామమౠతెలà±à°ªà°µà°²à°¸à°¿ à°µà±à°‚ది\n" -#: ../src/utils/pactl.c:1012 -#, c-format +#: ../src/utils/pactl.c:1073 +#, fuzzy +msgid "You have to specify a sink name/index and a port name\n" +msgstr "మీరౠకారà±à°¡à± నామమà±/విషయసూచిక మరియౠపà±à°°à±Šà°«à±ˆà°²à± నామమౠతెలà±à°ªà°µà°²à°¸à°¿ à°µà±à°‚ది\n" + +#: ../src/utils/pactl.c:1084 +#, fuzzy +msgid "You have to specify a source name/index and a port name\n" +msgstr "మీరౠకారà±à°¡à± నామమà±/విషయసూచిక మరియౠపà±à°°à±Šà°«à±ˆà°²à± నామమౠతెలà±à°ªà°µà°²à°¸à°¿ à°µà±à°‚ది\n" + +#: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "à°Žà°Ÿà±à°µà°‚à°Ÿà°¿ విలà±à°µà±ˆà°¨ ఆదేశమౠతెలà±à°ªà°²à±‡à°¦à±.\n" -#: ../src/utils/pactl.c:1037 ../src/utils/paplay.c:404 +#: ../src/utils/pactl.c:1122 #, c-format msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect() విఫలమైంది: %s" @@ -2248,129 +2292,48 @@ msgstr "à°•à±à°•à±€ డాటా లోడౠచేయà±à°Ÿà°•à± విఫఠmsgid "Not yet implemented.\n" msgstr "ఇంకా యింపà±à°²à°¿à°®à±†à°‚టౠచేయలేదà±\n" -#: ../src/utils/pacmd.c:64 +#: ../src/utils/pacmd.c:61 +msgid "No PulseAudio daemon running, or not running as session daemon." +msgstr "" + +#: ../src/utils/pacmd.c:66 #, c-format msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s" msgstr "socket(PF_UNIX, SOCK_STREAM, 0): %s" -#: ../src/utils/pacmd.c:81 +#: ../src/utils/pacmd.c:83 #, c-format msgid "connect(): %s" msgstr "connect(): %s" -#: ../src/utils/pacmd.c:89 +#: ../src/utils/pacmd.c:91 msgid "Failed to kill PulseAudio daemon." msgstr "PulseAudio డెమోనౠనాశనం చేయà±à°Ÿà°²à±‹ విఫలమైంది." -#: ../src/utils/pacmd.c:97 +#: ../src/utils/pacmd.c:99 msgid "Daemon not responding." msgstr "డెమోనౠసà±à°ªà°‚దించà±à°Ÿà°²à±‡à°¦à±." -#: ../src/utils/pacmd.c:144 +#: ../src/utils/pacmd.c:146 #, c-format msgid "select(): %s" msgstr "select(): %s" -#: ../src/utils/pacmd.c:154 ../src/utils/pacmd.c:171 +#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173 #, c-format msgid "read(): %s" msgstr "read(): %s" -#: ../src/utils/pacmd.c:187 ../src/utils/pacmd.c:201 +#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203 #, c-format msgid "write(): %s" msgstr "write(): %s" -#: ../src/utils/paplay.c:139 -#, c-format -msgid "Stream successfully created\n" -msgstr "à°¸à±à°Ÿà±à°°à±€à°®à± సమరà±à°¦à°µà°‚తంగా సృషà±à°Ÿà°¿à°‚చబడింది\n" - -#: ../src/utils/paplay.c:144 -#, c-format -msgid "Stream errror: %s\n" -msgstr "à°¸à±à°Ÿà±à°°à±€à°®à± దోషమà±: %s\n" - -#: ../src/utils/paplay.c:165 -#, c-format -msgid "Connection established.\n" -msgstr "à°…à°¨à±à°¸à°‚ధానమౠà°à°°à±à°ªà°¡à°²à±‡à°¦à±.\n" - -#: ../src/utils/paplay.c:198 -#, c-format -msgid "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" -msgstr "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" - -#: ../src/utils/paplay.c:255 -#, c-format -msgid "" -"paplay %s\n" -"Compiled with libpulse %s\n" -"Linked with libpulse %s\n" -msgstr "" -"paplay %s\n" -"libpulse తో నిరà±à°µà°°à±à°¤à°¿à°‚చబడింది%s\n" -"libpulse తో లింకైనది %s\n" - -#: ../src/utils/paplay.c:292 -#, c-format -msgid "Invalid channel map\n" -msgstr "చెలà±à°²à°¨à°¿ à°ªà±à°°à°¸à°¾à°° మారà±à°—à°®à±\n" - -#: ../src/utils/paplay.c:314 -#, c-format -msgid "Failed to open file '%s'\n" -msgstr "దసà±à°¤à±à°°à°®à± '%s' తెరà±à°šà±à°Ÿà°•à± విఫలమైంది\n" - -#: ../src/utils/paplay.c:350 -#, c-format -msgid "Channel map doesn't match file.\n" -msgstr "à°ªà±à°°à°¸à°¾à°°à°®à°¾à°°à±à°—à°‚ మాపౠఅనà±à°¨à°¦à°¿ దసà±à°¤à±à°°à°®à±à°¤à±‹ సరిపోలà±à°šà°¡à°‚లేదà±.\n" - -#: ../src/utils/paplay.c:376 -#, c-format -msgid "Using sample spec '%s'\n" -msgstr "మాదిరి విశదీకరణనౠవà±à°ªà°¯à±‹à°—à°¿à°¸à±à°¤à±‹à°‚ది '%s'\n" - #: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 msgid "Cannot access autospawn lock." msgstr "ఆటోసà±à°ªà°¾à°¨à± తాళంనౠయాకà±à°¸à°¿à°¸à± చేయలేదà±." -#: ../src/modules/alsa/alsa-sink.c:393 ../src/modules/alsa/alsa-sink.c:541 +#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2386,7 +2349,7 @@ msgstr "" "మనమౠPOLLOUT అమరà±à°ªà± à°¦à±à°µà°¾à°°à°¾ జాగరూక పరచబడినామౠ-- à°à°®à±ˆà°¨à°ªà±à°ªà°Ÿà°¿à°•à°¿ snd_pcm_avail() à°…à°¨à±à°¨à°¦à°¿ 0 నౠ" "యిసà±à°¤à±à°‚ది లేదా వేరొక విలà±à°µ < min_avail యిసà±à°¤à±à°‚ది." -#: ../src/modules/alsa/alsa-source.c:377 ../src/modules/alsa/alsa-source.c:516 +#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2402,34 +2365,130 @@ msgstr "" "మనమౠPOLLOUT అమరà±à°ªà± à°¦à±à°µà°¾à°°à°¾ జాగరూక పరచబడినామౠ-- à°à°®à±ˆà°¨à°ªà±à°ªà°Ÿà°¿à°•à°¿ snd_pcm_avail() à°…à°¨à±à°¨à°¦à°¿ 0 నౠ" "యిసà±à°¤à±à°‚ది లేదా వేరొక విలà±à°µ < min_avail యిసà±à°¤à±à°‚ది." -#: ../src/modules/alsa/module-alsa-card.c:114 -#, c-format -msgid "Output %s + Input %s" -msgstr "à°…à°µà±à°Ÿà±à°ªà±à°Ÿà± %s + ఇనà±à°ªà±à°Ÿà± %s" - -#: ../src/modules/alsa/module-alsa-card.c:117 -#, c-format -msgid "Output %s" -msgstr "à°…à°µà±à°Ÿà±à°ªà±à°Ÿà± %s" - -#: ../src/modules/alsa/module-alsa-card.c:121 -#, c-format -msgid "Input %s" -msgstr "ఇనà±à°ªà±à°Ÿà± %s" - -#: ../src/modules/alsa/module-alsa-card.c:170 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2006 +#: ../src/modules/alsa/module-alsa-card.c:152 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 msgid "Off" msgstr "ఆఫà±" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1976 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 msgid "High Fidelity Playback (A2DP)" msgstr "హై ఫెడిలిటి à°ªà±à°²à±‡à°¬à±à°¯à°¾à°•à± (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1991 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 msgid "Telephony Duplex (HSP/HFP)" msgstr "టెలిఫోనీ డూపà±à°²à±†à°•à±à°¸à± (HSP/HFP)" -#: ../src/modules/reserve-wrap.c:139 +#: ../src/modules/reserve-wrap.c:151 msgid "PulseAudio Sound Server" msgstr "పలà±à°¸à± ఆడియో సౌండౠసేవిక" + +#~ msgid "Analog Mono" +#~ msgstr "ఎనలాగౠమోనో" + +#~ msgid "Analog Stereo" +#~ msgstr "ఎనలాగౠసà±à°Ÿà±€à°°à°¿à°¯à±‹" + +#~ msgid "Digital Stereo (IEC958)" +#~ msgstr "డిజటలౠసà±à°Ÿà±€à°°à°¿à°¯à±‹ (IEC958)" + +#~ msgid "Digital Stereo (HDMI)" +#~ msgstr "డిజిటలౠసà±à°Ÿà±€à°°à°¿à°¯à±‹ (HDMI)" + +#~ msgid "Analog Surround 4.0" +#~ msgstr "ఎనలాగౠసరౌండౠ4.0" + +#~ msgid "Digital Surround 4.0 (IEC958/AC3)" +#~ msgstr "డిజిటలౠసరౌండౠ4.0 (IEC958/AC3)" + +#~ msgid "Analog Surround 4.1" +#~ msgstr "ఎనలాగౠసరౌండౠ4.1" + +#~ msgid "Analog Surround 5.0" +#~ msgstr "ఎనలాగౠసరౌండౠ5.0" + +#~ msgid "Analog Surround 5.1" +#~ msgstr "ఎనలాగౠసరౌండౠ5.1" + +#~ msgid "Digital Surround 5.1 (IEC958/AC3)" +#~ msgstr "డిజిటలౠసరౌండౠ5.1 (IEC958/AC3)" + +#~ msgid "Analog Surround 7.1" +#~ msgstr "ఎనలాగౠసరౌండౠ7.1" + +#~ msgid "Output %s + Input %s" +#~ msgstr "à°…à°µà±à°Ÿà±à°ªà±à°Ÿà± %s + ఇనà±à°ªà±à°Ÿà± %s" + +#~ msgid "Output %s" +#~ msgstr "à°…à°µà±à°Ÿà±à°ªà±à°Ÿà± %s" + +#~ msgid "Input %s" +#~ msgstr "ఇనà±à°ªà±à°Ÿà± %s" + +#~ msgid "Stream successfully created\n" +#~ msgstr "à°¸à±à°Ÿà±à°°à±€à°®à± సమరà±à°¦à°µà°‚తంగా సృషà±à°Ÿà°¿à°‚చబడింది\n" + +#~ msgid "Stream errror: %s\n" +#~ msgstr "à°¸à±à°Ÿà±à°°à±€à°®à± దోషమà±: %s\n" + +#~ msgid "Connection established.\n" +#~ msgstr "à°…à°¨à±à°¸à°‚ధానమౠà°à°°à±à°ªà°¡à°²à±‡à°¦à±.\n" + +#~ msgid "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Show this help\n" +#~ " --version Show version\n" +#~ "\n" +#~ " -v, --verbose Enable verbose operation\n" +#~ "\n" +#~ " -s, --server=SERVER The name of the server to connect " +#~ "to\n" +#~ " -d, --device=DEVICE The name of the sink to connect " +#~ "to\n" +#~ " -n, --client-name=NAME How to call this client on the " +#~ "server\n" +#~ " --stream-name=NAME How to call this stream on the " +#~ "server\n" +#~ " --volume=VOLUME Specify the initial (linear) " +#~ "volume in range 0...65536\n" +#~ " --channel-map=CHANNELMAP Set the channel map to the use\n" +#~ msgstr "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Show this help\n" +#~ " --version Show version\n" +#~ "\n" +#~ " -v, --verbose Enable verbose operation\n" +#~ "\n" +#~ " -s, --server=SERVER The name of the server to connect " +#~ "to\n" +#~ " -d, --device=DEVICE The name of the sink to connect " +#~ "to\n" +#~ " -n, --client-name=NAME How to call this client on the " +#~ "server\n" +#~ " --stream-name=NAME How to call this stream on the " +#~ "server\n" +#~ " --volume=VOLUME Specify the initial (linear) " +#~ "volume in range 0...65536\n" +#~ " --channel-map=CHANNELMAP Set the channel map to the use\n" + +#~ msgid "" +#~ "paplay %s\n" +#~ "Compiled with libpulse %s\n" +#~ "Linked with libpulse %s\n" +#~ msgstr "" +#~ "paplay %s\n" +#~ "libpulse తో నిరà±à°µà°°à±à°¤à°¿à°‚చబడింది%s\n" +#~ "libpulse తో లింకైనది %s\n" + +#~ msgid "Invalid channel map\n" +#~ msgstr "చెలà±à°²à°¨à°¿ à°ªà±à°°à°¸à°¾à°° మారà±à°—à°®à±\n" + +#~ msgid "Failed to open file '%s'\n" +#~ msgstr "దసà±à°¤à±à°°à°®à± '%s' తెరà±à°šà±à°Ÿà°•à± విఫలమైంది\n" + +#~ msgid "Channel map doesn't match file.\n" +#~ msgstr "à°ªà±à°°à°¸à°¾à°°à°®à°¾à°°à±à°—à°‚ మాపౠఅనà±à°¨à°¦à°¿ దసà±à°¤à±à°°à°®à±à°¤à±‹ సరిపోలà±à°šà°¡à°‚లేదà±.\n" + +#~ msgid "Using sample spec '%s'\n" +#~ msgstr "మాదిరి విశదీకరణనౠవà±à°ªà°¯à±‹à°—à°¿à°¸à±à°¤à±‹à°‚ది '%s'\n" @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio.master-tx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-21 23:02+0200\n" +"POT-Creation-Date: 2009-06-17 23:42+0200\n" "PO-Revision-Date: 2009-04-18 11:13+0300\n" "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n" "Language-Team: Ukrainian <translation@linux.org.ua>\n" @@ -17,51 +17,7 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: ../src/modules/alsa/alsa-util.c:532 -msgid "Analog Mono" -msgstr "Ðналоговий моно" - -#: ../src/modules/alsa/alsa-util.c:540 -msgid "Analog Stereo" -msgstr "Ðналоговий Ñтерео" - -#: ../src/modules/alsa/alsa-util.c:548 -msgid "Digital Stereo (IEC958)" -msgstr "Цифровий Ñтерео (IEC958)" - -#: ../src/modules/alsa/alsa-util.c:556 -msgid "Digital Stereo (HDMI)" -msgstr "Цифровий Ñтерео (HDMI)" - -#: ../src/modules/alsa/alsa-util.c:565 -msgid "Analog Surround 4.0" -msgstr "Ðналоговий об’ємний 4.0" - -#: ../src/modules/alsa/alsa-util.c:574 -msgid "Digital Surround 4.0 (IEC958/AC3)" -msgstr "Цифровий об’ємний 4.0 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:584 -msgid "Analog Surround 4.1" -msgstr "Ðналоговий об’ємний 4.1" - -#: ../src/modules/alsa/alsa-util.c:594 -msgid "Analog Surround 5.0" -msgstr "Ðналоговий об’ємний 5.0" - -#: ../src/modules/alsa/alsa-util.c:604 -msgid "Analog Surround 5.1" -msgstr "Ðналоговий об’ємний 5.1" - -#: ../src/modules/alsa/alsa-util.c:614 -msgid "Digital Surround 5.1 (IEC958/AC3)" -msgstr "Цифровий об’ємний 5.1 (IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:625 -msgid "Analog Surround 7.1" -msgstr "Ðналоговий об’ємний 7.1" - -#: ../src/modules/alsa/alsa-util.c:1646 +#: ../src/modules/alsa/alsa-util.c:1015 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -74,7 +30,7 @@ msgstr "" "Ймовірно, ви натрапили на ваду у драйвері ALSA «%s». Будь лаÑка, повідомте " "про цю ваду розробникам ALSA." -#: ../src/modules/alsa/alsa-util.c:1687 +#: ../src/modules/alsa/alsa-util.c:1056 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -87,7 +43,7 @@ msgstr "" "Ймовірно, ви натрапили на ваду у драйвері ALSA «%s». Будь лаÑка, повідомте " "про цю ваду розробникам ALSA." -#: ../src/modules/alsa/alsa-util.c:1734 +#: ../src/modules/alsa/alsa-util.c:1103 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -100,11 +56,24 @@ msgstr "" "Ймовірно, ви натрапили на ваду у драйвері ALSA «%s». Будь лаÑка, повідомте " "про цю ваду розробникам ALSA." -#: ../src/pulsecore/sink.c:2141 +#: ../src/modules/module-ladspa-sink.c:49 +msgid "Virtual LADSPA sink" +msgstr "" + +#: ../src/modules/module-ladspa-sink.c:53 +msgid "" +"sink_name=<name for the sink> sink_properties=<properties for the sink> " +"master=<name of sink to filter> format=<sample format> rate=<sample rate> " +"channels=<number of channels> channel_map=<channel map> plugin=<ladspa " +"plugin name> label=<ladspa plugin label> control=<comma seperated list of " +"input control values>" +msgstr "" + +#: ../src/pulsecore/sink.c:2394 msgid "Internal Audio" msgstr "Вбудоване аудіо" -#: ../src/pulsecore/sink.c:2147 +#: ../src/pulsecore/sink.c:2400 msgid "Modem" msgstr "Модем" @@ -177,107 +146,107 @@ msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ уповноваженнÑ: %s" msgid "PolicyKit responded with '%s'" msgstr "PolicyKit надіÑлала відповідь: «%s»" -#: ../src/daemon/main.c:138 +#: ../src/daemon/main.c:142 #, c-format msgid "Got signal %s." msgstr "Отримано Ñигнал %s." -#: ../src/daemon/main.c:165 +#: ../src/daemon/main.c:169 msgid "Exiting." msgstr "Ð—Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸." -#: ../src/daemon/main.c:183 +#: ../src/daemon/main.c:187 #, c-format msgid "Failed to find user '%s'." msgstr "Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ кориÑтувача «%s»." -#: ../src/daemon/main.c:188 +#: ../src/daemon/main.c:192 #, c-format msgid "Failed to find group '%s'." msgstr "Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ групу «%s»." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:196 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "Знайдено кориÑтувача «%s» (UID %lu) Ñ– групу «%s» (GID %lu)." -#: ../src/daemon/main.c:197 +#: ../src/daemon/main.c:201 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "GID кориÑтувача «%s» Ñ– групи «%s» не збігаютьÑÑ." -#: ../src/daemon/main.c:202 +#: ../src/daemon/main.c:206 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "Домашнім каталогом кориÑтувача «%s» не Ñ” «%s», дані проігноровано." -#: ../src/daemon/main.c:205 ../src/daemon/main.c:210 +#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 #, c-format msgid "Failed to create '%s': %s" msgstr "Ðе вдалоÑÑ Ñтворити «%s»: %s" -#: ../src/daemon/main.c:217 +#: ../src/daemon/main.c:221 #, c-format msgid "Failed to change group list: %s" msgstr "Ðе вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ ÑпиÑок груп: %s" -#: ../src/daemon/main.c:233 +#: ../src/daemon/main.c:237 #, c-format msgid "Failed to change GID: %s" msgstr "Ðе вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ GID: %s" -#: ../src/daemon/main.c:249 +#: ../src/daemon/main.c:253 #, c-format msgid "Failed to change UID: %s" msgstr "Ðе вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ UID: %s" -#: ../src/daemon/main.c:263 +#: ../src/daemon/main.c:267 msgid "Successfully dropped root privileges." msgstr "Програма уÑпішно позбулаÑÑ Ð¿Ñ€Ð°Ð² доÑтупу кориÑтувача root." -#: ../src/daemon/main.c:271 +#: ../src/daemon/main.c:275 msgid "System wide mode unsupported on this platform." msgstr "ЗагальноÑиÑтемний режим не підтримуєтьÑÑ Ð½Ð° цій платформі." -#: ../src/daemon/main.c:289 +#: ../src/daemon/main.c:293 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "Спроба виконати setrlimit(%s, (%u, %u)) була невдалою: %s" -#: ../src/daemon/main.c:477 +#: ../src/daemon/main.c:481 msgid "Failed to parse command line." msgstr "Ðе вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ Ñ€Ñдок команди." -#: ../src/daemon/main.c:501 +#: ../src/daemon/main.c:505 #, c-format msgid "We're in the group '%s', allowing high-priority scheduling." msgstr "" "Ми перебуваємо у групі «%s», що надає змогу Ð¿Ð»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð· виÑоким пріоритетом." -#: ../src/daemon/main.c:508 +#: ../src/daemon/main.c:512 #, c-format msgid "We're in the group '%s', allowing real-time scheduling." msgstr "" "Ми перебуваємо у групі «%s», що надає змогу Ð¿Ð»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ режимі реального " "чаÑу." -#: ../src/daemon/main.c:516 +#: ../src/daemon/main.c:520 msgid "PolicyKit grants us acquire-high-priority privilege." msgstr "PolicyKit надала нам права доÑтупу acquire-high-priority." -#: ../src/daemon/main.c:519 +#: ../src/daemon/main.c:523 msgid "PolicyKit refuses acquire-high-priority privilege." msgstr "PolicyKit відмовила у наданні прав доÑтупу acquire-high-priority." -#: ../src/daemon/main.c:524 +#: ../src/daemon/main.c:528 msgid "PolicyKit grants us acquire-real-time privilege." msgstr "PolicyKit надала нам права доÑтупу acquire-real-time." -#: ../src/daemon/main.c:527 +#: ../src/daemon/main.c:531 msgid "PolicyKit refuses acquire-real-time privilege." msgstr "PolicyKit відмовила у наданні прав доÑтупу acquire-real-time." -#: ../src/daemon/main.c:556 +#: ../src/daemon/main.c:560 #, c-format msgid "" "Called SUID root and real-time and/or high-priority scheduling was requested " @@ -300,48 +269,48 @@ msgstr "" "Ñтаньте учаÑником групи «%s» або збільшіть діапазон реÑурÑу RLIMIT_NICE/" "RLIMIT_RTPRIO Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ кориÑтувача." -#: ../src/daemon/main.c:581 +#: ../src/daemon/main.c:585 msgid "" "High-priority scheduling enabled in configuration but not allowed by policy." msgstr "" "ÐŸÐ»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð· виÑоким пріоритетом увімкнено у налаштуваннÑÑ…, але не дозволене " "правилами безпеки." -#: ../src/daemon/main.c:610 +#: ../src/daemon/main.c:614 msgid "Successfully increased RLIMIT_RTPRIO" msgstr "УÑпішно підвищено RLIMIT_RTPRIO" -#: ../src/daemon/main.c:613 +#: ../src/daemon/main.c:617 #, c-format msgid "RLIMIT_RTPRIO failed: %s" msgstr "Помилка під Ñ‡Ð°Ñ Ñпроби підвищити RLIMIT_RTPRIO: %s" -#: ../src/daemon/main.c:620 +#: ../src/daemon/main.c:624 msgid "Giving up CAP_NICE" msgstr "ПозбуваємоÑÑ CAP_NICE" -#: ../src/daemon/main.c:627 +#: ../src/daemon/main.c:631 msgid "" "Real-time scheduling enabled in configuration but not allowed by policy." msgstr "" "ÐŸÐ»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ режимі реального чаÑу увімкнено у налаштуваннÑÑ…, але не " "дозволене правилами безпеки." -#: ../src/daemon/main.c:688 +#: ../src/daemon/main.c:692 msgid "Daemon not running" msgstr "Фонову Ñлужбу не запущено" -#: ../src/daemon/main.c:690 +#: ../src/daemon/main.c:694 #, c-format msgid "Daemon running as PID %u" msgstr "Фонову Ñлужбу запущено Ñк PID %u" -#: ../src/daemon/main.c:700 +#: ../src/daemon/main.c:704 #, c-format msgid "Failed to kill daemon: %s" msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ñ‚Ð¸ роботу фонової Ñлужби: %s" -#: ../src/daemon/main.c:718 +#: ../src/daemon/main.c:722 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -349,164 +318,174 @@ msgstr "" "Цю програму не призначено Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку від імені кориÑтувача root (Ñкщо не " "вказано параметра --system)." -#: ../src/daemon/main.c:720 +#: ../src/daemon/main.c:724 msgid "Root privileges required." msgstr "Потрібні права доÑтупу кориÑтувача root." -#: ../src/daemon/main.c:725 +#: ../src/daemon/main.c:729 msgid "--start not supported for system instances." msgstr "" "Параметр --start не підтримуєтьÑÑ Ð´Ð»Ñ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾ÑиÑтемних екземплÑрів програми." -#: ../src/daemon/main.c:730 +#: ../src/daemon/main.c:734 msgid "Running in system mode, but --disallow-exit not set!" msgstr "" "ЗапуÑк у загальноÑиÑтемному режимі, але не вÑтановлено --disallow-exit!" -#: ../src/daemon/main.c:733 +#: ../src/daemon/main.c:737 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "" "ЗапуÑк у загальноÑиÑтемному режимі, але не вÑтановлено --disallow-module-" "loading!" -#: ../src/daemon/main.c:736 +#: ../src/daemon/main.c:740 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "ЗапуÑк у загальноÑиÑтемному режимі, примуÑове Ð²Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ñƒ SHM!" -#: ../src/daemon/main.c:741 +#: ../src/daemon/main.c:745 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "" "ЗапуÑк у загальноÑиÑтемному режимі, примуÑове Ð²Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ñƒ параметрів " "чаÑу виходу за відÑутноÑÑ‚Ñ– активноÑÑ‚Ñ–!" -#: ../src/daemon/main.c:768 +#: ../src/daemon/main.c:772 msgid "Failed to acquire stdio." msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ stdio." -#: ../src/daemon/main.c:774 +#: ../src/daemon/main.c:778 #, c-format msgid "pipe failed: %s" msgstr "Спроба ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ°Ð½Ð°Ð»Ñƒ завершилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾: %s" -#: ../src/daemon/main.c:779 +#: ../src/daemon/main.c:783 #, c-format msgid "fork() failed: %s" msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ fork() завершилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾: %s" -#: ../src/daemon/main.c:793 +#: ../src/daemon/main.c:797 #, c-format msgid "read() failed: %s" msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ read() завершилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾: %s" -#: ../src/daemon/main.c:799 +#: ../src/daemon/main.c:803 msgid "Daemon startup failed." msgstr "Спроба запуÑку фонової Ñлужби завершилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾." -#: ../src/daemon/main.c:801 +#: ../src/daemon/main.c:805 msgid "Daemon startup successful." msgstr "Фонову Ñлужбу уÑпішно запущено." -#: ../src/daemon/main.c:871 +#: ../src/daemon/main.c:875 #, c-format msgid "This is PulseAudio %s" msgstr "Це PulseAudio %s" -#: ../src/daemon/main.c:872 +#: ../src/daemon/main.c:876 #, c-format msgid "Compilation host: %s" msgstr "Вузол збираннÑ: %s" -#: ../src/daemon/main.c:873 +#: ../src/daemon/main.c:877 #, c-format msgid "Compilation CFLAGS: %s" msgstr "CFLAGS збираннÑ: %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:880 #, c-format msgid "Running on host: %s" msgstr "Запущено на вузлі: %s" -#: ../src/daemon/main.c:879 +#: ../src/daemon/main.c:883 #, c-format msgid "Found %u CPUs." msgstr "Знайдено %u процеÑорів." -#: ../src/daemon/main.c:881 +#: ../src/daemon/main.c:885 #, c-format msgid "Page size is %lu bytes" msgstr "Розмір Ñторінки дорівнює %lu байтам" -#: ../src/daemon/main.c:884 +#: ../src/daemon/main.c:888 msgid "Compiled with Valgrind support: yes" msgstr "Зібрано з підтримкою Valgrind: так" -#: ../src/daemon/main.c:886 +#: ../src/daemon/main.c:890 msgid "Compiled with Valgrind support: no" msgstr "Зібрано з підтримкою Valgrind: ні" -#: ../src/daemon/main.c:889 +#: ../src/daemon/main.c:893 #, c-format msgid "Running in valgrind mode: %s" msgstr "ЗапуÑк у режимі valgrind: %s" -#: ../src/daemon/main.c:892 +#: ../src/daemon/main.c:896 msgid "Optimized build: yes" msgstr "Зібрано з оптимізацією: так" -#: ../src/daemon/main.c:894 +#: ../src/daemon/main.c:898 msgid "Optimized build: no" msgstr "Зібрано з оптимізацією: ні" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:902 msgid "NDEBUG defined, all asserts disabled." msgstr "" -#: ../src/daemon/main.c:900 +#: ../src/daemon/main.c:904 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:906 msgid "All asserts enabled." msgstr "" -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:910 msgid "Failed to get machine ID" msgstr "Спроба отримати ідентифікатор ÑиÑтеми завершилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾" -#: ../src/daemon/main.c:909 +#: ../src/daemon/main.c:913 #, c-format msgid "Machine ID is %s." msgstr "Ідентифікатор ÑиÑтеми %s." -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:917 #, fuzzy, c-format msgid "Session ID is %s." msgstr "Ідентифікатор ÑиÑтеми %s." -#: ../src/daemon/main.c:919 +#: ../src/daemon/main.c:923 #, c-format msgid "Using runtime directory %s." msgstr "Каталог запуÑку: %s." -#: ../src/daemon/main.c:924 +#: ../src/daemon/main.c:928 #, c-format msgid "Using state directory %s." msgstr "Каталог Ñтану: %s." -#: ../src/daemon/main.c:927 +#: ../src/daemon/main.c:931 #, c-format msgid "Running in system mode: %s" msgstr "ЗапуÑку у загальноÑиÑтемному режимі: %s" -#: ../src/daemon/main.c:942 +#: ../src/daemon/main.c:934 +msgid "" +"OK, so you are running PA in system mode. Please note that you most likely " +"shouldn't be doing that.\n" +"If you do it nonetheless then it's your own fault if things don't work as " +"expected.\n" +"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " +"explanation why system mode is usually a bad idea." +msgstr "" + +#: ../src/daemon/main.c:951 msgid "pa_pid_file_create() failed." msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ pa_pid_file_create() зазнала невдачі." -#: ../src/daemon/main.c:954 +#: ../src/daemon/main.c:961 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "ДоÑтупні Ñвіжі виÑокоточні таймери! Смачного!" -#: ../src/daemon/main.c:956 +#: ../src/daemon/main.c:963 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -514,33 +493,33 @@ msgstr "" "Чувак, твоє Ñдро — лайно! Круті пацани рекомендують Linux з увімкненими " "виÑокоточними таймерами!" -#: ../src/daemon/main.c:970 +#: ../src/daemon/main.c:988 msgid "pa_core_new() failed." msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ pa_core_new() зазнала невдачі." -#: ../src/daemon/main.c:1032 +#: ../src/daemon/main.c:1050 msgid "Failed to initialize daemon." msgstr "Ðе вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ фонову Ñлужбу." -#: ../src/daemon/main.c:1037 +#: ../src/daemon/main.c:1055 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "" "ЗапуÑк фонової Ñлужби без жодного завантаженого модулÑ, Ñлужба не буде " "працездатною." -#: ../src/daemon/main.c:1054 +#: ../src/daemon/main.c:1072 msgid "Daemon startup complete." msgstr "ЗапуÑк фонової Ñлужби завершено." -#: ../src/daemon/main.c:1060 +#: ../src/daemon/main.c:1078 msgid "Daemon shutdown initiated." msgstr "Ініційовано Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ фонової Ñлужби." -#: ../src/daemon/main.c:1082 +#: ../src/daemon/main.c:1100 msgid "Daemon terminated." msgstr "Ð’Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñ„Ð¾Ð½Ð¾Ð²Ð¾Ñ— Ñлужби перервано." -#: ../src/daemon/cmdline.c:121 +#: ../src/daemon/cmdline.c:115 #, c-format msgid "" "%s [options]\n" @@ -698,15 +677,15 @@ msgstr "" " -n Ðе завантажувати типовий файл " "Ñкрипту\n" -#: ../src/daemon/cmdline.c:252 +#: ../src/daemon/cmdline.c:247 msgid "--daemonize expects boolean argument" msgstr "Ð”Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° --daemonize Ñлід вказувати булівÑький аргумент" -#: ../src/daemon/cmdline.c:259 +#: ../src/daemon/cmdline.c:254 msgid "--fail expects boolean argument" msgstr "Ð”Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° --fail Ñлід вказувати булівÑький аргумент" -#: ../src/daemon/cmdline.c:269 +#: ../src/daemon/cmdline.c:264 msgid "" "--log-level expects log level argument (either numeric in range 0..4 or one " "of debug, info, notice, warn, error)." @@ -715,53 +694,53 @@ msgstr "" "(чиÑлове у діапазоні 0..4 або одне зі значень debug, info, notice, warn, " "error)." -#: ../src/daemon/cmdline.c:281 +#: ../src/daemon/cmdline.c:276 msgid "--high-priority expects boolean argument" msgstr "Ð”Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° --high-priority Ñлід вказувати булівÑький аргумент" -#: ../src/daemon/cmdline.c:288 +#: ../src/daemon/cmdline.c:283 msgid "--realtime expects boolean argument" msgstr "Ð”Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° --realtime Ñлід вказувати булівÑький аргумент" -#: ../src/daemon/cmdline.c:295 +#: ../src/daemon/cmdline.c:290 msgid "--disallow-module-loading expects boolean argument" msgstr "" "Ð”Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° --disallow-module-loading Ñлід вказувати булівÑький аргумент" -#: ../src/daemon/cmdline.c:302 +#: ../src/daemon/cmdline.c:297 msgid "--disallow-exit expects boolean argument" msgstr "Ð”Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° --disallow-exit Ñлід вказувати булівÑький аргумент" -#: ../src/daemon/cmdline.c:309 +#: ../src/daemon/cmdline.c:304 msgid "--use-pid-file expects boolean argument" msgstr "Ð”Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° --use-pid-file Ñлід вказувати булівÑький аргумент" -#: ../src/daemon/cmdline.c:326 +#: ../src/daemon/cmdline.c:321 msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgstr "Журнал вказано неправильно: можливі варіанти «syslog», «stderr» Ñ– «auto»." -#: ../src/daemon/cmdline.c:333 +#: ../src/daemon/cmdline.c:328 msgid "--log-time expects boolean argument" msgstr "Ð”Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° --log-time Ñлід вказувати булівÑький аргумент" -#: ../src/daemon/cmdline.c:340 +#: ../src/daemon/cmdline.c:335 msgid "--log-meta expects boolean argument" msgstr "Ð”Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° --log-meta Ñлід вказувати булівÑький аргумент" -#: ../src/daemon/cmdline.c:359 +#: ../src/daemon/cmdline.c:354 #, c-format msgid "Invalid resample method '%s'." msgstr "Ðекоректний метод зміни чаÑтотних характериÑтик «%s»." -#: ../src/daemon/cmdline.c:366 +#: ../src/daemon/cmdline.c:361 msgid "--system expects boolean argument" msgstr "Ð”Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° --system Ñлід вказувати булівÑький аргумент" -#: ../src/daemon/cmdline.c:373 +#: ../src/daemon/cmdline.c:368 msgid "--no-cpu-limit expects boolean argument" msgstr "Ð”Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° --no-cpu-limit Ñлід вказувати булівÑький аргумент" -#: ../src/daemon/cmdline.c:380 +#: ../src/daemon/cmdline.c:375 msgid "--disable-shm expects boolean argument" msgstr "Ð”Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° --disable-shm Ñлід вказувати булівÑький аргумент" @@ -800,77 +779,82 @@ msgstr "ВикориÑтаннÑ: %s\n" msgid "Load Once: %s\n" msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸: %s\n" -#: ../src/daemon/dumpmodules.c:77 +#: ../src/daemon/dumpmodules.c:75 +#, c-format +msgid "DEPRECATION WARNING: %s\n" +msgstr "" + +#: ../src/daemon/dumpmodules.c:79 #, c-format msgid "Path: %s\n" msgstr "ШлÑÑ…: %s\n" -#: ../src/daemon/daemon-conf.c:215 +#: ../src/daemon/daemon-conf.c:216 #, c-format msgid "[%s:%u] Invalid log target '%s'." msgstr "[%s:%u] Ðекоректний журнал «%s»." -#: ../src/daemon/daemon-conf.c:231 +#: ../src/daemon/daemon-conf.c:232 #, c-format msgid "[%s:%u] Invalid log level '%s'." msgstr "[%s:%u] Ðекоректний рівень Ð¶ÑƒÑ€Ð½Ð°Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Â«%s»." -#: ../src/daemon/daemon-conf.c:247 +#: ../src/daemon/daemon-conf.c:248 #, c-format msgid "[%s:%u] Invalid resample method '%s'." msgstr "[%s:%u] Ðекоректний метод зміни чаÑтотних характериÑтик «%s»." -#: ../src/daemon/daemon-conf.c:270 +#: ../src/daemon/daemon-conf.c:271 #, c-format msgid "[%s:%u] Invalid rlimit '%s'." msgstr "[%s:%u] Ðекоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ rlimit «%s»." -#: ../src/daemon/daemon-conf.c:277 +#: ../src/daemon/daemon-conf.c:278 #, c-format msgid "[%s:%u] rlimit not supported on this platform." msgstr "[%s:%u] rlimit не підтримуєтьÑÑ Ð½Ð° цій платформі." -#: ../src/daemon/daemon-conf.c:293 +#: ../src/daemon/daemon-conf.c:294 #, c-format msgid "[%s:%u] Invalid sample format '%s'." msgstr "[%s:%u] Ðекоректний формат фрагмента «%s»." -#: ../src/daemon/daemon-conf.c:311 +#: ../src/daemon/daemon-conf.c:312 #, c-format msgid "[%s:%u] Invalid sample rate '%s'." msgstr "[%s:%u] Ðекоректна чаÑтота вибірки «%s»." -#: ../src/daemon/daemon-conf.c:335 +#: ../src/daemon/daemon-conf.c:336 #, c-format msgid "[%s:%u] Invalid sample channels '%s'." msgstr "[%s:%u] Ðекоректні канали фрагмента «%s»." -#: ../src/daemon/daemon-conf.c:353 +#: ../src/daemon/daemon-conf.c:354 #, c-format msgid "[%s:%u] Invalid channel map '%s'." msgstr "[%s:%u] Ðекоректна карта каналів «%s»'." -#: ../src/daemon/daemon-conf.c:371 +#: ../src/daemon/daemon-conf.c:372 #, c-format msgid "[%s:%u] Invalid number of fragments '%s'." msgstr "[%s:%u] Ðекоректна кількіÑÑ‚ÑŒ фрагментів «%s»." -#: ../src/daemon/daemon-conf.c:389 +#: ../src/daemon/daemon-conf.c:390 #, c-format msgid "[%s:%u] Invalid fragment size '%s'." msgstr "[%s:%u] Ðекоректний розмір фрагмента «%s»." -#: ../src/daemon/daemon-conf.c:407 +#: ../src/daemon/daemon-conf.c:408 #, c-format msgid "[%s:%u] Invalid nice level '%s'." msgstr "[%s:%u] Ðекоректний рівень nice «%s»." -#: ../src/daemon/daemon-conf.c:522 +#: ../src/daemon/daemon-conf.c:524 #, c-format msgid "Failed to open configuration file: %s" msgstr "Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл налаштувань: %s" -#: ../src/daemon/daemon-conf.c:538 +#: ../src/daemon/daemon-conf.c:540 msgid "" "The specified default channel map has a different number of channels than " "the specified default number of channels." @@ -921,237 +905,237 @@ msgstr "" msgid "System policy prevents PulseAudio from acquiring real-time scheduling." msgstr "" -#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804 +#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Моно" -#: ../src/pulse/channelmap.c:105 +#: ../src/pulse/channelmap.c:107 msgid "Front Center" msgstr "Передній центральний" -#: ../src/pulse/channelmap.c:106 +#: ../src/pulse/channelmap.c:108 msgid "Front Left" msgstr "Передній лівий" -#: ../src/pulse/channelmap.c:107 +#: ../src/pulse/channelmap.c:109 msgid "Front Right" msgstr "Передній правий" -#: ../src/pulse/channelmap.c:109 +#: ../src/pulse/channelmap.c:111 msgid "Rear Center" msgstr "Задній центральний" -#: ../src/pulse/channelmap.c:110 +#: ../src/pulse/channelmap.c:112 msgid "Rear Left" msgstr "Задній лівий" -#: ../src/pulse/channelmap.c:111 +#: ../src/pulse/channelmap.c:113 msgid "Rear Right" msgstr "Задній правий" -#: ../src/pulse/channelmap.c:113 +#: ../src/pulse/channelmap.c:115 msgid "Low Frequency Emmiter" msgstr "Джерело низьких чаÑтот" -#: ../src/pulse/channelmap.c:115 +#: ../src/pulse/channelmap.c:117 msgid "Front Left-of-center" msgstr "Передній лівоцентральний" -#: ../src/pulse/channelmap.c:116 +#: ../src/pulse/channelmap.c:118 msgid "Front Right-of-center" msgstr "Передній правоцентральний" -#: ../src/pulse/channelmap.c:118 +#: ../src/pulse/channelmap.c:120 msgid "Side Left" msgstr "Боковий лівий" -#: ../src/pulse/channelmap.c:119 +#: ../src/pulse/channelmap.c:121 msgid "Side Right" msgstr "Боковий правий" -#: ../src/pulse/channelmap.c:121 +#: ../src/pulse/channelmap.c:123 msgid "Auxiliary 0" msgstr "Допоміжний 0" -#: ../src/pulse/channelmap.c:122 +#: ../src/pulse/channelmap.c:124 msgid "Auxiliary 1" msgstr "Допоміжний 1" -#: ../src/pulse/channelmap.c:123 +#: ../src/pulse/channelmap.c:125 msgid "Auxiliary 2" msgstr "Допоміжний 2" -#: ../src/pulse/channelmap.c:124 +#: ../src/pulse/channelmap.c:126 msgid "Auxiliary 3" msgstr "Допоміжний 3" -#: ../src/pulse/channelmap.c:125 +#: ../src/pulse/channelmap.c:127 msgid "Auxiliary 4" msgstr "Допоміжний 4" -#: ../src/pulse/channelmap.c:126 +#: ../src/pulse/channelmap.c:128 msgid "Auxiliary 5" msgstr "Допоміжний 5" -#: ../src/pulse/channelmap.c:127 +#: ../src/pulse/channelmap.c:129 msgid "Auxiliary 6" msgstr "Допоміжний 6" -#: ../src/pulse/channelmap.c:128 +#: ../src/pulse/channelmap.c:130 msgid "Auxiliary 7" msgstr "Допоміжний 7" -#: ../src/pulse/channelmap.c:129 +#: ../src/pulse/channelmap.c:131 msgid "Auxiliary 8" msgstr "Допоміжний 8" -#: ../src/pulse/channelmap.c:130 +#: ../src/pulse/channelmap.c:132 msgid "Auxiliary 9" msgstr "Допоміжний 9" -#: ../src/pulse/channelmap.c:131 +#: ../src/pulse/channelmap.c:133 msgid "Auxiliary 10" msgstr "Допоміжний 10" -#: ../src/pulse/channelmap.c:132 +#: ../src/pulse/channelmap.c:134 msgid "Auxiliary 11" msgstr "Допоміжний 11" -#: ../src/pulse/channelmap.c:133 +#: ../src/pulse/channelmap.c:135 msgid "Auxiliary 12" msgstr "Допоміжний 12" -#: ../src/pulse/channelmap.c:134 +#: ../src/pulse/channelmap.c:136 msgid "Auxiliary 13" msgstr "Допоміжний 13" -#: ../src/pulse/channelmap.c:135 +#: ../src/pulse/channelmap.c:137 msgid "Auxiliary 14" msgstr "Допоміжний 14" -#: ../src/pulse/channelmap.c:136 +#: ../src/pulse/channelmap.c:138 msgid "Auxiliary 15" msgstr "Допоміжний 15" -#: ../src/pulse/channelmap.c:137 +#: ../src/pulse/channelmap.c:139 msgid "Auxiliary 16" msgstr "Допоміжний 16" -#: ../src/pulse/channelmap.c:138 +#: ../src/pulse/channelmap.c:140 msgid "Auxiliary 17" msgstr "Допоміжний 17" -#: ../src/pulse/channelmap.c:139 +#: ../src/pulse/channelmap.c:141 msgid "Auxiliary 18" msgstr "Допоміжний 18" -#: ../src/pulse/channelmap.c:140 +#: ../src/pulse/channelmap.c:142 msgid "Auxiliary 19" msgstr "Допоміжний 19" -#: ../src/pulse/channelmap.c:141 +#: ../src/pulse/channelmap.c:143 msgid "Auxiliary 20" msgstr "Допоміжний 20" -#: ../src/pulse/channelmap.c:142 +#: ../src/pulse/channelmap.c:144 msgid "Auxiliary 21" msgstr "Допоміжний 21" -#: ../src/pulse/channelmap.c:143 +#: ../src/pulse/channelmap.c:145 msgid "Auxiliary 22" msgstr "Допоміжний 22" -#: ../src/pulse/channelmap.c:144 +#: ../src/pulse/channelmap.c:146 msgid "Auxiliary 23" msgstr "Допоміжний 23" -#: ../src/pulse/channelmap.c:145 +#: ../src/pulse/channelmap.c:147 msgid "Auxiliary 24" msgstr "Допоміжний 24" -#: ../src/pulse/channelmap.c:146 +#: ../src/pulse/channelmap.c:148 msgid "Auxiliary 25" msgstr "Допоміжний 25" -#: ../src/pulse/channelmap.c:147 +#: ../src/pulse/channelmap.c:149 msgid "Auxiliary 26" msgstr "Допоміжний 26" -#: ../src/pulse/channelmap.c:148 +#: ../src/pulse/channelmap.c:150 msgid "Auxiliary 27" msgstr "Допоміжний 27" -#: ../src/pulse/channelmap.c:149 +#: ../src/pulse/channelmap.c:151 msgid "Auxiliary 28" msgstr "Допоміжний 28" -#: ../src/pulse/channelmap.c:150 +#: ../src/pulse/channelmap.c:152 msgid "Auxiliary 29" msgstr "Допоміжний 29" -#: ../src/pulse/channelmap.c:151 +#: ../src/pulse/channelmap.c:153 msgid "Auxiliary 30" msgstr "Допоміжний 30" -#: ../src/pulse/channelmap.c:152 +#: ../src/pulse/channelmap.c:154 msgid "Auxiliary 31" msgstr "Допоміжний 31" -#: ../src/pulse/channelmap.c:154 +#: ../src/pulse/channelmap.c:156 msgid "Top Center" msgstr "Верхній центральний" -#: ../src/pulse/channelmap.c:156 +#: ../src/pulse/channelmap.c:158 msgid "Top Front Center" msgstr "Верхній передній центральний" -#: ../src/pulse/channelmap.c:157 +#: ../src/pulse/channelmap.c:159 msgid "Top Front Left" msgstr "Верхній передній лівий" -#: ../src/pulse/channelmap.c:158 +#: ../src/pulse/channelmap.c:160 msgid "Top Front Right" msgstr "Верхній передній правий" -#: ../src/pulse/channelmap.c:160 +#: ../src/pulse/channelmap.c:162 msgid "Top Rear Center" msgstr "Верхній задній центральний" -#: ../src/pulse/channelmap.c:161 +#: ../src/pulse/channelmap.c:163 msgid "Top Rear Left" msgstr "Верхній задній лівий" -#: ../src/pulse/channelmap.c:162 +#: ../src/pulse/channelmap.c:164 msgid "Top Rear Right" msgstr "Верхній задній правий" -#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167 -#: ../src/pulse/volume.c:170 ../src/pulse/volume.c:196 -#: ../src/pulse/volume.c:216 ../src/pulse/volume.c:246 +#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167 +#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265 +#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315 msgid "(invalid)" msgstr "(некоректний)" -#: ../src/pulse/channelmap.c:808 +#: ../src/pulse/channelmap.c:751 msgid "Stereo" msgstr "Стерео" -#: ../src/pulse/channelmap.c:813 +#: ../src/pulse/channelmap.c:756 msgid "Surround 4.0" msgstr "Об'ємний 4.0" -#: ../src/pulse/channelmap.c:819 +#: ../src/pulse/channelmap.c:762 msgid "Surround 4.1" msgstr "Об'ємний 4.1" -#: ../src/pulse/channelmap.c:825 +#: ../src/pulse/channelmap.c:768 msgid "Surround 5.0" msgstr "Об'ємний 5.0" -#: ../src/pulse/channelmap.c:831 +#: ../src/pulse/channelmap.c:774 msgid "Surround 5.1" msgstr "Об'ємний 5.1" -#: ../src/pulse/channelmap.c:838 +#: ../src/pulse/channelmap.c:781 msgid "Surround 7.1" msgstr "Об'ємний 7.1" @@ -1313,174 +1297,169 @@ msgstr "waitpid(): %s" msgid "Received message for unknown extension '%s'" msgstr "Отримано Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ невідомий додаток «%s»" -#: ../src/utils/pacat.c:94 +#: ../src/utils/pacat.c:107 +#, c-format +msgid "Failed to drain stream: %s\n" +msgstr "Ðе вдалоÑÑ Ñтворити тунель Ð´Ð»Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ: %s\n" + +#: ../src/utils/pacat.c:112 +msgid "Playback stream drained.\n" +msgstr "Потік Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚ÑƒÐ½ÐµÐ»ÑŒÐ¾Ð²Ð°Ð½Ð¾.\n" + +#: ../src/utils/pacat.c:122 +msgid "Draining connection to server.\n" +msgstr "Тунельне Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· Ñервером.\n" + +#: ../src/utils/pacat.c:135 +#, c-format +msgid "pa_stream_drain(): %s\n" +msgstr "pa_stream_drain(): %s\n" + +#: ../src/utils/pacat.c:158 #, c-format msgid "pa_stream_write() failed: %s\n" msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ pa_stream_write() завершилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾: %s\n" -#: ../src/utils/pacat.c:133 +#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 #, c-format msgid "pa_stream_peek() failed: %s\n" msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ pa_stream_peek() завершилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾: %s\n" -#: ../src/utils/pacat.c:169 -#, c-format +#: ../src/utils/pacat.c:302 msgid "Stream successfully created.\n" msgstr "Потік було уÑпішно Ñтворено.\n" -#: ../src/utils/pacat.c:172 +#: ../src/utils/pacat.c:305 #, c-format msgid "pa_stream_get_buffer_attr() failed: %s\n" msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ pa_stream_get_buffer_attr() завершилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾: %s\n" -#: ../src/utils/pacat.c:176 +#: ../src/utils/pacat.c:309 #, c-format msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgstr "Метрика буфера: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:179 +#: ../src/utils/pacat.c:312 #, c-format msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgstr "Метрика буфера: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:183 +#: ../src/utils/pacat.c:316 #, c-format msgid "Using sample spec '%s', channel map '%s'.\n" msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ñ‡Ð°Ñтотної Ñпецифікації «%s», карта каналів «%s».\n" -#: ../src/utils/pacat.c:187 +#: ../src/utils/pacat.c:320 #, c-format msgid "Connected to device %s (%u, %ssuspended).\n" msgstr "З’єднано з приÑтроєм %s (%u, %s призупинено).\n" -#: ../src/utils/pacat.c:197 +#: ../src/utils/pacat.c:330 #, c-format msgid "Stream error: %s\n" msgstr "Помилка потоку: %s\n" -#: ../src/utils/pacat.c:207 +#: ../src/utils/pacat.c:340 #, c-format msgid "Stream device suspended.%s \n" msgstr "Призупинено приÑтрій потоку. %s \n" -#: ../src/utils/pacat.c:209 +#: ../src/utils/pacat.c:342 #, c-format msgid "Stream device resumed.%s \n" msgstr "Відновлено приÑтрій потоку. %s \n" -#: ../src/utils/pacat.c:217 +#: ../src/utils/pacat.c:350 #, c-format msgid "Stream underrun.%s \n" msgstr "ÐÐµÐ´Ð¾Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ. %s \n" -#: ../src/utils/pacat.c:224 +#: ../src/utils/pacat.c:357 #, c-format msgid "Stream overrun.%s \n" msgstr "ÐŸÐµÑ€ÐµÐ²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ. %s \n" -#: ../src/utils/pacat.c:231 +#: ../src/utils/pacat.c:364 #, c-format msgid "Stream started.%s \n" msgstr "Потік запущено. %s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 #, c-format msgid "Stream moved to device %s (%u, %ssuspended).%s \n" msgstr "Потік переÑунуто на приÑтрій %s (%u, %s призупинено). %s \n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 msgid "not " msgstr "не " -#: ../src/utils/pacat.c:245 +#: ../src/utils/pacat.c:378 #, fuzzy, c-format msgid "Stream buffer attributes changed.%s \n" msgstr "ÐÐµÐ´Ð¾Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ. %s \n" -#: ../src/utils/pacat.c:278 +#: ../src/utils/pacat.c:411 #, c-format msgid "Connection established.%s \n" msgstr "Ð’Ñтановлено з’єднаннÑ. %s \n" -#: ../src/utils/pacat.c:281 +#: ../src/utils/pacat.c:414 #, c-format msgid "pa_stream_new() failed: %s\n" msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ pa_stream_new() зазнала невдачі: %s\n" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:442 #, c-format msgid "pa_stream_connect_playback() failed: %s\n" msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ pa_stream_connect_playback() зазнала невдачі: %s\n" -#: ../src/utils/pacat.c:315 +#: ../src/utils/pacat.c:448 #, c-format msgid "pa_stream_connect_record() failed: %s\n" msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ pa_stream_connect_record() зазнала невдачі: %s\n" -#: ../src/utils/pacat.c:329 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:762 ../src/utils/paplay.c:183 +#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 #, c-format msgid "Connection failure: %s\n" msgstr "Спроба вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð·Ð°Ð·Ð½Ð°Ð»Ð° невдачі: %s\n" -#: ../src/utils/pacat.c:349 ../src/utils/paplay.c:75 -#, c-format -msgid "Failed to drain stream: %s\n" -msgstr "Ðе вдалоÑÑ Ñтворити тунель Ð´Ð»Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ: %s\n" - -#: ../src/utils/pacat.c:354 ../src/utils/paplay.c:80 -#, c-format -msgid "Playback stream drained.\n" -msgstr "Потік Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚ÑƒÐ½ÐµÐ»ÑŒÐ¾Ð²Ð°Ð½Ð¾.\n" - -#: ../src/utils/pacat.c:364 ../src/utils/paplay.c:92 -#, c-format -msgid "Draining connection to server.\n" -msgstr "Тунельне Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· Ñервером.\n" - -#: ../src/utils/pacat.c:390 -#, c-format +#: ../src/utils/pacat.c:495 msgid "Got EOF.\n" msgstr "Отримано EOF.\n" -#: ../src/utils/pacat.c:396 -#, c-format -msgid "pa_stream_drain(): %s\n" -msgstr "pa_stream_drain(): %s\n" - -#: ../src/utils/pacat.c:406 +#: ../src/utils/pacat.c:500 #, c-format msgid "read() failed: %s\n" msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ read() завершилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾: %s\n" -#: ../src/utils/pacat.c:438 +#: ../src/utils/pacat.c:532 #, c-format msgid "write() failed: %s\n" msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ write() завершилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾: %s\n" -#: ../src/utils/pacat.c:459 -#, c-format +#: ../src/utils/pacat.c:553 msgid "Got signal, exiting.\n" msgstr "Отримано Ñигнал, Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸.\n" -#: ../src/utils/pacat.c:473 +#: ../src/utils/pacat.c:567 #, c-format msgid "Failed to get latency: %s\n" msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ латентніÑÑ‚ÑŒ: %s\n" -#: ../src/utils/pacat.c:478 +#: ../src/utils/pacat.c:572 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "ЧаÑ: %0.3f Ñек.; ЛатентніÑÑ‚ÑŒ: %0.0f мкÑ. \r" -#: ../src/utils/pacat.c:498 +#: ../src/utils/pacat.c:592 #, c-format msgid "pa_stream_update_timing_info() failed: %s\n" msgstr "" "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ pa_stream_update_timing_info() завершилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾: %s\n" -#: ../src/utils/pacat.c:511 -#, c-format +#: ../src/utils/pacat.c:605 +#, fuzzy, c-format msgid "" "%s [options]\n" "\n" @@ -1506,8 +1485,10 @@ msgid "" "44100)\n" " --format=SAMPLEFORMAT The sample type, one of s16le, " "s16be, u8, float32le,\n" -" float32be, ulaw, alaw, s32le, s32be " -"(defaults to s16ne)\n" +" float32be, ulaw, alaw, s32le, s32be, " +"s24le, s24be,\n" +" s24-32le, s24-32be (defaults to " +"s16ne)\n" " --channels=CHANNELS The number of channels, 1 for mono, " "2 for stereo\n" " (defaults to 2)\n" @@ -1530,6 +1511,11 @@ msgid "" "bytes.\n" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" +" --property=PROPERTY=VALUE Set the specified property to the " +"specified value.\n" +" --raw Record/play raw PCM data.\n" +" --file-format=FFORMAT Record/play formatted PCM data.\n" +" --list-file-formats List available file formats.\n" msgstr "" "%s [параметри]\n" "\n" @@ -1578,7 +1564,7 @@ msgstr "" " --process-time=БÐЙТИ ÐадіÑлати запит щодо вказаного чаÑу " "обробки на запит у байтах.\n" -#: ../src/utils/pacat.c:612 +#: ../src/utils/pacat.c:727 #, c-format msgid "" "pacat %s\n" @@ -1589,88 +1575,133 @@ msgstr "" "Зібрано з libpulse %s\n" "З’єднано з libpulse %s\n" -#: ../src/utils/pacat.c:669 +#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "Ðекоректна карта каналів «%s»\n" + +#: ../src/utils/pacat.c:776 +#, fuzzy, c-format +msgid "Invalid stream name '%s'\n" +msgstr "Ðекоректний метод зміни чаÑтотних характериÑтик «%s»." + +#: ../src/utils/pacat.c:813 #, c-format msgid "Invalid channel map '%s'\n" msgstr "Ðекоректна карта каналів «%s»\n" -#: ../src/utils/pacat.c:698 +#: ../src/utils/pacat.c:842 #, c-format msgid "Invalid latency specification '%s'\n" msgstr "Ðекоректна ÑÐ¿ÐµÑ†Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ Ð»Ð°Ñ‚ÐµÐ½Ñ‚Ð½Ð¾ÑÑ‚Ñ– «%s»\n" -#: ../src/utils/pacat.c:705 +#: ../src/utils/pacat.c:849 #, c-format msgid "Invalid process time specification '%s'\n" msgstr "Ðекоректна чаÑова ÑÐ¿ÐµÑ†Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ Â«%s»\n" -#: ../src/utils/pacat.c:716 +#: ../src/utils/pacat.c:861 +#, fuzzy, c-format +msgid "Invalid property '%s'\n" +msgstr "Ðекоректний метод зміни чаÑтотних характериÑтик «%s»." + +#: ../src/utils/pacat.c:878 #, c-format +msgid "Unknown file format %s." +msgstr "" + +#: ../src/utils/pacat.c:897 msgid "Invalid sample specification\n" msgstr "Ðекоректна чаÑтотна ÑпецифікаціÑ\n" -#: ../src/utils/pacat.c:721 +#: ../src/utils/pacat.c:907 #, c-format +msgid "open(): %s\n" +msgstr "open(): %s\n" + +#: ../src/utils/pacat.c:912 +#, c-format +msgid "dup2(): %s\n" +msgstr "dup2(): %s\n" + +#: ../src/utils/pacat.c:919 +msgid "Too many arguments.\n" +msgstr "Забагато аргументів.\n" + +#: ../src/utils/pacat.c:930 +#, fuzzy +msgid "Failed to generate sample specification for file.\n" +msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані щодо фрагмента: %s\n" + +#: ../src/utils/pacat.c:950 +#, fuzzy +msgid "Failed to open audio file.\n" +msgstr "Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ звуковий файл.\n" + +#: ../src/utils/pacat.c:956 +msgid "" +"Warning: specified sample specification will be overwritten with " +"specification from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані щодо фрагмента: %s\n" + +#: ../src/utils/pacat.c:968 +msgid "Warning: Failed to determine channel map from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:979 msgid "Channel map doesn't match sample specification\n" msgstr "Карта каналі не відповідає чаÑтотній Ñпецифікації\n" -#: ../src/utils/pacat.c:728 -#, c-format -msgid "Opening a %s stream with sample specification '%s'.\n" +#: ../src/utils/pacat.c:990 +msgid "Warning: failed to write channel map to file.\n" +msgstr "" + +#: ../src/utils/pacat.c:1005 +#, fuzzy, c-format +msgid "" +"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" msgstr "Ð’Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ %s з чаÑтотною Ñпецифікацією «%s».\n" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "recording" msgstr "запиÑ" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "playback" msgstr "відтвореннÑ" -#: ../src/utils/pacat.c:736 -#, c-format -msgid "open(): %s\n" -msgstr "open(): %s\n" - -#: ../src/utils/pacat.c:741 -#, c-format -msgid "dup2(): %s\n" -msgstr "dup2(): %s\n" - -#: ../src/utils/pacat.c:751 -#, c-format -msgid "Too many arguments.\n" -msgstr "Забагато аргументів.\n" - -#: ../src/utils/pacat.c:764 ../src/utils/pasuspender.c:280 -#: ../src/utils/pactl.c:1017 ../src/utils/paplay.c:381 +#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 +#: ../src/utils/pactl.c:1104 #, c-format msgid "pa_mainloop_new() failed.\n" msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ pa_mainloop_new() завершилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾.\n" -#: ../src/utils/pacat.c:785 -#, c-format +#: ../src/utils/pacat.c:1051 msgid "io_new() failed.\n" msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ io_new() завершилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾.\n" -#: ../src/utils/pacat.c:791 ../src/utils/pasuspender.c:293 -#: ../src/utils/pactl.c:1031 ../src/utils/paplay.c:396 +#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 +#: ../src/utils/pactl.c:1116 #, c-format msgid "pa_context_new() failed.\n" msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ pa_context_new() завершилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾.\n" -#: ../src/utils/pacat.c:799 +#: ../src/utils/pacat.c:1066 #, fuzzy, c-format msgid "pa_context_connect() failed: %s\n" msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ pa_context_connect() завершилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾: %s" -#: ../src/utils/pacat.c:810 -#, c-format +#: ../src/utils/pacat.c:1077 msgid "time_new() failed.\n" msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ time_new() завершилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾.\n" -#: ../src/utils/pacat.c:817 ../src/utils/pasuspender.c:301 -#: ../src/utils/pactl.c:1042 ../src/utils/paplay.c:410 +#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 +#: ../src/utils/pactl.c:1127 #, c-format msgid "pa_mainloop_run() failed.\n" msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ pa_mainloop_run() завершилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾.\n" @@ -1701,8 +1732,7 @@ msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "" "ПОПЕРЕДЖЕÐÐЯ: звуковий Ñервер не Ñ” локальним, його не можна призупинити.\n" -#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:768 -#: ../src/utils/paplay.c:191 +#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" msgstr "Отримано Ñигнал SIGINT, Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸.\n" @@ -1732,7 +1762,7 @@ msgstr "" "з’єднатиÑÑ\n" "\n" -#: ../src/utils/pasuspender.c:251 +#: ../src/utils/pasuspender.c:248 #, c-format msgid "" "pasuspender %s\n" @@ -1743,33 +1773,33 @@ msgstr "" "Зібрано з libpulse %s\n" "З’єднано з libpulse %s\n" -#: ../src/utils/pactl.c:108 +#: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ ÑтатиÑтичні дані: %s\n" -#: ../src/utils/pactl.c:114 +#: ../src/utils/pactl.c:134 #, c-format msgid "Currently in use: %u blocks containing %s bytes total.\n" msgstr "Зараз викориÑтано: %u блоків, що міÑÑ‚ÑÑ‚ÑŒ загалом %s байтів.\n" -#: ../src/utils/pactl.c:117 +#: ../src/utils/pactl.c:137 #, c-format msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n" msgstr "" "Виділено протÑгом Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð·Ð°Ð³Ð°Ð»Ð¾Ð¼: %u блоків, що міÑÑ‚ÑÑ‚ÑŒ %s байтів.\n" -#: ../src/utils/pactl.c:120 +#: ../src/utils/pactl.c:140 #, c-format msgid "Sample cache size: %s\n" msgstr "Розмір кешу фрагментів: %s\n" -#: ../src/utils/pactl.c:129 +#: ../src/utils/pactl.c:149 #, c-format msgid "Failed to get server information: %s\n" msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані щодо Ñервера: %s\n" -#: ../src/utils/pactl.c:137 +#: ../src/utils/pactl.c:157 #, c-format msgid "" "User name: %s\n" @@ -1792,12 +1822,12 @@ msgstr "" "Типове джерело: %s\n" "Кука: %08x\n" -#: ../src/utils/pactl.c:178 +#: ../src/utils/pactl.c:198 #, c-format msgid "Failed to get sink information: %s\n" msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані щодо приймача: %s\n" -#: ../src/utils/pactl.c:194 +#: ../src/utils/pactl.c:214 #, c-format msgid "" "Sink #%u\n" @@ -1836,12 +1866,22 @@ msgstr "" "\tВлаÑтивоÑÑ‚Ñ–:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:258 +#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 +#, fuzzy, c-format +msgid "\tPorts:\n" +msgstr "\tПрофілі:\n" + +#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 +#, fuzzy, c-format +msgid "\tActive Port: %s\n" +msgstr "\tÐктивний профіль: %s\n" + +#: ../src/utils/pactl.c:290 #, c-format msgid "Failed to get source information: %s\n" msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані щодо джерела: %s\n" -#: ../src/utils/pactl.c:274 +#: ../src/utils/pactl.c:306 #, c-format msgid "" "Source #%u\n" @@ -1880,20 +1920,20 @@ msgstr "" "\tВлаÑтивоÑÑ‚Ñ–:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:306 ../src/utils/pactl.c:350 ../src/utils/pactl.c:385 -#: ../src/utils/pactl.c:422 ../src/utils/pactl.c:481 ../src/utils/pactl.c:482 -#: ../src/utils/pactl.c:492 ../src/utils/pactl.c:536 ../src/utils/pactl.c:537 -#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:586 ../src/utils/pactl.c:587 -#: ../src/utils/pactl.c:594 +#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429 +#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526 +#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581 +#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631 +#: ../src/utils/pactl.c:638 msgid "n/a" msgstr "н/д" -#: ../src/utils/pactl.c:324 +#: ../src/utils/pactl.c:368 #, c-format msgid "Failed to get module information: %s\n" msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані щодо модулÑ: %s\n" -#: ../src/utils/pactl.c:342 +#: ../src/utils/pactl.c:386 #, c-format msgid "" "Module #%u\n" @@ -1910,12 +1950,12 @@ msgstr "" "\tВлаÑтивоÑÑ‚Ñ–:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:361 +#: ../src/utils/pactl.c:405 #, c-format msgid "Failed to get client information: %s\n" msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані щодо клієнта: %s\n" -#: ../src/utils/pactl.c:379 +#: ../src/utils/pactl.c:423 #, c-format msgid "" "Client #%u\n" @@ -1930,12 +1970,12 @@ msgstr "" "\tВлаÑтивоÑÑ‚Ñ–:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:396 +#: ../src/utils/pactl.c:440 #, c-format msgid "Failed to get card information: %s\n" msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані щодо карти: %s\n" -#: ../src/utils/pactl.c:414 +#: ../src/utils/pactl.c:458 #, c-format msgid "" "Card #%u\n" @@ -1952,22 +1992,22 @@ msgstr "" "\tВлаÑтивоÑÑ‚Ñ–:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:428 +#: ../src/utils/pactl.c:472 #, c-format msgid "\tProfiles:\n" msgstr "\tПрофілі:\n" -#: ../src/utils/pactl.c:434 +#: ../src/utils/pactl.c:478 #, c-format msgid "\tActive Profile: %s\n" msgstr "\tÐктивний профіль: %s\n" -#: ../src/utils/pactl.c:445 +#: ../src/utils/pactl.c:489 #, c-format msgid "Failed to get sink input information: %s\n" msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ відомоÑтей щодо приймача: %s\n" -#: ../src/utils/pactl.c:464 +#: ../src/utils/pactl.c:508 #, c-format msgid "" "Sink Input #%u\n" @@ -2004,12 +2044,12 @@ msgstr "" "\tВлаÑтивоÑÑ‚Ñ–:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:503 +#: ../src/utils/pactl.c:547 #, c-format msgid "Failed to get source output information: %s\n" msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані щодо Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´Ð¶ÐµÑ€ÐµÐ»Ð°: %s\n" -#: ../src/utils/pactl.c:523 +#: ../src/utils/pactl.c:567 #, c-format msgid "" "Source Output #%u\n" @@ -2038,12 +2078,12 @@ msgstr "" "\tВлаÑтивоÑÑ‚Ñ–:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:554 +#: ../src/utils/pactl.c:598 #, c-format msgid "Failed to get sample information: %s\n" msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані щодо фрагмента: %s\n" -#: ../src/utils/pactl.c:572 +#: ../src/utils/pactl.c:616 #, c-format msgid "" "Sample #%u\n" @@ -2074,23 +2114,22 @@ msgstr "" "\tВлаÑтивоÑÑ‚Ñ–:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:602 ../src/utils/pactl.c:612 +#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 #, c-format msgid "Failure: %s\n" msgstr "Помилка: %s\n" -#: ../src/utils/pactl.c:636 +#: ../src/utils/pactl.c:680 #, c-format msgid "Failed to upload sample: %s\n" msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ зразок: %s\n" -#: ../src/utils/pactl.c:653 -#, c-format +#: ../src/utils/pactl.c:697 msgid "Premature end of file\n" msgstr "ПередчаÑне Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð°\n" -#: ../src/utils/pactl.c:774 -#, c-format +#: ../src/utils/pactl.c:826 +#, fuzzy, c-format msgid "" "%s [options] stat\n" "%s [options] list\n" @@ -2105,6 +2144,8 @@ msgid "" "%s [options] suspend-sink [SINK] 1|0\n" "%s [options] suspend-source [SOURCE] 1|0\n" "%s [options] set-card-profile [CARD] [PROFILE] \n" +"%s [options] set-sink-port [SINK] [PORT] \n" +"%s [options] set-source-port [SOURCE] [PORT] \n" "\n" " -h, --help Show this help\n" " --version Show version\n" @@ -2135,7 +2176,7 @@ msgstr "" "з’єднатиÑÑ\n" " -n, --client-name=ÐÐЗВРСпоÑіб виклику клієнта на Ñервері\n" -#: ../src/utils/pactl.c:826 +#: ../src/utils/pactl.c:880 #, c-format msgid "" "pactl %s\n" @@ -2146,48 +2187,44 @@ msgstr "" "Зібрано з libpulse %s\n" "З’єднано з libpulse %s\n" -#: ../src/utils/pactl.c:865 -#, c-format +#: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "Будь лаÑка, вкажіть зразковий файл Ð´Ð»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ\n" -#: ../src/utils/pactl.c:887 -#, c-format +#: ../src/utils/pactl.c:939 msgid "Failed to open sound file.\n" msgstr "Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ звуковий файл.\n" -#: ../src/utils/pactl.c:899 -#, c-format +#: ../src/utils/pactl.c:951 +#, fuzzy +msgid "Warning: Failed to determine sample specification from file.\n" +msgstr "Ð’Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ %s з чаÑтотною Ñпецифікацією «%s».\n" + +#: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" msgstr "Вам Ñлід вказати назву зразкового файла, Ñкий Ñлід відтворити\n" -#: ../src/utils/pactl.c:911 -#, c-format +#: ../src/utils/pactl.c:973 msgid "You have to specify a sample name to remove\n" msgstr "Вам Ñлід вказати назву зразкового файла, Ñкий Ñлід вилучити\n" -#: ../src/utils/pactl.c:919 -#, c-format +#: ../src/utils/pactl.c:982 msgid "You have to specify a sink input index and a sink\n" msgstr "Вам Ñлід вказати Ñ–Ð½Ð´ÐµÐºÑ Ð¿Ñ€Ð¸Ð¹Ð¼Ð°Ñ‡Ð° даних Ñ– приймач\n" -#: ../src/utils/pactl.c:928 -#, c-format +#: ../src/utils/pactl.c:992 msgid "You have to specify a source output index and a source\n" msgstr "Вам Ñлід вказати Ñ–Ð½Ð´ÐµÐºÑ Ð´Ð¶ÐµÑ€ÐµÐ»Ð° Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ– джерело\n" -#: ../src/utils/pactl.c:942 -#, c-format +#: ../src/utils/pactl.c:1007 msgid "You have to specify a module name and arguments.\n" msgstr "Вам Ñлід вказати назву Ð¼Ð¾Ð´ÑƒÐ»Ñ Ñ– аргументи.\n" -#: ../src/utils/pactl.c:962 -#, c-format +#: ../src/utils/pactl.c:1027 msgid "You have to specify a module index\n" msgstr "Вам Ñлід вказати Ñ–Ð½Ð´ÐµÐºÑ Ð¼Ð¾Ð´ÑƒÐ»Ñ\n" -#: ../src/utils/pactl.c:972 -#, c-format +#: ../src/utils/pactl.c:1037 msgid "" "You may not specify more than one sink. You have to specify a boolean " "value.\n" @@ -2195,8 +2232,7 @@ msgstr "" "Ðе можна вказувати більше одного приймача. Вам Ñлід вказати булівÑьке " "значеннÑ.\n" -#: ../src/utils/pactl.c:985 -#, c-format +#: ../src/utils/pactl.c:1050 msgid "" "You may not specify more than one source. You have to specify a boolean " "value.\n" @@ -2204,17 +2240,25 @@ msgstr "" "Ðе можна вказувати більше одного джерела. Вам Ñлід вказати булівÑьке " "значеннÑ.\n" -#: ../src/utils/pactl.c:997 -#, c-format +#: ../src/utils/pactl.c:1062 msgid "You have to specify a card name/index and a profile name\n" msgstr "Вам Ñлід вказати назву/Ñ–Ð½Ð´ÐµÐºÑ ÐºÐ°Ñ€Ñ‚Ð¸ Ñ– назву профілю\n" -#: ../src/utils/pactl.c:1012 -#, c-format +#: ../src/utils/pactl.c:1073 +#, fuzzy +msgid "You have to specify a sink name/index and a port name\n" +msgstr "Вам Ñлід вказати назву/Ñ–Ð½Ð´ÐµÐºÑ ÐºÐ°Ñ€Ñ‚Ð¸ Ñ– назву профілю\n" + +#: ../src/utils/pactl.c:1084 +#, fuzzy +msgid "You have to specify a source name/index and a port name\n" +msgstr "Вам Ñлід вказати назву/Ñ–Ð½Ð´ÐµÐºÑ ÐºÐ°Ñ€Ñ‚Ð¸ Ñ– назву профілю\n" + +#: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "Ðе вказано коректної команди.\n" -#: ../src/utils/pactl.c:1037 ../src/utils/paplay.c:404 +#: ../src/utils/pactl.c:1122 #, c-format msgid "pa_context_connect() failed: %s" msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ pa_context_connect() завершилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾: %s" @@ -2300,130 +2344,49 @@ msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ дані куки\n" msgid "Not yet implemented.\n" msgstr "Ще не реалізовано.\n" -#: ../src/utils/pacmd.c:64 +#: ../src/utils/pacmd.c:61 +msgid "No PulseAudio daemon running, or not running as session daemon." +msgstr "" + +#: ../src/utils/pacmd.c:66 #, c-format msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s" msgstr "socket(PF_UNIX, SOCK_STREAM, 0): %s" -#: ../src/utils/pacmd.c:81 +#: ../src/utils/pacmd.c:83 #, c-format msgid "connect(): %s" msgstr "connect(): %s" -#: ../src/utils/pacmd.c:89 +#: ../src/utils/pacmd.c:91 msgid "Failed to kill PulseAudio daemon." msgstr "" "Спроба Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ фонової Ñлужби PulseAudio завершилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾." -#: ../src/utils/pacmd.c:97 +#: ../src/utils/pacmd.c:99 msgid "Daemon not responding." msgstr "Фонова Ñлужба не відповідає." -#: ../src/utils/pacmd.c:144 +#: ../src/utils/pacmd.c:146 #, c-format msgid "select(): %s" msgstr "select(): %s" -#: ../src/utils/pacmd.c:154 ../src/utils/pacmd.c:171 +#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173 #, c-format msgid "read(): %s" msgstr "read(): %s" -#: ../src/utils/pacmd.c:187 ../src/utils/pacmd.c:201 +#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203 #, c-format msgid "write(): %s" msgstr "write(): %s" -#: ../src/utils/paplay.c:139 -#, c-format -msgid "Stream successfully created\n" -msgstr "Потік було уÑпішно Ñтворено\n" - -#: ../src/utils/paplay.c:144 -#, c-format -msgid "Stream errror: %s\n" -msgstr "Помилка потоку: %s\n" - -#: ../src/utils/paplay.c:165 -#, c-format -msgid "Connection established.\n" -msgstr "Ð—â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð²Ñтановлено.\n" - -#: ../src/utils/paplay.c:198 -#, c-format -msgid "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" -msgstr "" -"%s [параметри] [ФÐЙЛ]\n" -"\n" -" -h, --help Показати цю довідку\n" -" --version Показати дані щодо верÑÑ–Ñ—\n" -"\n" -" -v, --verbose Увімкнути докладний режим дій\n" -"\n" -" -s, --server=СЕРВЕРÐазва Ñервера, з Ñким Ñлід " -"вÑтановити Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ to\n" -" -d, --device=ПРИСТРІЙ Ðазва приймача, з Ñким Ñлід " -"з’єднатиÑÑ\n" -" -n, --client-name=ÐÐЗВРСпоÑіб виклику клієнта на Ñервері\n" -" --stream-name=ÐÐЗВРСпоÑіб виклику потоку на Ñервері\n" -" --volume=ГУЧÐІСТЬ Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— (лінійної) " -"гучноÑÑ‚Ñ– у діапазоні 0..65536\n" -" --channel-map=КÐРТÐ_КÐÐÐЛІВ Ð’Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ°Ñ€Ñ‚Ð¸ каналів, Ñкою Ñлід " -"ÑкориÑтатиÑÑ\n" - -#: ../src/utils/paplay.c:255 -#, c-format -msgid "" -"paplay %s\n" -"Compiled with libpulse %s\n" -"Linked with libpulse %s\n" -msgstr "" -"paplay %s\n" -"Зібрано з libpulse %s\n" -"З’єднано з libpulse %s\n" - -#: ../src/utils/paplay.c:292 -#, c-format -msgid "Invalid channel map\n" -msgstr "Ðекоректна карта каналів\n" - -#: ../src/utils/paplay.c:314 -#, c-format -msgid "Failed to open file '%s'\n" -msgstr "Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл «%s»\n" - -#: ../src/utils/paplay.c:350 -#, c-format -msgid "Channel map doesn't match file.\n" -msgstr "Карта каналів не відповідає файлові.\n" - -#: ../src/utils/paplay.c:376 -#, c-format -msgid "Using sample spec '%s'\n" -msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ñ‡Ð°Ñтотної Ñпецифікації «%s»\n" - #: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 msgid "Cannot access autospawn lock." msgstr "Ðе вдалоÑÑ Ð·Ð½Ñти Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ розгалуженнÑ." -#: ../src/modules/alsa/alsa-sink.c:393 ../src/modules/alsa/alsa-sink.c:541 +#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2434,7 +2397,7 @@ msgid "" "returned 0 or another value < min_avail." msgstr "" -#: ../src/modules/alsa/alsa-source.c:377 ../src/modules/alsa/alsa-source.c:516 +#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2445,35 +2408,122 @@ msgid "" "returned 0 or another value < min_avail." msgstr "" -#: ../src/modules/alsa/module-alsa-card.c:114 -#, c-format -msgid "Output %s + Input %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:117 -#, c-format -msgid "Output %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:121 -#, c-format -msgid "Input %s" -msgstr "" - -#: ../src/modules/alsa/module-alsa-card.c:170 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2006 +#: ../src/modules/alsa/module-alsa-card.c:152 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 msgid "Off" msgstr "" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1976 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 msgid "High Fidelity Playback (A2DP)" msgstr "" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1991 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 msgid "Telephony Duplex (HSP/HFP)" msgstr "" -#: ../src/modules/reserve-wrap.c:139 +#: ../src/modules/reserve-wrap.c:151 #, fuzzy msgid "PulseAudio Sound Server" msgstr "Звукова ÑиÑтема PulseAudio" + +#~ msgid "Analog Mono" +#~ msgstr "Ðналоговий моно" + +#~ msgid "Analog Stereo" +#~ msgstr "Ðналоговий Ñтерео" + +#~ msgid "Digital Stereo (IEC958)" +#~ msgstr "Цифровий Ñтерео (IEC958)" + +#~ msgid "Digital Stereo (HDMI)" +#~ msgstr "Цифровий Ñтерео (HDMI)" + +#~ msgid "Analog Surround 4.0" +#~ msgstr "Ðналоговий об’ємний 4.0" + +#~ msgid "Digital Surround 4.0 (IEC958/AC3)" +#~ msgstr "Цифровий об’ємний 4.0 (IEC958/AC3)" + +#~ msgid "Analog Surround 4.1" +#~ msgstr "Ðналоговий об’ємний 4.1" + +#~ msgid "Analog Surround 5.0" +#~ msgstr "Ðналоговий об’ємний 5.0" + +#~ msgid "Analog Surround 5.1" +#~ msgstr "Ðналоговий об’ємний 5.1" + +#~ msgid "Digital Surround 5.1 (IEC958/AC3)" +#~ msgstr "Цифровий об’ємний 5.1 (IEC958/AC3)" + +#~ msgid "Analog Surround 7.1" +#~ msgstr "Ðналоговий об’ємний 7.1" + +#~ msgid "Stream successfully created\n" +#~ msgstr "Потік було уÑпішно Ñтворено\n" + +#~ msgid "Stream errror: %s\n" +#~ msgstr "Помилка потоку: %s\n" + +#~ msgid "Connection established.\n" +#~ msgstr "Ð—â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð²Ñтановлено.\n" + +#~ msgid "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Show this help\n" +#~ " --version Show version\n" +#~ "\n" +#~ " -v, --verbose Enable verbose operation\n" +#~ "\n" +#~ " -s, --server=SERVER The name of the server to connect " +#~ "to\n" +#~ " -d, --device=DEVICE The name of the sink to connect " +#~ "to\n" +#~ " -n, --client-name=NAME How to call this client on the " +#~ "server\n" +#~ " --stream-name=NAME How to call this stream on the " +#~ "server\n" +#~ " --volume=VOLUME Specify the initial (linear) " +#~ "volume in range 0...65536\n" +#~ " --channel-map=CHANNELMAP Set the channel map to the use\n" +#~ msgstr "" +#~ "%s [параметри] [ФÐЙЛ]\n" +#~ "\n" +#~ " -h, --help Показати цю довідку\n" +#~ " --version Показати дані щодо верÑÑ–Ñ—\n" +#~ "\n" +#~ " -v, --verbose Увімкнути докладний режим дій\n" +#~ "\n" +#~ " -s, --server=СЕРВЕРÐазва Ñервера, з Ñким Ñлід " +#~ "вÑтановити Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ to\n" +#~ " -d, --device=ПРИСТРІЙ Ðазва приймача, з Ñким Ñлід " +#~ "з’єднатиÑÑ\n" +#~ " -n, --client-name=ÐÐЗВРСпоÑіб виклику клієнта на " +#~ "Ñервері\n" +#~ " --stream-name=ÐÐЗВРСпоÑіб виклику потоку на Ñервері\n" +#~ " --volume=ГУЧÐІСТЬ Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— (лінійної) " +#~ "гучноÑÑ‚Ñ– у діапазоні 0..65536\n" +#~ " --channel-map=КÐРТÐ_КÐÐÐЛІВ Ð’Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ°Ñ€Ñ‚Ð¸ каналів, Ñкою " +#~ "Ñлід ÑкориÑтатиÑÑ\n" + +#~ msgid "" +#~ "paplay %s\n" +#~ "Compiled with libpulse %s\n" +#~ "Linked with libpulse %s\n" +#~ msgstr "" +#~ "paplay %s\n" +#~ "Зібрано з libpulse %s\n" +#~ "З’єднано з libpulse %s\n" + +#~ msgid "Invalid channel map\n" +#~ msgstr "Ðекоректна карта каналів\n" + +#~ msgid "Failed to open file '%s'\n" +#~ msgstr "Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл «%s»\n" + +#~ msgid "Channel map doesn't match file.\n" +#~ msgstr "Карта каналів не відповідає файлові.\n" + +#~ msgid "Using sample spec '%s'\n" +#~ msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ñ‡Ð°Ñтотної Ñпецифікації «%s»\n" diff --git a/po/zh_CN.po b/po/zh_CN.po index 03becccf..2da73fe8 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio.master-tx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-21 23:02+0200\n" +"POT-Creation-Date: 2009-06-17 23:42+0200\n" "PO-Revision-Date: 2009-04-06 10:26+1000\n" "Last-Translator: Leah Liu <lliu@redhat.com>\n" "Language-Team: Simplified Chinese <zh@li.org>\n" @@ -20,51 +20,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" -#: ../src/modules/alsa/alsa-util.c:532 -msgid "Analog Mono" -msgstr "模拟å•å£°é“" - -#: ../src/modules/alsa/alsa-util.c:540 -msgid "Analog Stereo" -msgstr "模拟立体声" - -#: ../src/modules/alsa/alsa-util.c:548 -msgid "Digital Stereo (IEC958)" -msgstr "æ•°å—立体声(IEC958)" - -#: ../src/modules/alsa/alsa-util.c:556 -msgid "Digital Stereo (HDMI)" -msgstr "æ•°å—立体声(HDMI)" - -#: ../src/modules/alsa/alsa-util.c:565 -msgid "Analog Surround 4.0" -msgstr "模拟环绕 4.0" - -#: ../src/modules/alsa/alsa-util.c:574 -msgid "Digital Surround 4.0 (IEC958/AC3)" -msgstr "æ•°å—环绕 4.0(IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:584 -msgid "Analog Surround 4.1" -msgstr "模拟环绕 4.1" - -#: ../src/modules/alsa/alsa-util.c:594 -msgid "Analog Surround 5.0" -msgstr "模拟环绕 5.0" - -#: ../src/modules/alsa/alsa-util.c:604 -msgid "Analog Surround 5.1" -msgstr "模拟环绕 5.1" - -#: ../src/modules/alsa/alsa-util.c:614 -msgid "Digital Surround 5.1 (IEC958/AC3)" -msgstr "æ•°å—环绕 5.1(IEC958/AC3)" - -#: ../src/modules/alsa/alsa-util.c:625 -msgid "Analog Surround 7.1" -msgstr "模拟环绕 7.1" - -#: ../src/modules/alsa/alsa-util.c:1646 +#: ../src/modules/alsa/alsa-util.c:1015 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -75,7 +31,7 @@ msgstr "" "snd_pcm_avail() 返回的值éžå¸¸å¤§ï¼š%lu å—节(%lu ms)。\n" "很å¯èƒ½æ˜¯ ALSA é©±åŠ¨ç¨‹åº '%s' ä¸çš„ bugã€‚è¯·å‘ ALSA å¼€å‘者举报这个问题。" -#: ../src/modules/alsa/alsa-util.c:1687 +#: ../src/modules/alsa/alsa-util.c:1056 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -86,7 +42,7 @@ msgstr "" "snd_pcm_delay() 返回的值éžå¸¸å¤§ï¼š%li å—节(%s%lu ms)。\n" "很å¯èƒ½æ˜¯ ALSA é©±åŠ¨ç¨‹åº '%s' ä¸çš„ bugã€‚è¯·å‘ ALSA å¼€å‘者举报这个问题。" -#: ../src/modules/alsa/alsa-util.c:1734 +#: ../src/modules/alsa/alsa-util.c:1103 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -97,11 +53,24 @@ msgstr "" "snd_pcm_mmap_begin() 返回的值éžå¸¸å¤§ï¼š%lu å—节(%lu ms)。\n" "很å¯èƒ½æ˜¯ ALSA é©±åŠ¨ç¨‹åº '%s' ä¸çš„ bugã€‚è¯·å‘ ALSA å¼€å‘者举报这个问题。" -#: ../src/pulsecore/sink.c:2141 +#: ../src/modules/module-ladspa-sink.c:49 +msgid "Virtual LADSPA sink" +msgstr "" + +#: ../src/modules/module-ladspa-sink.c:53 +msgid "" +"sink_name=<name for the sink> sink_properties=<properties for the sink> " +"master=<name of sink to filter> format=<sample format> rate=<sample rate> " +"channels=<number of channels> channel_map=<channel map> plugin=<ladspa " +"plugin name> label=<ladspa plugin label> control=<comma seperated list of " +"input control values>" +msgstr "" + +#: ../src/pulsecore/sink.c:2394 msgid "Internal Audio" msgstr "内部音频" -#: ../src/pulsecore/sink.c:2147 +#: ../src/pulsecore/sink.c:2400 msgid "Modem" msgstr "调制解调器" @@ -171,104 +140,104 @@ msgstr "æ— æ³•èŽ·å–授æƒ: %s" msgid "PolicyKit responded with '%s'" msgstr "PolicyKit回å¤'%s'" -#: ../src/daemon/main.c:138 +#: ../src/daemon/main.c:142 #, c-format msgid "Got signal %s." msgstr "获得信å·%s" -#: ../src/daemon/main.c:165 +#: ../src/daemon/main.c:169 msgid "Exiting." msgstr "退出" -#: ../src/daemon/main.c:183 +#: ../src/daemon/main.c:187 #, c-format msgid "Failed to find user '%s'." msgstr "找ä¸åˆ°ç”¨æˆ· `%s' " -#: ../src/daemon/main.c:188 +#: ../src/daemon/main.c:192 #, c-format msgid "Failed to find group '%s'." msgstr "找ä¸åˆ°ç”¨æˆ·ç»„ `%s'" -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:196 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "å‘现用户'%s' (UID %lu)和组'%s' (GID %lu)." -#: ../src/daemon/main.c:197 +#: ../src/daemon/main.c:201 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "用户'%s'与组'%s'çš„GIDä¸åŒ¹é…." -#: ../src/daemon/main.c:202 +#: ../src/daemon/main.c:206 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "用户'%s'的主文件夹ä¸æ˜¯'%s',忽略。" -#: ../src/daemon/main.c:205 ../src/daemon/main.c:210 +#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 #, c-format msgid "Failed to create '%s': %s" msgstr "创建'%s'失败: %s" -#: ../src/daemon/main.c:217 +#: ../src/daemon/main.c:221 #, c-format msgid "Failed to change group list: %s" msgstr "更改组列表失败:%s" -#: ../src/daemon/main.c:233 +#: ../src/daemon/main.c:237 #, c-format msgid "Failed to change GID: %s" msgstr "更改GID失败:%s" -#: ../src/daemon/main.c:249 +#: ../src/daemon/main.c:253 #, c-format msgid "Failed to change UID: %s" msgstr "更改UID失败:%s" -#: ../src/daemon/main.c:263 +#: ../src/daemon/main.c:267 msgid "Successfully dropped root privileges." msgstr "æˆåŠŸæ”¾å¼ƒrootæƒé™ã€‚" -#: ../src/daemon/main.c:271 +#: ../src/daemon/main.c:275 msgid "System wide mode unsupported on this platform." msgstr "æ¤å¹³å°ä¸æ”¯æŒsystem-wide模å¼ã€‚" -#: ../src/daemon/main.c:289 +#: ../src/daemon/main.c:293 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) 失败:%s" -#: ../src/daemon/main.c:477 +#: ../src/daemon/main.c:481 msgid "Failed to parse command line." msgstr "分æžå‘½ä»¤è¡Œå¤±è´¥ã€‚" -#: ../src/daemon/main.c:501 +#: ../src/daemon/main.c:505 #, c-format msgid "We're in the group '%s', allowing high-priority scheduling." msgstr "我们在'%s'组ä¸ï¼Œå…许高优先级调度。" -#: ../src/daemon/main.c:508 +#: ../src/daemon/main.c:512 #, c-format msgid "We're in the group '%s', allowing real-time scheduling." msgstr "我们在'%s'组ä¸ï¼Œå…许实时调度。" -#: ../src/daemon/main.c:516 +#: ../src/daemon/main.c:520 msgid "PolicyKit grants us acquire-high-priority privilege." msgstr "PolicyKit授予我们“获å–高优先级â€æƒé™ã€‚" -#: ../src/daemon/main.c:519 +#: ../src/daemon/main.c:523 msgid "PolicyKit refuses acquire-high-priority privilege." msgstr "PolicyKitæ‹’ç»â€œèŽ·å–高优先级â€æƒé™ã€‚" -#: ../src/daemon/main.c:524 +#: ../src/daemon/main.c:528 msgid "PolicyKit grants us acquire-real-time privilege." msgstr "PolicyKit授予我们“获å–实时â€æƒé™ã€‚" -#: ../src/daemon/main.c:527 +#: ../src/daemon/main.c:531 msgid "PolicyKit refuses acquire-real-time privilege." msgstr "PolicyKitæ‹’ç»æˆ‘们“获å–实时â€æƒé™ã€‚" -#: ../src/daemon/main.c:556 +#: ../src/daemon/main.c:560 #, c-format msgid "" "Called SUID root and real-time and/or high-priority scheduling was requested " @@ -286,231 +255,241 @@ msgstr "" "è¦å¯ç”¨å®žæ—¶/高优先调度,请获得适当的 PolicyKit 特æƒï¼Œæˆ–者æˆä¸º '%s' æˆå‘˜ï¼Œä¹Ÿå¯" "ä»¥ä¸ºè¿™ä¸ªç”¨æˆ·å¢žåŠ RLIMIT_NICE/RLIMIT_RTPRIO 资æºé™åˆ¶ã€‚" -#: ../src/daemon/main.c:581 +#: ../src/daemon/main.c:585 msgid "" "High-priority scheduling enabled in configuration but not allowed by policy." msgstr "é…ç½®ä¸å·²å¯ç”¨é«˜ä¼˜å…ˆçº§è°ƒåº¦ï¼Œä½†ç–略未å…许。" -#: ../src/daemon/main.c:610 +#: ../src/daemon/main.c:614 msgid "Successfully increased RLIMIT_RTPRIO" msgstr "æ高RLIMIT_RTPRIOæˆåŠŸã€‚" -#: ../src/daemon/main.c:613 +#: ../src/daemon/main.c:617 #, c-format msgid "RLIMIT_RTPRIO failed: %s" msgstr "RLIMIT_RTPRIO失败:%s" -#: ../src/daemon/main.c:620 +#: ../src/daemon/main.c:624 msgid "Giving up CAP_NICE" msgstr "æ£åœ¨æ”¾å¼ƒCAP_NICE" -#: ../src/daemon/main.c:627 +#: ../src/daemon/main.c:631 msgid "" "Real-time scheduling enabled in configuration but not allowed by policy." msgstr "é…ç½®ä¸å·²å¯ç”¨å®žæ—¶è°ƒåº¦ï¼Œä½†ç–略未å…许。" -#: ../src/daemon/main.c:688 +#: ../src/daemon/main.c:692 msgid "Daemon not running" msgstr "åŽå°ç¨‹åºæ²¡æœ‰è¿è¡Œ" -#: ../src/daemon/main.c:690 +#: ../src/daemon/main.c:694 #, c-format msgid "Daemon running as PID %u" msgstr "åŽå°ç¨‹åºæ£åœ¨è¿è¡Œï¼ŒPID %u" -#: ../src/daemon/main.c:700 +#: ../src/daemon/main.c:704 #, c-format msgid "Failed to kill daemon: %s" msgstr "æ€æ»åŽå°ç¨‹åºå¤±è´¥ï¼š%s" -#: ../src/daemon/main.c:718 +#: ../src/daemon/main.c:722 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." msgstr "ä¸åº”以root身份è¿è¡Œæœ¬ç¨‹åºï¼ˆé™¤éžæŒ‡å®š --system)。" -#: ../src/daemon/main.c:720 +#: ../src/daemon/main.c:724 msgid "Root privileges required." msgstr "éœ€è¦ root æƒé™ã€‚" -#: ../src/daemon/main.c:725 +#: ../src/daemon/main.c:729 msgid "--start not supported for system instances." msgstr "系统实例ä¸æ”¯æŒ --start。" -#: ../src/daemon/main.c:730 +#: ../src/daemon/main.c:734 msgid "Running in system mode, but --disallow-exit not set!" msgstr "æ£åœ¨ä»¥ç³»ç»Ÿæ¨¡å¼è¿è¡Œï¼Œä½†æ˜¯ --disallow-exit 未设定ï¼" -#: ../src/daemon/main.c:733 +#: ../src/daemon/main.c:737 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "æ£åœ¨ä»¥ç³»ç»Ÿæ¨¡å¼è¿è¡Œï¼Œä½†æ˜¯ --disallow-module-loading 未设定ï¼" -#: ../src/daemon/main.c:736 +#: ../src/daemon/main.c:740 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "æ£åœ¨ä»¥ç³»ç»Ÿæ¨¡å¼è¿è¡Œï¼Œå¼ºåˆ¶ç¦ç”¨SHM模å¼ï¼" -#: ../src/daemon/main.c:741 +#: ../src/daemon/main.c:745 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "æ£åœ¨ä»¥ç³»ç»Ÿæ¨¡å¼è¿è¡Œï¼Œå¼ºåˆ¶ç¦ç”¨é€€å‡ºç©ºé—²æ—¶é—´ï¼" -#: ../src/daemon/main.c:768 +#: ../src/daemon/main.c:772 msgid "Failed to acquire stdio." msgstr "获å–stdio失败。" -#: ../src/daemon/main.c:774 +#: ../src/daemon/main.c:778 #, c-format msgid "pipe failed: %s" msgstr "管é“失败:%s" -#: ../src/daemon/main.c:779 +#: ../src/daemon/main.c:783 #, c-format msgid "fork() failed: %s" msgstr "fork()失败:%s" -#: ../src/daemon/main.c:793 +#: ../src/daemon/main.c:797 #, c-format msgid "read() failed: %s" msgstr "read()失败:%s" -#: ../src/daemon/main.c:799 +#: ../src/daemon/main.c:803 msgid "Daemon startup failed." msgstr "åŽå°ç¨‹åºå¯åŠ¨å¤±è´¥ã€‚" -#: ../src/daemon/main.c:801 +#: ../src/daemon/main.c:805 msgid "Daemon startup successful." msgstr "åŽå°ç¨‹åºå¯åŠ¨æˆåŠŸã€‚" -#: ../src/daemon/main.c:871 +#: ../src/daemon/main.c:875 #, c-format msgid "This is PulseAudio %s" msgstr "这是 PulseAudio %s" -#: ../src/daemon/main.c:872 +#: ../src/daemon/main.c:876 #, c-format msgid "Compilation host: %s" msgstr "编译主机:%s" -#: ../src/daemon/main.c:873 +#: ../src/daemon/main.c:877 #, c-format msgid "Compilation CFLAGS: %s" msgstr "编译CFLAGS:%s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:880 #, c-format msgid "Running on host: %s" msgstr "æ£åœ¨ä¸»æœºä¸Šè¿è¡Œï¼š%s" -#: ../src/daemon/main.c:879 +#: ../src/daemon/main.c:883 #, c-format msgid "Found %u CPUs." msgstr "找到 %u CPU。" -#: ../src/daemon/main.c:881 +#: ../src/daemon/main.c:885 #, c-format msgid "Page size is %lu bytes" msgstr "页é¢å¤§å°ä¸º%luå—节" -#: ../src/daemon/main.c:884 +#: ../src/daemon/main.c:888 msgid "Compiled with Valgrind support: yes" msgstr "编译å¯ç”¨Valgrind支æŒï¼šæ˜¯" -#: ../src/daemon/main.c:886 +#: ../src/daemon/main.c:890 msgid "Compiled with Valgrind support: no" msgstr "编译å¯ç”¨Valgrind支æŒï¼šå¦" -#: ../src/daemon/main.c:889 +#: ../src/daemon/main.c:893 #, c-format msgid "Running in valgrind mode: %s" msgstr "æ£åœ¨ä»¥valgrind模å¼è¿è¡Œï¼š%s" -#: ../src/daemon/main.c:892 +#: ../src/daemon/main.c:896 msgid "Optimized build: yes" msgstr "优化生æˆï¼šæ˜¯" -#: ../src/daemon/main.c:894 +#: ../src/daemon/main.c:898 msgid "Optimized build: no" msgstr "优化生æˆï¼šå¦" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:902 msgid "NDEBUG defined, all asserts disabled." msgstr "æ‹’ç» NDEBUG,ç¦ç”¨æ‰€æœ‰ assert" -#: ../src/daemon/main.c:900 +#: ../src/daemon/main.c:904 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "æ‹’ç» FASTPATH,åªç¦ç”¨å¿«é€Ÿè·¯å¾„ assert。" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:906 msgid "All asserts enabled." msgstr "å¯ç”¨æ‰€æœ‰ assert。" -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:910 msgid "Failed to get machine ID" msgstr "获å–machine ID失败" -#: ../src/daemon/main.c:909 +#: ../src/daemon/main.c:913 #, c-format msgid "Machine ID is %s." msgstr "machine ID是%s。" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:917 #, fuzzy, c-format msgid "Session ID is %s." msgstr "machine ID是%s。" -#: ../src/daemon/main.c:919 +#: ../src/daemon/main.c:923 #, c-format msgid "Using runtime directory %s." msgstr "æ£åœ¨ä½¿ç”¨è¿è¡Œæ—¶æ–‡ä»¶å¤¹%s。" -#: ../src/daemon/main.c:924 +#: ../src/daemon/main.c:928 #, c-format msgid "Using state directory %s." msgstr "æ£åœ¨ä½¿ç”¨çŠ¶æ€æ–‡ä»¶å¤¹%s。" -#: ../src/daemon/main.c:927 +#: ../src/daemon/main.c:931 #, c-format msgid "Running in system mode: %s" msgstr "æ£åœ¨ä»¥ç³»ç»Ÿæ¨¡å¼è¿è¡Œï¼š%s" -#: ../src/daemon/main.c:942 +#: ../src/daemon/main.c:934 +msgid "" +"OK, so you are running PA in system mode. Please note that you most likely " +"shouldn't be doing that.\n" +"If you do it nonetheless then it's your own fault if things don't work as " +"expected.\n" +"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " +"explanation why system mode is usually a bad idea." +msgstr "" + +#: ../src/daemon/main.c:951 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create()失败。" -#: ../src/daemon/main.c:954 +#: ../src/daemon/main.c:961 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "新鲜的高分辨率计时器开锅了ï¼åƒä¸ªé¥±ï¼" -#: ../src/daemon/main.c:956 +#: ../src/daemon/main.c:963 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" msgstr "è€å…„ï¼Œä½ çš„å†…æ ¸çœŸè‡ï¼çŽ°åœ¨æµè¡Œçš„是å¯ç”¨äº†é«˜åˆ†è¾©çŽ‡è®¡åˆ†å™¨çš„Linuxï¼" -#: ../src/daemon/main.c:970 +#: ../src/daemon/main.c:988 msgid "pa_core_new() failed." msgstr "pa_core_new()失败。" -#: ../src/daemon/main.c:1032 +#: ../src/daemon/main.c:1050 msgid "Failed to initialize daemon." msgstr "åŽå°ç¨‹åºåˆå§‹åŒ–失败。" -#: ../src/daemon/main.c:1037 +#: ../src/daemon/main.c:1055 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "åŽå°ç¨‹åºå¯åŠ¨æœªåŠ 载任何模å—,拒ç»å·¥ä½œã€‚" -#: ../src/daemon/main.c:1054 +#: ../src/daemon/main.c:1072 msgid "Daemon startup complete." msgstr "åŽå°ç¨‹åºå¯åŠ¨å®Œæˆã€‚" -#: ../src/daemon/main.c:1060 +#: ../src/daemon/main.c:1078 msgid "Daemon shutdown initiated." msgstr "开始关é—åŽå°ç¨‹åºã€‚" -#: ../src/daemon/main.c:1082 +#: ../src/daemon/main.c:1100 msgid "Daemon terminated." msgstr "åŽå°ç¨‹åºå·²ç»ˆæ¢ã€‚" -#: ../src/daemon/cmdline.c:121 +#: ../src/daemon/cmdline.c:115 #, c-format msgid "" "%s [options]\n" @@ -637,15 +616,15 @@ msgstr "" "\n" " -n ä¸åŠ 载默认的脚本文件\n" -#: ../src/daemon/cmdline.c:252 +#: ../src/daemon/cmdline.c:247 msgid "--daemonize expects boolean argument" msgstr "--daemonize 期待布尔å‚æ•°" -#: ../src/daemon/cmdline.c:259 +#: ../src/daemon/cmdline.c:254 msgid "--fail expects boolean argument" msgstr "--fail 期待布尔å‚æ•°" -#: ../src/daemon/cmdline.c:269 +#: ../src/daemon/cmdline.c:264 msgid "" "--log-level expects log level argument (either numeric in range 0..4 or one " "of debug, info, notice, warn, error)." @@ -653,52 +632,52 @@ msgstr "" "--log-level 期待日志级别å‚数(å¯ä»¥æ˜¯æ•°å—0~4或者debug,info,notice,warn," "errorä¸çš„一个)" -#: ../src/daemon/cmdline.c:281 +#: ../src/daemon/cmdline.c:276 msgid "--high-priority expects boolean argument" msgstr "--high-priority 期待布尔å‚æ•°" -#: ../src/daemon/cmdline.c:288 +#: ../src/daemon/cmdline.c:283 msgid "--realtime expects boolean argument" msgstr "--realtime 期待布尔å‚æ•°" -#: ../src/daemon/cmdline.c:295 +#: ../src/daemon/cmdline.c:290 msgid "--disallow-module-loading expects boolean argument" msgstr "--disallow-module-loading 期待布尔å‚æ•°" -#: ../src/daemon/cmdline.c:302 +#: ../src/daemon/cmdline.c:297 msgid "--disallow-exit expects boolean argument" msgstr "--disallow-exit 需è¦å¸ƒå°”值å‚æ•°" -#: ../src/daemon/cmdline.c:309 +#: ../src/daemon/cmdline.c:304 msgid "--use-pid-file expects boolean argument" msgstr "--use-pid-file 期待布尔å‚æ•°" -#: ../src/daemon/cmdline.c:326 +#: ../src/daemon/cmdline.c:321 msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgstr "æ— æ•ˆçš„æ—¥å¿—ç›®æ ‡ï¼šä»Žsyslog,stderrå’Œautoä¸é€‰å–一个" -#: ../src/daemon/cmdline.c:333 +#: ../src/daemon/cmdline.c:328 msgid "--log-time expects boolean argument" msgstr "--log-time 需è¦å¸ƒå°”值å‚æ•°" -#: ../src/daemon/cmdline.c:340 +#: ../src/daemon/cmdline.c:335 msgid "--log-meta expects boolean argument" msgstr "--log-meta 需è¦å¸ƒå°”值å‚æ•°" -#: ../src/daemon/cmdline.c:359 +#: ../src/daemon/cmdline.c:354 #, c-format msgid "Invalid resample method '%s'." msgstr "æ— æ•ˆçš„é‡é‡‡æ ·æ–¹æ³•'%s'。" -#: ../src/daemon/cmdline.c:366 +#: ../src/daemon/cmdline.c:361 msgid "--system expects boolean argument" msgstr "--system 期待布尔å‚æ•°" -#: ../src/daemon/cmdline.c:373 +#: ../src/daemon/cmdline.c:368 msgid "--no-cpu-limit expects boolean argument" msgstr "--no-cpu-limit 期待布尔å‚æ•°" -#: ../src/daemon/cmdline.c:380 +#: ../src/daemon/cmdline.c:375 msgid "--disable-shm expects boolean argument" msgstr "--disable-shm 期待布尔å‚æ•°" @@ -737,77 +716,82 @@ msgstr "用法:%s\n" msgid "Load Once: %s\n" msgstr "åŠ è½½ä¸€æ¬¡ï¼š%s\n" -#: ../src/daemon/dumpmodules.c:77 +#: ../src/daemon/dumpmodules.c:75 +#, c-format +msgid "DEPRECATION WARNING: %s\n" +msgstr "" + +#: ../src/daemon/dumpmodules.c:79 #, c-format msgid "Path: %s\n" msgstr "路径:%s\n" -#: ../src/daemon/daemon-conf.c:215 +#: ../src/daemon/daemon-conf.c:216 #, c-format msgid "[%s:%u] Invalid log target '%s'." msgstr "[%s:%u] æ— æ•ˆçš„æ—¥å¿—ç›®æ ‡'%s'。" -#: ../src/daemon/daemon-conf.c:231 +#: ../src/daemon/daemon-conf.c:232 #, c-format msgid "[%s:%u] Invalid log level '%s'." msgstr "[%s:%u] æ— æ•ˆçš„æ—¥å¿—çº§åˆ«'%s'。" -#: ../src/daemon/daemon-conf.c:247 +#: ../src/daemon/daemon-conf.c:248 #, c-format msgid "[%s:%u] Invalid resample method '%s'." msgstr "[%s:%u] æ— æ•ˆçš„é‡é‡‡æ ·æ–¹æ³•'%s'。" -#: ../src/daemon/daemon-conf.c:270 +#: ../src/daemon/daemon-conf.c:271 #, c-format msgid "[%s:%u] Invalid rlimit '%s'." msgstr "[%s:%u] æ— æ•ˆçš„rlimit '%s'。" -#: ../src/daemon/daemon-conf.c:277 +#: ../src/daemon/daemon-conf.c:278 #, c-format msgid "[%s:%u] rlimit not supported on this platform." msgstr "[%s:%u] æ¤å¹³å°ä¸æ”¯æŒrlimit。" -#: ../src/daemon/daemon-conf.c:293 +#: ../src/daemon/daemon-conf.c:294 #, c-format msgid "[%s:%u] Invalid sample format '%s'." msgstr "[%s:%u] æ— æ•ˆçš„æ ·å“æ ¼å¼'%s'。" -#: ../src/daemon/daemon-conf.c:311 +#: ../src/daemon/daemon-conf.c:312 #, c-format msgid "[%s:%u] Invalid sample rate '%s'." msgstr "[%s:%u] æ— æ•ˆçš„æ ·å“率'%s'。" -#: ../src/daemon/daemon-conf.c:335 +#: ../src/daemon/daemon-conf.c:336 #, c-format msgid "[%s:%u] Invalid sample channels '%s'." msgstr "[%s:%u] æ— æ•ˆçš„æ ·å“通é“'%s'。" -#: ../src/daemon/daemon-conf.c:353 +#: ../src/daemon/daemon-conf.c:354 #, c-format msgid "[%s:%u] Invalid channel map '%s'." msgstr "[%s:%u] æ— æ•ˆé¢‘é“地图 '%s'。" -#: ../src/daemon/daemon-conf.c:371 +#: ../src/daemon/daemon-conf.c:372 #, c-format msgid "[%s:%u] Invalid number of fragments '%s'." msgstr "[%s:%u] æ— æ•ˆçš„åˆ†æ®µæ•°'%s'。" -#: ../src/daemon/daemon-conf.c:389 +#: ../src/daemon/daemon-conf.c:390 #, c-format msgid "[%s:%u] Invalid fragment size '%s'." msgstr "[%s:%u] æ— æ•ˆçš„åˆ†æ®µå¤§å°'%s'。" -#: ../src/daemon/daemon-conf.c:407 +#: ../src/daemon/daemon-conf.c:408 #, c-format msgid "[%s:%u] Invalid nice level '%s'." msgstr "[%s:%u] æ— æ•ˆçš„nice level '%s'。" -#: ../src/daemon/daemon-conf.c:522 +#: ../src/daemon/daemon-conf.c:524 #, c-format msgid "Failed to open configuration file: %s" msgstr "打开é…置文件失败:%s" -#: ../src/daemon/daemon-conf.c:538 +#: ../src/daemon/daemon-conf.c:540 msgid "" "The specified default channel map has a different number of channels than " "the specified default number of channels." @@ -852,237 +836,237 @@ msgstr "系统ç–ç•¥é˜²æ¢ PulseAudio 获得高优先调度。" msgid "System policy prevents PulseAudio from acquiring real-time scheduling." msgstr "系统ç–ç•¥é˜²æ¢ PulseAudio 获得实时调度。" -#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804 +#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "å•å£°é“" -#: ../src/pulse/channelmap.c:105 +#: ../src/pulse/channelmap.c:107 msgid "Front Center" msgstr "ä¸å‰" -#: ../src/pulse/channelmap.c:106 +#: ../src/pulse/channelmap.c:108 msgid "Front Left" msgstr "å·¦å‰" -#: ../src/pulse/channelmap.c:107 +#: ../src/pulse/channelmap.c:109 msgid "Front Right" msgstr "å³å‰" -#: ../src/pulse/channelmap.c:109 +#: ../src/pulse/channelmap.c:111 msgid "Rear Center" msgstr "ä¸åŽ" -#: ../src/pulse/channelmap.c:110 +#: ../src/pulse/channelmap.c:112 msgid "Rear Left" msgstr "å·¦åŽ" -#: ../src/pulse/channelmap.c:111 +#: ../src/pulse/channelmap.c:113 msgid "Rear Right" msgstr "å³åŽ" -#: ../src/pulse/channelmap.c:113 +#: ../src/pulse/channelmap.c:115 msgid "Low Frequency Emmiter" msgstr "低频脉冲" -#: ../src/pulse/channelmap.c:115 +#: ../src/pulse/channelmap.c:117 msgid "Front Left-of-center" msgstr "å‰å·¦ä¸å¤®" -#: ../src/pulse/channelmap.c:116 +#: ../src/pulse/channelmap.c:118 msgid "Front Right-of-center" msgstr "å‰å³ä¸å¤®" -#: ../src/pulse/channelmap.c:118 +#: ../src/pulse/channelmap.c:120 msgid "Side Left" msgstr "左侧" -#: ../src/pulse/channelmap.c:119 +#: ../src/pulse/channelmap.c:121 msgid "Side Right" msgstr "å³ä¾§" -#: ../src/pulse/channelmap.c:121 +#: ../src/pulse/channelmap.c:123 msgid "Auxiliary 0" msgstr "辅助 0" -#: ../src/pulse/channelmap.c:122 +#: ../src/pulse/channelmap.c:124 msgid "Auxiliary 1" msgstr "辅助 1" -#: ../src/pulse/channelmap.c:123 +#: ../src/pulse/channelmap.c:125 msgid "Auxiliary 2" msgstr "辅助 2" -#: ../src/pulse/channelmap.c:124 +#: ../src/pulse/channelmap.c:126 msgid "Auxiliary 3" msgstr "辅助 3" -#: ../src/pulse/channelmap.c:125 +#: ../src/pulse/channelmap.c:127 msgid "Auxiliary 4" msgstr "辅助 4" -#: ../src/pulse/channelmap.c:126 +#: ../src/pulse/channelmap.c:128 msgid "Auxiliary 5" msgstr "辅助 5" -#: ../src/pulse/channelmap.c:127 +#: ../src/pulse/channelmap.c:129 msgid "Auxiliary 6" msgstr "辅助 6" -#: ../src/pulse/channelmap.c:128 +#: ../src/pulse/channelmap.c:130 msgid "Auxiliary 7" msgstr "辅助 7" -#: ../src/pulse/channelmap.c:129 +#: ../src/pulse/channelmap.c:131 msgid "Auxiliary 8" msgstr "辅助 7" -#: ../src/pulse/channelmap.c:130 +#: ../src/pulse/channelmap.c:132 msgid "Auxiliary 9" msgstr "辅助 9" -#: ../src/pulse/channelmap.c:131 +#: ../src/pulse/channelmap.c:133 msgid "Auxiliary 10" msgstr "辅助 10" -#: ../src/pulse/channelmap.c:132 +#: ../src/pulse/channelmap.c:134 msgid "Auxiliary 11" msgstr "辅助 11" -#: ../src/pulse/channelmap.c:133 +#: ../src/pulse/channelmap.c:135 msgid "Auxiliary 12" msgstr "辅助 12" -#: ../src/pulse/channelmap.c:134 +#: ../src/pulse/channelmap.c:136 msgid "Auxiliary 13" msgstr "辅助 13" -#: ../src/pulse/channelmap.c:135 +#: ../src/pulse/channelmap.c:137 msgid "Auxiliary 14" msgstr "辅助 14" -#: ../src/pulse/channelmap.c:136 +#: ../src/pulse/channelmap.c:138 msgid "Auxiliary 15" msgstr "辅助 15" -#: ../src/pulse/channelmap.c:137 +#: ../src/pulse/channelmap.c:139 msgid "Auxiliary 16" msgstr "辅助 16" -#: ../src/pulse/channelmap.c:138 +#: ../src/pulse/channelmap.c:140 msgid "Auxiliary 17" msgstr "辅助 17" -#: ../src/pulse/channelmap.c:139 +#: ../src/pulse/channelmap.c:141 msgid "Auxiliary 18" msgstr "辅助 18" -#: ../src/pulse/channelmap.c:140 +#: ../src/pulse/channelmap.c:142 msgid "Auxiliary 19" msgstr "辅助 19" -#: ../src/pulse/channelmap.c:141 +#: ../src/pulse/channelmap.c:143 msgid "Auxiliary 20" msgstr "辅助 20" -#: ../src/pulse/channelmap.c:142 +#: ../src/pulse/channelmap.c:144 msgid "Auxiliary 21" msgstr "辅助 21" -#: ../src/pulse/channelmap.c:143 +#: ../src/pulse/channelmap.c:145 msgid "Auxiliary 22" msgstr "辅助 22" -#: ../src/pulse/channelmap.c:144 +#: ../src/pulse/channelmap.c:146 msgid "Auxiliary 23" msgstr "辅助 23" -#: ../src/pulse/channelmap.c:145 +#: ../src/pulse/channelmap.c:147 msgid "Auxiliary 24" msgstr "辅助 24" -#: ../src/pulse/channelmap.c:146 +#: ../src/pulse/channelmap.c:148 msgid "Auxiliary 25" msgstr "辅助 25" -#: ../src/pulse/channelmap.c:147 +#: ../src/pulse/channelmap.c:149 msgid "Auxiliary 26" msgstr "辅助 26" -#: ../src/pulse/channelmap.c:148 +#: ../src/pulse/channelmap.c:150 msgid "Auxiliary 27" msgstr "辅助 27" -#: ../src/pulse/channelmap.c:149 +#: ../src/pulse/channelmap.c:151 msgid "Auxiliary 28" msgstr "辅助 28" -#: ../src/pulse/channelmap.c:150 +#: ../src/pulse/channelmap.c:152 msgid "Auxiliary 29" msgstr "辅助 29" -#: ../src/pulse/channelmap.c:151 +#: ../src/pulse/channelmap.c:153 msgid "Auxiliary 30" msgstr "辅助 30" -#: ../src/pulse/channelmap.c:152 +#: ../src/pulse/channelmap.c:154 msgid "Auxiliary 31" msgstr "辅助 31" -#: ../src/pulse/channelmap.c:154 +#: ../src/pulse/channelmap.c:156 msgid "Top Center" msgstr "上ä¸" -#: ../src/pulse/channelmap.c:156 +#: ../src/pulse/channelmap.c:158 msgid "Top Front Center" msgstr "上ä¸å‰" -#: ../src/pulse/channelmap.c:157 +#: ../src/pulse/channelmap.c:159 msgid "Top Front Left" msgstr "上左å‰" -#: ../src/pulse/channelmap.c:158 +#: ../src/pulse/channelmap.c:160 msgid "Top Front Right" msgstr "上å³å‰" -#: ../src/pulse/channelmap.c:160 +#: ../src/pulse/channelmap.c:162 msgid "Top Rear Center" msgstr "上ä¸åŽ" -#: ../src/pulse/channelmap.c:161 +#: ../src/pulse/channelmap.c:163 msgid "Top Rear Left" msgstr "上左åŽ" -#: ../src/pulse/channelmap.c:162 +#: ../src/pulse/channelmap.c:164 msgid "Top Rear Right" msgstr "上å³åŽ" -#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167 -#: ../src/pulse/volume.c:170 ../src/pulse/volume.c:196 -#: ../src/pulse/volume.c:216 ../src/pulse/volume.c:246 +#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167 +#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265 +#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315 msgid "(invalid)" msgstr "ï¼ˆæ— æ•ˆï¼‰" -#: ../src/pulse/channelmap.c:808 +#: ../src/pulse/channelmap.c:751 msgid "Stereo" msgstr "立体声" -#: ../src/pulse/channelmap.c:813 +#: ../src/pulse/channelmap.c:756 msgid "Surround 4.0" msgstr "环绕 4.0 " -#: ../src/pulse/channelmap.c:819 +#: ../src/pulse/channelmap.c:762 msgid "Surround 4.1" msgstr "环绕 4.1" -#: ../src/pulse/channelmap.c:825 +#: ../src/pulse/channelmap.c:768 msgid "Surround 5.0" msgstr "环绕 5.0" -#: ../src/pulse/channelmap.c:831 +#: ../src/pulse/channelmap.c:774 msgid "Surround 5.1" msgstr "环绕 5.1" -#: ../src/pulse/channelmap.c:838 +#: ../src/pulse/channelmap.c:781 msgid "Surround 7.1" msgstr "环绕 7.1" @@ -1243,173 +1227,168 @@ msgstr "waitpid():%s" msgid "Received message for unknown extension '%s'" msgstr "收到未知扩展'%s'çš„ä¿¡æ¯" -#: ../src/utils/pacat.c:94 +#: ../src/utils/pacat.c:107 +#, c-format +msgid "Failed to drain stream: %s\n" +msgstr "排出æµå¤±è´¥ï¼š%s\n" + +#: ../src/utils/pacat.c:112 +msgid "Playback stream drained.\n" +msgstr "æµæ’放完毕。\n" + +#: ../src/utils/pacat.c:122 +msgid "Draining connection to server.\n" +msgstr "Draining 连接到æœåŠ¡å™¨ã€‚\n" + +#: ../src/utils/pacat.c:135 +#, c-format +msgid "pa_stream_drain(): %s\n" +msgstr "pa_stream_drain():%s\n" + +#: ../src/utils/pacat.c:158 #, c-format msgid "pa_stream_write() failed: %s\n" msgstr "pa_stream_write()失败:%s\n" -#: ../src/utils/pacat.c:133 +#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 #, c-format msgid "pa_stream_peek() failed: %s\n" msgstr "pa_stream_peek()失败:%s\n" -#: ../src/utils/pacat.c:169 -#, c-format +#: ../src/utils/pacat.c:302 msgid "Stream successfully created.\n" msgstr "æµåˆ›å»ºæˆåŠŸã€‚\n" -#: ../src/utils/pacat.c:172 +#: ../src/utils/pacat.c:305 #, c-format msgid "pa_stream_get_buffer_attr() failed: %s\n" msgstr "pa_stream_get_buffer_attr()失败:%s\n" -#: ../src/utils/pacat.c:176 +#: ../src/utils/pacat.c:309 #, c-format msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgstr "缓冲计é‡ï¼šmaxlength=%u,tlength=%u,prebuf=%u,minreq=%u\n" -#: ../src/utils/pacat.c:179 +#: ../src/utils/pacat.c:312 #, c-format msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgstr "缓冲计é‡ï¼šmaxlength=%u,fragsize=%u\n" -#: ../src/utils/pacat.c:183 +#: ../src/utils/pacat.c:316 #, c-format msgid "Using sample spec '%s', channel map '%s'.\n" msgstr "æ£åœ¨ä½¿ç”¨æ ·å“è§„æ ¼'%s',通é“æ˜ å°„'%s'。\n" -#: ../src/utils/pacat.c:187 +#: ../src/utils/pacat.c:320 #, c-format msgid "Connected to device %s (%u, %ssuspended).\n" msgstr "已连接至设备%s (%u,%s挂起)。\n" -#: ../src/utils/pacat.c:197 +#: ../src/utils/pacat.c:330 #, c-format msgid "Stream error: %s\n" msgstr "æµé”™è¯¯ï¼š%s\n" -#: ../src/utils/pacat.c:207 +#: ../src/utils/pacat.c:340 #, c-format msgid "Stream device suspended.%s \n" msgstr "æµè®¾å¤‡æŒ‚起。%s\n" -#: ../src/utils/pacat.c:209 +#: ../src/utils/pacat.c:342 #, c-format msgid "Stream device resumed.%s \n" msgstr "æµè®¾å¤‡æ¢å¤ã€‚%s\n" -#: ../src/utils/pacat.c:217 +#: ../src/utils/pacat.c:350 #, c-format msgid "Stream underrun.%s \n" msgstr "æµæ¬ è½½è¿è¡Œã€‚%s\n" -#: ../src/utils/pacat.c:224 +#: ../src/utils/pacat.c:357 #, c-format msgid "Stream overrun.%s \n" msgstr "æµè¶…é™è¿è¡Œã€‚%s\n" -#: ../src/utils/pacat.c:231 +#: ../src/utils/pacat.c:364 #, c-format msgid "Stream started.%s \n" msgstr "æµå·²å¯åŠ¨ã€‚%s\n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 #, c-format msgid "Stream moved to device %s (%u, %ssuspended).%s \n" msgstr "æµç§»è‡³è®¾å¤‡%s (%u,%s挂起)。%s\n" -#: ../src/utils/pacat.c:238 +#: ../src/utils/pacat.c:371 msgid "not " msgstr "not " -#: ../src/utils/pacat.c:245 +#: ../src/utils/pacat.c:378 #, c-format msgid "Stream buffer attributes changed.%s \n" msgstr "更改æµæ¢å‡ºå±žæ€§ã€‚%s\n" -#: ../src/utils/pacat.c:278 +#: ../src/utils/pacat.c:411 #, c-format msgid "Connection established.%s \n" msgstr "连接已建立。%s \n" -#: ../src/utils/pacat.c:281 +#: ../src/utils/pacat.c:414 #, c-format msgid "pa_stream_new() failed: %s\n" msgstr "pa_stream_new()失败:%s\n" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:442 #, c-format msgid "pa_stream_connect_playback() failed: %s\n" msgstr "pa_stream_connect_playback()失败:%s\n" -#: ../src/utils/pacat.c:315 +#: ../src/utils/pacat.c:448 #, c-format msgid "pa_stream_connect_record() failed: %s\n" msgstr "pa_stream_connect_playback()失败:%s\n" -#: ../src/utils/pacat.c:329 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:762 ../src/utils/paplay.c:183 +#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 #, c-format msgid "Connection failure: %s\n" msgstr "连接失败:%s\n" -#: ../src/utils/pacat.c:349 ../src/utils/paplay.c:75 -#, c-format -msgid "Failed to drain stream: %s\n" -msgstr "排出æµå¤±è´¥ï¼š%s\n" - -#: ../src/utils/pacat.c:354 ../src/utils/paplay.c:80 -#, c-format -msgid "Playback stream drained.\n" -msgstr "æµæ’放完毕。\n" - -#: ../src/utils/pacat.c:364 ../src/utils/paplay.c:92 -#, c-format -msgid "Draining connection to server.\n" -msgstr "Draining 连接到æœåŠ¡å™¨ã€‚\n" - -#: ../src/utils/pacat.c:390 -#, c-format +#: ../src/utils/pacat.c:495 msgid "Got EOF.\n" msgstr "收到EOF。\n" -#: ../src/utils/pacat.c:396 -#, c-format -msgid "pa_stream_drain(): %s\n" -msgstr "pa_stream_drain():%s\n" - -#: ../src/utils/pacat.c:406 +#: ../src/utils/pacat.c:500 #, c-format msgid "read() failed: %s\n" msgstr "read()失败:%s\n" -#: ../src/utils/pacat.c:438 +#: ../src/utils/pacat.c:532 #, c-format msgid "write() failed: %s\n" msgstr "write()失败:%s\n" -#: ../src/utils/pacat.c:459 -#, c-format +#: ../src/utils/pacat.c:553 msgid "Got signal, exiting.\n" msgstr "收到信å·ï¼Œæ£åœ¨é€€å‡ºã€‚\n" -#: ../src/utils/pacat.c:473 +#: ../src/utils/pacat.c:567 #, c-format msgid "Failed to get latency: %s\n" msgstr "获å–ä¼ è¾“å»¶è¿Ÿå¤±è´¥ï¼š%s\n" -#: ../src/utils/pacat.c:478 +#: ../src/utils/pacat.c:572 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "时间:%0.3f秒;延迟:%0.0f 微秒。 \r" -#: ../src/utils/pacat.c:498 +#: ../src/utils/pacat.c:592 #, c-format msgid "pa_stream_update_timing_info() failed: %s\n" msgstr "pa_stream_update_timing_info()失败:%s\n" -#: ../src/utils/pacat.c:511 -#, c-format +#: ../src/utils/pacat.c:605 +#, fuzzy, c-format msgid "" "%s [options]\n" "\n" @@ -1435,8 +1414,10 @@ msgid "" "44100)\n" " --format=SAMPLEFORMAT The sample type, one of s16le, " "s16be, u8, float32le,\n" -" float32be, ulaw, alaw, s32le, s32be " -"(defaults to s16ne)\n" +" float32be, ulaw, alaw, s32le, s32be, " +"s24le, s24be,\n" +" s24-32le, s24-32be (defaults to " +"s16ne)\n" " --channels=CHANNELS The number of channels, 1 for mono, " "2 for stereo\n" " (defaults to 2)\n" @@ -1459,6 +1440,11 @@ msgid "" "bytes.\n" " --process-time=BYTES Request the specified process time " "per request in bytes.\n" +" --property=PROPERTY=VALUE Set the specified property to the " +"specified value.\n" +" --raw Record/play raw PCM data.\n" +" --file-format=FFORMAT Record/play formatted PCM data.\n" +" --list-file-formats List available file formats.\n" msgstr "" "%s [options]\n" "\n" @@ -1493,7 +1479,7 @@ msgstr "" " --latency=BYTES 请求指定å—节数的延迟。\n" " --process-time=BYTES æ¯æ¬¡è¯·æ±‚指定å—节数的处ç†æ—¶é—´ã€‚\n" -#: ../src/utils/pacat.c:612 +#: ../src/utils/pacat.c:727 #, c-format msgid "" "pacat %s\n" @@ -1504,88 +1490,133 @@ msgstr "" "Compiled with libpulse %s\n" "Linked with libpulse %s\n" -#: ../src/utils/pacat.c:669 +#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "æ— æ•ˆçš„é€šé“æ˜ å°„æè¿°'%s'\n" + +#: ../src/utils/pacat.c:776 +#, fuzzy, c-format +msgid "Invalid stream name '%s'\n" +msgstr "æ— æ•ˆçš„é‡é‡‡æ ·æ–¹æ³•'%s'。" + +#: ../src/utils/pacat.c:813 #, c-format msgid "Invalid channel map '%s'\n" msgstr "æ— æ•ˆçš„é€šé“æ˜ å°„æè¿°'%s'\n" -#: ../src/utils/pacat.c:698 +#: ../src/utils/pacat.c:842 #, c-format msgid "Invalid latency specification '%s'\n" msgstr "æ— æ•ˆçš„å»¶è¿Ÿè§„æ ¼æè¿° %s'\n" -#: ../src/utils/pacat.c:705 +#: ../src/utils/pacat.c:849 #, c-format msgid "Invalid process time specification '%s'\n" msgstr "æ— æ•ˆçš„å¤„ç†æ—¶é—´æè¿° '%s'\n" -#: ../src/utils/pacat.c:716 +#: ../src/utils/pacat.c:861 +#, fuzzy, c-format +msgid "Invalid property '%s'\n" +msgstr "æ— æ•ˆçš„é‡é‡‡æ ·æ–¹æ³•'%s'。" + +#: ../src/utils/pacat.c:878 #, c-format +msgid "Unknown file format %s." +msgstr "" + +#: ../src/utils/pacat.c:897 msgid "Invalid sample specification\n" msgstr "æ— æ•ˆçš„é‡‡æ ·æè¿°\n" -#: ../src/utils/pacat.c:721 +#: ../src/utils/pacat.c:907 #, c-format +msgid "open(): %s\n" +msgstr "open():%s\n" + +#: ../src/utils/pacat.c:912 +#, c-format +msgid "dup2(): %s\n" +msgstr "dup2():%s\n" + +#: ../src/utils/pacat.c:919 +msgid "Too many arguments.\n" +msgstr "å‚数过多。\n" + +#: ../src/utils/pacat.c:930 +#, fuzzy +msgid "Failed to generate sample specification for file.\n" +msgstr "获å–é‡‡æ ·ä¿¡æ¯å¤±è´¥ï¼š%s\n" + +#: ../src/utils/pacat.c:950 +#, fuzzy +msgid "Failed to open audio file.\n" +msgstr "打开声音文件失败。\n" + +#: ../src/utils/pacat.c:956 +msgid "" +"Warning: specified sample specification will be overwritten with " +"specification from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "获å–é‡‡æ ·ä¿¡æ¯å¤±è´¥ï¼š%s\n" + +#: ../src/utils/pacat.c:968 +msgid "Warning: Failed to determine channel map from file.\n" +msgstr "" + +#: ../src/utils/pacat.c:979 msgid "Channel map doesn't match sample specification\n" msgstr "通é“æ˜ å°„ä¸Žé‡‡æ ·æè¿°ä¸åŒ¹é…\n" -#: ../src/utils/pacat.c:728 -#, c-format -msgid "Opening a %s stream with sample specification '%s'.\n" +#: ../src/utils/pacat.c:990 +msgid "Warning: failed to write channel map to file.\n" +msgstr "" + +#: ../src/utils/pacat.c:1005 +#, fuzzy, c-format +msgid "" +"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" msgstr "ä»¥é‡‡æ ·è§„æ ¼'%s'打开%sæµã€‚\n" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "recording" msgstr "æ£åœ¨å½•åˆ¶" -#: ../src/utils/pacat.c:728 +#: ../src/utils/pacat.c:1006 msgid "playback" msgstr "回放" -#: ../src/utils/pacat.c:736 -#, c-format -msgid "open(): %s\n" -msgstr "open():%s\n" - -#: ../src/utils/pacat.c:741 -#, c-format -msgid "dup2(): %s\n" -msgstr "dup2():%s\n" - -#: ../src/utils/pacat.c:751 -#, c-format -msgid "Too many arguments.\n" -msgstr "å‚数过多。\n" - -#: ../src/utils/pacat.c:764 ../src/utils/pasuspender.c:280 -#: ../src/utils/pactl.c:1017 ../src/utils/paplay.c:381 +#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 +#: ../src/utils/pactl.c:1104 #, c-format msgid "pa_mainloop_new() failed.\n" msgstr "pa_mainloop_new()失败。\n" -#: ../src/utils/pacat.c:785 -#, c-format +#: ../src/utils/pacat.c:1051 msgid "io_new() failed.\n" msgstr "io_new()失败。\n" -#: ../src/utils/pacat.c:791 ../src/utils/pasuspender.c:293 -#: ../src/utils/pactl.c:1031 ../src/utils/paplay.c:396 +#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 +#: ../src/utils/pactl.c:1116 #, c-format msgid "pa_context_new() failed.\n" msgstr "pa_context_new()失败。\n" -#: ../src/utils/pacat.c:799 +#: ../src/utils/pacat.c:1066 #, fuzzy, c-format msgid "pa_context_connect() failed: %s\n" msgstr "pa_context_connect()失败:%s" -#: ../src/utils/pacat.c:810 -#, c-format +#: ../src/utils/pacat.c:1077 msgid "time_new() failed.\n" msgstr "time_new()失败。\n" -#: ../src/utils/pacat.c:817 ../src/utils/pasuspender.c:301 -#: ../src/utils/pactl.c:1042 ../src/utils/paplay.c:410 +#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 +#: ../src/utils/pactl.c:1127 #, c-format msgid "pa_mainloop_run() failed.\n" msgstr "pa_mainloop_run()失败。\n" @@ -1615,8 +1646,7 @@ msgstr "æ¢å¤å¤±è´¥ï¼š%s\n" msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "è¦å‘Šï¼šéžæœ¬åœ°å£°éŸ³æœåŠ¡å™¨ï¼Œä¸ä¼šæŒ‚起。\n" -#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:768 -#: ../src/utils/paplay.c:191 +#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" msgstr "收到SIGINT,æ£åœ¨é€€å‡ºã€‚\n" @@ -1644,7 +1674,7 @@ msgstr "" " -s, --server=SERVER è¦è¿žæŽ¥çš„æœåŠ¡å™¨å\n" "\n" -#: ../src/utils/pasuspender.c:251 +#: ../src/utils/pasuspender.c:248 #, c-format msgid "" "pasuspender %s\n" @@ -1655,32 +1685,32 @@ msgstr "" "Compiled with libpulse %s\n" "Linked with libpulse %s\n" -#: ../src/utils/pactl.c:108 +#: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" msgstr "获å–统计数æ®å¤±è´¥ï¼š%s\n" -#: ../src/utils/pactl.c:114 +#: ../src/utils/pactl.c:134 #, c-format msgid "Currently in use: %u blocks containing %s bytes total.\n" msgstr "当å‰ä½¿ç”¨ï¼š%uå—,总共%så—节。\n" -#: ../src/utils/pactl.c:117 +#: ../src/utils/pactl.c:137 #, c-format msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n" msgstr "整个生命周期所得分é…:%uå—,总共%så—节。\n" -#: ../src/utils/pactl.c:120 +#: ../src/utils/pactl.c:140 #, c-format msgid "Sample cache size: %s\n" msgstr "é‡‡æ ·ç¼“å˜å¤§å°ï¼š%s\n" -#: ../src/utils/pactl.c:129 +#: ../src/utils/pactl.c:149 #, c-format msgid "Failed to get server information: %s\n" msgstr "获å–æœåŠ¡å™¨ä¿¡æ¯å¤±è´¥ï¼š%s\n" -#: ../src/utils/pactl.c:137 +#: ../src/utils/pactl.c:157 #, c-format msgid "" "User name: %s\n" @@ -1703,12 +1733,12 @@ msgstr "" "默认æºï¼š %s\n" "Cookie:%08x\n" -#: ../src/utils/pactl.c:178 +#: ../src/utils/pactl.c:198 #, c-format msgid "Failed to get sink information: %s\n" msgstr "获å–音频出å£ä¿¡æ¯å¤±è´¥ï¼š%s\n" -#: ../src/utils/pactl.c:194 +#: ../src/utils/pactl.c:214 #, c-format msgid "" "Sink #%u\n" @@ -1747,12 +1777,22 @@ msgstr "" "\tProperties:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:258 +#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 +#, fuzzy, c-format +msgid "\tPorts:\n" +msgstr "\tProfiles:\n" + +#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 +#, fuzzy, c-format +msgid "\tActive Port: %s\n" +msgstr "\tActive Profile: %s\n" + +#: ../src/utils/pactl.c:290 #, c-format msgid "Failed to get source information: %s\n" msgstr "获å–音频入å£ä¿¡æ¯å¤±è´¥ï¼š%s\n" -#: ../src/utils/pactl.c:274 +#: ../src/utils/pactl.c:306 #, c-format msgid "" "Source #%u\n" @@ -1791,20 +1831,20 @@ msgstr "" "\tProperties:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:306 ../src/utils/pactl.c:350 ../src/utils/pactl.c:385 -#: ../src/utils/pactl.c:422 ../src/utils/pactl.c:481 ../src/utils/pactl.c:482 -#: ../src/utils/pactl.c:492 ../src/utils/pactl.c:536 ../src/utils/pactl.c:537 -#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:586 ../src/utils/pactl.c:587 -#: ../src/utils/pactl.c:594 +#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429 +#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526 +#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581 +#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631 +#: ../src/utils/pactl.c:638 msgid "n/a" msgstr "n/a" -#: ../src/utils/pactl.c:324 +#: ../src/utils/pactl.c:368 #, c-format msgid "Failed to get module information: %s\n" msgstr "获å–模å—ä¿¡æ¯å¤±è´¥ï¼š%s\n" -#: ../src/utils/pactl.c:342 +#: ../src/utils/pactl.c:386 #, c-format msgid "" "Module #%u\n" @@ -1821,12 +1861,12 @@ msgstr "" "\tProperties:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:361 +#: ../src/utils/pactl.c:405 #, c-format msgid "Failed to get client information: %s\n" msgstr "获å–客户端信æ¯å¤±è´¥ï¼š%s\n" -#: ../src/utils/pactl.c:379 +#: ../src/utils/pactl.c:423 #, c-format msgid "" "Client #%u\n" @@ -1841,12 +1881,12 @@ msgstr "" "\tProperties:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:396 +#: ../src/utils/pactl.c:440 #, c-format msgid "Failed to get card information: %s\n" msgstr "获å–声å¡ä¿¡æ¯å¤±è´¥ï¼š%s\n" -#: ../src/utils/pactl.c:414 +#: ../src/utils/pactl.c:458 #, c-format msgid "" "Card #%u\n" @@ -1863,22 +1903,22 @@ msgstr "" "\tProperties:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:428 +#: ../src/utils/pactl.c:472 #, c-format msgid "\tProfiles:\n" msgstr "\tProfiles:\n" -#: ../src/utils/pactl.c:434 +#: ../src/utils/pactl.c:478 #, c-format msgid "\tActive Profile: %s\n" msgstr "\tActive Profile: %s\n" -#: ../src/utils/pactl.c:445 +#: ../src/utils/pactl.c:489 #, c-format msgid "Failed to get sink input information: %s\n" msgstr "获å–音频出å£è¾“入信æ¯å¤±è´¥ï¼š%s\n" -#: ../src/utils/pactl.c:464 +#: ../src/utils/pactl.c:508 #, c-format msgid "" "Sink Input #%u\n" @@ -1915,12 +1955,12 @@ msgstr "" "\tProperties:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:503 +#: ../src/utils/pactl.c:547 #, c-format msgid "Failed to get source output information: %s\n" msgstr "获å–音频入å£è¾“出信æ¯å¤±è´¥ï¼š%s\n" -#: ../src/utils/pactl.c:523 +#: ../src/utils/pactl.c:567 #, c-format msgid "" "Source Output #%u\n" @@ -1949,12 +1989,12 @@ msgstr "" "\tProperties:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:554 +#: ../src/utils/pactl.c:598 #, c-format msgid "Failed to get sample information: %s\n" msgstr "获å–é‡‡æ ·ä¿¡æ¯å¤±è´¥ï¼š%s\n" -#: ../src/utils/pactl.c:572 +#: ../src/utils/pactl.c:616 #, c-format msgid "" "Sample #%u\n" @@ -1985,23 +2025,22 @@ msgstr "" "\tProperties:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:602 ../src/utils/pactl.c:612 +#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 #, c-format msgid "Failure: %s\n" msgstr "失败:%s\n" -#: ../src/utils/pactl.c:636 +#: ../src/utils/pactl.c:680 #, c-format msgid "Failed to upload sample: %s\n" msgstr "ä¸Šä¼ é‡‡æ ·å¤±è´¥ï¼š%s\n" -#: ../src/utils/pactl.c:653 -#, c-format +#: ../src/utils/pactl.c:697 msgid "Premature end of file\n" msgstr "文件过早结æŸ\n" -#: ../src/utils/pactl.c:774 -#, c-format +#: ../src/utils/pactl.c:826 +#, fuzzy, c-format msgid "" "%s [options] stat\n" "%s [options] list\n" @@ -2016,6 +2055,8 @@ msgid "" "%s [options] suspend-sink [SINK] 1|0\n" "%s [options] suspend-source [SOURCE] 1|0\n" "%s [options] set-card-profile [CARD] [PROFILE] \n" +"%s [options] set-sink-port [SINK] [PORT] \n" +"%s [options] set-source-port [SOURCE] [PORT] \n" "\n" " -h, --help Show this help\n" " --version Show version\n" @@ -2047,7 +2088,7 @@ msgstr "" " -n, --client-name=NAME How to call this client on the " "server\n" -#: ../src/utils/pactl.c:826 +#: ../src/utils/pactl.c:880 #, c-format msgid "" "pactl %s\n" @@ -2058,71 +2099,74 @@ msgstr "" "Compiled with libpulse %s\n" "Linked with libpulse %s\n" -#: ../src/utils/pactl.c:865 -#, c-format +#: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "请指定è¦åŠ è½½çš„é‡‡æ ·æ–‡ä»¶\n" -#: ../src/utils/pactl.c:887 -#, c-format +#: ../src/utils/pactl.c:939 msgid "Failed to open sound file.\n" msgstr "打开声音文件失败。\n" -#: ../src/utils/pactl.c:899 -#, c-format +#: ../src/utils/pactl.c:951 +#, fuzzy +msgid "Warning: Failed to determine sample specification from file.\n" +msgstr "ä»¥é‡‡æ ·è§„æ ¼'%s'打开%sæµã€‚\n" + +#: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" msgstr "ä½ å¿…é¡»æŒ‡å®šè¦æ’æ”¾çš„é‡‡æ ·å\n" -#: ../src/utils/pactl.c:911 -#, c-format +#: ../src/utils/pactl.c:973 msgid "You have to specify a sample name to remove\n" msgstr "ä½ å¿…é¡»æŒ‡å®šè¦åˆ é™¤çš„é‡‡æ ·å\n" -#: ../src/utils/pactl.c:919 -#, c-format +#: ../src/utils/pactl.c:982 msgid "You have to specify a sink input index and a sink\n" msgstr "ä½ å¿…é¡»æŒ‡å®šéŸ³é¢‘å‡ºå£ç´¢å¼•å’ŒéŸ³é¢‘出å£\n" -#: ../src/utils/pactl.c:928 -#, c-format +#: ../src/utils/pactl.c:992 msgid "You have to specify a source output index and a source\n" msgstr "ä½ å¿…é¡»æŒ‡å®šéŸ³é¢‘å…¥å£è¾“出索引和音频入å£\n" -#: ../src/utils/pactl.c:942 -#, c-format +#: ../src/utils/pactl.c:1007 msgid "You have to specify a module name and arguments.\n" msgstr "必须指定模å—åå’Œå‚数。\n" -#: ../src/utils/pactl.c:962 -#, c-format +#: ../src/utils/pactl.c:1027 msgid "You have to specify a module index\n" msgstr "必须指定模å—索引\n" -#: ../src/utils/pactl.c:972 -#, c-format +#: ../src/utils/pactl.c:1037 msgid "" "You may not specify more than one sink. You have to specify a boolean " "value.\n" msgstr "ä¸å¯æŒ‡å®šå¤šä¸ªéŸ³é¢‘出å£ã€‚必须指定一个布尔值。\n" -#: ../src/utils/pactl.c:985 -#, c-format +#: ../src/utils/pactl.c:1050 msgid "" "You may not specify more than one source. You have to specify a boolean " "value.\n" msgstr "ä¸å¯æŒ‡å®šå¤šä¸ªæºã€‚必须指定一个布尔值。\n" -#: ../src/utils/pactl.c:997 -#, c-format +#: ../src/utils/pactl.c:1062 msgid "You have to specify a card name/index and a profile name\n" msgstr "ä½ å¿…é¡»æŒ‡å®šå£°å¡å称/索引和侧写å称\n" -#: ../src/utils/pactl.c:1012 -#, c-format +#: ../src/utils/pactl.c:1073 +#, fuzzy +msgid "You have to specify a sink name/index and a port name\n" +msgstr "ä½ å¿…é¡»æŒ‡å®šå£°å¡å称/索引和侧写å称\n" + +#: ../src/utils/pactl.c:1084 +#, fuzzy +msgid "You have to specify a source name/index and a port name\n" +msgstr "ä½ å¿…é¡»æŒ‡å®šå£°å¡å称/索引和侧写å称\n" + +#: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "未指定有效的命令。\n" -#: ../src/utils/pactl.c:1037 ../src/utils/paplay.c:404 +#: ../src/utils/pactl.c:1122 #, c-format msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect()失败:%s" @@ -2205,126 +2249,48 @@ msgstr "åŠ è½½cookieæ•°æ®å¤±è´¥\n" msgid "Not yet implemented.\n" msgstr "尚未实现。\n" -#: ../src/utils/pacmd.c:64 +#: ../src/utils/pacmd.c:61 +msgid "No PulseAudio daemon running, or not running as session daemon." +msgstr "" + +#: ../src/utils/pacmd.c:66 #, c-format msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s" msgstr "socket(PF_UNIX, SOCK_STREAM, 0):%s" -#: ../src/utils/pacmd.c:81 +#: ../src/utils/pacmd.c:83 #, c-format msgid "connect(): %s" msgstr "connect():%s" -#: ../src/utils/pacmd.c:89 +#: ../src/utils/pacmd.c:91 msgid "Failed to kill PulseAudio daemon." msgstr "æ€æ»PulseAudioåŽå°ç¨‹åºå¤±è´¥ã€‚" -#: ../src/utils/pacmd.c:97 +#: ../src/utils/pacmd.c:99 msgid "Daemon not responding." msgstr "åŽå°ç¨‹åºæœªå“应。" -#: ../src/utils/pacmd.c:144 +#: ../src/utils/pacmd.c:146 #, c-format msgid "select(): %s" msgstr "select():%s" -#: ../src/utils/pacmd.c:154 ../src/utils/pacmd.c:171 +#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173 #, c-format msgid "read(): %s" msgstr "read():%s" -#: ../src/utils/pacmd.c:187 ../src/utils/pacmd.c:201 +#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203 #, c-format msgid "write(): %s" msgstr "write():%s" -#: ../src/utils/paplay.c:139 -#, c-format -msgid "Stream successfully created\n" -msgstr "æˆåŠŸåˆ›å»ºæµ\n" - -#: ../src/utils/paplay.c:144 -#, c-format -msgid "Stream errror: %s\n" -msgstr "æµé”™è¯¯ï¼š%s\n" - -#: ../src/utils/paplay.c:165 -#, c-format -msgid "Connection established.\n" -msgstr "连接已建立。\n" - -#: ../src/utils/paplay.c:198 -#, c-format -msgid "" -"%s [options] [FILE]\n" -"\n" -" -h, --help Show this help\n" -" --version Show version\n" -"\n" -" -v, --verbose Enable verbose operation\n" -"\n" -" -s, --server=SERVER The name of the server to connect " -"to\n" -" -d, --device=DEVICE The name of the sink to connect to\n" -" -n, --client-name=NAME How to call this client on the " -"server\n" -" --stream-name=NAME How to call this stream on the " -"server\n" -" --volume=VOLUME Specify the initial (linear) volume " -"in range 0...65536\n" -" --channel-map=CHANNELMAP Set the channel map to the use\n" -msgstr "" -"%s [options] [FILE]\n" -"\n" -" -h, --help 显示æ¤å¸®åŠ©\n" -" --version 显示版本\n" -"\n" -" -v, --verbose å¯ç”¨è¯¦è¿°æ“作\n" -"\n" -" -s, --server=SERVER è¦è¿žæŽ¥çš„æœåŠ¡å™¨å\n" -" -d, --device=DEVICE è¦è¿žæŽ¥çš„音频出å£å\n" -" -n, --client-name=NAME æ¤å®¢æˆ·ç«¯åœ¨æœåŠ¡å™¨ä¸Šçš„å称\n" -" --stream-name=NAME æ¤æµåœ¨æœåŠ¡å™¨ä¸Šçš„å称\n" -" --volume=VOLUME 指定åˆå§‹ï¼ˆçº¿æ€§ï¼‰éŸ³é‡ï¼Œå–值在0...65536" -"之间\n" -" --channel-map=CHANNELMAP 设定使用的通é“æ˜ å°„è¡¨\n" - -#: ../src/utils/paplay.c:255 -#, c-format -msgid "" -"paplay %s\n" -"Compiled with libpulse %s\n" -"Linked with libpulse %s\n" -msgstr "" -"paplay %s\n" -"Compiled with libpulse %s\n" -"Linked with libpulse %s\n" - -#: ../src/utils/paplay.c:292 -#, c-format -msgid "Invalid channel map\n" -msgstr "æ— æ•ˆçš„é€šé“æ˜ å°„è¡¨\n" - -#: ../src/utils/paplay.c:314 -#, c-format -msgid "Failed to open file '%s'\n" -msgstr "打开文件'%s'失败\n" - -#: ../src/utils/paplay.c:350 -#, c-format -msgid "Channel map doesn't match file.\n" -msgstr "通é“æ˜ å°„è¡¨ä¸Žæ–‡ä»¶ä¸åŒ¹é…。\n" - -#: ../src/utils/paplay.c:376 -#, c-format -msgid "Using sample spec '%s'\n" -msgstr "æ£åœ¨ä½¿ç”¨é‡‡æ ·è§„æ ¼'%s'\n" - #: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 msgid "Cannot access autospawn lock." msgstr "ä¸èƒ½è®¿é—®autospawné”。" -#: ../src/modules/alsa/alsa-sink.c:393 ../src/modules/alsa/alsa-sink.c:541 +#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2340,7 +2306,7 @@ msgstr "" "æ醒我们设置 POLLOUT -- 但结果是 snd_pcm_avail() 返回 0 或者å¦ä¸€ä¸ªå°äºŽæœ€å°å¯" "用值的数值。" -#: ../src/modules/alsa/alsa-source.c:377 ../src/modules/alsa/alsa-source.c:516 +#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2356,34 +2322,126 @@ msgstr "" "æ醒我们设置 POLLOUT -- 但结果是 snd_pcm_avail() 返回 0 或者å¦ä¸€ä¸ªå°äºŽæœ€å°å¯" "用值的数值。" -#: ../src/modules/alsa/module-alsa-card.c:114 -#, c-format -msgid "Output %s + Input %s" -msgstr "输出 %s + 输入 %s" - -#: ../src/modules/alsa/module-alsa-card.c:117 -#, c-format -msgid "Output %s" -msgstr "输出 %s" - -#: ../src/modules/alsa/module-alsa-card.c:121 -#, c-format -msgid "Input %s" -msgstr "输入 %s" - -#: ../src/modules/alsa/module-alsa-card.c:170 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2006 +#: ../src/modules/alsa/module-alsa-card.c:152 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 msgid "Off" msgstr "å…³é—" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1976 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 msgid "High Fidelity Playback (A2DP)" msgstr "高ä¿çœŸå›žæ”¾ï¼ˆA2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:1991 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 msgid "Telephony Duplex (HSP/HFP)" msgstr "åŒå·¥ç”µè¯ï¼ˆHSP/HFP)" -#: ../src/modules/reserve-wrap.c:139 +#: ../src/modules/reserve-wrap.c:151 msgid "PulseAudio Sound Server" msgstr "PulseAudio 声音æœåŠ¡å™¨" + +#~ msgid "Analog Mono" +#~ msgstr "模拟å•å£°é“" + +#~ msgid "Analog Stereo" +#~ msgstr "模拟立体声" + +#~ msgid "Digital Stereo (IEC958)" +#~ msgstr "æ•°å—立体声(IEC958)" + +#~ msgid "Digital Stereo (HDMI)" +#~ msgstr "æ•°å—立体声(HDMI)" + +#~ msgid "Analog Surround 4.0" +#~ msgstr "模拟环绕 4.0" + +#~ msgid "Digital Surround 4.0 (IEC958/AC3)" +#~ msgstr "æ•°å—环绕 4.0(IEC958/AC3)" + +#~ msgid "Analog Surround 4.1" +#~ msgstr "模拟环绕 4.1" + +#~ msgid "Analog Surround 5.0" +#~ msgstr "模拟环绕 5.0" + +#~ msgid "Analog Surround 5.1" +#~ msgstr "模拟环绕 5.1" + +#~ msgid "Digital Surround 5.1 (IEC958/AC3)" +#~ msgstr "æ•°å—环绕 5.1(IEC958/AC3)" + +#~ msgid "Analog Surround 7.1" +#~ msgstr "模拟环绕 7.1" + +#~ msgid "Output %s + Input %s" +#~ msgstr "输出 %s + 输入 %s" + +#~ msgid "Output %s" +#~ msgstr "输出 %s" + +#~ msgid "Input %s" +#~ msgstr "输入 %s" + +#~ msgid "Stream successfully created\n" +#~ msgstr "æˆåŠŸåˆ›å»ºæµ\n" + +#~ msgid "Stream errror: %s\n" +#~ msgstr "æµé”™è¯¯ï¼š%s\n" + +#~ msgid "Connection established.\n" +#~ msgstr "连接已建立。\n" + +#~ msgid "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help Show this help\n" +#~ " --version Show version\n" +#~ "\n" +#~ " -v, --verbose Enable verbose operation\n" +#~ "\n" +#~ " -s, --server=SERVER The name of the server to connect " +#~ "to\n" +#~ " -d, --device=DEVICE The name of the sink to connect " +#~ "to\n" +#~ " -n, --client-name=NAME How to call this client on the " +#~ "server\n" +#~ " --stream-name=NAME How to call this stream on the " +#~ "server\n" +#~ " --volume=VOLUME Specify the initial (linear) " +#~ "volume in range 0...65536\n" +#~ " --channel-map=CHANNELMAP Set the channel map to the use\n" +#~ msgstr "" +#~ "%s [options] [FILE]\n" +#~ "\n" +#~ " -h, --help 显示æ¤å¸®åŠ©\n" +#~ " --version 显示版本\n" +#~ "\n" +#~ " -v, --verbose å¯ç”¨è¯¦è¿°æ“作\n" +#~ "\n" +#~ " -s, --server=SERVER è¦è¿žæŽ¥çš„æœåŠ¡å™¨å\n" +#~ " -d, --device=DEVICE è¦è¿žæŽ¥çš„音频出å£å\n" +#~ " -n, --client-name=NAME æ¤å®¢æˆ·ç«¯åœ¨æœåŠ¡å™¨ä¸Šçš„å称\n" +#~ " --stream-name=NAME æ¤æµåœ¨æœåŠ¡å™¨ä¸Šçš„å称\n" +#~ " --volume=VOLUME 指定åˆå§‹ï¼ˆçº¿æ€§ï¼‰éŸ³é‡ï¼Œå–值在" +#~ "0...65536之间\n" +#~ " --channel-map=CHANNELMAP 设定使用的通é“æ˜ å°„è¡¨\n" + +#~ msgid "" +#~ "paplay %s\n" +#~ "Compiled with libpulse %s\n" +#~ "Linked with libpulse %s\n" +#~ msgstr "" +#~ "paplay %s\n" +#~ "Compiled with libpulse %s\n" +#~ "Linked with libpulse %s\n" + +#~ msgid "Invalid channel map\n" +#~ msgstr "æ— æ•ˆçš„é€šé“æ˜ å°„è¡¨\n" + +#~ msgid "Failed to open file '%s'\n" +#~ msgstr "打开文件'%s'失败\n" + +#~ msgid "Channel map doesn't match file.\n" +#~ msgstr "通é“æ˜ å°„è¡¨ä¸Žæ–‡ä»¶ä¸åŒ¹é…。\n" + +#~ msgid "Using sample spec '%s'\n" +#~ msgstr "æ£åœ¨ä½¿ç”¨é‡‡æ ·è§„æ ¼'%s'\n" diff --git a/shave-libtool.in b/shave-libtool.in deleted file mode 100644 index 1f3a720c..00000000 --- a/shave-libtool.in +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/sh - -# we need sed -SED=@SED@ -if test -z "$SED" ; then -SED=sed -fi - -lt_unmangle () -{ - last_result=`echo $1 | $SED -e 's#.libs/##' -e 's#[0-9a-zA-Z_\-\.]*_la-##'` -} - -# the real libtool to use -LIBTOOL="$1" -shift - -# if 1, don't print anything, the underlaying wrapper will do it -pass_though=0 - -# scan the arguments, keep the right ones for libtool, and discover the mode -preserved_args= -while test "$#" -gt 0; do - opt="$1" - shift - - case $opt in - --mode=*) - mode=`echo $opt | $SED -e 's/[-_a-zA-Z0-9]*=//'` - preserved_args="$preserved_args $opt" - ;; - -o) - lt_output="$1" - preserved_args="$preserved_args $opt" - ;; - *) - preserved_args="$preserved_args $opt" - ;; - esac -done - -case "$mode" in -compile) - # shave will be called and print the actual CC/CXX/LINK line - preserved_args="$preserved_args --shave-mode=$mode" - pass_though=1 - ;; -link) - preserved_args="$preserved_args --shave-mode=$mode" - Q=" LINK " - ;; -*) - # let's u - # echo "*** libtool: Unimplemented mode: $mode, fill a bug report" - ;; -esac - -lt_unmangle "$lt_output" -output=$last_result - -if test -z $V; then - if test $pass_though -eq 0; then - echo "$Q$output" - fi - $LIBTOOL --silent $preserved_args -else - echo $LIBTOOL $preserved_args - $LIBTOOL $preserved_args -fi diff --git a/shave.in b/shave.in deleted file mode 100644 index 5c16f27a..00000000 --- a/shave.in +++ /dev/null @@ -1,79 +0,0 @@ -#!/bin/sh - -# we need sed -SED=@SED@ -if test -z "$SED" ; then -SED=sed -fi - -lt_unmangle () -{ - last_result=`echo $1 | $SED -e 's#.libs/##' -e 's#[0-9a-zA-Z_\-\.]*_la-##'` -} - -# the tool to wrap (cc, cxx, ar, ranlib, ..) -tool="$1" -shift - -# the reel tool (to call) -REEL_TOOL="$1" -shift - -pass_through=0 -preserved_args= -while test "$#" -gt 0; do - opt="$1" - shift - - case $opt in - --shave-mode=*) - mode=`echo $opt | $SED -e 's/[-_a-zA-Z0-9]*=//'` - ;; - -o) - lt_output="$1" - preserved_args="$preserved_args $opt" - ;; - *) - preserved_args="$preserved_args $opt" - ;; - esac -done - -# mode=link is handled in the libtool wrapper -case "$mode,$tool" in -link,*) - pass_through=1 - ;; -*,cxx) - Q=" CXX " - ;; -*,cc) - Q=" CC " - ;; -*,fc) - Q=" FC " - ;; -*,f77) - Q=" F77 " - ;; -*,objc) - Q=" OBJC " - ;; -*,*) - # should not happen - Q=" CC " - ;; -esac - -lt_unmangle "$lt_output" -output=$last_result - -if test -z $V; then - if test $pass_through -eq 0; then - echo "$Q$output" - fi - $REEL_TOOL $preserved_args -else - echo $REEL_TOOL $preserved_args - $REEL_TOOL $preserved_args -fi diff --git a/src/Makefile.am b/src/Makefile.am index d28ffa1e..b1bc4976 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -29,6 +29,9 @@ pulsecoreincludedir=$(includedir)/pulsecore pulseconfdir=$(sysconfdir)/pulse pulselibexecdir=$(libexecdir)/pulse xdgautostartdir=$(sysconfdir)/xdg/autostart +alsaprofilesetsdir=$(datadir)/pulseaudio/alsa-mixer/profile-sets +alsapathsdir=$(datadir)/pulseaudio/alsa-mixer/paths +udevrulesdir=/lib/udev/rules.d ################################### # Defines # @@ -61,6 +64,11 @@ AM_CFLAGS = \ -I$(top_srcdir)/src/modules/alsa \ -I$(top_builddir)/src/modules/alsa \ -I$(top_srcdir)/src/modules/raop \ + -I$(top_builddir)/src/modules/raop \ + -I$(top_srcdir)/src/modules/x11 \ + -I$(top_builddir)/src/modules/x11 \ + -I$(top_srcdir)/src/modules/jack \ + -I$(top_builddir)/src/modules/jack \ $(PTHREAD_CFLAGS) -D_POSIX_PTHREAD_SEMANTICS \ $(LIBSAMPLERATE_CFLAGS) \ $(LIBSNDFILE_CFLAGS) \ @@ -73,7 +81,9 @@ AM_CFLAGS = \ -DPA_SYSTEM_STATE_PATH=\"$(PA_SYSTEM_STATE_PATH)\" \ -DAO_REQUIRE_CAS \ -DPULSE_LOCALEDIR=\"$(pulselocaledir)\" \ - -DPA_MACHINE_ID=\"$(localstatedir)/lib/dbus/machine-id\" + -DPA_MACHINE_ID=\"$(localstatedir)/lib/dbus/machine-id\" \ + -DPA_ALSA_PATHS_DIR=\"$(alsapathsdir)\" \ + -DPA_ALSA_PROFILE_SETS_DIR=\"$(alsaprofilesetsdir)\" AM_LIBADD = $(PTHREAD_LIBS) $(INTLLIBS) AM_LDADD = $(PTHREAD_LIBS) $(INTLLIBS) @@ -109,7 +119,25 @@ EXTRA_DIST = \ modules/module-defs.h.m4 \ daemon/pulseaudio.desktop.in \ map-file \ - daemon/org.pulseaudio.policy.in + modules/alsa/mixer/profile-sets/default.conf \ + modules/alsa/mixer/profile-sets/native-instruments-audio4dj.conf \ + modules/alsa/mixer/profile-sets/native-instruments-audio8dj.conf \ + modules/alsa/mixer/profile-sets/90-pulseaudio.rules \ + modules/alsa/mixer/paths/analog-input-aux.conf \ + modules/alsa/mixer/paths/analog-input.conf \ + modules/alsa/mixer/paths/analog-input.conf.common \ + modules/alsa/mixer/paths/analog-input-fm.conf \ + modules/alsa/mixer/paths/analog-input-linein.conf \ + modules/alsa/mixer/paths/analog-input-mic.conf \ + modules/alsa/mixer/paths/analog-input-mic.conf.common \ + modules/alsa/mixer/paths/analog-input-mic-line.conf \ + modules/alsa/mixer/paths/analog-input-tvtuner.conf \ + modules/alsa/mixer/paths/analog-input-video.conf \ + modules/alsa/mixer/paths/analog-output.conf \ + modules/alsa/mixer/paths/analog-output.conf.common \ + modules/alsa/mixer/paths/analog-output-headphones.conf \ + modules/alsa/mixer/paths/analog-output-lfe-on-mono.conf \ + modules/alsa/mixer/paths/analog-output-mono.conf pulseconf_DATA = \ default.pa \ @@ -161,16 +189,6 @@ else pulseaudio_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS) -dlopen force $(foreach f,$(PREOPEN_LIBS),-dlopen $(f)) endif -if HAVE_POLKIT -policy_in_files = daemon/org.pulseaudio.policy.in -policy_DATA = $(policy_in_files:.policy.in=.policy) -@INTLTOOL_POLICY_RULE@ - -pulseaudio_SOURCES += daemon/polkit.c daemon/polkit.h -pulseaudio_CFLAGS += $(POLKIT_CFLAGS) -pulseaudio_LDADD += $(POLKIT_LIBS) -endif - ################################### # Utility programs # ################################### @@ -549,7 +567,9 @@ libpulsecommon_@PA_MAJORMINORMICRO@_la_SOURCES = \ pulsecore/authkey.c pulsecore/authkey.h \ pulsecore/conf-parser.c pulsecore/conf-parser.h \ pulsecore/core-error.c pulsecore/core-error.h \ + pulsecore/core-rtclock.c pulsecore/core-rtclock.h \ pulsecore/core-util.c pulsecore/core-util.h \ + pulsecore/rtkit.c pulsecore/rtkit.h \ pulsecore/creds.h \ pulsecore/dynarray.c pulsecore/dynarray.h \ pulsecore/endianmacros.h \ @@ -587,7 +607,6 @@ libpulsecommon_@PA_MAJORMINORMICRO@_la_SOURCES = \ pulsecore/queue.c pulsecore/queue.h \ pulsecore/random.c pulsecore/random.h \ pulsecore/refcnt.h \ - pulsecore/rtclock.c pulsecore/rtclock.h \ pulsecore/shm.c pulsecore/shm.h \ pulsecore/bitset.c pulsecore/bitset.h \ pulsecore/socket-client.c pulsecore/socket-client.h \ @@ -665,6 +684,7 @@ pulseinclude_HEADERS = \ pulse/operation.h \ pulse/proplist.h \ pulse/pulseaudio.h \ + pulse/rtclock.h \ pulse/sample.h \ pulse/scache.h \ pulse/simple.h \ @@ -715,6 +735,7 @@ libpulse_la_SOURCES = \ pulse/operation.c pulse/operation.h \ pulse/proplist.c pulse/proplist.h \ pulse/pulseaudio.h \ + pulse/rtclock.c pulse/rtclock.h \ pulse/sample.c pulse/sample.h \ pulse/scache.c pulse/scache.h \ pulse/stream.c pulse/stream.h \ @@ -799,7 +820,6 @@ libpulsecore_@PA_MAJORMINORMICRO@_la_SOURCES = \ pulsecore/protocol-dbus.h \ pulsecore/resampler.c pulsecore/resampler.h \ pulsecore/rtpoll.c pulsecore/rtpoll.h \ - pulsecore/rtsig.c pulsecore/rtsig.h \ pulsecore/sample-util.c pulsecore/sample-util.h \ pulsecore/sconv-s16be.c pulsecore/sconv-s16be.h \ pulsecore/sconv-s16le.c pulsecore/sconv-s16le.h \ @@ -955,6 +975,7 @@ modlibexec_LTLIBRARIES += \ module-default-device-restore.la \ module-always-sink.la \ module-rescue-streams.la \ + module-intended-roles.la \ module-suspend-on-idle.la \ module-http-protocol-tcp.la \ module-sine.la \ @@ -1027,6 +1048,32 @@ modlibexec_LTLIBRARIES += \ module-alsa-sink.la \ module-alsa-source.la \ module-alsa-card.la + +alsaprofilesets_DATA = \ + 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 + +udevrules_DATA = \ + modules/alsa/mixer/profile-sets/90-pulseaudio.rules + +alsapaths_DATA = \ + modules/alsa/mixer/paths/analog-input-aux.conf \ + modules/alsa/mixer/paths/analog-input.conf \ + modules/alsa/mixer/paths/analog-input.conf.common \ + modules/alsa/mixer/paths/analog-input-fm.conf \ + modules/alsa/mixer/paths/analog-input-linein.conf \ + modules/alsa/mixer/paths/analog-input-mic.conf \ + modules/alsa/mixer/paths/analog-input-mic.conf.common \ + modules/alsa/mixer/paths/analog-input-mic-line.conf \ + modules/alsa/mixer/paths/analog-input-tvtuner.conf \ + modules/alsa/mixer/paths/analog-input-video.conf \ + modules/alsa/mixer/paths/analog-output.conf \ + modules/alsa/mixer/paths/analog-output.conf.common \ + modules/alsa/mixer/paths/analog-output-headphones.conf \ + modules/alsa/mixer/paths/analog-output-lfe-on-mono.conf \ + modules/alsa/mixer/paths/analog-output-mono.conf + endif if HAVE_SOLARIS @@ -1074,6 +1121,11 @@ modlibexec_LTLIBRARIES += \ module-hal-detect.la endif +if HAVE_UDEV +modlibexec_LTLIBRARIES += \ + module-udev-detect.la +endif + if HAVE_DBUS modlibexec_LTLIBRARIES += \ module-rygel-media-server.la \ @@ -1158,13 +1210,15 @@ SYMDEF_FILES = \ modules/module-default-device-restore-symdef.h \ modules/module-always-sink-symdef.h \ modules/module-rescue-streams-symdef.h \ + modules/module-intended-roles-symdef.h \ modules/module-suspend-on-idle-symdef.h \ modules/module-hal-detect-symdef.h \ + modules/module-udev-detect-symdef.h \ modules/bluetooth/module-bluetooth-proximity-symdef.h \ modules/bluetooth/module-bluetooth-discover-symdef.h \ modules/bluetooth/module-bluetooth-device-symdef.h \ - modules/module-raop-sink-symdef.h \ - modules/module-raop-discover-symdef.h \ + modules/raop/module-raop-sink-symdef.h \ + modules/raop/module-raop-discover-symdef.h \ modules/gconf/module-gconf-symdef.h \ modules/module-position-event-sounds-symdef.h \ modules/module-augment-properties-symdef.h \ @@ -1355,7 +1409,7 @@ module_oss_la_LIBADD = $(AM_LIBADD) liboss-util.la libpulsecore-@PA_MAJORMINORMI # ALSA -libalsa_util_la_SOURCES = modules/alsa/alsa-util.c modules/alsa/alsa-util.h modules/alsa/alsa-sink.c modules/alsa/alsa-sink.h modules/alsa/alsa-source.c modules/alsa/alsa-source.h modules/reserve-wrap.c modules/reserve-wrap.h +libalsa_util_la_SOURCES = modules/alsa/alsa-util.c modules/alsa/alsa-util.h modules/alsa/alsa-mixer.c modules/alsa/alsa-mixer.h modules/alsa/alsa-sink.c modules/alsa/alsa-sink.h modules/alsa/alsa-source.c modules/alsa/alsa-source.h modules/reserve-wrap.c modules/reserve-wrap.h libalsa_util_la_LDFLAGS = -avoid-version libalsa_util_la_LIBADD = $(AM_LIBADD) $(ASOUNDLIB_LIBS) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la libalsa_util_la_CFLAGS = $(AM_CFLAGS) $(ASOUNDLIB_CFLAGS) @@ -1373,7 +1427,7 @@ libalsa_util_la_CFLAGS += $(UDEV_CFLAGS) endif if HAVE_DBUS -libalsa_util_la_SOURCES += modules/reserve.h modules/reserve.c +libalsa_util_la_SOURCES += modules/reserve.h modules/reserve.c modules/reserve-monitor.h modules/reserve-monitor.c libalsa_util_la_LIBADD += $(DBUS_LIBS) libalsa_util_la_CFLAGS += $(DBUS_CFLAGS) endif @@ -1499,6 +1553,12 @@ module_rescue_streams_la_LDFLAGS = $(MODULE_LDFLAGS) module_rescue_streams_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_rescue_streams_la_CFLAGS = $(AM_CFLAGS) +# Automatically move streams to devices that are intended for their roles +module_intended_roles_la_SOURCES = modules/module-intended-roles.c +module_intended_roles_la_LDFLAGS = $(MODULE_LDFLAGS) +module_intended_roles_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la +module_intended_roles_la_CFLAGS = $(AM_CFLAGS) + # Suspend-on-idle module module_suspend_on_idle_la_SOURCES = modules/module-suspend-on-idle.c module_suspend_on_idle_la_LDFLAGS = $(MODULE_LDFLAGS) @@ -1533,6 +1593,11 @@ 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) +module_udev_detect_la_SOURCES = modules/module-udev-detect.c +module_udev_detect_la_LDFLAGS = $(MODULE_LDFLAGS) +module_udev_detect_la_LIBADD = $(AM_LIBADD) $(UDEV_LIBS) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la +module_udev_detect_la_CFLAGS = $(AM_CFLAGS) $(UDEV_CFLAGS) + module_console_kit_la_SOURCES = modules/module-console-kit.c module_console_kit_la_LDFLAGS = $(MODULE_LDFLAGS) module_console_kit_la_LIBADD = $(AM_LIBADD) $(DBUS_LIBS) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la @@ -1589,11 +1654,11 @@ module_bluetooth_device_la_LIBADD = $(AM_LIBADD) $(DBUS_LIBS) libpulsecore-@PA_M module_bluetooth_device_la_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS) # Apple Airtunes/RAOP -module_raop_sink_la_SOURCES = modules/module-raop-sink.c +module_raop_sink_la_SOURCES = modules/raop/module-raop-sink.c module_raop_sink_la_LDFLAGS = $(MODULE_LDFLAGS) module_raop_sink_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la librtp.la libraop.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la -module_raop_discover_la_SOURCES = modules/module-raop-discover.c +module_raop_discover_la_SOURCES = modules/raop/module-raop-discover.c module_raop_discover_la_LDFLAGS = $(MODULE_LDFLAGS) module_raop_discover_la_LIBADD = $(AM_LIBADD) $(AVAHI_LIBS) libavahi-wrap.la libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_raop_discover_la_CFLAGS = $(AM_CFLAGS) $(AVAHI_CFLAGS) @@ -1608,11 +1673,7 @@ module_rygel_media_server_la_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS) # Some minor stuff # ################################### -suid: pulseaudio .libs/lt-pulseaudio - chown root $^ - chmod u+s $^ - -CLEANFILES = esdcompat client.conf default.pa system.pa daemon.conf start-pulseaudio-x11 daemon/pulseaudio.desktop daemon/org.pulseaudio.policy +CLEANFILES = esdcompat client.conf default.pa system.pa daemon.conf start-pulseaudio-x11 daemon/pulseaudio.desktop esdcompat: daemon/esdcompat.in Makefile sed -e 's,@PACKAGE_VERSION\@,$(PACKAGE_VERSION),g' \ @@ -1650,7 +1711,6 @@ daemon.conf: daemon/daemon.conf.in Makefile install-exec-hook: chown root $(DESTDIR)$(bindir)/pulseaudio ; true - chmod u+s $(DESTDIR)$(bindir)/pulseaudio -chmod u+s $(DESTDIR)$(pulselibexecdir)/proximity-helper ln -sf pacat $(DESTDIR)$(bindir)/parec ln -sf pacat $(DESTDIR)$(bindir)/pamon @@ -1685,10 +1745,15 @@ update-sbc: done update-reserve: - for i in reserve.c reserve.h ; do \ + for i in reserve.c reserve.h reserve-monitor.c reserve-monitor.h ; do \ wget -O modules/$$i http://git.0pointer.de/\?p=reserve.git\;a=blob_plain\;f=$$i\;hb=master ; \ done +update-rtkit: + for i in rtkit.c rtkit.h ; do \ + wget -O pulsecore/$$i http://git.0pointer.de/\?p=rtkit.git\;a=blob_plain\;f=$$i\;hb=master ; \ + done + # Automatically generate linker version script. We use the same one for all public .sos update-map-file: ( echo "PULSE_0 {" ; \ diff --git a/src/daemon/caps.c b/src/daemon/caps.c index d2ae8d0e..294be494 100644 --- a/src/daemon/caps.c +++ b/src/daemon/caps.c @@ -39,6 +39,7 @@ #ifdef HAVE_SYS_CAPABILITY_H #include <sys/capability.h> #endif + #ifdef HAVE_SYS_PRCTL_H #include <sys/prctl.h> #endif @@ -51,12 +52,13 @@ int setresgid(gid_t r, gid_t e, gid_t s); int setresuid(uid_t r, uid_t e, uid_t s); #endif -#ifdef HAVE_GETUID - /* Drop root rights when called SUID root */ void pa_drop_root(void) { - uid_t uid = getuid(); +#ifdef HAVE_GETUID + uid_t uid; + + uid = getuid(); if (uid == 0 || geteuid() != 0) return; @@ -73,90 +75,19 @@ void pa_drop_root(void) { pa_assert_se(getuid() == uid); pa_assert_se(geteuid() == uid); -} - -#else - -void pa_drop_root(void) { -} - -#endif - -#if defined(HAVE_SYS_CAPABILITY_H) && defined(HAVE_SYS_PRCTL_H) - -/* Limit permitted capabilities set to CAPSYS_NICE */ -void pa_limit_caps(void) { - cap_t caps; - cap_value_t nice_cap = CAP_SYS_NICE; - - pa_assert_se(caps = cap_init()); - pa_assert_se(cap_clear(caps) == 0); - pa_assert_se(cap_set_flag(caps, CAP_EFFECTIVE, 1, &nice_cap, CAP_SET) == 0); - pa_assert_se(cap_set_flag(caps, CAP_PERMITTED, 1, &nice_cap, CAP_SET) == 0); - - if (cap_set_proc(caps) < 0) - /* Hmm, so we couldn't limit our caps, which probably means we - * hadn't any in the first place, so let's just make sure of - * that */ - pa_drop_caps(); - else - pa_log_info(_("Limited capabilities successfully to CAP_SYS_NICE.")); - - pa_assert_se(cap_free(caps) == 0); - - pa_assert_se(prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0) == 0); -} - -/* Drop all capabilities, effectively becoming a normal user */ -void pa_drop_caps(void) { - cap_t caps; - -#ifndef __OPTIMIZE__ - /* Valgrind doesn't not know set_caps, so we bypass it here -- but - * only in development builds.*/ - - if (pa_in_valgrind() && !pa_have_caps()) - return; #endif +#ifdef HAVE_SYS_PRCTL_H pa_assert_se(prctl(PR_SET_KEEPCAPS, 0, 0, 0, 0) == 0); - - pa_assert_se(caps = cap_init()); - pa_assert_se(cap_clear(caps) == 0); - pa_assert_se(cap_set_proc(caps) == 0); - pa_assert_se(cap_free(caps) == 0); - - pa_assert_se(!pa_have_caps()); -} - -pa_bool_t pa_have_caps(void) { - cap_t caps; - cap_flag_value_t flag = CAP_CLEAR; - -#ifdef __OPTIMIZE__ - pa_assert_se(caps = cap_get_proc()); -#else - if (!(caps = cap_get_proc())) - return FALSE; #endif - pa_assert_se(cap_get_flag(caps, CAP_SYS_NICE, CAP_EFFECTIVE, &flag) >= 0); - pa_assert_se(cap_free(caps) == 0); - - return flag == CAP_SET; -} - -#else - -/* NOOPs in case capabilities are not available. */ -void pa_limit_caps(void) { -} - -void pa_drop_caps(void) { - pa_drop_root(); -} - -pa_bool_t pa_have_caps(void) { - return FALSE; -} +#ifdef HAVE_SYS_CAPABILITY_H + { + cap_t caps; + pa_assert_se(caps = cap_init()); + pa_assert_se(cap_clear(caps) == 0); + pa_assert_se(cap_set_proc(caps) == 0); + pa_assert_se(cap_free(caps) == 0); + } #endif +} diff --git a/src/daemon/caps.h b/src/daemon/caps.h index 94241a9a..5d0ee62e 100644 --- a/src/daemon/caps.h +++ b/src/daemon/caps.h @@ -25,8 +25,5 @@ #include <pulsecore/macro.h> void pa_drop_root(void); -void pa_drop_caps(void); -void pa_limit_caps(void); -pa_bool_t pa_have_caps(void); #endif diff --git a/src/daemon/cmdline.c b/src/daemon/cmdline.c index d78089e1..ecb38486 100644 --- a/src/daemon/cmdline.c +++ b/src/daemon/cmdline.c @@ -31,6 +31,7 @@ #include <pulse/xmalloc.h> #include <pulse/i18n.h> +#include <pulse/util.h> #include <pulsecore/core-util.h> #include <pulsecore/strbuf.h> @@ -109,15 +110,8 @@ static const struct option long_options[] = { }; void pa_cmdline_help(const char *argv0) { - const char *e; - pa_assert(argv0); - if ((e = strrchr(argv0, '/'))) - e++; - else - e = argv0; - printf(_("%s [options]\n\n" "COMMANDS:\n" " -h, --help Show this help\n" @@ -172,7 +166,8 @@ void pa_cmdline_help(const char *argv0) { " -C Open a command line on the running TTY\n" " after startup\n\n" - " -n Don't load default script file\n"), e); + " -n Don't load default script file\n"), + pa_path_get_filename(argv0)); } int pa_cmdline_parse(pa_daemon_conf *conf, int argc, char *const argv [], int *d) { diff --git a/src/daemon/cpulimit.c b/src/daemon/cpulimit.c index 45d6a0fb..c2877ecf 100644 --- a/src/daemon/cpulimit.c +++ b/src/daemon/cpulimit.c @@ -24,13 +24,14 @@ #endif #include <pulse/error.h> +#include <pulse/rtclock.h> #include <pulse/timeval.h> +#include <pulsecore/core-rtclock.h> #include <pulsecore/core-util.h> #include <pulsecore/core-error.h> #include <pulsecore/log.h> #include <pulsecore/macro.h> -#include <pulsecore/rtclock.h> #include "cpulimit.h" @@ -125,7 +126,7 @@ static void signal_handler(int sig) { char t[256]; #endif - now = pa_rtclock_usec(); + now = pa_rtclock_now(); elapsed = now - last_time; #ifdef PRINT_CPU_LOAD @@ -184,7 +185,7 @@ int pa_cpu_limit_init(pa_mainloop_api *m) { pa_assert(the_pipe[1] == -1); pa_assert(!installed); - last_time = pa_rtclock_usec(); + last_time = pa_rtclock_now(); /* Prepare the main loop pipe */ if (pipe(the_pipe) < 0) { diff --git a/src/daemon/daemon-conf.c b/src/daemon/daemon-conf.c index e6fa8c64..ace460ed 100644 --- a/src/daemon/daemon-conf.c +++ b/src/daemon/daemon-conf.c @@ -60,7 +60,7 @@ static const pa_daemon_conf default_conf = { .fail = TRUE, .high_priority = TRUE, .nice_level = -11, - .realtime_scheduling = FALSE, + .realtime_scheduling = TRUE, .realtime_priority = 5, /* Half of JACK's default rtprio */ .disallow_module_loading = FALSE, .disallow_exit = FALSE, @@ -88,6 +88,7 @@ static const pa_daemon_conf default_conf = { #endif .no_cpu_limit = FALSE, .disable_shm = FALSE, + .lock_memory = FALSE, .default_n_fragments = 4, .default_fragment_size_msec = 25, .default_sample_spec = { .format = PA_SAMPLE_S16NE, .rate = 44100, .channels = 2 }, @@ -484,6 +485,7 @@ int pa_daemon_conf_load(pa_daemon_conf *c, const char *filename) { { "no-cpu-limit", pa_config_parse_bool, &c->no_cpu_limit, NULL }, { "disable-shm", pa_config_parse_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 }, { "scache-idle-time", pa_config_parse_int, &c->scache_idle_time, NULL }, { "realtime-priority", parse_rtprio, c, NULL }, @@ -633,23 +635,22 @@ FILE *pa_daemon_conf_open_default_script_file(pa_daemon_conf *c) { return f; } +char *pa_daemon_conf_dump(pa_daemon_conf *c) { + static const char* const log_level_to_string[] = { + [PA_LOG_DEBUG] = "debug", + [PA_LOG_INFO] = "info", + [PA_LOG_NOTICE] = "notice", + [PA_LOG_WARN] = "warning", + [PA_LOG_ERROR] = "error" + }; -static const char* const log_level_to_string[] = { - [PA_LOG_DEBUG] = "debug", - [PA_LOG_INFO] = "info", - [PA_LOG_NOTICE] = "notice", - [PA_LOG_WARN] = "warning", - [PA_LOG_ERROR] = "error" -}; - -static const char* const server_type_to_string[] = { - [PA_SERVER_TYPE_UNSET] = "!!UNSET!!", - [PA_SERVER_TYPE_USER] = "user", - [PA_SERVER_TYPE_SYSTEM] = "system", - [PA_SERVER_TYPE_NONE] = "none" -}; + static const char* const server_type_to_string[] = { + [PA_SERVER_TYPE_UNSET] = "!!UNSET!!", + [PA_SERVER_TYPE_USER] = "user", + [PA_SERVER_TYPE_SYSTEM] = "system", + [PA_SERVER_TYPE_NONE] = "none" + }; -char *pa_daemon_conf_dump(pa_daemon_conf *c) { pa_strbuf *s; char cm[PA_CHANNEL_MAP_SNPRINT_MAX]; @@ -678,6 +679,7 @@ char *pa_daemon_conf_dump(pa_daemon_conf *c) { 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, "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); pa_strbuf_printf(s, "scache-idle-time = %i\n", c->scache_idle_time); pa_strbuf_printf(s, "dl-search-path = %s\n", pa_strempty(c->dl_search_path)); diff --git a/src/daemon/daemon-conf.h b/src/daemon/daemon-conf.h index c4f78cbe..41c3c4b7 100644 --- a/src/daemon/daemon-conf.h +++ b/src/daemon/daemon-conf.h @@ -74,7 +74,8 @@ typedef struct pa_daemon_conf { disallow_exit, log_meta, log_time, - flat_volumes; + flat_volumes, + lock_memory; pa_server_type_t local_server_type; int exit_idle_time, scache_idle_time, diff --git a/src/daemon/daemon.conf.in b/src/daemon/daemon.conf.in index ecdb3a64..9bea6148 100644 --- a/src/daemon/daemon.conf.in +++ b/src/daemon/daemon.conf.in @@ -28,15 +28,16 @@ ; local-server-type = user ; disable-shm = no ; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB +; lock-memory = no +; no-cpu-limit = no ; high-priority = yes ; nice-level = -11 -; realtime-scheduling = no +; realtime-scheduling = yes ; realtime-priority = 5 ; exit-idle-time = 20 -; module-idle-time = 20 ; scache-idle-time = 20 ; dl-search-path = (depends on architecture) @@ -56,8 +57,6 @@ ; flat-volumes = yes -; no-cpu-limit = no - ; rlimit-fsize = -1 ; rlimit-data = -1 ; rlimit-stack = -1 diff --git a/src/daemon/default.pa.in b/src/daemon/default.pa.in index ba8e3c80..f9b9eadd 100755 --- a/src/daemon/default.pa.in +++ b/src/daemon/default.pa.in @@ -49,11 +49,11 @@ load-module module-augment-properties #load-module module-pipe-sink ### Automatically load driver modules depending on the hardware available -.ifexists module-hal-detect@PA_SOEXT@ -load-module module-hal-detect +.ifexists module-udev-detect@PA_SOEXT@ +load-module module-udev-detect .else ### Alternatively use the static hardware detection module (for systems that -### lack HAL support) +### lack udev support) load-module module-detect .endif @@ -103,6 +103,9 @@ load-module module-rescue-streams ### Make sure we always have a sink around, even if it is a null sink. load-module module-always-sink +### Honour intended role device property +load-module module-intended-roles + ### Automatically suspend sinks/sources that become idle for too long load-module module-suspend-on-idle diff --git a/src/daemon/main.c b/src/daemon/main.c index 62214a56..c1730b70 100644 --- a/src/daemon/main.c +++ b/src/daemon/main.c @@ -40,6 +40,10 @@ #include <liboil/liboil.h> +#ifdef HAVE_SYS_MMAN_H +#include <sys/mman.h> +#endif + #ifdef HAVE_SYS_IOCTL_H #include <sys/ioctl.h> #endif @@ -69,6 +73,7 @@ #include <pulsecore/lock-autospawn.h> #include <pulsecore/winsock.h> #include <pulsecore/core-error.h> +#include <pulsecore/core-rtclock.h> #include <pulsecore/core.h> #include <pulsecore/memblock.h> #include <pulsecore/module.h> @@ -80,8 +85,6 @@ #include <pulsecore/pid.h> #include <pulsecore/namereg.h> #include <pulsecore/random.h> -#include <pulsecore/rtsig.h> -#include <pulsecore/rtclock.h> #include <pulsecore/macro.h> #include <pulsecore/mutex.h> #include <pulsecore/thread.h> @@ -98,7 +101,6 @@ #include "dumpmodules.h" #include "caps.h" #include "ltdl-bind-now.h" -#include "polkit.h" #include "server-lookup.h" #ifdef HAVE_LIBWRAP @@ -130,7 +132,7 @@ static void message_cb(pa_mainloop_api*a, pa_time_event*e, const struct timeval } pa_timeval_add(pa_gettimeofday(&tvnext), 100000); - a->time_restart(e, &tvnext); + a->rtclock_time_restart(e, &tvnext); } #endif @@ -376,9 +378,7 @@ int main(int argc, char *argv[]) { pa_mainloop *mainloop = NULL; char *s; int r = 0, retval = 1, d = 0; - pa_bool_t suid_root, real_root; pa_bool_t valid_pid_file = FALSE; - gid_t gid = (gid_t) -1; pa_bool_t ltdl_init = FALSE; int passed_fd = -1; const char *e; @@ -424,30 +424,6 @@ int main(int argc, char *argv[]) { } #endif -#ifdef HAVE_GETUID - real_root = getuid() == 0; - suid_root = !real_root && geteuid() == 0; -#else - real_root = FALSE; - suid_root = FALSE; -#endif - - if (!real_root) { - /* Drop all capabilities except CAP_SYS_NICE */ - pa_limit_caps(); - - /* Drop privileges, but keep CAP_SYS_NICE */ - pa_drop_root(); - - /* After dropping root, the effective set is reset, hence, - * let's raise it again */ - pa_limit_caps(); - - /* When capabilities are not supported we will not be able to - * acquire RT sched anymore. But yes, that's the way it is. It - * is just too risky tun let PA run as root all the time. */ - } - if ((e = getenv("PULSE_PASSED_FD"))) { passed_fd = atoi(e); @@ -455,15 +431,14 @@ int main(int argc, char *argv[]) { passed_fd = -1; } + /* We might be autospawned, in which case have no idea in which + * context we have been started. Let's cleanup our execution + * context as good as possible */ + pa_drop_root(); pa_close_all(passed_fd, -1); - pa_reset_sigs(-1); pa_unblock_sigs(-1); - /* At this point, we are a normal user, possibly with CAP_NICE if - * we were started SUID. If we are started as normal root, than we - * still are normal root. */ - setlocale(LC_ALL, ""); pa_init_i18n(); @@ -506,7 +481,7 @@ int main(int argc, char *argv[]) { pa_assert_not_reached(); } - start_server = conf->local_server_type == PA_SERVER_TYPE_USER || (real_root && conf->local_server_type == PA_SERVER_TYPE_SYSTEM); + start_server = conf->local_server_type == PA_SERVER_TYPE_USER || (getuid() == 0 && conf->local_server_type == PA_SERVER_TYPE_SYSTEM); if (!start_server && conf->local_server_type == PA_SERVER_TYPE_SYSTEM) { pa_log_notice(_("System mode refused for non-root user. Only starting the D-Bus server lookup service.")); @@ -514,165 +489,6 @@ int main(int argc, char *argv[]) { } #endif - pa_log_debug("Started as real root: %s, suid root: %s", pa_yes_no(real_root), pa_yes_no(suid_root)); - -#ifdef HAVE_DBUS - /* XXX: Uhh, goto programming... as if this wasn't hard enough to follow - * already. But if we won't start the full server, we want to just skip all - * the capability stuff. */ - if (!start_server) { - if (!real_root && pa_have_caps()) - pa_drop_caps(); - goto after_caps_setup; - } -#endif - - if (!real_root && pa_have_caps()) { -#ifdef HAVE_SYS_RESOURCE_H - struct rlimit rl; -#endif - pa_bool_t allow_high_priority = FALSE, allow_realtime = FALSE; - - /* Let's better not enable high prio or RT by default */ - - if (conf->high_priority && !allow_high_priority) { - if (pa_own_uid_in_group(PA_REALTIME_GROUP, &gid) > 0) { - pa_log_info(_("We're in the group '%s', allowing high-priority scheduling."), PA_REALTIME_GROUP); - allow_high_priority = TRUE; - } - } - - if (conf->realtime_scheduling && !allow_realtime) { - if (pa_own_uid_in_group(PA_REALTIME_GROUP, &gid) > 0) { - pa_log_info(_("We're in the group '%s', allowing real-time scheduling."), PA_REALTIME_GROUP); - allow_realtime = TRUE; - } - } - -#ifdef HAVE_POLKIT - if (conf->high_priority && !allow_high_priority) { - if (pa_polkit_check("org.pulseaudio.acquire-high-priority") > 0) { - pa_log_info(_("PolicyKit grants us acquire-high-priority privilege.")); - allow_high_priority = TRUE; - } else - pa_log_info(_("PolicyKit refuses acquire-high-priority privilege.")); - } - - if (conf->realtime_scheduling && !allow_realtime) { - if (pa_polkit_check("org.pulseaudio.acquire-real-time") > 0) { - pa_log_info(_("PolicyKit grants us acquire-real-time privilege.")); - allow_realtime = TRUE; - } else - pa_log_info(_("PolicyKit refuses acquire-real-time privilege.")); - } -#endif - - if (!allow_high_priority && !allow_realtime) { - - /* OK, there's no further need to keep CAP_NICE. Hence - * let's give it up early */ - - pa_drop_caps(); - } - -#ifdef RLIMIT_RTPRIO - if (getrlimit(RLIMIT_RTPRIO, &rl) >= 0) - if (rl.rlim_cur > 0) { - pa_log_info("RLIMIT_RTPRIO is set to %u, allowing real-time scheduling.", (unsigned) rl.rlim_cur); - allow_realtime = TRUE; - } -#endif -#ifdef RLIMIT_NICE - if (getrlimit(RLIMIT_NICE, &rl) >= 0) - if (rl.rlim_cur > 20 ) { - pa_log_info("RLIMIT_NICE is set to %u, allowing high-priority scheduling.", (unsigned) rl.rlim_cur); - allow_high_priority = TRUE; - } -#endif - - if ((conf->high_priority && !allow_high_priority) || - (conf->realtime_scheduling && !allow_realtime)) - pa_log_info(_("Called SUID root and real-time and/or high-priority scheduling was requested in the configuration. However, we lack the necessary privileges:\n" - "We are not in group '%s', PolicyKit refuse to grant us the requested privileges and we have no increase RLIMIT_NICE/RLIMIT_RTPRIO resource limits.\n" - "For enabling real-time/high-priority scheduling please acquire the appropriate PolicyKit privileges, or become a member of '%s', or increase the RLIMIT_NICE/RLIMIT_RTPRIO resource limits for this user."), - PA_REALTIME_GROUP, PA_REALTIME_GROUP); - - - if (!allow_realtime) - conf->realtime_scheduling = FALSE; - - if (!allow_high_priority) - conf->high_priority = FALSE; - } - -#ifdef HAVE_SYS_RESOURCE_H - /* Reset resource limits. If we are run as root (for system mode) - * this might end up increasing the limits, which is intended - * behaviour. For all other cases, i.e. started as normal user, or - * SUID root at this point we should have no CAP_SYS_RESOURCE and - * increasing the limits thus should fail. Which is, too, intended - * behaviour */ - - set_all_rlimits(conf); -#endif - - if (conf->high_priority && !pa_can_high_priority()) { - pa_log_info(_("High-priority scheduling enabled in configuration but not allowed by policy.")); - conf->high_priority = FALSE; - } - - if (conf->high_priority && (conf->cmd == PA_CMD_DAEMON || conf->cmd == PA_CMD_START)) - pa_raise_priority(conf->nice_level); - - pa_log_debug("Can realtime: %s, can high-priority: %s", pa_yes_no(pa_can_realtime()), pa_yes_no(pa_can_high_priority())); - - if (!real_root && pa_have_caps()) { - pa_bool_t drop; - - drop = (conf->cmd != PA_CMD_DAEMON && conf->cmd != PA_CMD_START) || !conf->realtime_scheduling; - -#ifdef RLIMIT_RTPRIO - if (!drop) { - struct rlimit rl; - /* At this point we still have CAP_NICE if we were loaded - * SUID root. If possible let's acquire RLIMIT_RTPRIO - * instead and give CAP_NICE up. */ - - if (getrlimit(RLIMIT_RTPRIO, &rl) >= 0) { - - if (rl.rlim_cur >= 9) - drop = TRUE; - else { - rl.rlim_max = rl.rlim_cur = 9; - - if (setrlimit(RLIMIT_RTPRIO, &rl) >= 0) { - pa_log_info(_("Successfully increased RLIMIT_RTPRIO")); - drop = TRUE; - } else - pa_log_warn(_("RLIMIT_RTPRIO failed: %s"), pa_cstrerror(errno)); - } - } - } -#endif - - if (drop) { - pa_log_info(_("Giving up CAP_NICE")); - pa_drop_caps(); - suid_root = FALSE; - } - } - - if (conf->realtime_scheduling && !pa_can_realtime()) { - pa_log_info(_("Real-time scheduling enabled in configuration but not allowed by policy.")); - conf->realtime_scheduling = FALSE; - } - -#ifdef HAVE_DBUS -after_caps_setup: -#endif - - pa_log_debug("Can realtime: %s, can high-priority: %s", pa_yes_no(pa_can_realtime()), pa_yes_no(pa_can_high_priority())); - LTDL_SET_PRELOADED_SYMBOLS(); pa_ltdl_init(); ltdl_init = TRUE; @@ -757,10 +573,10 @@ after_caps_setup: pa_assert(conf->cmd == PA_CMD_DAEMON || conf->cmd == PA_CMD_START); } - if (real_root && !conf->system_instance) + if (getuid() == 0 && !conf->system_instance) pa_log_warn(_("This program is not intended to be run as root (unless --system is specified).")); #ifndef HAVE_DBUS /* A similar, only a notice worthy check was done earlier, if D-Bus is enabled. */ - else if (!real_root && conf->system_instance) { + else if (getuid() != 0 && conf->system_instance) { pa_log(_("Root privileges required.")); goto finish; } @@ -907,6 +723,13 @@ after_caps_setup: pa_assert_se(chdir("/") == 0); umask(0022); +#ifdef HAVE_SYS_RESOURCE_H + set_all_rlimits(conf); +#endif + pa_rtclock_hrtimer_enable(); + + pa_raise_priority(conf->nice_level); + if (conf->system_instance) if (change_user() < 0) goto finish; @@ -955,8 +778,8 @@ after_caps_setup: pa_xfree(s); if ((s = pa_session_id())) { - pa_log_info(_("Session ID is %s."), s); - pa_xfree(s); + pa_log_info(_("Session ID is %s."), s); + pa_xfree(s); } if (!(s = pa_get_runtime_dir())) @@ -971,6 +794,11 @@ after_caps_setup: pa_log_info(_("Running in system mode: %s"), pa_yes_no(pa_in_system_mode())); + if (pa_in_system_mode()) + pa_log_warn(_("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.")); + if (conf->use_pid_file) { int z; @@ -998,12 +826,16 @@ after_caps_setup: else pa_log_info(_("Dude, your kernel stinks! The chef's recommendation today is Linux with high-resolution timers enabled!")); - pa_rtclock_hrtimer_enable(); - -#ifdef SIGRTMIN - /* Valgrind uses SIGRTMAX. To easy debugging we don't use it here */ - pa_rtsig_configure(SIGRTMIN, SIGRTMAX-1); + if (conf->lock_memory) { +#ifdef HAVE_SYS_MMAN_H + if (mlockall(MCL_FUTURE) < 0) + pa_log_warn("mlockall() failed: %s", pa_cstrerror(errno)); + else + pa_log_info("Sucessfully locked process into memory."); +#else + pa_log_warn("Memory locking requested but not supported on platform."); #endif + } pa_memtrap_install(); @@ -1028,7 +860,9 @@ after_caps_setup: c->running_as_daemon = !!conf->daemonize; c->disallow_exit = conf->disallow_exit; c->flat_volumes = conf->flat_volumes; +#ifdef HAVE_DBUS c->server_type = conf->local_server_type; +#endif pa_assert_se(pa_signal_init(pa_mainloop_get_api(mainloop)) == 0); pa_signal_new(SIGINT, signal_callback, c); @@ -1044,7 +878,7 @@ after_caps_setup: #endif #ifdef OS_IS_WIN32 - win32_timer = pa_mainloop_get_api(mainloop)->time_new(pa_mainloop_get_api(mainloop), pa_gettimeofday(&win32_tv), message_cb, NULL); + win32_timer = pa_mainloop_get_api(mainloop)->rtclock_time_new(pa_mainloop_get_api(mainloop), pa_gettimeofday(&win32_tv), message_cb, NULL); #endif oil_init(); diff --git a/src/map-file b/src/map-file index c46c6792..a1d0a061 100644 --- a/src/map-file +++ b/src/map-file @@ -28,6 +28,7 @@ pa_channel_map_superset; pa_channel_map_to_name; pa_channel_map_to_pretty_name; pa_channel_map_valid; +pa_channel_position_from_string; pa_channel_position_to_pretty_string; pa_channel_position_to_string; pa_context_add_autoload; @@ -85,6 +86,8 @@ pa_context_ref; pa_context_remove_autoload_by_index; pa_context_remove_autoload_by_name; pa_context_remove_sample; +pa_context_rttime_new; +pa_context_rttime_restart; pa_context_set_card_profile_by_index; pa_context_set_card_profile_by_name; pa_context_set_default_sink; @@ -95,10 +98,14 @@ pa_context_set_sink_input_mute; pa_context_set_sink_input_volume; pa_context_set_sink_mute_by_index; pa_context_set_sink_mute_by_name; +pa_context_set_sink_port_by_index; +pa_context_set_sink_port_by_name; pa_context_set_sink_volume_by_index; pa_context_set_sink_volume_by_name; pa_context_set_source_mute_by_index; pa_context_set_source_mute_by_name; +pa_context_set_source_port_by_index; +pa_context_set_source_port_by_name; pa_context_set_source_volume_by_index; pa_context_set_source_volume_by_name; pa_context_set_state_callback; @@ -190,6 +197,7 @@ pa_proplist_to_string_sep; pa_proplist_unset; pa_proplist_unset_many; pa_proplist_update; +pa_rtclock_now; pa_sample_format_is_be; pa_sample_format_is_le; pa_sample_format_to_string; @@ -264,7 +272,9 @@ pa_stream_writable_size; pa_stream_write; pa_strerror; pa_sw_cvolume_divide; +pa_sw_cvolume_divide_scalar; pa_sw_cvolume_multiply; +pa_sw_cvolume_multiply_scalar; pa_sw_cvolume_snprint_dB; pa_sw_volume_divide; pa_sw_volume_from_dB; diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c new file mode 100644 index 00000000..a5515e1b --- /dev/null +++ b/src/modules/alsa/alsa-mixer.c @@ -0,0 +1,3406 @@ +/*** + This file is part of PulseAudio. + + Copyright 2004-2009 Lennart Poettering + Copyright 2006 Pierre Ossman <ossman@cendio.se> for Cendio AB + + PulseAudio is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 2.1 of the License, + or (at your option) any later version. + + PulseAudio is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with PulseAudio; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + USA. +***/ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <sys/types.h> +#include <limits.h> +#include <asoundlib.h> + +#ifdef HAVE_VALGRIND_MEMCHECK_H +#include <valgrind/memcheck.h> +#endif + +#include <pulse/sample.h> +#include <pulse/xmalloc.h> +#include <pulse/timeval.h> +#include <pulse/util.h> +#include <pulse/i18n.h> +#include <pulse/utf8.h> + +#include <pulsecore/log.h> +#include <pulsecore/macro.h> +#include <pulsecore/core-util.h> +#include <pulsecore/atomic.h> +#include <pulsecore/core-error.h> +#include <pulsecore/once.h> +#include <pulsecore/thread.h> +#include <pulsecore/conf-parser.h> +#include <pulsecore/strbuf.h> + +#include "alsa-mixer.h" +#include "alsa-util.h" + +struct description_map { + const char *name; + const char *description; +}; + +static const char *lookup_description(const char *name, const struct description_map dm[], unsigned n) { + unsigned i; + + for (i = 0; i < n; i++) + if (pa_streq(dm[i].name, name)) + return dm[i].description; + + return NULL; +} + +struct pa_alsa_fdlist { + unsigned num_fds; + struct pollfd *fds; + /* This is a temporary buffer used to avoid lots of mallocs */ + struct pollfd *work_fds; + + snd_mixer_t *mixer; + + pa_mainloop_api *m; + pa_defer_event *defer; + pa_io_event **ios; + + pa_bool_t polled; + + void (*cb)(void *userdata); + void *userdata; +}; + +static void io_cb(pa_mainloop_api*a, pa_io_event* e, int fd, pa_io_event_flags_t events, void *userdata) { + + struct pa_alsa_fdlist *fdl = userdata; + int err; + unsigned i; + unsigned short revents; + + pa_assert(a); + pa_assert(fdl); + pa_assert(fdl->mixer); + pa_assert(fdl->fds); + pa_assert(fdl->work_fds); + + if (fdl->polled) + return; + + fdl->polled = TRUE; + + memcpy(fdl->work_fds, fdl->fds, sizeof(struct pollfd) * fdl->num_fds); + + for (i = 0; i < fdl->num_fds; i++) { + if (e == fdl->ios[i]) { + if (events & PA_IO_EVENT_INPUT) + fdl->work_fds[i].revents |= POLLIN; + if (events & PA_IO_EVENT_OUTPUT) + fdl->work_fds[i].revents |= POLLOUT; + if (events & PA_IO_EVENT_ERROR) + fdl->work_fds[i].revents |= POLLERR; + if (events & PA_IO_EVENT_HANGUP) + fdl->work_fds[i].revents |= POLLHUP; + break; + } + } + + pa_assert(i != fdl->num_fds); + + if ((err = snd_mixer_poll_descriptors_revents(fdl->mixer, fdl->work_fds, fdl->num_fds, &revents)) < 0) { + pa_log_error("Unable to get poll revent: %s", pa_alsa_strerror(err)); + return; + } + + a->defer_enable(fdl->defer, 1); + + if (revents) + snd_mixer_handle_events(fdl->mixer); +} + +static void defer_cb(pa_mainloop_api*a, pa_defer_event* e, void *userdata) { + struct pa_alsa_fdlist *fdl = userdata; + unsigned num_fds, i; + int err, n; + struct pollfd *temp; + + pa_assert(a); + pa_assert(fdl); + pa_assert(fdl->mixer); + + a->defer_enable(fdl->defer, 0); + + if ((n = snd_mixer_poll_descriptors_count(fdl->mixer)) < 0) { + pa_log("snd_mixer_poll_descriptors_count() failed: %s", pa_alsa_strerror(n)); + return; + } + num_fds = (unsigned) n; + + if (num_fds != fdl->num_fds) { + if (fdl->fds) + pa_xfree(fdl->fds); + if (fdl->work_fds) + pa_xfree(fdl->work_fds); + fdl->fds = pa_xnew0(struct pollfd, num_fds); + fdl->work_fds = pa_xnew(struct pollfd, num_fds); + } + + memset(fdl->work_fds, 0, sizeof(struct pollfd) * num_fds); + + if ((err = snd_mixer_poll_descriptors(fdl->mixer, fdl->work_fds, num_fds)) < 0) { + pa_log_error("Unable to get poll descriptors: %s", pa_alsa_strerror(err)); + return; + } + + fdl->polled = FALSE; + + if (memcmp(fdl->fds, fdl->work_fds, sizeof(struct pollfd) * num_fds) == 0) + return; + + if (fdl->ios) { + for (i = 0; i < fdl->num_fds; i++) + a->io_free(fdl->ios[i]); + + if (num_fds != fdl->num_fds) { + pa_xfree(fdl->ios); + fdl->ios = NULL; + } + } + + if (!fdl->ios) + fdl->ios = pa_xnew(pa_io_event*, num_fds); + + /* Swap pointers */ + temp = fdl->work_fds; + fdl->work_fds = fdl->fds; + fdl->fds = temp; + + fdl->num_fds = num_fds; + + for (i = 0;i < num_fds;i++) + fdl->ios[i] = a->io_new(a, fdl->fds[i].fd, + ((fdl->fds[i].events & POLLIN) ? PA_IO_EVENT_INPUT : 0) | + ((fdl->fds[i].events & POLLOUT) ? PA_IO_EVENT_OUTPUT : 0), + io_cb, fdl); +} + +struct pa_alsa_fdlist *pa_alsa_fdlist_new(void) { + struct pa_alsa_fdlist *fdl; + + fdl = pa_xnew0(struct pa_alsa_fdlist, 1); + + return fdl; +} + +void pa_alsa_fdlist_free(struct pa_alsa_fdlist *fdl) { + pa_assert(fdl); + + if (fdl->defer) { + pa_assert(fdl->m); + fdl->m->defer_free(fdl->defer); + } + + if (fdl->ios) { + unsigned i; + pa_assert(fdl->m); + for (i = 0; i < fdl->num_fds; i++) + fdl->m->io_free(fdl->ios[i]); + pa_xfree(fdl->ios); + } + + if (fdl->fds) + pa_xfree(fdl->fds); + if (fdl->work_fds) + pa_xfree(fdl->work_fds); + + pa_xfree(fdl); +} + +int pa_alsa_fdlist_set_mixer(struct pa_alsa_fdlist *fdl, snd_mixer_t *mixer_handle, pa_mainloop_api* m) { + pa_assert(fdl); + pa_assert(mixer_handle); + pa_assert(m); + pa_assert(!fdl->m); + + fdl->mixer = mixer_handle; + fdl->m = m; + fdl->defer = m->defer_new(m, defer_cb, fdl); + + return 0; +} + +static int prepare_mixer(snd_mixer_t *mixer, const char *dev) { + int err; + + pa_assert(mixer); + pa_assert(dev); + + if ((err = snd_mixer_attach(mixer, dev)) < 0) { + pa_log_info("Unable to attach to mixer %s: %s", dev, pa_alsa_strerror(err)); + return -1; + } + + if ((err = snd_mixer_selem_register(mixer, NULL, NULL)) < 0) { + pa_log_warn("Unable to register mixer: %s", pa_alsa_strerror(err)); + return -1; + } + + if ((err = snd_mixer_load(mixer)) < 0) { + pa_log_warn("Unable to load mixer: %s", pa_alsa_strerror(err)); + return -1; + } + + pa_log_info("Successfully attached to mixer '%s'", dev); + return 0; +} + +snd_mixer_t *pa_alsa_open_mixer_for_pcm(snd_pcm_t *pcm, char **ctl_device) { + int err; + snd_mixer_t *m; + const char *dev; + snd_pcm_info_t* info; + snd_pcm_info_alloca(&info); + + pa_assert(pcm); + + if ((err = snd_mixer_open(&m, 0)) < 0) { + pa_log("Error opening mixer: %s", pa_alsa_strerror(err)); + return NULL; + } + + /* First, try by name */ + if ((dev = snd_pcm_name(pcm))) + if (prepare_mixer(m, dev) >= 0) { + if (ctl_device) + *ctl_device = pa_xstrdup(dev); + + return m; + } + + /* Then, try by card index */ + if (snd_pcm_info(pcm, info) >= 0) { + char *md; + int card_idx; + + if ((card_idx = snd_pcm_info_get_card(info)) >= 0) { + + md = pa_sprintf_malloc("hw:%i", card_idx); + + if (!dev || !pa_streq(dev, md)) + if (prepare_mixer(m, md) >= 0) { + + if (ctl_device) + *ctl_device = md; + else + pa_xfree(md); + + return m; + } + + pa_xfree(md); + } + } + + snd_mixer_close(m); + return NULL; +} + +static const snd_mixer_selem_channel_id_t alsa_channel_ids[PA_CHANNEL_POSITION_MAX] = { + [PA_CHANNEL_POSITION_MONO] = SND_MIXER_SCHN_MONO, /* The ALSA name is just an alias! */ + + [PA_CHANNEL_POSITION_FRONT_CENTER] = SND_MIXER_SCHN_FRONT_CENTER, + [PA_CHANNEL_POSITION_FRONT_LEFT] = SND_MIXER_SCHN_FRONT_LEFT, + [PA_CHANNEL_POSITION_FRONT_RIGHT] = SND_MIXER_SCHN_FRONT_RIGHT, + + [PA_CHANNEL_POSITION_REAR_CENTER] = SND_MIXER_SCHN_REAR_CENTER, + [PA_CHANNEL_POSITION_REAR_LEFT] = SND_MIXER_SCHN_REAR_LEFT, + [PA_CHANNEL_POSITION_REAR_RIGHT] = SND_MIXER_SCHN_REAR_RIGHT, + + [PA_CHANNEL_POSITION_LFE] = SND_MIXER_SCHN_WOOFER, + + [PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER] = SND_MIXER_SCHN_UNKNOWN, + + [PA_CHANNEL_POSITION_SIDE_LEFT] = SND_MIXER_SCHN_SIDE_LEFT, + [PA_CHANNEL_POSITION_SIDE_RIGHT] = SND_MIXER_SCHN_SIDE_RIGHT, + + [PA_CHANNEL_POSITION_AUX0] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX1] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX2] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX3] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX4] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX5] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX6] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX7] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX8] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX9] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX10] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX11] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX12] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX13] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX14] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX15] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX16] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX17] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX18] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX19] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX20] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX21] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX22] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX23] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX24] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX25] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX26] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX27] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX28] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX29] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX30] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_AUX31] = SND_MIXER_SCHN_UNKNOWN, + + [PA_CHANNEL_POSITION_TOP_CENTER] = SND_MIXER_SCHN_UNKNOWN, + + [PA_CHANNEL_POSITION_TOP_FRONT_CENTER] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_TOP_FRONT_LEFT] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_TOP_FRONT_RIGHT] = SND_MIXER_SCHN_UNKNOWN, + + [PA_CHANNEL_POSITION_TOP_REAR_CENTER] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_TOP_REAR_LEFT] = SND_MIXER_SCHN_UNKNOWN, + [PA_CHANNEL_POSITION_TOP_REAR_RIGHT] = SND_MIXER_SCHN_UNKNOWN +}; + +static void setting_free(pa_alsa_setting *s) { + pa_assert(s); + + if (s->options) + pa_idxset_free(s->options, NULL, NULL); + + pa_xfree(s->name); + pa_xfree(s->description); + pa_xfree(s); +} + +static void option_free(pa_alsa_option *o) { + pa_assert(o); + + pa_xfree(o->alsa_name); + pa_xfree(o->name); + pa_xfree(o->description); + pa_xfree(o); +} + +static void element_free(pa_alsa_element *e) { + pa_alsa_option *o; + pa_assert(e); + + while ((o = e->options)) { + PA_LLIST_REMOVE(pa_alsa_option, e->options, o); + option_free(o); + } + + pa_xfree(e->alsa_name); + pa_xfree(e); +} + +void pa_alsa_path_free(pa_alsa_path *p) { + pa_alsa_element *e; + pa_alsa_setting *s; + + pa_assert(p); + + while ((e = p->elements)) { + PA_LLIST_REMOVE(pa_alsa_element, p->elements, e); + element_free(e); + } + + while ((s = p->settings)) { + PA_LLIST_REMOVE(pa_alsa_setting, p->settings, s); + setting_free(s); + } + + pa_xfree(p->name); + pa_xfree(p->description); + pa_xfree(p); +} + +void pa_alsa_path_set_free(pa_alsa_path_set *ps) { + pa_alsa_path *p; + pa_assert(ps); + + while ((p = ps->paths)) { + PA_LLIST_REMOVE(pa_alsa_path, ps->paths, p); + pa_alsa_path_free(p); + } + + pa_xfree(ps); +} + +static long to_alsa_dB(pa_volume_t v) { + return (long) (pa_sw_volume_to_dB(v) * 100.0); +} + +static pa_volume_t from_alsa_dB(long v) { + return pa_sw_volume_from_dB((double) v / 100.0); +} + +static long to_alsa_volume(pa_volume_t v, long min, long max) { + long w; + + w = (long) round(((double) v * (double) (max - min)) / PA_VOLUME_NORM) + min; + return PA_CLAMP_UNLIKELY(w, min, max); +} + +static pa_volume_t from_alsa_volume(long v, long min, long max) { + return (pa_volume_t) round(((double) (v - min) * PA_VOLUME_NORM) / (double) (max - min)); +} + +#define SELEM_INIT(sid, name) \ + do { \ + snd_mixer_selem_id_alloca(&(sid)); \ + snd_mixer_selem_id_set_name((sid), (name)); \ + snd_mixer_selem_id_set_index((sid), 0); \ + } while(FALSE) + +static int element_get_volume(pa_alsa_element *e, snd_mixer_t *m, const pa_channel_map *cm, pa_cvolume *v) { + snd_mixer_selem_id_t *sid; + snd_mixer_elem_t *me; + snd_mixer_selem_channel_id_t c; + pa_channel_position_mask_t mask = 0; + pa_volume_t max_channel_volume = PA_VOLUME_MUTED; + unsigned k; + + pa_assert(m); + pa_assert(e); + pa_assert(cm); + pa_assert(v); + + SELEM_INIT(sid, e->alsa_name); + if (!(me = snd_mixer_find_selem(m, sid))) { + pa_log_warn("Element %s seems to have disappeared.", e->alsa_name); + return -1; + } + + pa_cvolume_mute(v, cm->channels); + + /* We take the highest volume of all channels that match */ + + for (c = 0; c <= SND_MIXER_SCHN_LAST; c++) { + int r; + pa_volume_t f; + + if (e->has_dB) { + long value = 0; + + if (e->direction == PA_ALSA_DIRECTION_OUTPUT) { + if (snd_mixer_selem_has_playback_channel(me, c)) + r = snd_mixer_selem_get_playback_dB(me, c, &value); + else + r = -1; + } else { + if (snd_mixer_selem_has_capture_channel(me, c)) + r = snd_mixer_selem_get_capture_dB(me, c, &value); + else + r = -1; + } + + if (r < 0) + continue; + +#ifdef HAVE_VALGRIND_MEMCHECK_H + VALGRIND_MAKE_MEM_DEFINED(&value, sizeof(value)); +#endif + + f = from_alsa_dB(value); + + } else { + long value = 0; + + if (e->direction == PA_ALSA_DIRECTION_OUTPUT) { + if (snd_mixer_selem_has_playback_channel(me, c)) + r = snd_mixer_selem_get_playback_volume(me, c, &value); + else + r = -1; + } else { + if (snd_mixer_selem_has_capture_channel(me, c)) + r = snd_mixer_selem_get_capture_volume(me, c, &value); + else + r = -1; + } + + if (r < 0) + continue; + + f = from_alsa_volume(value, e->min_volume, e->max_volume); + } + + if (f > max_channel_volume) + max_channel_volume = f; + + for (k = 0; k < cm->channels; k++) + if (e->masks[c][e->n_channels-1] & PA_CHANNEL_POSITION_MASK(cm->map[k])) + if (v->values[k] < f) + v->values[k] = f; + + mask |= e->masks[c][e->n_channels-1]; + } + + for (k = 0; k < cm->channels; k++) + if (!(mask & PA_CHANNEL_POSITION_MASK(cm->map[k]))) + v->values[k] = max_channel_volume; + + return 0; +} + +int pa_alsa_path_get_volume(pa_alsa_path *p, snd_mixer_t *m, const pa_channel_map *cm, pa_cvolume *v) { + pa_alsa_element *e; + + pa_assert(m); + pa_assert(p); + pa_assert(cm); + pa_assert(v); + + if (!p->has_volume) + return -1; + + pa_cvolume_reset(v, cm->channels); + + PA_LLIST_FOREACH(e, p->elements) { + pa_cvolume ev; + + if (e->volume_use != PA_ALSA_VOLUME_MERGE) + continue; + + pa_assert(!p->has_dB || e->has_dB); + + if (element_get_volume(e, m, cm, &ev) < 0) + return -1; + + /* If we have no dB information all we can do is take the first element and leave */ + if (!p->has_dB) { + *v = ev; + return 0; + } + + pa_sw_cvolume_multiply(v, v, &ev); + } + + return 0; +} + +static int element_get_switch(pa_alsa_element *e, snd_mixer_t *m, pa_bool_t *b) { + snd_mixer_selem_id_t *sid; + snd_mixer_elem_t *me; + snd_mixer_selem_channel_id_t c; + + pa_assert(m); + pa_assert(e); + pa_assert(b); + + SELEM_INIT(sid, e->alsa_name); + if (!(me = snd_mixer_find_selem(m, sid))) { + pa_log_warn("Element %s seems to have disappeared.", e->alsa_name); + return -1; + } + + /* We return muted if at least one channel is muted */ + + for (c = 0; c <= SND_MIXER_SCHN_LAST; c++) { + int r; + int value = 0; + + if (e->direction == PA_ALSA_DIRECTION_OUTPUT) { + if (snd_mixer_selem_has_playback_channel(me, c)) + r = snd_mixer_selem_get_playback_switch(me, c, &value); + else + r = -1; + } else { + if (snd_mixer_selem_has_capture_channel(me, c)) + r = snd_mixer_selem_get_capture_switch(me, c, &value); + else + r = -1; + } + + if (r < 0) + continue; + + if (!value) { + *b = FALSE; + return 0; + } + } + + *b = TRUE; + return 0; +} + +int pa_alsa_path_get_mute(pa_alsa_path *p, snd_mixer_t *m, pa_bool_t *muted) { + pa_alsa_element *e; + + pa_assert(m); + pa_assert(p); + pa_assert(muted); + + if (!p->has_mute) + return -1; + + PA_LLIST_FOREACH(e, p->elements) { + pa_bool_t b; + + if (e->switch_use != PA_ALSA_SWITCH_MUTE) + continue; + + if (element_get_switch(e, m, &b) < 0) + return -1; + + if (!b) { + *muted = TRUE; + return 0; + } + } + + *muted = FALSE; + return 0; +} + +static int element_set_volume(pa_alsa_element *e, snd_mixer_t *m, const pa_channel_map *cm, pa_cvolume *v) { + snd_mixer_selem_id_t *sid; + pa_cvolume rv; + snd_mixer_elem_t *me; + snd_mixer_selem_channel_id_t c; + pa_channel_position_mask_t mask = 0; + pa_volume_t max_channel_volume = PA_VOLUME_MUTED; + unsigned k; + + pa_assert(m); + pa_assert(e); + pa_assert(cm); + pa_assert(v); + pa_assert(pa_cvolume_compatible_with_channel_map(v, cm)); + + SELEM_INIT(sid, e->alsa_name); + if (!(me = snd_mixer_find_selem(m, sid))) { + pa_log_warn("Element %s seems to have disappeared.", e->alsa_name); + return -1; + } + + pa_cvolume_mute(&rv, cm->channels); + + for (c = 0; c <= SND_MIXER_SCHN_LAST; c++) { + int r; + pa_volume_t f = PA_VOLUME_MUTED; + pa_bool_t found = FALSE; + + for (k = 0; k < cm->channels; k++) + if (e->masks[c][e->n_channels-1] & PA_CHANNEL_POSITION_MASK(cm->map[k])) { + found = TRUE; + if (v->values[k] > f) + f = v->values[k]; + } + + if (!found) { + /* Hmm, so this channel does not exist in the volume + * struct, so let's bind it to the overall max of the + * volume. */ + f = pa_cvolume_max(v); + } + + if (e->has_dB) { + long value = to_alsa_dB(f); + + if (e->direction == PA_ALSA_DIRECTION_OUTPUT) { + /* If we call set_play_volume() without checking first + * if the channel is available, ALSA behaves ver + * strangely and doesn't fail the call */ + if (snd_mixer_selem_has_playback_channel(me, c)) { + if ((r = snd_mixer_selem_set_playback_dB(me, c, value, +1)) >= 0) + r = snd_mixer_selem_get_playback_dB(me, c, &value); + } else + r = -1; + } else { + if (snd_mixer_selem_has_capture_channel(me, c)) { + if ((r = snd_mixer_selem_set_capture_dB(me, c, value, +1)) >= 0) + r = snd_mixer_selem_get_capture_dB(me, c, &value); + } else + r = -1; + } + + if (r < 0) + continue; + +#ifdef HAVE_VALGRIND_MEMCHECK_H + VALGRIND_MAKE_MEM_DEFINED(&value, sizeof(value)); +#endif + + f = from_alsa_dB(value); + + } else { + long value; + + value = to_alsa_volume(f, e->min_volume, e->max_volume); + + if (e->direction == PA_ALSA_DIRECTION_OUTPUT) { + if (snd_mixer_selem_has_playback_channel(me, c)) { + if ((r = snd_mixer_selem_set_playback_volume(me, c, value)) >= 0) + r = snd_mixer_selem_get_playback_volume(me, c, &value); + } else + r = -1; + } else { + if (snd_mixer_selem_has_capture_channel(me, c)) { + if ((r = snd_mixer_selem_set_capture_volume(me, c, value)) >= 0) + r = snd_mixer_selem_get_capture_volume(me, c, &value); + } else + r = -1; + } + + if (r < 0) + continue; + + f = from_alsa_volume(value, e->min_volume, e->max_volume); + } + + if (f > max_channel_volume) + max_channel_volume = f; + + for (k = 0; k < cm->channels; k++) + if (e->masks[c][e->n_channels-1] & PA_CHANNEL_POSITION_MASK(cm->map[k])) + if (rv.values[k] < f) + rv.values[k] = f; + + mask |= e->masks[c][e->n_channels-1]; + } + + for (k = 0; k < cm->channels; k++) + if (!(mask & PA_CHANNEL_POSITION_MASK(cm->map[k]))) + rv.values[k] = max_channel_volume; + + *v = rv; + return 0; +} + +int pa_alsa_path_set_volume(pa_alsa_path *p, snd_mixer_t *m, const pa_channel_map *cm, pa_cvolume *v) { + pa_alsa_element *e; + pa_cvolume rv; + + pa_assert(m); + pa_assert(p); + pa_assert(cm); + pa_assert(v); + pa_assert(pa_cvolume_compatible_with_channel_map(v, cm)); + + if (!p->has_volume) + return -1; + + rv = *v; /* Remaining adjustment */ + pa_cvolume_reset(v, cm->channels); /* Adjustment done */ + + PA_LLIST_FOREACH(e, p->elements) { + pa_cvolume ev; + + if (e->volume_use != PA_ALSA_VOLUME_MERGE) + continue; + + pa_assert(!p->has_dB || e->has_dB); + + ev = rv; + if (element_set_volume(e, m, cm, &ev) < 0) + return -1; + + if (!p->has_dB) { + *v = ev; + return 0; + } + + pa_sw_cvolume_multiply(v, v, &ev); + pa_sw_cvolume_divide(&rv, &rv, &ev); + } + + return 0; +} + +static int element_set_switch(pa_alsa_element *e, snd_mixer_t *m, pa_bool_t b) { + snd_mixer_elem_t *me; + snd_mixer_selem_id_t *sid; + int r; + + pa_assert(m); + pa_assert(e); + + SELEM_INIT(sid, e->alsa_name); + if (!(me = snd_mixer_find_selem(m, sid))) { + pa_log_warn("Element %s seems to have disappeared.", e->alsa_name); + return -1; + } + + if (e->direction == PA_ALSA_DIRECTION_OUTPUT) + r = snd_mixer_selem_set_playback_switch_all(me, b); + else + r = snd_mixer_selem_set_capture_switch_all(me, b); + + if (r < 0) + pa_log_warn("Failed to set switch of %s: %s", e->alsa_name, pa_alsa_strerror(errno)); + + return r; +} + +int pa_alsa_path_set_mute(pa_alsa_path *p, snd_mixer_t *m, pa_bool_t muted) { + pa_alsa_element *e; + + pa_assert(m); + pa_assert(p); + + if (!p->has_mute) + return -1; + + PA_LLIST_FOREACH(e, p->elements) { + + if (e->switch_use != PA_ALSA_SWITCH_MUTE) + continue; + + if (element_set_switch(e, m, !muted) < 0) + return -1; + } + + return 0; +} + +static int element_mute_volume(pa_alsa_element *e, snd_mixer_t *m) { + snd_mixer_elem_t *me; + snd_mixer_selem_id_t *sid; + int r; + + pa_assert(m); + pa_assert(e); + + SELEM_INIT(sid, e->alsa_name); + if (!(me = snd_mixer_find_selem(m, sid))) { + pa_log_warn("Element %s seems to have disappeared.", e->alsa_name); + return -1; + } + + if (e->direction == PA_ALSA_DIRECTION_OUTPUT) + r = snd_mixer_selem_set_playback_volume_all(me, e->min_volume); + else + r = snd_mixer_selem_set_capture_volume_all(me, e->min_volume); + + if (r < 0) + pa_log_warn("Faile to set volume to muted of %s: %s", e->alsa_name, pa_alsa_strerror(errno)); + + return r; +} + +/* The volume to 0dB */ +static int element_zero_volume(pa_alsa_element *e, snd_mixer_t *m) { + snd_mixer_elem_t *me; + snd_mixer_selem_id_t *sid; + int r; + + pa_assert(m); + pa_assert(e); + + SELEM_INIT(sid, e->alsa_name); + if (!(me = snd_mixer_find_selem(m, sid))) { + pa_log_warn("Element %s seems to have disappeared.", e->alsa_name); + return -1; + } + + if (e->direction == PA_ALSA_DIRECTION_OUTPUT) + r = snd_mixer_selem_set_playback_dB_all(me, 0, +1); + else + r = snd_mixer_selem_set_capture_dB_all(me, 0, +1); + + if (r < 0) + pa_log_warn("Faile to set volume to 0dB of %s: %s", e->alsa_name, pa_alsa_strerror(errno)); + + return r; +} + +int pa_alsa_path_select(pa_alsa_path *p, snd_mixer_t *m) { + pa_alsa_element *e; + int r; + + pa_assert(m); + pa_assert(p); + + pa_log_debug("Activating path %s", p->name); + pa_alsa_path_dump(p); + + 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; + + case PA_ALSA_SWITCH_ON: + r = element_set_switch(e, m, TRUE); + break; + + case PA_ALSA_SWITCH_IGNORE: + case PA_ALSA_SWITCH_SELECT: + r = 0; + break; + } + + if (r < 0) + return -1; + + switch (e->volume_use) { + case PA_ALSA_VOLUME_OFF: + case PA_ALSA_VOLUME_MERGE: + r = element_mute_volume(e, m); + break; + + case PA_ALSA_VOLUME_ZERO: + r = element_zero_volume(e, m); + break; + + case PA_ALSA_VOLUME_IGNORE: + r = 0; + break; + } + + if (r < 0) + return -1; + } + + return 0; +} + +static int check_required(pa_alsa_element *e, snd_mixer_elem_t *me) { + pa_bool_t has_switch; + pa_bool_t has_enumeration; + pa_bool_t has_volume; + + pa_assert(e); + pa_assert(me); + + if (e->direction == PA_ALSA_DIRECTION_OUTPUT) { + has_switch = + snd_mixer_selem_has_playback_switch(me) || + (e->direction_try_other && snd_mixer_selem_has_capture_switch(me)); + } else { + has_switch = + snd_mixer_selem_has_capture_switch(me) || + (e->direction_try_other && snd_mixer_selem_has_playback_switch(me)); + } + + if (e->direction == PA_ALSA_DIRECTION_OUTPUT) { + has_volume = + snd_mixer_selem_has_playback_volume(me) || + (e->direction_try_other && snd_mixer_selem_has_capture_volume(me)); + } else { + has_volume = + snd_mixer_selem_has_capture_volume(me) || + (e->direction_try_other && snd_mixer_selem_has_playback_volume(me)); + } + + has_enumeration = snd_mixer_selem_is_enumerated(me); + + if ((e->required == PA_ALSA_REQUIRED_SWITCH && !has_switch) || + (e->required == PA_ALSA_REQUIRED_VOLUME && !has_volume) || + (e->required == PA_ALSA_REQUIRED_ENUMERATION && !has_enumeration)) + return -1; + + if (e->required == PA_ALSA_REQUIRED_ANY && !(has_switch || has_volume || has_enumeration)) + return -1; + + if ((e->required_absent == PA_ALSA_REQUIRED_SWITCH && has_switch) || + (e->required_absent == PA_ALSA_REQUIRED_VOLUME && has_volume) || + (e->required_absent == PA_ALSA_REQUIRED_ENUMERATION && has_enumeration)) + return -1; + + if (e->required_absent == PA_ALSA_REQUIRED_ANY && (has_switch || has_volume || has_enumeration)) + return -1; + + return 0; +} + +static int element_probe(pa_alsa_element *e, snd_mixer_t *m) { + snd_mixer_selem_id_t *sid; + snd_mixer_elem_t *me; + + pa_assert(m); + pa_assert(e); + + SELEM_INIT(sid, e->alsa_name); + + if (!(me = snd_mixer_find_selem(m, sid))) { + + if (e->required != PA_ALSA_REQUIRED_IGNORE) + return -1; + + e->switch_use = PA_ALSA_SWITCH_IGNORE; + e->volume_use = PA_ALSA_VOLUME_IGNORE; + e->enumeration_use = PA_ALSA_VOLUME_IGNORE; + + return 0; + } + + if (e->switch_use != PA_ALSA_SWITCH_IGNORE) { + if (e->direction == PA_ALSA_DIRECTION_OUTPUT) { + + if (!snd_mixer_selem_has_playback_switch(me)) { + if (e->direction_try_other && snd_mixer_selem_has_capture_switch(me)) + e->direction = PA_ALSA_DIRECTION_INPUT; + else + e->switch_use = PA_ALSA_SWITCH_IGNORE; + } + + } else { + + if (!snd_mixer_selem_has_capture_switch(me)) { + if (e->direction_try_other && snd_mixer_selem_has_playback_switch(me)) + e->direction = PA_ALSA_DIRECTION_OUTPUT; + else + e->switch_use = PA_ALSA_SWITCH_IGNORE; + } + } + + if (e->switch_use != PA_ALSA_SWITCH_IGNORE) + e->direction_try_other = FALSE; + } + + if (e->volume_use != PA_ALSA_VOLUME_IGNORE) { + + if (e->direction == PA_ALSA_DIRECTION_OUTPUT) { + + if (!snd_mixer_selem_has_playback_volume(me)) { + if (e->direction_try_other && snd_mixer_selem_has_capture_volume(me)) + e->direction = PA_ALSA_DIRECTION_INPUT; + else + e->volume_use = PA_ALSA_VOLUME_IGNORE; + } + + } else { + + if (!snd_mixer_selem_has_capture_volume(me)) { + if (e->direction_try_other && snd_mixer_selem_has_playback_volume(me)) + e->direction = PA_ALSA_DIRECTION_OUTPUT; + else + e->volume_use = PA_ALSA_VOLUME_IGNORE; + } + } + + if (e->volume_use != PA_ALSA_VOLUME_IGNORE) { + long min_dB = 0, max_dB = 0; + int r; + + e->direction_try_other = FALSE; + + if (e->direction == PA_ALSA_DIRECTION_OUTPUT) + e->has_dB = snd_mixer_selem_get_playback_dB_range(me, &min_dB, &max_dB) >= 0; + else + e->has_dB = snd_mixer_selem_get_capture_dB_range(me, &min_dB, &max_dB) >= 0; + + if (e->has_dB) { +#ifdef HAVE_VALGRIND_MEMCHECK_H + VALGRIND_MAKE_MEM_DEFINED(&min_dB, sizeof(min_dB)); + VALGRIND_MAKE_MEM_DEFINED(&max_dB, sizeof(max_dB)); +#endif + + e->min_dB = ((double) min_dB) / 100.0; + e->max_dB = ((double) max_dB) / 100.0; + + if (min_dB >= max_dB) { + pa_log_warn("Your kernel driver is broken: it reports a volume range from %0.2f dB to %0.2f dB which makes no sense.", e->min_dB, e->max_dB); + e->has_dB = FALSE; + } + } + + if (e->direction == PA_ALSA_DIRECTION_OUTPUT) + r = snd_mixer_selem_get_playback_volume_range(me, &e->min_volume, &e->max_volume); + else + r = snd_mixer_selem_get_capture_volume_range(me, &e->min_volume, &e->max_volume); + + if (r < 0) { + pa_log_warn("Failed to get volume range of %s: %s", e->alsa_name, pa_alsa_strerror(r)); + return -1; + } + + + if (e->min_volume >= e->max_volume) { + pa_log_warn("Your kernel driver is broken: it reports a volume range from %li to %li which makes no sense.", e->min_volume, e->max_volume); + e->volume_use = PA_ALSA_VOLUME_IGNORE; + + } else { + pa_bool_t is_mono; + pa_channel_position_t p; + + if (e->direction == PA_ALSA_DIRECTION_OUTPUT) + is_mono = snd_mixer_selem_is_playback_mono(me) > 0; + else + is_mono = snd_mixer_selem_is_capture_mono(me) > 0; + + if (is_mono) { + e->n_channels = 1; + + if (!e->override_map) { + for (p = PA_CHANNEL_POSITION_FRONT_LEFT; p < PA_CHANNEL_POSITION_MAX; p++) + e->masks[alsa_channel_ids[p]][e->n_channels-1] = 0; + e->masks[SND_MIXER_SCHN_MONO][e->n_channels-1] = PA_CHANNEL_POSITION_MASK_ALL; + } + + e->merged_mask = e->masks[SND_MIXER_SCHN_MONO][e->n_channels-1]; + } else { + e->n_channels = 0; + for (p = PA_CHANNEL_POSITION_FRONT_LEFT; p < PA_CHANNEL_POSITION_MAX; p++) { + + if (alsa_channel_ids[p] == SND_MIXER_SCHN_UNKNOWN) + continue; + + if (e->direction == PA_ALSA_DIRECTION_OUTPUT) + e->n_channels += snd_mixer_selem_has_playback_channel(me, alsa_channel_ids[p]) > 0; + else + e->n_channels += snd_mixer_selem_has_capture_channel(me, alsa_channel_ids[p]) > 0; + } + + if (e->n_channels <= 0) { + pa_log_warn("Volume element %s with no channels?", e->alsa_name); + return -1; + } + + if (!e->override_map) { + for (p = PA_CHANNEL_POSITION_FRONT_LEFT; p < PA_CHANNEL_POSITION_MAX; p++) { + pa_bool_t has_channel; + + if (alsa_channel_ids[p] == SND_MIXER_SCHN_UNKNOWN) + continue; + + if (e->direction == PA_ALSA_DIRECTION_OUTPUT) + has_channel = snd_mixer_selem_has_playback_channel(me, alsa_channel_ids[p]) > 0; + else + has_channel = snd_mixer_selem_has_capture_channel(me, alsa_channel_ids[p]) > 0; + + e->masks[alsa_channel_ids[p]][e->n_channels-1] = has_channel ? PA_CHANNEL_POSITION_MASK(p) : 0; + } + } + + e->merged_mask = 0; + for (p = PA_CHANNEL_POSITION_FRONT_LEFT; p < PA_CHANNEL_POSITION_MAX; p++) + e->merged_mask |= e->masks[alsa_channel_ids[p]][e->n_channels-1]; + } + } + } + + } + + if (check_required(e, me) < 0) + return -1; + + if (e->switch_use == PA_ALSA_SWITCH_SELECT) { + pa_alsa_option *o; + + PA_LLIST_FOREACH(o, e->options) + o->alsa_idx = pa_streq(o->alsa_name, "on") ? 1 : 0; + } else if (e->enumeration_use == PA_ALSA_ENUMERATION_SELECT) { + int n; + pa_alsa_option *o; + + if ((n = snd_mixer_selem_get_enum_items(me)) < 0) { + pa_log("snd_mixer_selem_get_enum_items() failed: %s", pa_alsa_strerror(n)); + return -1; + } + + PA_LLIST_FOREACH(o, e->options) { + int i; + + for (i = 0; i < n; i++) { + char buf[128]; + + if (snd_mixer_selem_get_enum_item_name(me, i, sizeof(buf), buf) < 0) + continue; + + if (!pa_streq(buf, o->alsa_name)) + continue; + + o->alsa_idx = i; + } + } + } + + return 0; +} + +static pa_alsa_element* element_get(pa_alsa_path *p, const char *section, pa_bool_t prefixed) { + pa_alsa_element *e; + + pa_assert(p); + pa_assert(section); + + if (prefixed) { + if (!pa_startswith(section, "Element ")) + return NULL; + + section += 8; + } + + /* This is not an element section, but an enum section? */ + if (strchr(section, ':')) + return NULL; + + if (p->last_element && pa_streq(p->last_element->alsa_name, section)) + return p->last_element; + + PA_LLIST_FOREACH(e, p->elements) + if (pa_streq(e->alsa_name, section)) + goto finish; + + e = pa_xnew0(pa_alsa_element, 1); + e->path = p; + e->alsa_name = pa_xstrdup(section); + e->direction = p->direction; + + PA_LLIST_INSERT_AFTER(pa_alsa_element, p->elements, p->last_element, e); + +finish: + p->last_element = e; + return e; +} + +static pa_alsa_option* option_get(pa_alsa_path *p, const char *section) { + char *en; + const char *on; + pa_alsa_option *o; + pa_alsa_element *e; + + if (!pa_startswith(section, "Option ")) + return NULL; + + section += 7; + + /* This is not an enum section, but an element section? */ + if (!(on = strchr(section, ':'))) + return NULL; + + en = pa_xstrndup(section, on - section); + on++; + + if (p->last_option && + pa_streq(p->last_option->element->alsa_name, en) && + pa_streq(p->last_option->alsa_name, on)) { + pa_xfree(en); + return p->last_option; + } + + pa_assert_se(e = element_get(p, en, FALSE)); + pa_xfree(en); + + PA_LLIST_FOREACH(o, e->options) + if (pa_streq(o->alsa_name, on)) + goto finish; + + o = pa_xnew0(pa_alsa_option, 1); + o->element = e; + o->alsa_name = pa_xstrdup(on); + o->alsa_idx = -1; + + if (p->last_option && p->last_option->element == e) + PA_LLIST_INSERT_AFTER(pa_alsa_option, e->options, p->last_option, o); + else + PA_LLIST_PREPEND(pa_alsa_option, e->options, o); + +finish: + p->last_option = o; + return o; +} + +static int element_parse_switch( + const char *filename, + unsigned line, + const char *section, + const char *lvalue, + const char *rvalue, + void *data, + void *userdata) { + + pa_alsa_path *p = userdata; + pa_alsa_element *e; + + pa_assert(p); + + if (!(e = element_get(p, section, TRUE))) { + pa_log("[%s:%u] Switch makes no sense in '%s'", filename, line, section); + return -1; + } + + if (pa_streq(rvalue, "ignore")) + e->switch_use = PA_ALSA_SWITCH_IGNORE; + else if (pa_streq(rvalue, "mute")) + e->switch_use = PA_ALSA_SWITCH_MUTE; + else if (pa_streq(rvalue, "off")) + e->switch_use = PA_ALSA_SWITCH_OFF; + else if (pa_streq(rvalue, "on")) + e->switch_use = PA_ALSA_SWITCH_ON; + else if (pa_streq(rvalue, "select")) + e->switch_use = PA_ALSA_SWITCH_SELECT; + else { + pa_log("[%s:%u] Switch invalid of '%s'", filename, line, section); + return -1; + } + + return 0; +} + +static int element_parse_volume( + const char *filename, + unsigned line, + const char *section, + const char *lvalue, + const char *rvalue, + void *data, + void *userdata) { + + pa_alsa_path *p = userdata; + pa_alsa_element *e; + + pa_assert(p); + + if (!(e = element_get(p, section, TRUE))) { + pa_log("[%s:%u] Volume makes no sense in '%s'", filename, line, section); + return -1; + } + + if (pa_streq(rvalue, "ignore")) + e->volume_use = PA_ALSA_VOLUME_IGNORE; + else if (pa_streq(rvalue, "merge")) + e->volume_use = PA_ALSA_VOLUME_MERGE; + else if (pa_streq(rvalue, "off")) + e->volume_use = PA_ALSA_VOLUME_OFF; + else if (pa_streq(rvalue, "zero")) + e->volume_use = PA_ALSA_VOLUME_ZERO; + else { + pa_log("[%s:%u] Volume invalid of '%s'", filename, line, section); + return -1; + } + + return 0; +} + +static int element_parse_enumeration( + const char *filename, + unsigned line, + const char *section, + const char *lvalue, + const char *rvalue, + void *data, + void *userdata) { + + pa_alsa_path *p = userdata; + pa_alsa_element *e; + + pa_assert(p); + + if (!(e = element_get(p, section, TRUE))) { + pa_log("[%s:%u] Enumeration makes no sense in '%s'", filename, line, section); + return -1; + } + + if (pa_streq(rvalue, "ignore")) + e->enumeration_use = PA_ALSA_ENUMERATION_IGNORE; + else if (pa_streq(rvalue, "select")) + e->enumeration_use = PA_ALSA_ENUMERATION_SELECT; + else { + pa_log("[%s:%u] Enumeration invalid of '%s'", filename, line, section); + return -1; + } + + return 0; +} + +static int option_parse_priority( + const char *filename, + unsigned line, + const char *section, + const char *lvalue, + const char *rvalue, + void *data, + void *userdata) { + + pa_alsa_path *p = userdata; + pa_alsa_option *o; + uint32_t prio; + + pa_assert(p); + + if (!(o = option_get(p, section))) { + pa_log("[%s:%u] Priority makes no sense in '%s'", filename, line, section); + return -1; + } + + if (pa_atou(rvalue, &prio) < 0) { + pa_log("[%s:%u] Priority invalid of '%s'", filename, line, section); + return -1; + } + + o->priority = prio; + return 0; +} + +static int option_parse_name( + const char *filename, + unsigned line, + const char *section, + const char *lvalue, + const char *rvalue, + void *data, + void *userdata) { + + pa_alsa_path *p = userdata; + pa_alsa_option *o; + + pa_assert(p); + + if (!(o = option_get(p, section))) { + pa_log("[%s:%u] Name makes no sense in '%s'", filename, line, section); + return -1; + } + + pa_xfree(o->name); + o->name = pa_xstrdup(rvalue); + + return 0; +} + +static int element_parse_required( + const char *filename, + unsigned line, + const char *section, + const char *lvalue, + const char *rvalue, + void *data, + void *userdata) { + + pa_alsa_path *p = userdata; + pa_alsa_element *e; + pa_alsa_required_t req; + + pa_assert(p); + + if (!(e = element_get(p, section, TRUE))) { + pa_log("[%s:%u] Required makes no sense in '%s'", filename, line, section); + return -1; + } + + if (pa_streq(rvalue, "ignore")) + req = PA_ALSA_REQUIRED_IGNORE; + else if (pa_streq(rvalue, "switch")) + req = PA_ALSA_REQUIRED_SWITCH; + else if (pa_streq(rvalue, "volume")) + req = PA_ALSA_REQUIRED_VOLUME; + else if (pa_streq(rvalue, "enumeration")) + req = PA_ALSA_REQUIRED_ENUMERATION; + else if (pa_streq(rvalue, "any")) + req = PA_ALSA_REQUIRED_ANY; + else { + pa_log("[%s:%u] Required invalid of '%s'", filename, line, section); + return -1; + } + + if (pa_streq(lvalue, "required-absent")) + e->required_absent = req; + else + e->required = req; + + return 0; +} + +static int element_parse_direction( + const char *filename, + unsigned line, + const char *section, + const char *lvalue, + const char *rvalue, + void *data, + void *userdata) { + + pa_alsa_path *p = userdata; + pa_alsa_element *e; + + pa_assert(p); + + if (!(e = element_get(p, section, TRUE))) { + pa_log("[%s:%u] Direction makes no sense in '%s'", filename, line, section); + return -1; + } + + if (pa_streq(rvalue, "playback")) + e->direction = PA_ALSA_DIRECTION_OUTPUT; + else if (pa_streq(rvalue, "capture")) + e->direction = PA_ALSA_DIRECTION_INPUT; + else { + pa_log("[%s:%u] Direction invalid of '%s'", filename, line, section); + return -1; + } + + return 0; +} + +static int element_parse_direction_try_other( + const char *filename, + unsigned line, + const char *section, + const char *lvalue, + const char *rvalue, + void *data, + void *userdata) { + + pa_alsa_path *p = userdata; + pa_alsa_element *e; + int yes; + + if (!(e = element_get(p, section, TRUE))) { + pa_log("[%s:%u] Direction makes no sense in '%s'", filename, line, section); + return -1; + } + + if ((yes = pa_parse_boolean(rvalue)) < 0) { + pa_log("[%s:%u] Direction invalid of '%s'", filename, line, section); + return -1; + } + + e->direction_try_other = !!yes; + return 0; +} + +static pa_channel_position_mask_t parse_mask(const char *m) { + pa_channel_position_mask_t v; + + if (pa_streq(m, "all-left")) + v = PA_CHANNEL_POSITION_MASK_LEFT; + else if (pa_streq(m, "all-right")) + v = PA_CHANNEL_POSITION_MASK_RIGHT; + else if (pa_streq(m, "all-center")) + v = PA_CHANNEL_POSITION_MASK_CENTER; + else if (pa_streq(m, "all-front")) + v = PA_CHANNEL_POSITION_MASK_FRONT; + else if (pa_streq(m, "all-rear")) + v = PA_CHANNEL_POSITION_MASK_REAR; + else if (pa_streq(m, "all-side")) + v = PA_CHANNEL_POSITION_MASK_SIDE_OR_TOP_CENTER; + else if (pa_streq(m, "all-top")) + v = PA_CHANNEL_POSITION_MASK_TOP; + else if (pa_streq(m, "all-no-lfe")) + v = PA_CHANNEL_POSITION_MASK_ALL ^ PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_LFE); + else if (pa_streq(m, "all")) + v = PA_CHANNEL_POSITION_MASK_ALL; + else { + pa_channel_position_t p; + + if ((p = pa_channel_position_from_string(m)) == PA_CHANNEL_POSITION_INVALID) + return 0; + + v = PA_CHANNEL_POSITION_MASK(p); + } + + return v; +} + +static int element_parse_override_map( + const char *filename, + unsigned line, + const char *section, + const char *lvalue, + const char *rvalue, + void *data, + void *userdata) { + + pa_alsa_path *p = userdata; + pa_alsa_element *e; + const char *state = NULL; + unsigned i = 0; + char *n; + + if (!(e = element_get(p, section, TRUE))) { + pa_log("[%s:%u] Override map makes no sense in '%s'", filename, line, section); + return -1; + } + + while ((n = pa_split(rvalue, ",", &state))) { + pa_channel_position_mask_t m; + + if (!*n) + m = 0; + else { + if ((m = parse_mask(n)) == 0) { + pa_log("[%s:%u] Override map '%s' invalid in '%s'", filename, line, n, section); + pa_xfree(n); + return -1; + } + } + + if (pa_streq(lvalue, "override-map.1")) + e->masks[i++][0] = m; + else + e->masks[i++][1] = m; + + /* Later on we might add override-map.3 and so on here ... */ + + pa_xfree(n); + } + + e->override_map = TRUE; + + return 0; +} + +static int element_set_option(pa_alsa_element *e, snd_mixer_t *m, int alsa_idx) { + snd_mixer_selem_id_t *sid; + snd_mixer_elem_t *me; + int r; + + pa_assert(e); + pa_assert(m); + + SELEM_INIT(sid, e->alsa_name); + if (!(me = snd_mixer_find_selem(m, sid))) { + pa_log_warn("Element %s seems to have disappeared.", e->alsa_name); + return -1; + } + + if (e->switch_use == PA_ALSA_SWITCH_SELECT) { + + if (e->direction == PA_ALSA_DIRECTION_OUTPUT) + r = snd_mixer_selem_set_playback_switch_all(me, alsa_idx); + else + r = snd_mixer_selem_set_capture_switch_all(me, alsa_idx); + + if (r < 0) + pa_log_warn("Faile to set switch of %s: %s", e->alsa_name, pa_alsa_strerror(errno)); + + } else { + pa_assert(e->enumeration_use == PA_ALSA_ENUMERATION_SELECT); + + if ((r = snd_mixer_selem_set_enum_item(me, 0, alsa_idx)) < 0) + pa_log_warn("Faile to set enumeration of %s: %s", e->alsa_name, pa_alsa_strerror(errno)); + } + + return r; +} + +int pa_alsa_setting_select(pa_alsa_setting *s, snd_mixer_t *m) { + pa_alsa_option *o; + uint32_t idx; + + pa_assert(s); + pa_assert(m); + + PA_IDXSET_FOREACH(o, s->options, idx) + element_set_option(o->element, m, o->alsa_idx); + + return 0; +} + +static int option_verify(pa_alsa_option *o) { + static const struct description_map well_known_descriptions[] = { + { "input", N_("Input") }, + { "input-docking", N_("Docking Station Input") }, + { "input-docking-microphone", N_("Docking Station Microphone") }, + { "input-linein", N_("Line-In") }, + { "input-microphone", N_("Microphone") }, + { "input-microphone-external", N_("External Microphone") }, + { "input-microphone-internal", N_("Internal Microphone") }, + { "input-radio", N_("Radio") }, + { "input-video", N_("Video") }, + { "input-agc-on", N_("Automatic Gain Control") }, + { "input-agc-off", "" }, + { "input-boost-on", N_("Boost") }, + { "input-boost-off", "" }, + { "output-amplifier-on", N_("Amplifier") }, + { "output-amplifier-off", "" } + }; + + pa_assert(o); + + if (!o->name) { + pa_log("No name set for option %s", o->alsa_name); + return -1; + } + + if (o->element->enumeration_use != PA_ALSA_ENUMERATION_SELECT && + o->element->switch_use != PA_ALSA_SWITCH_SELECT) { + pa_log("Element %s of option %s not set for select.", o->element->alsa_name, o->name); + return -1; + } + + if (o->element->switch_use == PA_ALSA_SWITCH_SELECT && + !pa_streq(o->alsa_name, "on") && + !pa_streq(o->alsa_name, "off")) { + pa_log("Switch %s options need be named off or on ", o->element->alsa_name); + return -1; + } + + if (!o->description) + o->description = pa_xstrdup(lookup_description(o->name, + well_known_descriptions, + PA_ELEMENTSOF(well_known_descriptions))); + if (!o->description) + o->description = pa_xstrdup(o->name); + + return 0; +} + +static int element_verify(pa_alsa_element *e) { + pa_alsa_option *o; + + pa_assert(e); + + if ((e->required != PA_ALSA_REQUIRED_IGNORE && e->required == e->required_absent) || + (e->required_absent == PA_ALSA_REQUIRED_ANY && e->required != PA_ALSA_REQUIRED_IGNORE)) { + pa_log("Element %s cannot be required and absent at the same time.", e->alsa_name); + return -1; + } + + if (e->switch_use == PA_ALSA_SWITCH_SELECT && e->enumeration_use == PA_ALSA_ENUMERATION_SELECT) { + pa_log("Element %s cannot set select for both switch and enumeration.", e->alsa_name); + return -1; + } + + PA_LLIST_FOREACH(o, e->options) + if (option_verify(o) < 0) + return -1; + + return 0; +} + +static int path_verify(pa_alsa_path *p) { + static const struct description_map well_known_descriptions[] = { + { "analog-input", N_("Analog Input") }, + { "analog-input-microphone", N_("Analog Microphone") }, + { "analog-input-linein", N_("Analog Line-In") }, + { "analog-input-radio", N_("Analog Radio") }, + { "analog-input-video", N_("Analog Video") }, + { "analog-output", N_("Analog Output") }, + { "analog-output-headphones", N_("Analog Headphones") }, + { "analog-output-lfe-on-mono", N_("Analog Output (LFE)") }, + { "analog-output-mono", N_("Analog Mono Output") } + }; + + pa_alsa_element *e; + + pa_assert(p); + + PA_LLIST_FOREACH(e, p->elements) + if (element_verify(e) < 0) + return -1; + + if (!p->description) + p->description = pa_xstrdup(lookup_description(p->name, + well_known_descriptions, + PA_ELEMENTSOF(well_known_descriptions))); + + if (!p->description) + p->description = pa_xstrdup(p->name); + + return 0; +} + +pa_alsa_path* pa_alsa_path_new(const char *fname, pa_alsa_direction_t direction) { + pa_alsa_path *p; + char *fn; + int r; + const char *n; + + pa_config_item items[] = { + /* [General] */ + { "priority", pa_config_parse_unsigned, NULL, "General" }, + { "description", pa_config_parse_string, NULL, "General" }, + { "name", pa_config_parse_string, NULL, "General" }, + + /* [Option ...] */ + { "priority", option_parse_priority, NULL, NULL }, + { "name", option_parse_name, NULL, NULL }, + + /* [Element ...] */ + { "switch", element_parse_switch, NULL, NULL }, + { "volume", element_parse_volume, NULL, NULL }, + { "enumeration", element_parse_enumeration, NULL, NULL }, + { "override-map.1", element_parse_override_map, NULL, NULL }, + { "override-map.2", element_parse_override_map, NULL, NULL }, + /* ... later on we might add override-map.3 and so on here ... */ + { "required", element_parse_required, NULL, NULL }, + { "required-absent", element_parse_required, NULL, NULL }, + { "direction", element_parse_direction, NULL, NULL }, + { "direction-try-other", element_parse_direction_try_other, NULL, NULL }, + { NULL, NULL, NULL, NULL } + }; + + pa_assert(fname); + + p = pa_xnew0(pa_alsa_path, 1); + n = pa_path_get_filename(fname); + p->name = pa_xstrndup(n, strcspn(n, ".")); + p->direction = direction; + + items[0].data = &p->priority; + items[1].data = &p->description; + items[2].data = &p->name; + + fn = pa_maybe_prefix_path(fname, PA_ALSA_PATHS_DIR); + r = pa_config_parse(fn, NULL, items, p); + pa_xfree(fn); + + if (r < 0) + goto fail; + + if (path_verify(p) < 0) + goto fail; + + return p; + +fail: + pa_alsa_path_free(p); + return NULL; +} + +pa_alsa_path* pa_alsa_path_synthesize(const char*element, pa_alsa_direction_t direction) { + pa_alsa_path *p; + pa_alsa_element *e; + + pa_assert(element); + + p = pa_xnew0(pa_alsa_path, 1); + p->name = pa_xstrdup(element); + p->direction = direction; + + e = pa_xnew0(pa_alsa_element, 1); + e->path = p; + e->alsa_name = pa_xstrdup(element); + e->direction = direction; + + e->switch_use = PA_ALSA_SWITCH_MUTE; + e->volume_use = PA_ALSA_VOLUME_MERGE; + + PA_LLIST_PREPEND(pa_alsa_element, p->elements, e); + return p; +} + +static pa_bool_t element_drop_unsupported(pa_alsa_element *e) { + pa_alsa_option *o, *n; + + pa_assert(e); + + for (o = e->options; o; o = n) { + n = o->next; + + if (o->alsa_idx < 0) { + PA_LLIST_REMOVE(pa_alsa_option, e->options, o); + option_free(o); + } + } + + return + e->switch_use != PA_ALSA_SWITCH_IGNORE || + e->volume_use != PA_ALSA_VOLUME_IGNORE || + e->enumeration_use != PA_ALSA_ENUMERATION_IGNORE; +} + +static void path_drop_unsupported(pa_alsa_path *p) { + pa_alsa_element *e, *n; + + pa_assert(p); + + for (e = p->elements; e; e = n) { + n = e->next; + + if (!element_drop_unsupported(e)) { + PA_LLIST_REMOVE(pa_alsa_element, p->elements, e); + element_free(e); + } + } +} + +static void path_make_options_unique(pa_alsa_path *p) { + pa_alsa_element *e; + pa_alsa_option *o, *u; + + PA_LLIST_FOREACH(e, p->elements) { + PA_LLIST_FOREACH(o, e->options) { + unsigned i; + char *m; + + for (u = o->next; u; u = u->next) + if (pa_streq(u->name, o->name)) + break; + + if (!u) + continue; + + m = pa_xstrdup(o->name); + + /* OK, this name is not unique, hence let's rename */ + for (i = 1, u = o; u; u = u->next) { + char *nn, *nd; + + if (!pa_streq(u->name, m)) + continue; + + nn = pa_sprintf_malloc("%s-%u", m, i); + pa_xfree(u->name); + u->name = nn; + + nd = pa_sprintf_malloc("%s %u", u->description, i); + pa_xfree(u->description); + u->description = nd; + + i++; + } + + pa_xfree(m); + } + } +} + +static pa_bool_t element_create_settings(pa_alsa_element *e, pa_alsa_setting *template) { + pa_alsa_option *o; + + for (; e; e = e->next) + if (e->switch_use == PA_ALSA_SWITCH_SELECT || + e->enumeration_use == PA_ALSA_ENUMERATION_SELECT) + break; + + if (!e) + return FALSE; + + for (o = e->options; o; o = o->next) { + pa_alsa_setting *s; + + if (template) { + s = pa_xnewdup(pa_alsa_setting, template, 1); + s->options = pa_idxset_copy(template->options); + s->name = pa_sprintf_malloc(_("%s+%s"), template->name, o->name); + s->description = + (template->description[0] && o->description[0]) + ? pa_sprintf_malloc(_("%s / %s"), template->description, o->description) + : (template->description[0] + ? pa_xstrdup(template->description) + : pa_xstrdup(o->description)); + + s->priority = PA_MAX(template->priority, o->priority); + } else { + s = pa_xnew0(pa_alsa_setting, 1); + s->options = pa_idxset_new(pa_idxset_trivial_hash_func, pa_idxset_trivial_compare_func); + s->name = pa_xstrdup(o->name); + s->description = pa_xstrdup(o->description); + s->priority = o->priority; + } + + pa_idxset_put(s->options, o, NULL); + + if (element_create_settings(e->next, s)) + /* This is not a leaf, so let's get rid of it */ + setting_free(s); + else { + /* This is a leaf, so let's add it */ + PA_LLIST_INSERT_AFTER(pa_alsa_setting, e->path->settings, e->path->last_setting, s); + + e->path->last_setting = s; + } + } + + return TRUE; +} + +static void path_create_settings(pa_alsa_path *p) { + pa_assert(p); + + element_create_settings(p->elements, NULL); +} + +int pa_alsa_path_probe(pa_alsa_path *p, snd_mixer_t *m, pa_bool_t ignore_dB) { + pa_alsa_element *e; + double min_dB[PA_CHANNEL_POSITION_MAX], max_dB[PA_CHANNEL_POSITION_MAX]; + pa_channel_position_t t; + + pa_assert(p); + pa_assert(m); + + if (p->probed) + return 0; + + pa_zero(min_dB); + pa_zero(max_dB); + + pa_log_debug("Probing path '%s'", p->name); + + PA_LLIST_FOREACH(e, p->elements) { + if (element_probe(e, m) < 0) { + p->supported = FALSE; + pa_log_debug("Probe of element '%s' failed.", e->alsa_name); + return -1; + } + + if (ignore_dB) + e->has_dB = FALSE; + + if (e->volume_use == PA_ALSA_VOLUME_MERGE) { + + if (!p->has_volume) { + p->min_volume = e->min_volume; + p->max_volume = e->max_volume; + } + + if (e->has_dB) { + if (!p->has_volume) { + for (t = 0; t < PA_CHANNEL_POSITION_MAX; t++) + if (PA_CHANNEL_POSITION_MASK(t) & e->merged_mask) { + min_dB[t] = e->min_dB; + max_dB[t] = e->max_dB; + } + + p->has_dB = TRUE; + } else { + + if (p->has_dB) { + for (t = 0; t < PA_CHANNEL_POSITION_MAX; t++) + if (PA_CHANNEL_POSITION_MASK(t) & e->merged_mask) { + min_dB[t] += e->min_dB; + max_dB[t] += e->max_dB; + } + } else + /* Hmm, there's another element before us + * which cannot do dB volumes, so we we need + * to 'neutralize' this slider */ + e->volume_use = PA_ALSA_VOLUME_ZERO; + } + } else if (p->has_volume) + /* We can't use this volume, so let's ignore it */ + e->volume_use = PA_ALSA_VOLUME_IGNORE; + + p->has_volume = TRUE; + } + + if (e->switch_use == PA_ALSA_SWITCH_MUTE) + p->has_mute = TRUE; + } + + path_drop_unsupported(p); + path_make_options_unique(p); + path_create_settings(p); + + p->supported = TRUE; + p->probed = TRUE; + + p->min_dB = INFINITY; + p->max_dB = -INFINITY; + + for (t = 0; t < PA_CHANNEL_POSITION_MAX; t++) { + if (p->min_dB > min_dB[t]) + p->min_dB = min_dB[t]; + + if (p->max_dB < max_dB[t]) + p->max_dB = max_dB[t]; + } + + return 0; +} + +void pa_alsa_setting_dump(pa_alsa_setting *s) { + pa_assert(s); + + pa_log_debug("Setting %s (%s) priority=%u", + s->name, + pa_strnull(s->description), + s->priority); +} + +void pa_alsa_option_dump(pa_alsa_option *o) { + pa_assert(o); + + pa_log_debug("Option %s (%s/%s) index=%i, priority=%u", + o->alsa_name, + pa_strnull(o->name), + pa_strnull(o->description), + o->alsa_idx, + o->priority); +} + +void pa_alsa_element_dump(pa_alsa_element *e) { + pa_alsa_option *o; + pa_assert(e); + + pa_log_debug("Element %s, direction=%i, switch=%i, volume=%i, enumeration=%i, required=%i, required_absent=%i, mask=0x%llx, n_channels=%u, override_map=%s", + e->alsa_name, + e->direction, + e->switch_use, + e->volume_use, + e->enumeration_use, + e->required, + e->required_absent, + (long long unsigned) e->merged_mask, + e->n_channels, + pa_yes_no(e->override_map)); + + PA_LLIST_FOREACH(o, e->options) + pa_alsa_option_dump(o); +} + +void pa_alsa_path_dump(pa_alsa_path *p) { + pa_alsa_element *e; + pa_alsa_setting *s; + pa_assert(p); + + pa_log_debug("Path %s (%s), direction=%i, priority=%u, probed=%s, supported=%s, has_mute=%s, has_volume=%s, " + "has_dB=%s, min_volume=%li, max_volume=%li, min_dB=%g, max_dB=%g", + p->name, + pa_strnull(p->description), + p->direction, + p->priority, + pa_yes_no(p->probed), + pa_yes_no(p->supported), + pa_yes_no(p->has_mute), + pa_yes_no(p->has_volume), + pa_yes_no(p->has_dB), + p->min_volume, p->max_volume, + p->min_dB, p->max_dB); + + PA_LLIST_FOREACH(e, p->elements) + pa_alsa_element_dump(e); + + PA_LLIST_FOREACH(s, p->settings) + pa_alsa_setting_dump(s); +} + +static void element_set_callback(pa_alsa_element *e, snd_mixer_t *m, snd_mixer_elem_callback_t cb, void *userdata) { + snd_mixer_selem_id_t *sid; + snd_mixer_elem_t *me; + + pa_assert(e); + pa_assert(m); + pa_assert(cb); + + SELEM_INIT(sid, e->alsa_name); + if (!(me = snd_mixer_find_selem(m, sid))) { + pa_log_warn("Element %s seems to have disappeared.", e->alsa_name); + return; + } + + snd_mixer_elem_set_callback(me, cb); + snd_mixer_elem_set_callback_private(me, userdata); +} + +void pa_alsa_path_set_callback(pa_alsa_path *p, snd_mixer_t *m, snd_mixer_elem_callback_t cb, void *userdata) { + pa_alsa_element *e; + + pa_assert(p); + pa_assert(m); + pa_assert(cb); + + PA_LLIST_FOREACH(e, p->elements) + element_set_callback(e, m, cb, userdata); +} + +void pa_alsa_path_set_set_callback(pa_alsa_path_set *ps, snd_mixer_t *m, snd_mixer_elem_callback_t cb, void *userdata) { + pa_alsa_path *p; + + pa_assert(ps); + pa_assert(m); + pa_assert(cb); + + PA_LLIST_FOREACH(p, ps->paths) + pa_alsa_path_set_callback(p, m, cb, userdata); +} + +pa_alsa_path_set *pa_alsa_path_set_new(pa_alsa_mapping *m, pa_alsa_direction_t direction) { + pa_alsa_path_set *ps; + char **pn = NULL, **en = NULL, **ie; + + pa_assert(m); + pa_assert(direction == PA_ALSA_DIRECTION_OUTPUT || direction == PA_ALSA_DIRECTION_INPUT); + + if (m->direction != PA_ALSA_DIRECTION_ANY && m->direction != direction) + return NULL; + + ps = pa_xnew0(pa_alsa_path_set, 1); + ps->direction = direction; + + if (direction == PA_ALSA_DIRECTION_OUTPUT) + pn = m->output_path_names; + else if (direction == PA_ALSA_DIRECTION_INPUT) + pn = m->input_path_names; + + if (pn) { + char **in; + + for (in = pn; *in; in++) { + pa_alsa_path *p; + pa_bool_t duplicate = FALSE; + char **kn, *fn; + + for (kn = pn; kn != in; kn++) + if (pa_streq(*kn, *in)) { + duplicate = TRUE; + break; + } + + if (duplicate) + continue; + + fn = pa_sprintf_malloc("%s.conf", *in); + + if ((p = pa_alsa_path_new(fn, direction))) { + p->path_set = ps; + PA_LLIST_INSERT_AFTER(pa_alsa_path, ps->paths, ps->last_path, p); + ps->last_path = p; + } + + pa_xfree(fn); + } + + return ps; + } + + if (direction == PA_ALSA_DIRECTION_OUTPUT) + en = m->output_element; + else if (direction == PA_ALSA_DIRECTION_INPUT) + en = m->input_element; + + if (!en) { + pa_alsa_path_set_free(ps); + return NULL; + } + + for (ie = en; *ie; ie++) { + char **je; + pa_alsa_path *p; + + p = pa_alsa_path_synthesize(*ie, direction); + p->path_set = ps; + + /* Mark all other passed elements for require-absent */ + for (je = en; *je; je++) { + pa_alsa_element *e; + e = pa_xnew0(pa_alsa_element, 1); + e->path = p; + e->alsa_name = pa_xstrdup(*je); + e->direction = direction; + e->required_absent = PA_ALSA_REQUIRED_ANY; + + PA_LLIST_INSERT_AFTER(pa_alsa_element, p->elements, p->last_element, e); + p->last_element = e; + } + + PA_LLIST_INSERT_AFTER(pa_alsa_path, ps->paths, ps->last_path, p); + ps->last_path = p; + } + + return ps; +} + +void pa_alsa_path_set_dump(pa_alsa_path_set *ps) { + pa_alsa_path *p; + pa_assert(ps); + + pa_log_debug("Path Set %p, direction=%i, probed=%s", + (void*) ps, + ps->direction, + pa_yes_no(ps->probed)); + + PA_LLIST_FOREACH(p, ps->paths) + pa_alsa_path_dump(p); +} + +static void path_set_unify(pa_alsa_path_set *ps) { + pa_alsa_path *p; + pa_bool_t has_dB = TRUE, has_volume = TRUE, has_mute = TRUE; + pa_assert(ps); + + /* We have issues dealing with paths that vary too wildly. That + * means for now we have to have all paths support volume/mute/dB + * or none. */ + + PA_LLIST_FOREACH(p, ps->paths) { + pa_assert(p->probed); + + if (!p->has_volume) + has_volume = FALSE; + else if (!p->has_dB) + has_dB = FALSE; + + if (!p->has_mute) + has_mute = FALSE; + } + + if (!has_volume || !has_dB || !has_mute) { + + if (!has_volume) + pa_log_debug("Some paths of the device lack hardware volume control, disabling hardware control altogether."); + else if (!has_dB) + pa_log_debug("Some paths of the device lack dB information, disabling dB logic altogether."); + + if (!has_mute) + pa_log_debug("Some paths of the device lack hardware mute control, disabling hardware control altogether."); + + PA_LLIST_FOREACH(p, ps->paths) { + if (!has_volume) + p->has_volume = FALSE; + else if (!has_dB) + p->has_dB = FALSE; + + if (!has_mute) + p->has_mute = FALSE; + } + } +} + +static void path_set_make_paths_unique(pa_alsa_path_set *ps) { + pa_alsa_path *p, *q; + + PA_LLIST_FOREACH(p, ps->paths) { + unsigned i; + char *m; + + for (q = p->next; q; q = q->next) + if (pa_streq(q->name, p->name)) + break; + + if (!q) + continue; + + m = pa_xstrdup(p->name); + + /* OK, this name is not unique, hence let's rename */ + for (i = 1, q = p; q; q = q->next) { + char *nn, *nd; + + if (!pa_streq(q->name, m)) + continue; + + nn = pa_sprintf_malloc("%s-%u", m, i); + pa_xfree(q->name); + q->name = nn; + + nd = pa_sprintf_malloc("%s %u", q->description, i); + pa_xfree(q->description); + q->description = nd; + + i++; + } + + pa_xfree(m); + } +} + +void pa_alsa_path_set_probe(pa_alsa_path_set *ps, snd_mixer_t *m, pa_bool_t ignore_dB) { + pa_alsa_path *p, *n; + + pa_assert(ps); + + if (ps->probed) + return; + + for (p = ps->paths; p; p = n) { + n = p->next; + + if (pa_alsa_path_probe(p, m, ignore_dB) < 0) { + PA_LLIST_REMOVE(pa_alsa_path, ps->paths, p); + pa_alsa_path_free(p); + } + } + + path_set_unify(ps); + path_set_make_paths_unique(ps); + ps->probed = TRUE; +} + +static void mapping_free(pa_alsa_mapping *m) { + pa_assert(m); + + pa_xfree(m->name); + pa_xfree(m->description); + + pa_xstrfreev(m->device_strings); + pa_xstrfreev(m->input_path_names); + pa_xstrfreev(m->output_path_names); + pa_xstrfreev(m->input_element); + pa_xstrfreev(m->output_element); + + pa_assert(!m->input_pcm); + pa_assert(!m->output_pcm); + + pa_xfree(m); +} + +static void profile_free(pa_alsa_profile *p) { + pa_assert(p); + + pa_xfree(p->name); + pa_xfree(p->description); + + pa_xstrfreev(p->input_mapping_names); + pa_xstrfreev(p->output_mapping_names); + + if (p->input_mappings) + pa_idxset_free(p->input_mappings, NULL, NULL); + + if (p->output_mappings) + pa_idxset_free(p->output_mappings, NULL, NULL); + + pa_xfree(p); +} + +void pa_alsa_profile_set_free(pa_alsa_profile_set *ps) { + pa_assert(ps); + + if (ps->profiles) { + pa_alsa_profile *p; + + while ((p = pa_hashmap_steal_first(ps->profiles))) + profile_free(p); + + pa_hashmap_free(ps->profiles, NULL, NULL); + } + + if (ps->mappings) { + pa_alsa_mapping *m; + + while ((m = pa_hashmap_steal_first(ps->mappings))) + mapping_free(m); + + pa_hashmap_free(ps->mappings, NULL, NULL); + } + + pa_xfree(ps); +} + +static pa_alsa_mapping *mapping_get(pa_alsa_profile_set *ps, const char *name) { + pa_alsa_mapping *m; + + if (!pa_startswith(name, "Mapping ")) + return NULL; + + name += 8; + + if ((m = pa_hashmap_get(ps->mappings, name))) + return m; + + m = pa_xnew0(pa_alsa_mapping, 1); + m->profile_set = ps; + m->name = pa_xstrdup(name); + pa_channel_map_init(&m->channel_map); + + pa_hashmap_put(ps->mappings, m->name, m); + + return m; +} + +static pa_alsa_profile *profile_get(pa_alsa_profile_set *ps, const char *name) { + pa_alsa_profile *p; + + if (!pa_startswith(name, "Profile ")) + return NULL; + + name += 8; + + if ((p = pa_hashmap_get(ps->profiles, name))) + return p; + + p = pa_xnew0(pa_alsa_profile, 1); + p->profile_set = ps; + p->name = pa_xstrdup(name); + + pa_hashmap_put(ps->profiles, p->name, p); + + return p; +} + +static int mapping_parse_device_strings( + const char *filename, + unsigned line, + const char *section, + const char *lvalue, + const char *rvalue, + void *data, + void *userdata) { + + pa_alsa_profile_set *ps = userdata; + pa_alsa_mapping *m; + + pa_assert(ps); + + if (!(m = mapping_get(ps, section))) { + pa_log("[%s:%u] %s invalid in section %s", filename, line, lvalue, section); + return -1; + } + + pa_xstrfreev(m->device_strings); + if (!(m->device_strings = pa_split_spaces_strv(rvalue))) { + pa_log("[%s:%u] Device string list empty of '%s'", filename, line, section); + return -1; + } + + return 0; +} + +static int mapping_parse_channel_map( + const char *filename, + unsigned line, + const char *section, + const char *lvalue, + const char *rvalue, + void *data, + void *userdata) { + + pa_alsa_profile_set *ps = userdata; + pa_alsa_mapping *m; + + pa_assert(ps); + + if (!(m = mapping_get(ps, section))) { + pa_log("[%s:%u] %s invalid in section %s", filename, line, lvalue, section); + return -1; + } + + if (!(pa_channel_map_parse(&m->channel_map, rvalue))) { + pa_log("[%s:%u] Channel map invalid of '%s'", filename, line, section); + return -1; + } + + return 0; +} + +static int mapping_parse_paths( + const char *filename, + unsigned line, + const char *section, + const char *lvalue, + const char *rvalue, + void *data, + void *userdata) { + + pa_alsa_profile_set *ps = userdata; + pa_alsa_mapping *m; + + pa_assert(ps); + + if (!(m = mapping_get(ps, section))) { + pa_log("[%s:%u] %s invalid in section %s", filename, line, lvalue, section); + return -1; + } + + if (pa_streq(lvalue, "paths-input")) { + pa_xstrfreev(m->input_path_names); + m->input_path_names = pa_split_spaces_strv(rvalue); + } else { + pa_xstrfreev(m->output_path_names); + m->output_path_names = pa_split_spaces_strv(rvalue); + } + + return 0; +} + +static int mapping_parse_element( + const char *filename, + unsigned line, + const char *section, + const char *lvalue, + const char *rvalue, + void *data, + void *userdata) { + + pa_alsa_profile_set *ps = userdata; + pa_alsa_mapping *m; + + pa_assert(ps); + + if (!(m = mapping_get(ps, section))) { + pa_log("[%s:%u] %s invalid in section %s", filename, line, lvalue, section); + return -1; + } + + if (pa_streq(lvalue, "element-input")) { + pa_xstrfreev(m->input_element); + m->input_element = pa_split_spaces_strv(rvalue); + } else { + pa_xstrfreev(m->output_element); + m->output_element = pa_split_spaces_strv(rvalue); + } + + return 0; +} + +static int mapping_parse_direction( + const char *filename, + unsigned line, + const char *section, + const char *lvalue, + const char *rvalue, + void *data, + void *userdata) { + + pa_alsa_profile_set *ps = userdata; + pa_alsa_mapping *m; + + pa_assert(ps); + + if (!(m = mapping_get(ps, section))) { + pa_log("[%s:%u] Section name %s invalid.", filename, line, section); + return -1; + } + + if (pa_streq(rvalue, "input")) + m->direction = PA_ALSA_DIRECTION_INPUT; + else if (pa_streq(rvalue, "output")) + m->direction = PA_ALSA_DIRECTION_OUTPUT; + else if (pa_streq(rvalue, "any")) + m->direction = PA_ALSA_DIRECTION_ANY; + else { + pa_log("[%s:%u] Direction %s invalid.", filename, line, rvalue); + return -1; + } + + return 0; +} + +static int mapping_parse_description( + const char *filename, + unsigned line, + const char *section, + const char *lvalue, + const char *rvalue, + void *data, + void *userdata) { + + pa_alsa_profile_set *ps = userdata; + pa_alsa_profile *p; + pa_alsa_mapping *m; + + pa_assert(ps); + + if ((m = mapping_get(ps, section))) { + pa_xstrdup(m->description); + m->description = pa_xstrdup(rvalue); + } else if ((p = profile_get(ps, section))) { + pa_xfree(p->description); + p->description = pa_xstrdup(rvalue); + } else { + pa_log("[%s:%u] Section name %s invalid.", filename, line, section); + return -1; + } + + return 0; +} + +static int mapping_parse_priority( + const char *filename, + unsigned line, + const char *section, + const char *lvalue, + const char *rvalue, + void *data, + void *userdata) { + + pa_alsa_profile_set *ps = userdata; + pa_alsa_profile *p; + pa_alsa_mapping *m; + uint32_t prio; + + pa_assert(ps); + + if (pa_atou(rvalue, &prio) < 0) { + pa_log("[%s:%u] Priority invalid of '%s'", filename, line, section); + return -1; + } + + if ((m = mapping_get(ps, section))) + m->priority = prio; + else if ((p = profile_get(ps, section))) + p->priority = prio; + else { + pa_log("[%s:%u] Section name %s invalid.", filename, line, section); + return -1; + } + + return 0; +} + +static int profile_parse_mappings( + const char *filename, + unsigned line, + const char *section, + const char *lvalue, + const char *rvalue, + void *data, + void *userdata) { + + pa_alsa_profile_set *ps = userdata; + pa_alsa_profile *p; + + pa_assert(ps); + + if (!(p = profile_get(ps, section))) { + pa_log("[%s:%u] %s invalid in section %s", filename, line, lvalue, section); + return -1; + } + + if (pa_streq(lvalue, "input-mappings")) { + pa_xstrfreev(p->input_mapping_names); + p->input_mapping_names = pa_split_spaces_strv(rvalue); + } else { + pa_xstrfreev(p->output_mapping_names); + p->output_mapping_names = pa_split_spaces_strv(rvalue); + } + + return 0; +} + +static int profile_parse_skip_probe( + const char *filename, + unsigned line, + const char *section, + const char *lvalue, + const char *rvalue, + void *data, + void *userdata) { + + pa_alsa_profile_set *ps = userdata; + pa_alsa_profile *p; + int b; + + pa_assert(ps); + + if (!(p = profile_get(ps, section))) { + pa_log("[%s:%u] %s invalid in section %s", filename, line, lvalue, section); + return -1; + } + + if ((b = pa_parse_boolean(rvalue)) < 0) { + pa_log("[%s:%u] Skip probe invalid of '%s'", filename, line, section); + return -1; + } + + p->supported = b; + + return 0; +} + +static int mapping_verify(pa_alsa_mapping *m, const pa_channel_map *bonus) { + + static const struct description_map well_known_descriptions[] = { + { "analog-mono", N_("Analog Mono") }, + { "analog-stereo", N_("Analog Stereo") }, + { "analog-surround-21", N_("Analog Surround 2.1") }, + { "analog-surround-30", N_("Analog Surround 3.0") }, + { "analog-surround-31", N_("Analog Surround 3.1") }, + { "analog-surround-40", N_("Analog Surround 4.0") }, + { "analog-surround-41", N_("Analog Surround 4.1") }, + { "analog-surround-50", N_("Analog Surround 5.0") }, + { "analog-surround-51", N_("Analog Surround 5.1") }, + { "analog-surround-61", N_("Analog Surround 6.0") }, + { "analog-surround-61", N_("Analog Surround 6.1") }, + { "analog-surround-70", N_("Analog Surround 7.0") }, + { "analog-surround-71", N_("Analog Surround 7.1") }, + { "iec958-stereo", N_("Digital Stereo (IEC958)") }, + { "iec958-surround-40", N_("Digital Surround 4.0 (IEC958)") }, + { "iec958-ac3-surround-40", N_("Digital Surround 4.0 (IEC958/AC3)") }, + { "iec958-ac3-surround-51", N_("Digital Surround 5.1 (IEC958/AC3)") }, + { "hdmi-stereo", N_("Digital Stereo (HDMI)") } + }; + + pa_assert(m); + + if (!pa_channel_map_valid(&m->channel_map)) { + pa_log("Mapping %s is missing channel map.", m->name); + return -1; + } + + if (!m->device_strings) { + pa_log("Mapping %s is missing device strings.", m->name); + return -1; + } + + if ((m->input_path_names && m->input_element) || + (m->output_path_names && m->output_element)) { + pa_log("Mapping %s must have either mixer path or mixer elment, not both.", m->name); + return -1; + } + + if (!m->description) + m->description = pa_xstrdup(lookup_description(m->name, + well_known_descriptions, + PA_ELEMENTSOF(well_known_descriptions))); + + if (!m->description) + m->description = pa_xstrdup(m->name); + + if (bonus) { + if (pa_channel_map_equal(&m->channel_map, bonus)) + m->priority += 5000; + else if (m->channel_map.channels == bonus->channels) + m->priority += 4000; + } + + return 0; +} + +void pa_alsa_mapping_dump(pa_alsa_mapping *m) { + char cm[PA_CHANNEL_MAP_SNPRINT_MAX]; + + pa_assert(m); + + pa_log_debug("Mapping %s (%s), priority=%u, channel_map=%s, supported=%s, direction=%i", + m->name, + pa_strnull(m->description), + m->priority, + pa_channel_map_snprint(cm, sizeof(cm), &m->channel_map), + pa_yes_no(m->supported), + m->direction); +} + +static void profile_set_add_auto_pair( + pa_alsa_profile_set *ps, + pa_alsa_mapping *m, /* output */ + pa_alsa_mapping *n /* input */) { + + char *name; + pa_alsa_profile *p; + + pa_assert(ps); + pa_assert(m || n); + + if (m && m->direction == PA_ALSA_DIRECTION_INPUT) + return; + + if (n && n->direction == PA_ALSA_DIRECTION_OUTPUT) + return; + + if (m && n) + name = pa_sprintf_malloc("output:%s+input:%s", m->name, n->name); + else if (m) + name = pa_sprintf_malloc("output:%s", m->name); + else + name = pa_sprintf_malloc("input:%s", n->name); + + if ((p = pa_hashmap_get(ps->profiles, name))) { + pa_xfree(name); + return; + } + + p = pa_xnew0(pa_alsa_profile, 1); + p->profile_set = ps; + p->name = name; + + if (m) { + p->output_mappings = pa_idxset_new(pa_idxset_trivial_hash_func, pa_idxset_trivial_compare_func); + pa_idxset_put(p->output_mappings, m, NULL); + p->priority += m->priority * 100; + } + + if (n) { + p->input_mappings = pa_idxset_new(pa_idxset_trivial_hash_func, pa_idxset_trivial_compare_func); + pa_idxset_put(p->input_mappings, n, NULL); + p->priority += n->priority; + } + + pa_hashmap_put(ps->profiles, p->name, p); +} + +static void profile_set_add_auto(pa_alsa_profile_set *ps) { + pa_alsa_mapping *m, *n; + void *m_state, *n_state; + + pa_assert(ps); + + PA_HASHMAP_FOREACH(m, ps->mappings, m_state) { + profile_set_add_auto_pair(ps, m, NULL); + + PA_HASHMAP_FOREACH(n, ps->mappings, n_state) + profile_set_add_auto_pair(ps, m, n); + } + + PA_HASHMAP_FOREACH(n, ps->mappings, n_state) + profile_set_add_auto_pair(ps, NULL, n); +} + +static int profile_verify(pa_alsa_profile *p) { + + static const struct description_map well_known_descriptions[] = { + { "output:analog-mono+input:analog-mono", N_("Analog Mono Duplex") }, + { "output:analog-stereo+input:analog-stereo", N_("Analog Stereo Duplex") }, + { "output:iec958-stereo", N_("Digital Stereo Duplex (IEC958)") }, + { "off", N_("Off") } + }; + + pa_assert(p); + + /* Replace the output mapping names by the actual mappings */ + if (p->output_mapping_names) { + char **name; + + pa_assert(!p->output_mappings); + p->output_mappings = pa_idxset_new(pa_idxset_trivial_hash_func, pa_idxset_trivial_compare_func); + + for (name = p->output_mapping_names; *name; name++) { + pa_alsa_mapping *m; + char **in; + pa_bool_t duplicate = FALSE; + + for (in = name + 1; *in; in++) + if (pa_streq(*name, *in)) { + duplicate = TRUE; + break; + } + + if (duplicate) + continue; + + if (!(m = pa_hashmap_get(p->profile_set->mappings, *name)) || m->direction == PA_ALSA_DIRECTION_INPUT) { + pa_log("Profile '%s' refers to unexistant mapping '%s'.", p->name, *name); + return -1; + } + + pa_idxset_put(p->output_mappings, m, NULL); + + if (p->supported) + m->supported++; + } + + pa_xstrfreev(p->output_mapping_names); + p->output_mapping_names = NULL; + } + + /* Replace the input mapping names by the actual mappings */ + if (p->input_mapping_names) { + char **name; + + pa_assert(!p->input_mappings); + p->input_mappings = pa_idxset_new(pa_idxset_trivial_hash_func, pa_idxset_trivial_compare_func); + + for (name = p->input_mapping_names; *name; name++) { + pa_alsa_mapping *m; + char **in; + pa_bool_t duplicate = FALSE; + + for (in = name + 1; *in; in++) + if (pa_streq(*name, *in)) { + duplicate = TRUE; + break; + } + + if (duplicate) + continue; + + if (!(m = pa_hashmap_get(p->profile_set->mappings, *name)) || m->direction == PA_ALSA_DIRECTION_OUTPUT) { + pa_log("Profile '%s' refers to unexistant mapping '%s'.", p->name, *name); + return -1; + } + + pa_idxset_put(p->input_mappings, m, NULL); + + if (p->supported) + m->supported++; + } + + pa_xstrfreev(p->input_mapping_names); + p->input_mapping_names = NULL; + } + + if (!p->input_mappings && !p->output_mappings) { + pa_log("Profile '%s' lacks mappings.", p->name); + return -1; + } + + if (!p->description) + p->description = pa_xstrdup(lookup_description(p->name, + well_known_descriptions, + PA_ELEMENTSOF(well_known_descriptions))); + + if (!p->description) { + pa_strbuf *sb; + uint32_t idx; + pa_alsa_mapping *m; + + sb = pa_strbuf_new(); + + if (p->output_mappings) + PA_IDXSET_FOREACH(m, p->output_mappings, idx) { + if (!pa_strbuf_isempty(sb)) + pa_strbuf_puts(sb, " + "); + + pa_strbuf_printf(sb, "%s Output", m->description); + } + + if (p->input_mappings) + PA_IDXSET_FOREACH(m, p->input_mappings, idx) { + if (!pa_strbuf_isempty(sb)) + pa_strbuf_puts(sb, " + "); + + pa_strbuf_printf(sb, "%s Input", m->description); + } + + p->description = pa_strbuf_tostring_free(sb); + } + + return 0; +} + +void pa_alsa_profile_dump(pa_alsa_profile *p) { + uint32_t idx; + pa_alsa_mapping *m; + pa_assert(p); + + pa_log_debug("Profile %s (%s), priority=%u, supported=%s n_input_mappings=%u, n_output_mappings=%u", + p->name, + pa_strnull(p->description), + p->priority, + pa_yes_no(p->supported), + p->input_mappings ? pa_idxset_size(p->input_mappings) : 0, + p->output_mappings ? pa_idxset_size(p->output_mappings) : 0); + + if (p->input_mappings) + PA_IDXSET_FOREACH(m, p->input_mappings, idx) + pa_log_debug("Input %s", m->name); + + if (p->output_mappings) + PA_IDXSET_FOREACH(m, p->output_mappings, idx) + pa_log_debug("Output %s", m->name); +} + +pa_alsa_profile_set* pa_alsa_profile_set_new(const char *fname, const pa_channel_map *bonus) { + pa_alsa_profile_set *ps; + pa_alsa_profile *p; + pa_alsa_mapping *m; + char *fn; + int r; + void *state; + + static pa_config_item items[] = { + /* [General] */ + { "auto-profiles", pa_config_parse_bool, NULL, "General" }, + + /* [Mapping ...] */ + { "device-strings", mapping_parse_device_strings, NULL, NULL }, + { "channel-map", mapping_parse_channel_map, NULL, NULL }, + { "paths-input", mapping_parse_paths, NULL, NULL }, + { "paths-output", mapping_parse_paths, NULL, NULL }, + { "element-input", mapping_parse_element, NULL, NULL }, + { "element-output", mapping_parse_element, NULL, NULL }, + { "direction", mapping_parse_direction, NULL, NULL }, + + /* Shared by [Mapping ...] and [Profile ...] */ + { "description", mapping_parse_description, NULL, NULL }, + { "priority", mapping_parse_priority, NULL, NULL }, + + /* [Profile ...] */ + { "input-mappings", profile_parse_mappings, NULL, NULL }, + { "output-mappings", profile_parse_mappings, NULL, NULL }, + { "skip-probe", profile_parse_skip_probe, NULL, NULL }, + { NULL, NULL, NULL, NULL } + }; + + ps = pa_xnew0(pa_alsa_profile_set, 1); + ps->mappings = pa_hashmap_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func); + ps->profiles = pa_hashmap_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func); + + items[0].data = &ps->auto_profiles; + + if (!fname) + fname = "default.conf"; + + fn = pa_maybe_prefix_path(fname, PA_ALSA_PROFILE_SETS_DIR); + r = pa_config_parse(fn, NULL, items, ps); + pa_xfree(fn); + + if (r < 0) + goto fail; + + PA_HASHMAP_FOREACH(m, ps->mappings, state) + if (mapping_verify(m, bonus) < 0) + goto fail; + + if (ps->auto_profiles) + profile_set_add_auto(ps); + + PA_HASHMAP_FOREACH(p, ps->profiles, state) + if (profile_verify(p) < 0) + goto fail; + + return ps; + +fail: + pa_alsa_profile_set_free(ps); + return NULL; +} + +void pa_alsa_profile_set_probe(pa_alsa_profile_set *ps, const char *dev_id, const pa_sample_spec *ss) { + void *state; + pa_alsa_profile *p, *last = NULL; + pa_alsa_mapping *m; + + pa_assert(ps); + pa_assert(dev_id); + pa_assert(ss); + + if (ps->probed) + return; + + PA_HASHMAP_FOREACH(p, ps->profiles, state) { + pa_sample_spec try_ss; + pa_channel_map try_map; + uint32_t idx; + + /* Is this already marked that it is supported? (i.e. from the config file) */ + if (p->supported) + continue; + + pa_log_debug("Looking at profile %s", p->name); + + /* Close PCMs from the last iteration we don't need anymore */ + if (last && last->output_mappings) + PA_IDXSET_FOREACH(m, last->output_mappings, idx) { + + if (!m->output_pcm) + break; + + if (last->supported) + m->supported++; + + if (!p->output_mappings || !pa_idxset_get_by_data(p->output_mappings, m, NULL)) { + snd_pcm_close(m->output_pcm); + m->output_pcm = NULL; + } + } + + if (last && last->input_mappings) + PA_IDXSET_FOREACH(m, last->input_mappings, idx) { + + if (!m->input_pcm) + break; + + if (last->supported) + m->supported++; + + if (!p->input_mappings || !pa_idxset_get_by_data(p->input_mappings, m, NULL)) { + snd_pcm_close(m->input_pcm); + m->input_pcm = NULL; + } + } + + p->supported = TRUE; + + /* Check if we can open all new ones */ + if (p->output_mappings) + PA_IDXSET_FOREACH(m, p->output_mappings, idx) { + + if (m->output_pcm) + continue; + + pa_log_debug("Checking for playback on %s (%s)", m->description, m->name); + try_map = m->channel_map; + try_ss = *ss; + try_ss.channels = try_map.channels; + + if (!(m ->output_pcm = pa_alsa_open_by_template( + m->device_strings, + dev_id, + NULL, + &try_ss, &try_map, + SND_PCM_STREAM_PLAYBACK, + NULL, NULL, 0, NULL, NULL, + TRUE))) { + p->supported = FALSE; + break; + } + } + + if (p->input_mappings && p->supported) + PA_IDXSET_FOREACH(m, p->input_mappings, idx) { + + if (m->input_pcm) + continue; + + pa_log_debug("Checking for recording on %s (%s)", m->description, m->name); + try_map = m->channel_map; + try_ss = *ss; + try_ss.channels = try_map.channels; + + if (!(m ->input_pcm = pa_alsa_open_by_template( + m->device_strings, + dev_id, + NULL, + &try_ss, &try_map, + SND_PCM_STREAM_CAPTURE, + NULL, NULL, 0, NULL, NULL, + TRUE))) { + p->supported = FALSE; + break; + } + } + + last = p; + + if (p->supported) + pa_log_debug("Profile %s supported.", p->name); + } + + /* Clean up */ + if (last) { + uint32_t idx; + + if (last->output_mappings) + PA_IDXSET_FOREACH(m, last->output_mappings, idx) + if (m->output_pcm) { + + if (last->supported) + m->supported++; + + snd_pcm_close(m->output_pcm); + m->output_pcm = NULL; + } + + if (last->input_mappings) + PA_IDXSET_FOREACH(m, last->input_mappings, idx) + if (m->input_pcm) { + + if (last->supported) + m->supported++; + + snd_pcm_close(m->input_pcm); + m->input_pcm = NULL; + } + } + + PA_HASHMAP_FOREACH(p, ps->profiles, state) + if (!p->supported) { + pa_hashmap_remove(ps->profiles, p->name); + profile_free(p); + } + + PA_HASHMAP_FOREACH(m, ps->mappings, state) + if (m->supported <= 0) { + pa_hashmap_remove(ps->mappings, m->name); + mapping_free(m); + } + + ps->probed = TRUE; +} + +void pa_alsa_profile_set_dump(pa_alsa_profile_set *ps) { + pa_alsa_profile *p; + pa_alsa_mapping *m; + void *state; + + pa_assert(ps); + + pa_log_debug("Profile set %p, auto_profiles=%s, probed=%s, n_mappings=%u, n_profiles=%u", + (void*) + ps, + pa_yes_no(ps->auto_profiles), + pa_yes_no(ps->probed), + pa_hashmap_size(ps->mappings), + pa_hashmap_size(ps->profiles)); + + PA_HASHMAP_FOREACH(m, ps->mappings, state) + pa_alsa_mapping_dump(m); + + PA_HASHMAP_FOREACH(p, ps->profiles, state) + pa_alsa_profile_dump(p); +} + +void pa_alsa_add_ports(pa_hashmap **p, pa_alsa_path_set *ps) { + pa_alsa_path *path; + + pa_assert(p); + pa_assert(!*p); + pa_assert(ps); + + /* if there is no path, we don't want a port list */ + if (!ps->paths) + return; + + if (!ps->paths->next){ + pa_alsa_setting *s; + + /* If there is only one path, but no or only one setting, then + * we want a port list either */ + if (!ps->paths->settings || !ps->paths->settings->next) + return; + + /* Ok, there is only one path, however with multiple settings, + * so let's create a port for each setting */ + *p = pa_hashmap_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func); + + PA_LLIST_FOREACH(s, ps->paths->settings) { + pa_device_port *port; + pa_alsa_port_data *data; + + port = pa_device_port_new(s->name, s->description, sizeof(pa_alsa_port_data)); + port->priority = s->priority; + + data = PA_DEVICE_PORT_DATA(port); + data->path = ps->paths; + data->setting = s; + + pa_hashmap_put(*p, port->name, port); + } + + } else { + + /* We have multiple paths, so let's create a port for each + * one, and each of each settings */ + *p = pa_hashmap_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func); + + PA_LLIST_FOREACH(path, ps->paths) { + + if (!path->settings || !path->settings->next) { + pa_device_port *port; + pa_alsa_port_data *data; + + /* If there is no or just one setting we only need a + * single entry */ + + port = pa_device_port_new(path->name, path->description, sizeof(pa_alsa_port_data)); + port->priority = path->priority * 100; + + + data = PA_DEVICE_PORT_DATA(port); + data->path = path; + data->setting = path->settings; + + pa_hashmap_put(*p, port->name, port); + } else { + pa_alsa_setting *s; + + PA_LLIST_FOREACH(s, path->settings) { + pa_device_port *port; + pa_alsa_port_data *data; + char *n, *d; + + n = pa_sprintf_malloc("%s;%s", path->name, s->name); + + if (s->description[0]) + d = pa_sprintf_malloc(_("%s / %s"), path->description, s->description); + else + d = pa_xstrdup(path->description); + + port = pa_device_port_new(n, d, sizeof(pa_alsa_port_data)); + port->priority = path->priority * 100 + s->priority; + + pa_xfree(n); + pa_xfree(d); + + data = PA_DEVICE_PORT_DATA(port); + data->path = path; + data->setting = s; + + pa_hashmap_put(*p, port->name, port); + } + } + } + } + + pa_log_debug("Added %u ports", pa_hashmap_size(*p)); +} diff --git a/src/modules/alsa/alsa-mixer.h b/src/modules/alsa/alsa-mixer.h new file mode 100644 index 00000000..76788183 --- /dev/null +++ b/src/modules/alsa/alsa-mixer.h @@ -0,0 +1,292 @@ +#ifndef fooalsamixerhfoo +#define fooalsamixerhfoo + +/*** + This file is part of PulseAudio. + + Copyright 2004-2006 Lennart Poettering + Copyright 2006 Pierre Ossman <ossman@cendio.se> for Cendio AB + + PulseAudio is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 2.1 of the License, + or (at your option) any later version. + + PulseAudio is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with PulseAudio; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + USA. +***/ + +#include <asoundlib.h> + +#include <pulse/sample.h> +#include <pulse/volume.h> +#include <pulse/mainloop-api.h> +#include <pulse/channelmap.h> +#include <pulse/proplist.h> +#include <pulse/volume.h> + +#include <pulsecore/llist.h> +#include <pulsecore/rtpoll.h> +#include <pulsecore/core.h> +#include <pulsecore/log.h> + +typedef struct pa_alsa_fdlist pa_alsa_fdlist; +typedef struct pa_alsa_setting pa_alsa_setting; +typedef struct pa_alsa_option pa_alsa_option; +typedef struct pa_alsa_element pa_alsa_element; +typedef struct pa_alsa_path pa_alsa_path; +typedef struct pa_alsa_path_set pa_alsa_path_set; +typedef struct pa_alsa_mapping pa_alsa_mapping; +typedef struct pa_alsa_profile pa_alsa_profile; +typedef struct pa_alsa_profile_set pa_alsa_profile_set; +typedef struct pa_alsa_port_data pa_alsa_port_data; + +#include "alsa-util.h" + +typedef enum pa_alsa_switch_use { + PA_ALSA_SWITCH_IGNORE, + PA_ALSA_SWITCH_MUTE, /* make this switch follow mute status */ + PA_ALSA_SWITCH_OFF, /* set this switch to 'off' unconditionally */ + PA_ALSA_SWITCH_ON, /* set this switch to 'on' unconditionally */ + PA_ALSA_SWITCH_SELECT /* allow the user to select switch status through a setting */ +} pa_alsa_switch_use_t; + +typedef enum pa_alsa_volume_use { + PA_ALSA_VOLUME_IGNORE, + PA_ALSA_VOLUME_MERGE, /* merge this volume slider into the global volume slider */ + PA_ALSA_VOLUME_OFF, /* set this volume to minimal unconditionally */ + PA_ALSA_VOLUME_ZERO /* set this volume to 0dB unconditionally */ +} pa_alsa_volume_use_t; + +typedef enum pa_alsa_enumeration_use { + PA_ALSA_ENUMERATION_IGNORE, + PA_ALSA_ENUMERATION_SELECT +} pa_alsa_enumeration_use_t; + +typedef enum pa_alsa_required { + PA_ALSA_REQUIRED_IGNORE, + PA_ALSA_REQUIRED_SWITCH, + PA_ALSA_REQUIRED_VOLUME, + PA_ALSA_REQUIRED_ENUMERATION, + PA_ALSA_REQUIRED_ANY +} pa_alsa_required_t; + +typedef enum pa_alsa_direction { + PA_ALSA_DIRECTION_ANY, + PA_ALSA_DIRECTION_OUTPUT, + PA_ALSA_DIRECTION_INPUT +} pa_alsa_direction_t; + +/* A setting combines a couple of options into a single entity that + * may be selected. Only one setting can be active at the same + * time. */ +struct pa_alsa_setting { + pa_alsa_path *path; + PA_LLIST_FIELDS(pa_alsa_setting); + + pa_idxset *options; + + char *name; + char *description; + unsigned priority; +}; + +/* An option belongs to an element and refers to one enumeration item + * of the element is an enumeration item, or a switch status if the + * element is a switch item. */ +struct pa_alsa_option { + pa_alsa_element *element; + PA_LLIST_FIELDS(pa_alsa_option); + + char *alsa_name; + int alsa_idx; + + char *name; + char *description; + unsigned priority; +}; + +/* And element wraps one specific ALSA element. A series of elements * +make up a path (see below). If the element is an enumeration or switch +* element it may includes a list of options. */ +struct pa_alsa_element { + pa_alsa_path *path; + PA_LLIST_FIELDS(pa_alsa_element); + + char *alsa_name; + pa_alsa_direction_t direction; + + pa_alsa_switch_use_t switch_use; + pa_alsa_volume_use_t volume_use; + pa_alsa_enumeration_use_t enumeration_use; + + pa_alsa_required_t required; + pa_alsa_required_t required_absent; + + pa_bool_t override_map:1; + pa_bool_t direction_try_other:1; + + pa_bool_t has_dB:1; + long min_volume, max_volume; + double min_dB, max_dB; + + pa_channel_position_mask_t masks[SND_MIXER_SCHN_LAST][2]; + unsigned n_channels; + + pa_channel_position_mask_t merged_mask; + + PA_LLIST_HEAD(pa_alsa_option, options); +}; + +/* A path wraps a series of elements into a single entity which can be + * used to control it as if it had a single volume slider, a single + * mute switch and a single list of selectable options. */ +struct pa_alsa_path { + pa_alsa_path_set *path_set; + PA_LLIST_FIELDS(pa_alsa_path); + + pa_alsa_direction_t direction; + + char *name; + char *description; + unsigned priority; + + pa_bool_t probed:1; + pa_bool_t supported:1; + pa_bool_t has_mute:1; + pa_bool_t has_volume:1; + pa_bool_t has_dB:1; + + long min_volume, max_volume; + double min_dB, max_dB; + + /* This is used during parsing only, as a shortcut so that we + * don't have to iterate the list all the time */ + pa_alsa_element *last_element; + pa_alsa_option *last_option; + pa_alsa_setting *last_setting; + + PA_LLIST_HEAD(pa_alsa_element, elements); + PA_LLIST_HEAD(pa_alsa_setting, settings); +}; + +/* A path set is simply a set of paths that are applicable to a + * device */ +struct pa_alsa_path_set { + PA_LLIST_HEAD(pa_alsa_path, paths); + pa_alsa_direction_t direction; + pa_bool_t probed:1; + + /* This is used during parsing only, as a shortcut so that we + * don't have to iterate the list all the time */ + pa_alsa_path *last_path; +}; + +int pa_alsa_setting_select(pa_alsa_setting *s, snd_mixer_t *m); +void pa_alsa_setting_dump(pa_alsa_setting *s); + +void pa_alsa_option_dump(pa_alsa_option *o); + +void pa_alsa_element_dump(pa_alsa_element *e); + +pa_alsa_path *pa_alsa_path_new(const char *fname, pa_alsa_direction_t direction); +pa_alsa_path *pa_alsa_path_synthesize(const char *element, pa_alsa_direction_t direction); +int pa_alsa_path_probe(pa_alsa_path *p, snd_mixer_t *m, pa_bool_t ignore_dB); +void pa_alsa_path_dump(pa_alsa_path *p); +int pa_alsa_path_get_volume(pa_alsa_path *p, snd_mixer_t *m, const pa_channel_map *cm, pa_cvolume *v); +int pa_alsa_path_get_mute(pa_alsa_path *path, snd_mixer_t *m, pa_bool_t *muted); +int pa_alsa_path_set_volume(pa_alsa_path *path, snd_mixer_t *m, const pa_channel_map *cm, pa_cvolume *v); +int pa_alsa_path_set_mute(pa_alsa_path *path, snd_mixer_t *m, pa_bool_t muted); +int pa_alsa_path_select(pa_alsa_path *p, snd_mixer_t *m); +void pa_alsa_path_set_callback(pa_alsa_path *p, snd_mixer_t *m, snd_mixer_elem_callback_t cb, void *userdata); +void pa_alsa_path_free(pa_alsa_path *p); + +pa_alsa_path_set *pa_alsa_path_set_new(pa_alsa_mapping *m, pa_alsa_direction_t direction); +void pa_alsa_path_set_probe(pa_alsa_path_set *s, snd_mixer_t *m, pa_bool_t ignore_dB); +void pa_alsa_path_set_dump(pa_alsa_path_set *s); +void pa_alsa_path_set_set_callback(pa_alsa_path_set *ps, snd_mixer_t *m, snd_mixer_elem_callback_t cb, void *userdata); +void pa_alsa_path_set_free(pa_alsa_path_set *s); + +struct pa_alsa_mapping { + pa_alsa_profile_set *profile_set; + + char *name; + char *description; + unsigned priority; + pa_alsa_direction_t direction; + + pa_channel_map channel_map; + + char **device_strings; + + char **input_path_names; + char **output_path_names; + char **input_element; /* list of fallbacks */ + char **output_element; + + unsigned supported; + + /* Temporarily used during probing */ + snd_pcm_t *input_pcm; + snd_pcm_t *output_pcm; + + pa_sink *sink; + pa_source *source; +}; + +struct pa_alsa_profile { + pa_alsa_profile_set *profile_set; + + char *name; + char *description; + unsigned priority; + + pa_bool_t supported:1; + + char **input_mapping_names; + char **output_mapping_names; + + pa_idxset *input_mappings; + pa_idxset *output_mappings; +}; + +struct pa_alsa_profile_set { + pa_hashmap *mappings; + pa_hashmap *profiles; + + pa_bool_t auto_profiles; + pa_bool_t probed:1; +}; + +void pa_alsa_mapping_dump(pa_alsa_mapping *m); +void pa_alsa_profile_dump(pa_alsa_profile *p); + +pa_alsa_profile_set* pa_alsa_profile_set_new(const char *fname, const pa_channel_map *bonus); +void pa_alsa_profile_set_probe(pa_alsa_profile_set *ps, const char *dev_id, const pa_sample_spec *ss); +void pa_alsa_profile_set_free(pa_alsa_profile_set *s); +void pa_alsa_profile_set_dump(pa_alsa_profile_set *s); + +snd_mixer_t *pa_alsa_open_mixer_for_pcm(snd_pcm_t *pcm, char **ctl_device); + +pa_alsa_fdlist *pa_alsa_fdlist_new(void); +void pa_alsa_fdlist_free(pa_alsa_fdlist *fdl); +int pa_alsa_fdlist_set_mixer(pa_alsa_fdlist *fdl, snd_mixer_t *mixer_handle, pa_mainloop_api* m); + +/* Data structure for inclusion in pa_device_port for alsa + * sinks/sources. This contains nothing that needs to be freed + * individually */ +struct pa_alsa_port_data { + pa_alsa_path *path; + pa_alsa_setting *setting; +}; + +void pa_alsa_add_ports(pa_hashmap **p, pa_alsa_path_set *ps); + +#endif diff --git a/src/modules/alsa/alsa-sink.c b/src/modules/alsa/alsa-sink.c index 59f53110..c584362d 100644 --- a/src/modules/alsa/alsa-sink.c +++ b/src/modules/alsa/alsa-sink.c @@ -32,16 +32,18 @@ #include <valgrind/memcheck.h> #endif -#include <pulse/xmalloc.h> -#include <pulse/util.h> -#include <pulse/timeval.h> #include <pulse/i18n.h> +#include <pulse/rtclock.h> +#include <pulse/timeval.h> +#include <pulse/util.h> +#include <pulse/xmalloc.h> #include <pulsecore/core.h> #include <pulsecore/module.h> #include <pulsecore/memchunk.h> #include <pulsecore/sink.h> #include <pulsecore/modargs.h> +#include <pulsecore/core-rtclock.h> #include <pulsecore/core-util.h> #include <pulsecore/sample-util.h> #include <pulsecore/log.h> @@ -50,7 +52,6 @@ #include <pulsecore/core-error.h> #include <pulsecore/thread-mq.h> #include <pulsecore/rtpoll.h> -#include <pulsecore/rtclock.h> #include <pulsecore/time-smoother.h> #include <modules/reserve-wrap.h> @@ -80,11 +81,9 @@ struct userdata { pa_alsa_fdlist *mixer_fdl; snd_mixer_t *mixer_handle; - snd_mixer_elem_t *mixer_elem; - long hw_volume_max, hw_volume_min; - long hw_dB_max, hw_dB_min; - pa_bool_t hw_dB_supported:1; - pa_bool_t mixer_seperate_channels:1; + pa_alsa_path_set *mixer_path_set; + pa_alsa_path *mixer_path; + pa_cvolume hardware_volume; size_t @@ -100,7 +99,8 @@ struct userdata { unsigned nfragments; pa_memchunk memchunk; - char *device_name; + char *device_name; /* name of the PCM device */ + char *control_device; /* name of the control device */ pa_bool_t use_mmap:1, use_tsched:1; @@ -116,6 +116,8 @@ struct userdata { pa_reserve_wrapper *reserve; pa_hook_slot *reserve_slot; + pa_reserve_monitor_wrapper *monitor; + pa_hook_slot *monitor_slot; }; static void userdata_free(struct userdata *u); @@ -124,7 +126,7 @@ static pa_hook_result_t reserve_cb(pa_reserve_wrapper *r, void *forced, struct u pa_assert(r); pa_assert(u); - if (pa_sink_suspend(u->sink, TRUE) < 0) + if (pa_sink_suspend(u->sink, TRUE, PA_SUSPEND_APPLICATION) < 0) return PA_HOOK_CANCEL; return PA_HOOK_OK; @@ -185,6 +187,57 @@ static int reserve_init(struct userdata *u, const char *dname) { return 0; } +static pa_hook_result_t monitor_cb(pa_reserve_monitor_wrapper *w, void* busy, struct userdata *u) { + pa_bool_t b; + + pa_assert(w); + pa_assert(u); + + b = PA_PTR_TO_UINT(busy) && !u->reserve; + + pa_sink_suspend(u->sink, b, PA_SUSPEND_APPLICATION); + return PA_HOOK_OK; +} + +static void monitor_done(struct userdata *u) { + pa_assert(u); + + if (u->monitor_slot) { + pa_hook_slot_free(u->monitor_slot); + u->monitor_slot = NULL; + } + + if (u->monitor) { + pa_reserve_monitor_wrapper_unref(u->monitor); + u->monitor = NULL; + } +} + +static int reserve_monitor_init(struct userdata *u, const char *dname) { + char *rname; + + pa_assert(u); + pa_assert(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; + + u->monitor = pa_reserve_monitor_wrapper_get(u->core, rname); + pa_xfree(rname); + + if (!(u->monitor)) + return -1; + + pa_assert(!u->monitor_slot); + u->monitor_slot = pa_hook_connect(pa_reserve_monitor_wrapper_hook(u->monitor), PA_HOOK_NORMAL, (pa_hook_cb_t) monitor_cb, u); + + return 0; +} + static void fix_min_sleep_wakeup(struct userdata *u) { size_t max_use, max_use_2; @@ -655,7 +708,7 @@ static void update_smoother(struct userdata *u) { /* Hmm, if the timestamp is 0, then it wasn't set and we take the current time */ if (now1 <= 0) - now1 = pa_rtclock_usec(); + now1 = pa_rtclock_now(); now2 = pa_bytes_to_usec((uint64_t) position, &u->sink->sample_spec); @@ -669,7 +722,7 @@ static pa_usec_t sink_get_latency(struct userdata *u) { pa_assert(u); - now1 = pa_rtclock_usec(); + now1 = pa_rtclock_now(); now2 = pa_smoother_get(u->smoother, now1); delay = (int64_t) pa_bytes_to_usec(u->write_count, &u->sink->sample_spec) - (int64_t) now2; @@ -700,7 +753,7 @@ static int suspend(struct userdata *u) { pa_assert(u); pa_assert(u->pcm_handle); - pa_smoother_pause(u->smoother, pa_rtclock_usec()); + pa_smoother_pause(u->smoother, pa_rtclock_now()); /* Let's suspend -- we don't call snd_pcm_drain() here since that might * take awfully long with our long buffer sizes today. */ @@ -786,7 +839,6 @@ static int unsuspend(struct userdata *u) { pa_log_info("Trying resume..."); - snd_config_update_free_global(); if ((err = snd_pcm_open(&u->pcm_handle, u->device_name, SND_PCM_STREAM_PLAYBACK, /*SND_PCM_NONBLOCK|*/ SND_PCM_NO_AUTO_RESAMPLE| @@ -938,191 +990,58 @@ static int mixer_callback(snd_mixer_elem_t *elem, unsigned int mask) { return 0; } -static pa_volume_t from_alsa_volume(struct userdata *u, long alsa_vol) { - - return (pa_volume_t) round(((double) (alsa_vol - u->hw_volume_min) * PA_VOLUME_NORM) / - (double) (u->hw_volume_max - u->hw_volume_min)); -} - -static long to_alsa_volume(struct userdata *u, pa_volume_t vol) { - long alsa_vol; - - alsa_vol = (long) round(((double) vol * (double) (u->hw_volume_max - u->hw_volume_min)) - / PA_VOLUME_NORM) + u->hw_volume_min; - - return PA_CLAMP_UNLIKELY(alsa_vol, u->hw_volume_min, u->hw_volume_max); -} - static void sink_get_volume_cb(pa_sink *s) { struct userdata *u = s->userdata; - int err; - unsigned i; pa_cvolume r; char t[PA_CVOLUME_SNPRINT_MAX]; pa_assert(u); - pa_assert(u->mixer_elem); - - if (u->mixer_seperate_channels) { - - r.channels = s->sample_spec.channels; - - for (i = 0; i < s->sample_spec.channels; i++) { - long alsa_vol; - - if (u->hw_dB_supported) { - - if ((err = snd_mixer_selem_get_playback_dB(u->mixer_elem, u->mixer_map[i], &alsa_vol)) < 0) - goto fail; - -#ifdef HAVE_VALGRIND_MEMCHECK_H - VALGRIND_MAKE_MEM_DEFINED(&alsa_vol, sizeof(alsa_vol)); -#endif - - r.values[i] = pa_sw_volume_from_dB((double) (alsa_vol - u->hw_dB_max) / 100.0); - } else { - - if ((err = snd_mixer_selem_get_playback_volume(u->mixer_elem, u->mixer_map[i], &alsa_vol)) < 0) - goto fail; - - r.values[i] = from_alsa_volume(u, alsa_vol); - } - } - - } else { - long alsa_vol; - - if (u->hw_dB_supported) { - - if ((err = snd_mixer_selem_get_playback_dB(u->mixer_elem, SND_MIXER_SCHN_MONO, &alsa_vol)) < 0) - goto fail; - -#ifdef HAVE_VALGRIND_MEMCHECK_H - VALGRIND_MAKE_MEM_DEFINED(&alsa_vol, sizeof(alsa_vol)); -#endif - - pa_cvolume_set(&r, s->sample_spec.channels, pa_sw_volume_from_dB((double) (alsa_vol - u->hw_dB_max) / 100.0)); - - } else { + pa_assert(u->mixer_path); + pa_assert(u->mixer_handle); - if ((err = snd_mixer_selem_get_playback_volume(u->mixer_elem, SND_MIXER_SCHN_MONO, &alsa_vol)) < 0) - goto fail; + if (pa_alsa_path_get_volume(u->mixer_path, u->mixer_handle, &s->channel_map, &r) < 0) + return; - pa_cvolume_set(&r, s->sample_spec.channels, from_alsa_volume(u, alsa_vol)); - } - } + /* Shift down by the base volume, so that 0dB becomes maximum volume */ + pa_sw_cvolume_multiply_scalar(&r, &r, s->base_volume); pa_log_debug("Read hardware volume: %s", pa_cvolume_snprint(t, sizeof(t), &r)); - if (!pa_cvolume_equal(&u->hardware_volume, &r)) { + if (pa_cvolume_equal(&u->hardware_volume, &r)) + return; - s->virtual_volume = u->hardware_volume = r; + s->virtual_volume = u->hardware_volume = r; - if (u->hw_dB_supported) { - pa_cvolume reset; + if (u->mixer_path->has_dB) { + pa_cvolume reset; - /* Hmm, so the hardware volume changed, let's reset our software volume */ - pa_cvolume_reset(&reset, s->sample_spec.channels); - pa_sink_set_soft_volume(s, &reset); - } + /* Hmm, so the hardware volume changed, let's reset our software volume */ + pa_cvolume_reset(&reset, s->sample_spec.channels); + pa_sink_set_soft_volume(s, &reset); } - - return; - -fail: - pa_log_error("Unable to read volume: %s", pa_alsa_strerror(err)); } static void sink_set_volume_cb(pa_sink *s) { struct userdata *u = s->userdata; - int err; - unsigned i; pa_cvolume r; + char t[PA_CVOLUME_SNPRINT_MAX]; pa_assert(u); - pa_assert(u->mixer_elem); - - if (u->mixer_seperate_channels) { - - r.channels = s->sample_spec.channels; - - for (i = 0; i < s->sample_spec.channels; i++) { - long alsa_vol; - pa_volume_t vol; - - vol = s->virtual_volume.values[i]; - - if (u->hw_dB_supported) { - - alsa_vol = (long) (pa_sw_volume_to_dB(vol) * 100); - alsa_vol += u->hw_dB_max; - alsa_vol = PA_CLAMP_UNLIKELY(alsa_vol, u->hw_dB_min, u->hw_dB_max); - - if ((err = snd_mixer_selem_set_playback_dB(u->mixer_elem, u->mixer_map[i], alsa_vol, 1)) < 0) - goto fail; - - if ((err = snd_mixer_selem_get_playback_dB(u->mixer_elem, u->mixer_map[i], &alsa_vol)) < 0) - goto fail; - -#ifdef HAVE_VALGRIND_MEMCHECK_H - VALGRIND_MAKE_MEM_DEFINED(&alsa_vol, sizeof(alsa_vol)); -#endif - - r.values[i] = pa_sw_volume_from_dB((double) (alsa_vol - u->hw_dB_max) / 100.0); - - } else { - alsa_vol = to_alsa_volume(u, vol); - - if ((err = snd_mixer_selem_set_playback_volume(u->mixer_elem, u->mixer_map[i], alsa_vol)) < 0) - goto fail; - - if ((err = snd_mixer_selem_get_playback_volume(u->mixer_elem, u->mixer_map[i], &alsa_vol)) < 0) - goto fail; - - r.values[i] = from_alsa_volume(u, alsa_vol); - } - } - - } else { - pa_volume_t vol; - long alsa_vol; - - vol = pa_cvolume_max(&s->virtual_volume); - - if (u->hw_dB_supported) { - alsa_vol = (long) (pa_sw_volume_to_dB(vol) * 100); - alsa_vol += u->hw_dB_max; - alsa_vol = PA_CLAMP_UNLIKELY(alsa_vol, u->hw_dB_min, u->hw_dB_max); - - if ((err = snd_mixer_selem_set_playback_dB_all(u->mixer_elem, alsa_vol, 1)) < 0) - goto fail; - - if ((err = snd_mixer_selem_get_playback_dB(u->mixer_elem, SND_MIXER_SCHN_MONO, &alsa_vol)) < 0) - goto fail; - -#ifdef HAVE_VALGRIND_MEMCHECK_H - VALGRIND_MAKE_MEM_DEFINED(&alsa_vol, sizeof(alsa_vol)); -#endif - - pa_cvolume_set(&r, s->sample_spec.channels, pa_sw_volume_from_dB((double) (alsa_vol - u->hw_dB_max) / 100.0)); + pa_assert(u->mixer_path); + pa_assert(u->mixer_handle); - } else { - alsa_vol = to_alsa_volume(u, vol); + /* Shift up by the base volume */ + pa_sw_cvolume_divide_scalar(&r, &s->virtual_volume, s->base_volume); - if ((err = snd_mixer_selem_set_playback_volume_all(u->mixer_elem, alsa_vol)) < 0) - goto fail; + if (pa_alsa_path_set_volume(u->mixer_path, u->mixer_handle, &s->channel_map, &r) < 0) + return; - if ((err = snd_mixer_selem_get_playback_volume(u->mixer_elem, SND_MIXER_SCHN_MONO, &alsa_vol)) < 0) - goto fail; - - pa_cvolume_set(&r, s->sample_spec.channels, from_alsa_volume(u, alsa_vol)); - } - } + /* Shift down by the base volume, so that 0dB becomes maximum volume */ + pa_sw_cvolume_multiply_scalar(&r, &r, s->base_volume); u->hardware_volume = r; - if (u->hw_dB_supported) { - char t[PA_CVOLUME_SNPRINT_MAX]; + if (u->mixer_path->has_dB) { /* Match exactly what the user requested by software */ pa_sw_cvolume_divide(&s->soft_volume, &s->virtual_volume, &u->hardware_volume); @@ -1131,45 +1050,75 @@ static void sink_set_volume_cb(pa_sink *s) { pa_log_debug("Got hardware volume: %s", pa_cvolume_snprint(t, sizeof(t), &u->hardware_volume)); pa_log_debug("Calculated software volume: %s", pa_cvolume_snprint(t, sizeof(t), &s->soft_volume)); - } else + } else { + pa_log_debug("Wrote hardware volume: %s", pa_cvolume_snprint(t, sizeof(t), &r)); /* We can't match exactly what the user requested, hence let's * at least tell the user about it */ s->virtual_volume = r; - - return; - -fail: - pa_log_error("Unable to set volume: %s", pa_alsa_strerror(err)); + } } static void sink_get_mute_cb(pa_sink *s) { struct userdata *u = s->userdata; - int err, sw; + pa_bool_t b; pa_assert(u); - pa_assert(u->mixer_elem); + pa_assert(u->mixer_path); + pa_assert(u->mixer_handle); - if ((err = snd_mixer_selem_get_playback_switch(u->mixer_elem, 0, &sw)) < 0) { - pa_log_error("Unable to get switch: %s", pa_alsa_strerror(err)); + if (pa_alsa_path_get_mute(u->mixer_path, u->mixer_handle, &b) < 0) return; - } - s->muted = !sw; + s->muted = b; } static void sink_set_mute_cb(pa_sink *s) { struct userdata *u = s->userdata; - int err; pa_assert(u); - pa_assert(u->mixer_elem); + pa_assert(u->mixer_path); + pa_assert(u->mixer_handle); - if ((err = snd_mixer_selem_set_playback_switch_all(u->mixer_elem, !s->muted)) < 0) { - pa_log_error("Unable to set switch: %s", pa_alsa_strerror(err)); - return; + pa_alsa_path_set_mute(u->mixer_path, u->mixer_handle, s->muted); +} + +static int sink_set_port_cb(pa_sink *s, pa_device_port *p) { + struct userdata *u = s->userdata; + pa_alsa_port_data *data; + + pa_assert(u); + pa_assert(p); + pa_assert(u->mixer_handle); + + data = PA_DEVICE_PORT_DATA(p); + + pa_assert_se(u->mixer_path = data->path); + pa_alsa_path_select(u->mixer_path, u->mixer_handle); + + if (u->mixer_path->has_volume && u->mixer_path->has_dB) { + s->base_volume = pa_sw_volume_from_dB(-u->mixer_path->max_dB); + s->n_volume_steps = PA_VOLUME_NORM+1; + + if (u->mixer_path->max_dB > 0.0) + pa_log_info("Fixing base volume to %0.2f dB", pa_sw_volume_to_dB(s->base_volume)); + else + pa_log_info("No particular base volume set, fixing to 0 dB"); + } else { + s->base_volume = PA_VOLUME_NORM; + s->n_volume_steps = u->mixer_path->max_volume - u->mixer_path->min_volume + 1; } + + if (data->setting) + pa_alsa_setting_select(data->setting, u->mixer_handle); + + if (s->set_mute) + s->set_mute(s); + if (s->set_volume) + s->set_volume(s); + + return 0; } static void sink_update_requested_latency_cb(pa_sink *s) { @@ -1264,7 +1213,6 @@ static void thread_func(void *userdata) { pa_make_realtime(u->core->realtime_priority); pa_thread_mq_install(&u->thread_mq); - pa_rtpoll_install(u->rtpoll); for (;;) { int ret; @@ -1298,7 +1246,7 @@ static void thread_func(void *userdata) { pa_log_info("Starting playback."); snd_pcm_start(u->pcm_handle); - pa_smoother_resume(u->smoother, pa_rtclock_usec(), TRUE); + pa_smoother_resume(u->smoother, pa_rtclock_now(), TRUE); } update_smoother(u); @@ -1327,7 +1275,7 @@ static void thread_func(void *userdata) { /* Convert from the sound card time domain to the * system time domain */ - cusec = pa_smoother_translate(u->smoother, pa_rtclock_usec(), sleep_usec); + cusec = pa_smoother_translate(u->smoother, pa_rtclock_now(), sleep_usec); /* pa_log_debug("Waking up in %0.2fms (system clock).", (double) cusec / PA_USEC_PER_MSEC); */ @@ -1386,7 +1334,7 @@ finish: pa_log_debug("Thread shutting down"); } -static void set_sink_name(pa_sink_new_data *data, pa_modargs *ma, const char *device_id, const char *device_name) { +static void set_sink_name(pa_sink_new_data *data, pa_modargs *ma, const char *device_id, const char *device_name, pa_alsa_mapping *mapping) { const char *n; char *t; @@ -1407,82 +1355,136 @@ static void set_sink_name(pa_sink_new_data *data, pa_modargs *ma, const char *de data->namereg_fail = FALSE; } - t = pa_sprintf_malloc("alsa_output.%s", n); + if (mapping) + t = pa_sprintf_malloc("alsa_output.%s.%s", n, mapping->name); + else + t = pa_sprintf_malloc("alsa_output.%s", n); + pa_sink_new_data_set_name(data, t); pa_xfree(t); } +static void find_mixer(struct userdata *u, pa_alsa_mapping *mapping, const char *element, pa_bool_t ignore_dB) { + + if (!mapping && !element) + return; + + if (!(u->mixer_handle = pa_alsa_open_mixer_for_pcm(u->pcm_handle, &u->control_device))) { + pa_log_info("Failed to find a working mixer device."); + return; + } + + if (element) { + + if (!(u->mixer_path = pa_alsa_path_synthesize(element, PA_ALSA_DIRECTION_OUTPUT))) + goto fail; + + if (pa_alsa_path_probe(u->mixer_path, u->mixer_handle, ignore_dB) < 0) + goto fail; + + pa_log_debug("Probed mixer path %s:", u->mixer_path->name); + pa_alsa_path_dump(u->mixer_path); + } else { + + if (!(u->mixer_path_set = pa_alsa_path_set_new(mapping, PA_ALSA_DIRECTION_OUTPUT))) + goto fail; + + pa_alsa_path_set_probe(u->mixer_path_set, u->mixer_handle, ignore_dB); + + pa_log_debug("Probed mixer paths:"); + pa_alsa_path_set_dump(u->mixer_path_set); + } + + return; + +fail: + + if (u->mixer_path_set) { + pa_alsa_path_set_free(u->mixer_path_set); + u->mixer_path_set = NULL; + } else if (u->mixer_path) { + pa_alsa_path_free(u->mixer_path); + u->mixer_path = NULL; + } + + if (u->mixer_handle) { + snd_mixer_close(u->mixer_handle); + u->mixer_handle = NULL; + } +} + static int setup_mixer(struct userdata *u, pa_bool_t ignore_dB) { pa_assert(u); if (!u->mixer_handle) return 0; - pa_assert(u->mixer_elem); + if (u->sink->active_port) { + pa_alsa_port_data *data; - if (snd_mixer_selem_has_playback_volume(u->mixer_elem)) { - pa_bool_t suitable = FALSE; + /* We have a list of supported paths, so let's activate the + * one that has been chosen as active */ - if (snd_mixer_selem_get_playback_volume_range(u->mixer_elem, &u->hw_volume_min, &u->hw_volume_max) < 0) - pa_log_info("Failed to get volume range. Falling back to software volume control."); - else if (u->hw_volume_min >= u->hw_volume_max) - pa_log_warn("Your kernel driver is broken: it reports a volume range from %li to %li which makes no sense.", u->hw_volume_min, u->hw_volume_max); - else { - pa_log_info("Volume ranges from %li to %li.", u->hw_volume_min, u->hw_volume_max); - suitable = TRUE; - } + data = PA_DEVICE_PORT_DATA(u->sink->active_port); + u->mixer_path = data->path; - if (suitable) { - if (ignore_dB || snd_mixer_selem_get_playback_dB_range(u->mixer_elem, &u->hw_dB_min, &u->hw_dB_max) < 0) - pa_log_info("Mixer doesn't support dB information or data is ignored."); - else { -#ifdef HAVE_VALGRIND_MEMCHECK_H - VALGRIND_MAKE_MEM_DEFINED(&u->hw_dB_min, sizeof(u->hw_dB_min)); - VALGRIND_MAKE_MEM_DEFINED(&u->hw_dB_max, sizeof(u->hw_dB_max)); -#endif + pa_alsa_path_select(data->path, u->mixer_handle); - if (u->hw_dB_min >= u->hw_dB_max) - pa_log_warn("Your kernel driver is broken: it reports a volume range from %0.2f dB to %0.2f dB which makes no sense.", (double) u->hw_dB_min/100.0, (double) u->hw_dB_max/100.0); - else { - pa_log_info("Volume ranges from %0.2f dB to %0.2f dB.", (double) u->hw_dB_min/100.0, (double) u->hw_dB_max/100.0); - u->hw_dB_supported = TRUE; - - if (u->hw_dB_max > 0) { - u->sink->base_volume = pa_sw_volume_from_dB(- (double) u->hw_dB_max/100.0); - pa_log_info("Fixing base volume to %0.2f dB", pa_sw_volume_to_dB(u->sink->base_volume)); - } else - pa_log_info("No particular base volume set, fixing to 0 dB"); - } - } + if (data->setting) + pa_alsa_setting_select(data->setting, u->mixer_handle); - if (!u->hw_dB_supported && - u->hw_volume_max - u->hw_volume_min < 3) { + } else { - pa_log_info("Device doesn't do dB volume and has less than 4 volume levels. Falling back to software volume control."); - suitable = FALSE; - } - } + if (!u->mixer_path && u->mixer_path_set) + u->mixer_path = u->mixer_path_set->paths; - if (suitable) { - u->mixer_seperate_channels = pa_alsa_calc_mixer_map(u->mixer_elem, &u->sink->channel_map, u->mixer_map, TRUE) >= 0; + if (u->mixer_path) { + /* Hmm, we have only a single path, then let's activate it */ - u->sink->get_volume = sink_get_volume_cb; - u->sink->set_volume = sink_set_volume_cb; - u->sink->flags |= PA_SINK_HW_VOLUME_CTRL | (u->hw_dB_supported ? PA_SINK_DECIBEL_VOLUME : 0); - pa_log_info("Using hardware volume control. Hardware dB scale %s.", u->hw_dB_supported ? "supported" : "not supported"); + pa_alsa_path_select(u->mixer_path, u->mixer_handle); - if (!u->hw_dB_supported) - u->sink->n_volume_steps = u->hw_volume_max - u->hw_volume_min + 1; + if (u->mixer_path->settings) + pa_alsa_setting_select(u->mixer_path->settings, u->mixer_handle); } else - pa_log_info("Using software volume control."); + return 0; + } + + if (!u->mixer_path->has_volume) + pa_log_info("Driver does not support hardware volume control, falling back to software volume control."); + else { + + if (u->mixer_path->has_dB) { + pa_log_info("Hardware volume ranges from %0.2f dB to %0.2f dB.", u->mixer_path->min_dB, u->mixer_path->max_dB); + + u->sink->base_volume = pa_sw_volume_from_dB(-u->mixer_path->max_dB); + u->sink->n_volume_steps = PA_VOLUME_NORM+1; + + if (u->mixer_path->max_dB > 0.0) + pa_log_info("Fixing base volume to %0.2f dB", pa_sw_volume_to_dB(u->sink->base_volume)); + else + pa_log_info("No particular base volume set, fixing to 0 dB"); + + } else { + pa_log_info("Hardware volume ranges from %li to %li.", u->mixer_path->min_volume, u->mixer_path->max_volume); + u->sink->base_volume = PA_VOLUME_NORM; + u->sink->n_volume_steps = u->mixer_path->max_volume - u->mixer_path->min_volume + 1; + } + + u->sink->get_volume = sink_get_volume_cb; + u->sink->set_volume = sink_set_volume_cb; + + u->sink->flags |= PA_SINK_HW_VOLUME_CTRL | (u->mixer_path->has_dB ? PA_SINK_DECIBEL_VOLUME : 0); + pa_log_info("Using hardware volume control. Hardware dB scale %s.", u->mixer_path->has_dB ? "supported" : "not supported"); } - if (snd_mixer_selem_has_playback_switch(u->mixer_elem)) { + if (!u->mixer_path->has_mute) { + pa_log_info("Driver does not support hardware mute control, falling back to software mute control."); + } else { u->sink->get_mute = sink_get_mute_cb; u->sink->set_mute = sink_set_mute_cb; u->sink->flags |= PA_SINK_HW_MUTE_CTRL; - } else - pa_log_info("Using software mute control."); + pa_log_info("Using hardware mute control."); + } u->mixer_fdl = pa_alsa_fdlist_new(); @@ -1491,13 +1493,15 @@ static int setup_mixer(struct userdata *u, pa_bool_t ignore_dB) { return -1; } - snd_mixer_elem_set_callback(u->mixer_elem, mixer_callback); - snd_mixer_elem_set_callback_private(u->mixer_elem, u); + if (u->mixer_path_set) + pa_alsa_path_set_set_callback(u->mixer_path_set, u->mixer_handle, mixer_callback, u); + else + pa_alsa_path_set_callback(u->mixer_path, u->mixer_handle, mixer_callback, u); return 0; } -pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_card *card, const pa_alsa_profile_info *profile) { +pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_card *card, pa_alsa_mapping *mapping) { struct userdata *u = NULL; const char *dev_id = NULL; @@ -1508,7 +1512,7 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca size_t frame_size; pa_bool_t use_mmap = TRUE, b, use_tsched = TRUE, d, ignore_dB = FALSE; pa_sink_new_data data; - char *control_device = NULL; + pa_alsa_profile_set *profile_set = NULL; pa_assert(m); pa_assert(ma); @@ -1577,43 +1581,51 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca TRUE, TRUE, 5, - pa_rtclock_usec(), + pa_rtclock_now(), TRUE); - if (reserve_init(u, pa_modargs_get_value( - ma, "device_id", - pa_modargs_get_value(ma, "device", DEFAULT_DEVICE))) < 0) + dev_id = pa_modargs_get_value( + ma, "device_id", + pa_modargs_get_value(ma, "device", DEFAULT_DEVICE)); + + if (reserve_init(u, dev_id) < 0) + goto fail; + + if (reserve_monitor_init(u, dev_id) < 0) goto fail; b = use_mmap; d = use_tsched; - if (profile) { + if (mapping) { if (!(dev_id = pa_modargs_get_value(ma, "device_id", NULL))) { pa_log("device_id= not set"); goto fail; } - if (!(u->pcm_handle = pa_alsa_open_by_device_id_profile( + if (!(u->pcm_handle = pa_alsa_open_by_device_id_mapping( dev_id, &u->device_name, &ss, &map, SND_PCM_STREAM_PLAYBACK, &nfrags, &period_frames, tsched_frames, - &b, &d, profile))) + &b, &d, mapping))) goto fail; } else if ((dev_id = pa_modargs_get_value(ma, "device_id", NULL))) { + if (!(profile_set = pa_alsa_profile_set_new(NULL, &map))) + goto fail; + if (!(u->pcm_handle = pa_alsa_open_by_device_id_auto( dev_id, &u->device_name, &ss, &map, SND_PCM_STREAM_PLAYBACK, &nfrags, &period_frames, tsched_frames, - &b, &d, &profile))) + &b, &d, profile_set, &mapping))) goto fail; @@ -1627,7 +1639,6 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca &nfrags, &period_frames, tsched_frames, &b, &d, FALSE))) goto fail; - } pa_assert(u->device_name); @@ -1638,8 +1649,8 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca goto fail; } - if (profile) - pa_log_info("Selected configuration '%s' (%s).", profile->description, profile->name); + if (mapping) + pa_log_info("Selected mapping '%s' (%s).", mapping->description, mapping->name); if (use_mmap && !b) { pa_log_info("Device doesn't support mmap(), falling back to UNIX read/write mode."); @@ -1665,33 +1676,31 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca /* ALSA might tweak the sample spec, so recalculate the frame size */ frame_size = pa_frame_size(&ss); - pa_alsa_find_mixer_and_elem(u->pcm_handle, &control_device, &u->mixer_handle, &u->mixer_elem, pa_modargs_get_value(ma, "control", NULL), profile); + find_mixer(u, mapping, pa_modargs_get_value(ma, "control", NULL), ignore_dB); pa_sink_new_data_init(&data); data.driver = driver; data.module = m; data.card = card; - set_sink_name(&data, ma, dev_id, u->device_name); + set_sink_name(&data, ma, dev_id, u->device_name, mapping); pa_sink_new_data_set_sample_spec(&data, &ss); pa_sink_new_data_set_channel_map(&data, &map); - pa_alsa_init_proplist_pcm(m->core, data.proplist, u->pcm_handle, u->mixer_elem); + pa_alsa_init_proplist_pcm(m->core, data.proplist, u->pcm_handle); pa_proplist_sets(data.proplist, PA_PROP_DEVICE_STRING, u->device_name); pa_proplist_setf(data.proplist, PA_PROP_DEVICE_BUFFERING_BUFFER_SIZE, "%lu", (unsigned long) (period_frames * frame_size * nfrags)); pa_proplist_setf(data.proplist, PA_PROP_DEVICE_BUFFERING_FRAGMENT_SIZE, "%lu", (unsigned long) (period_frames * frame_size)); pa_proplist_sets(data.proplist, PA_PROP_DEVICE_ACCESS_MODE, u->use_tsched ? "mmap+timer" : (u->use_mmap ? "mmap" : "serial")); - if (profile) { - pa_proplist_sets(data.proplist, PA_PROP_DEVICE_PROFILE_NAME, profile->name); - pa_proplist_sets(data.proplist, PA_PROP_DEVICE_PROFILE_DESCRIPTION, profile->description); + if (mapping) { + pa_proplist_sets(data.proplist, PA_PROP_DEVICE_PROFILE_NAME, mapping->name); + pa_proplist_sets(data.proplist, PA_PROP_DEVICE_PROFILE_DESCRIPTION, mapping->description); } pa_alsa_init_description(data.proplist); - if (control_device) { - pa_alsa_init_proplist_ctl(data.proplist, control_device); - pa_xfree(control_device); - } + if (u->control_device) + pa_alsa_init_proplist_ctl(data.proplist, u->control_device); if (pa_modargs_get_proplist(ma, "sink_properties", data.proplist, PA_UPDATE_REPLACE) < 0) { pa_log("Invalid properties"); @@ -1699,6 +1708,9 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca goto fail; } + if (u->mixer_path_set) + pa_alsa_add_ports(&data.ports, u->mixer_path_set); + u->sink = pa_sink_new(m->core, &data, PA_SINK_HARDWARE|PA_SINK_LATENCY|(u->use_tsched ? PA_SINK_DYNAMIC_LATENCY : 0)); pa_sink_new_data_done(&data); @@ -1710,6 +1722,7 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca u->sink->parent.process_msg = sink_process_msg; u->sink->update_requested_latency = sink_update_requested_latency_cb; u->sink->set_state = sink_set_state_cb; + u->sink->set_port = sink_set_port_cb; u->sink->userdata = u; pa_sink_set_asyncmsgq(u->sink, u->thread_mq.inq); @@ -1778,6 +1791,9 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca pa_sink_put(u->sink); + if (profile_set) + pa_alsa_profile_set_free(profile_set); + return u->sink; fail: @@ -1785,6 +1801,9 @@ fail: if (u) userdata_free(u); + if (profile_set) + pa_alsa_profile_set_free(profile_set); + return NULL; } @@ -1813,23 +1832,30 @@ static void userdata_free(struct userdata *u) { if (u->rtpoll) pa_rtpoll_free(u->rtpoll); + if (u->pcm_handle) { + snd_pcm_drop(u->pcm_handle); + snd_pcm_close(u->pcm_handle); + } + if (u->mixer_fdl) pa_alsa_fdlist_free(u->mixer_fdl); + if (u->mixer_path_set) + pa_alsa_path_set_free(u->mixer_path_set); + else if (u->mixer_path) + pa_alsa_path_free(u->mixer_path); + if (u->mixer_handle) snd_mixer_close(u->mixer_handle); - if (u->pcm_handle) { - snd_pcm_drop(u->pcm_handle); - snd_pcm_close(u->pcm_handle); - } - if (u->smoother) pa_smoother_free(u->smoother); reserve_done(u); + monitor_done(u); pa_xfree(u->device_name); + pa_xfree(u->control_device); pa_xfree(u); } diff --git a/src/modules/alsa/alsa-sink.h b/src/modules/alsa/alsa-sink.h index bbf64234..b9a4ac2a 100644 --- a/src/modules/alsa/alsa-sink.h +++ b/src/modules/alsa/alsa-sink.h @@ -28,8 +28,9 @@ #include <pulsecore/sink.h> #include "alsa-util.h" +#include "alsa-mixer.h" -pa_sink* pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_card *card, const pa_alsa_profile_info *profile); +pa_sink* pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_card *card, pa_alsa_mapping *mapping); void pa_alsa_sink_free(pa_sink *s); diff --git a/src/modules/alsa/alsa-source.c b/src/modules/alsa/alsa-source.c index f1c18196..a6760e1e 100644 --- a/src/modules/alsa/alsa-source.c +++ b/src/modules/alsa/alsa-source.c @@ -28,14 +28,11 @@ #include <asoundlib.h> -#ifdef HAVE_VALGRIND_MEMCHECK_H -#include <valgrind/memcheck.h> -#endif - -#include <pulse/xmalloc.h> -#include <pulse/util.h> -#include <pulse/timeval.h> #include <pulse/i18n.h> +#include <pulse/rtclock.h> +#include <pulse/timeval.h> +#include <pulse/util.h> +#include <pulse/xmalloc.h> #include <pulsecore/core-error.h> #include <pulsecore/core.h> @@ -43,6 +40,7 @@ #include <pulsecore/memchunk.h> #include <pulsecore/sink.h> #include <pulsecore/modargs.h> +#include <pulsecore/core-rtclock.h> #include <pulsecore/core-util.h> #include <pulsecore/sample-util.h> #include <pulsecore/log.h> @@ -52,7 +50,6 @@ #include <pulsecore/thread-mq.h> #include <pulsecore/rtpoll.h> #include <pulsecore/time-smoother.h> -#include <pulsecore/rtclock.h> #include <modules/reserve-wrap.h> @@ -81,11 +78,8 @@ struct userdata { pa_alsa_fdlist *mixer_fdl; snd_mixer_t *mixer_handle; - snd_mixer_elem_t *mixer_elem; - long hw_volume_max, hw_volume_min; - long hw_dB_max, hw_dB_min; - pa_bool_t hw_dB_supported:1; - pa_bool_t mixer_seperate_channels:1; + pa_alsa_path_set *mixer_path_set; + pa_alsa_path *mixer_path; pa_cvolume hardware_volume; @@ -102,6 +96,7 @@ struct userdata { unsigned nfragments; char *device_name; + char *control_device; pa_bool_t use_mmap:1, use_tsched:1; @@ -114,6 +109,8 @@ struct userdata { pa_reserve_wrapper *reserve; pa_hook_slot *reserve_slot; + pa_reserve_monitor_wrapper *monitor; + pa_hook_slot *monitor_slot; }; static void userdata_free(struct userdata *u); @@ -122,7 +119,7 @@ static pa_hook_result_t reserve_cb(pa_reserve_wrapper *r, void *forced, struct u pa_assert(r); pa_assert(u); - if (pa_source_suspend(u->source, TRUE) < 0) + if (pa_source_suspend(u->source, TRUE, PA_SUSPEND_APPLICATION) < 0) return PA_HOOK_CANCEL; return PA_HOOK_OK; @@ -183,6 +180,57 @@ static int reserve_init(struct userdata *u, const char *dname) { return 0; } +static pa_hook_result_t monitor_cb(pa_reserve_monitor_wrapper *w, void* busy, struct userdata *u) { + pa_bool_t b; + + pa_assert(w); + pa_assert(u); + + b = PA_PTR_TO_UINT(busy) && !u->reserve; + + pa_source_suspend(u->source, b, PA_SUSPEND_APPLICATION); + return PA_HOOK_OK; +} + +static void monitor_done(struct userdata *u) { + pa_assert(u); + + if (u->monitor_slot) { + pa_hook_slot_free(u->monitor_slot); + u->monitor_slot = NULL; + } + + if (u->monitor) { + pa_reserve_monitor_wrapper_unref(u->monitor); + u->monitor = NULL; + } +} + +static int reserve_monitor_init(struct userdata *u, const char *dname) { + char *rname; + + pa_assert(u); + pa_assert(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; + + u->monitor = pa_reserve_monitor_wrapper_get(u->core, rname); + pa_xfree(rname); + + if (!(u->monitor)) + return -1; + + pa_assert(!u->monitor_slot); + u->monitor_slot = pa_hook_connect(pa_reserve_monitor_wrapper_hook(u->monitor), PA_HOOK_NORMAL, (pa_hook_cb_t) monitor_cb, u); + + return 0; +} + static void fix_min_sleep_wakeup(struct userdata *u) { size_t max_use, max_use_2; pa_assert(u); @@ -622,7 +670,7 @@ static void update_smoother(struct userdata *u) { /* Hmm, if the timestamp is 0, then it wasn't set and we take the current time */ if (now1 <= 0) - now1 = pa_rtclock_usec(); + now1 = pa_rtclock_now(); now2 = pa_bytes_to_usec(position, &u->source->sample_spec); @@ -635,7 +683,7 @@ static pa_usec_t source_get_latency(struct userdata *u) { pa_assert(u); - now1 = pa_rtclock_usec(); + now1 = pa_rtclock_now(); now2 = pa_smoother_get(u->smoother, now1); delay = (int64_t) now2 - (int64_t) pa_bytes_to_usec(u->read_count, &u->source->sample_spec); @@ -660,7 +708,7 @@ static int suspend(struct userdata *u) { pa_assert(u); pa_assert(u->pcm_handle); - pa_smoother_pause(u->smoother, pa_rtclock_usec()); + pa_smoother_pause(u->smoother, pa_rtclock_now()); /* Let's suspend */ snd_pcm_close(u->pcm_handle); @@ -740,8 +788,6 @@ static int unsuspend(struct userdata *u) { pa_log_info("Trying resume..."); - snd_config_update_free_global(); - if ((err = snd_pcm_open(&u->pcm_handle, u->device_name, SND_PCM_STREAM_CAPTURE, /*SND_PCM_NONBLOCK|*/ SND_PCM_NO_AUTO_RESAMPLE| @@ -788,7 +834,7 @@ static int unsuspend(struct userdata *u) { /* FIXME: We need to reload the volume somehow */ snd_pcm_start(u->pcm_handle); - pa_smoother_resume(u->smoother, pa_rtclock_usec(), TRUE); + pa_smoother_resume(u->smoother, pa_rtclock_now(), TRUE); pa_log_info("Resumed successfully..."); @@ -896,239 +942,135 @@ static int mixer_callback(snd_mixer_elem_t *elem, unsigned int mask) { return 0; } -static pa_volume_t from_alsa_volume(struct userdata *u, long alsa_vol) { - - return (pa_volume_t) round(((double) (alsa_vol - u->hw_volume_min) * PA_VOLUME_NORM) / - (double) (u->hw_volume_max - u->hw_volume_min)); -} - -static long to_alsa_volume(struct userdata *u, pa_volume_t vol) { - long alsa_vol; - - alsa_vol = (long) round(((double) vol * (double) (u->hw_volume_max - u->hw_volume_min)) - / PA_VOLUME_NORM) + u->hw_volume_min; - - return PA_CLAMP_UNLIKELY(alsa_vol, u->hw_volume_min, u->hw_volume_max); -} - static void source_get_volume_cb(pa_source *s) { struct userdata *u = s->userdata; - int err; - unsigned i; pa_cvolume r; char t[PA_CVOLUME_SNPRINT_MAX]; pa_assert(u); - pa_assert(u->mixer_elem); - - if (u->mixer_seperate_channels) { - - r.channels = s->sample_spec.channels; - - for (i = 0; i < s->sample_spec.channels; i++) { - long alsa_vol; - - if (u->hw_dB_supported) { - - if ((err = snd_mixer_selem_get_capture_dB(u->mixer_elem, u->mixer_map[i], &alsa_vol)) < 0) - goto fail; - -#ifdef HAVE_VALGRIND_MEMCHECK_H - VALGRIND_MAKE_MEM_DEFINED(&alsa_vol, sizeof(alsa_vol)); -#endif - - r.values[i] = pa_sw_volume_from_dB((double) (alsa_vol - u->hw_dB_max) / 100.0); - } else { - - if ((err = snd_mixer_selem_get_capture_volume(u->mixer_elem, u->mixer_map[i], &alsa_vol)) < 0) - goto fail; - - r.values[i] = from_alsa_volume(u, alsa_vol); - } - } - - } else { - long alsa_vol; - - if (u->hw_dB_supported) { - - if ((err = snd_mixer_selem_get_capture_dB(u->mixer_elem, SND_MIXER_SCHN_MONO, &alsa_vol)) < 0) - goto fail; - -#ifdef HAVE_VALGRIND_MEMCHECK_H - VALGRIND_MAKE_MEM_DEFINED(&alsa_vol, sizeof(alsa_vol)); -#endif - - pa_cvolume_set(&r, s->sample_spec.channels, pa_sw_volume_from_dB((double) (alsa_vol - u->hw_dB_max) / 100.0)); - - } else { + pa_assert(u->mixer_path); + pa_assert(u->mixer_handle); - if ((err = snd_mixer_selem_get_capture_volume(u->mixer_elem, SND_MIXER_SCHN_MONO, &alsa_vol)) < 0) - goto fail; + if (pa_alsa_path_get_volume(u->mixer_path, u->mixer_handle, &s->channel_map, &r) < 0) + return; - pa_cvolume_set(&r, s->sample_spec.channels, from_alsa_volume(u, alsa_vol)); - } - } + /* Shift down by the base volume, so that 0dB becomes maximum volume */ + pa_sw_cvolume_multiply_scalar(&r, &r, s->base_volume); pa_log_debug("Read hardware volume: %s", pa_cvolume_snprint(t, sizeof(t), &r)); - if (!pa_cvolume_equal(&u->hardware_volume, &r)) { + if (pa_cvolume_equal(&u->hardware_volume, &r)) + return; - s->virtual_volume = u->hardware_volume = r; + s->virtual_volume = u->hardware_volume = r; - if (u->hw_dB_supported) { - pa_cvolume reset; + if (u->mixer_path->has_dB) { + pa_cvolume reset; - /* Hmm, so the hardware volume changed, let's reset our software volume */ - pa_cvolume_reset(&reset, s->sample_spec.channels); - pa_source_set_soft_volume(s, &reset); - } + /* Hmm, so the hardware volume changed, let's reset our software volume */ + pa_cvolume_reset(&reset, s->sample_spec.channels); + pa_source_set_soft_volume(s, &reset); } - - return; - -fail: - pa_log_error("Unable to read volume: %s", pa_alsa_strerror(err)); } static void source_set_volume_cb(pa_source *s) { struct userdata *u = s->userdata; - int err; - unsigned i; pa_cvolume r; + char t[PA_CVOLUME_SNPRINT_MAX]; pa_assert(u); - pa_assert(u->mixer_elem); - - if (u->mixer_seperate_channels) { - - r.channels = s->sample_spec.channels; - - for (i = 0; i < s->sample_spec.channels; i++) { - long alsa_vol; - pa_volume_t vol; - - vol = s->virtual_volume.values[i]; - - if (u->hw_dB_supported) { - - alsa_vol = (long) (pa_sw_volume_to_dB(vol) * 100); - alsa_vol += u->hw_dB_max; - alsa_vol = PA_CLAMP_UNLIKELY(alsa_vol, u->hw_dB_min, u->hw_dB_max); - - if ((err = snd_mixer_selem_set_capture_dB(u->mixer_elem, u->mixer_map[i], alsa_vol, 1)) < 0) - goto fail; - - if ((err = snd_mixer_selem_get_capture_dB(u->mixer_elem, u->mixer_map[i], &alsa_vol)) < 0) - goto fail; - -#ifdef HAVE_VALGRIND_MEMCHECK_H - VALGRIND_MAKE_MEM_DEFINED(&alsa_vol, sizeof(alsa_vol)); -#endif - - r.values[i] = pa_sw_volume_from_dB((double) (alsa_vol - u->hw_dB_max) / 100.0); - - } else { - alsa_vol = to_alsa_volume(u, vol); - - if ((err = snd_mixer_selem_set_capture_volume(u->mixer_elem, u->mixer_map[i], alsa_vol)) < 0) - goto fail; - - if ((err = snd_mixer_selem_get_capture_volume(u->mixer_elem, u->mixer_map[i], &alsa_vol)) < 0) - goto fail; - - r.values[i] = from_alsa_volume(u, alsa_vol); - } - } - - } else { - pa_volume_t vol; - long alsa_vol; - - vol = pa_cvolume_max(&s->virtual_volume); - - if (u->hw_dB_supported) { - alsa_vol = (long) (pa_sw_volume_to_dB(vol) * 100); - alsa_vol += u->hw_dB_max; - alsa_vol = PA_CLAMP_UNLIKELY(alsa_vol, u->hw_dB_min, u->hw_dB_max); - - if ((err = snd_mixer_selem_set_capture_dB_all(u->mixer_elem, alsa_vol, 1)) < 0) - goto fail; - - if ((err = snd_mixer_selem_get_capture_dB(u->mixer_elem, SND_MIXER_SCHN_MONO, &alsa_vol)) < 0) - goto fail; - -#ifdef HAVE_VALGRIND_MEMCHECK_H - VALGRIND_MAKE_MEM_DEFINED(&alsa_vol, sizeof(alsa_vol)); -#endif - - pa_cvolume_set(&r, s->sample_spec.channels, pa_sw_volume_from_dB((double) (alsa_vol - u->hw_dB_max) / 100.0)); + pa_assert(u->mixer_path); + pa_assert(u->mixer_handle); - } else { - alsa_vol = to_alsa_volume(u, vol); + /* Shift up by the base volume */ + pa_sw_cvolume_divide_scalar(&r, &s->virtual_volume, s->base_volume); - if ((err = snd_mixer_selem_set_capture_volume_all(u->mixer_elem, alsa_vol)) < 0) - goto fail; + if (pa_alsa_path_set_volume(u->mixer_path, u->mixer_handle, &s->channel_map, &r) < 0) + return; - if ((err = snd_mixer_selem_get_capture_volume(u->mixer_elem, SND_MIXER_SCHN_MONO, &alsa_vol)) < 0) - goto fail; - - pa_cvolume_set(&r, s->sample_spec.channels, from_alsa_volume(u, alsa_vol)); - } - } + /* Shift down by the base volume, so that 0dB becomes maximum volume */ + pa_sw_cvolume_multiply_scalar(&r, &r, s->base_volume); u->hardware_volume = r; - if (u->hw_dB_supported) { - char t[PA_CVOLUME_SNPRINT_MAX]; + if (u->mixer_path->has_dB) { /* Match exactly what the user requested by software */ - pa_sw_cvolume_divide(&s->soft_volume, &s->virtual_volume, &u->hardware_volume); pa_log_debug("Requested volume: %s", pa_cvolume_snprint(t, sizeof(t), &s->virtual_volume)); pa_log_debug("Got hardware volume: %s", pa_cvolume_snprint(t, sizeof(t), &u->hardware_volume)); pa_log_debug("Calculated software volume: %s", pa_cvolume_snprint(t, sizeof(t), &s->soft_volume)); - } else + } else { + pa_log_debug("Wrote hardware volume: %s", pa_cvolume_snprint(t, sizeof(t), &r)); /* We can't match exactly what the user requested, hence let's * at least tell the user about it */ s->virtual_volume = r; - - return; - -fail: - pa_log_error("Unable to set volume: %s", pa_alsa_strerror(err)); + } } static void source_get_mute_cb(pa_source *s) { struct userdata *u = s->userdata; - int err, sw; + pa_bool_t b; pa_assert(u); - pa_assert(u->mixer_elem); + pa_assert(u->mixer_path); + pa_assert(u->mixer_handle); - if ((err = snd_mixer_selem_get_capture_switch(u->mixer_elem, 0, &sw)) < 0) { - pa_log_error("Unable to get switch: %s", pa_alsa_strerror(err)); + if (pa_alsa_path_get_mute(u->mixer_path, u->mixer_handle, &b) < 0) return; - } - s->muted = !sw; + s->muted = b; } static void source_set_mute_cb(pa_source *s) { struct userdata *u = s->userdata; - int err; pa_assert(u); - pa_assert(u->mixer_elem); + pa_assert(u->mixer_path); + pa_assert(u->mixer_handle); - if ((err = snd_mixer_selem_set_capture_switch_all(u->mixer_elem, !s->muted)) < 0) { - pa_log_error("Unable to set switch: %s", pa_alsa_strerror(err)); - return; + pa_alsa_path_set_mute(u->mixer_path, u->mixer_handle, s->muted); +} + +static int source_set_port_cb(pa_source *s, pa_device_port *p) { + struct userdata *u = s->userdata; + pa_alsa_port_data *data; + + pa_assert(u); + pa_assert(p); + pa_assert(u->mixer_handle); + + data = PA_DEVICE_PORT_DATA(p); + + pa_assert_se(u->mixer_path = data->path); + pa_alsa_path_select(u->mixer_path, u->mixer_handle); + + if (u->mixer_path->has_volume && u->mixer_path->has_dB) { + s->base_volume = pa_sw_volume_from_dB(-u->mixer_path->max_dB); + s->n_volume_steps = PA_VOLUME_NORM+1; + + if (u->mixer_path->max_dB > 0.0) + pa_log_info("Fixing base volume to %0.2f dB", pa_sw_volume_to_dB(s->base_volume)); + else + pa_log_info("No particular base volume set, fixing to 0 dB"); + } else { + s->base_volume = PA_VOLUME_NORM; + s->n_volume_steps = u->mixer_path->max_volume - u->mixer_path->min_volume + 1; } + + if (data->setting) + pa_alsa_setting_select(data->setting, u->mixer_handle); + + if (s->set_mute) + s->set_mute(s); + if (s->set_volume) + s->set_volume(s); + + return 0; } static void source_update_requested_latency_cb(pa_source *s) { @@ -1153,7 +1095,6 @@ static void thread_func(void *userdata) { pa_make_realtime(u->core->realtime_priority); pa_thread_mq_install(&u->thread_mq); - pa_rtpoll_install(u->rtpoll); for (;;) { int ret; @@ -1190,7 +1131,7 @@ static void thread_func(void *userdata) { /* Convert from the sound card time domain to the * system time domain */ - cusec = pa_smoother_translate(u->smoother, pa_rtclock_usec(), sleep_usec); + cusec = pa_smoother_translate(u->smoother, pa_rtclock_now(), sleep_usec); /* pa_log_debug("Waking up in %0.2fms (system clock).", (double) cusec / PA_USEC_PER_MSEC); */ @@ -1244,7 +1185,7 @@ finish: pa_log_debug("Thread shutting down"); } -static void set_source_name(pa_source_new_data *data, pa_modargs *ma, const char *device_id, const char *device_name) { +static void set_source_name(pa_source_new_data *data, pa_modargs *ma, const char *device_id, const char *device_name, pa_alsa_mapping *mapping) { const char *n; char *t; @@ -1265,82 +1206,136 @@ static void set_source_name(pa_source_new_data *data, pa_modargs *ma, const char data->namereg_fail = FALSE; } - t = pa_sprintf_malloc("alsa_input.%s", n); + if (mapping) + t = pa_sprintf_malloc("alsa_input.%s.%s", n, mapping->name); + else + t = pa_sprintf_malloc("alsa_input.%s", n); + pa_source_new_data_set_name(data, t); pa_xfree(t); } +static void find_mixer(struct userdata *u, pa_alsa_mapping *mapping, const char *element, pa_bool_t ignore_dB) { + + if (!mapping && !element) + return; + + if (!(u->mixer_handle = pa_alsa_open_mixer_for_pcm(u->pcm_handle, &u->control_device))) { + pa_log_info("Failed to find a working mixer device."); + return; + } + + if (element) { + + if (!(u->mixer_path = pa_alsa_path_synthesize(element, PA_ALSA_DIRECTION_INPUT))) + goto fail; + + if (pa_alsa_path_probe(u->mixer_path, u->mixer_handle, ignore_dB) < 0) + goto fail; + + pa_log_debug("Probed mixer path %s:", u->mixer_path->name); + pa_alsa_path_dump(u->mixer_path); + } else { + + if (!(u->mixer_path_set = pa_alsa_path_set_new(mapping, PA_ALSA_DIRECTION_INPUT))) + goto fail; + + pa_alsa_path_set_probe(u->mixer_path_set, u->mixer_handle, ignore_dB); + + pa_log_debug("Probed mixer paths:"); + pa_alsa_path_set_dump(u->mixer_path_set); + } + + return; + +fail: + + if (u->mixer_path_set) { + pa_alsa_path_set_free(u->mixer_path_set); + u->mixer_path_set = NULL; + } else if (u->mixer_path) { + pa_alsa_path_free(u->mixer_path); + u->mixer_path = NULL; + } + + if (u->mixer_handle) { + snd_mixer_close(u->mixer_handle); + u->mixer_handle = NULL; + } +} + static int setup_mixer(struct userdata *u, pa_bool_t ignore_dB) { pa_assert(u); if (!u->mixer_handle) return 0; - pa_assert(u->mixer_elem); + if (u->source->active_port) { + pa_alsa_port_data *data; - if (snd_mixer_selem_has_capture_volume(u->mixer_elem)) { - pa_bool_t suitable = FALSE; + /* We have a list of supported paths, so let's activate the + * one that has been chosen as active */ - if (snd_mixer_selem_get_capture_volume_range(u->mixer_elem, &u->hw_volume_min, &u->hw_volume_max) < 0) - pa_log_info("Failed to get volume range. Falling back to software volume control."); - else if (u->hw_volume_min >= u->hw_volume_max) - pa_log_warn("Your kernel driver is broken: it reports a volume range from %li to %li which makes no sense.", u->hw_volume_min, u->hw_volume_max); - else { - pa_log_info("Volume ranges from %li to %li.", u->hw_volume_min, u->hw_volume_max); - suitable = TRUE; - } + data = PA_DEVICE_PORT_DATA(u->source->active_port); + u->mixer_path = data->path; - if (suitable) { - if (ignore_dB || snd_mixer_selem_get_capture_dB_range(u->mixer_elem, &u->hw_dB_min, &u->hw_dB_max) < 0) - pa_log_info("Mixer doesn't support dB information or data is ignored."); - else { -#ifdef HAVE_VALGRIND_MEMCHECK_H - VALGRIND_MAKE_MEM_DEFINED(&u->hw_dB_min, sizeof(u->hw_dB_min)); - VALGRIND_MAKE_MEM_DEFINED(&u->hw_dB_max, sizeof(u->hw_dB_max)); -#endif + pa_alsa_path_select(data->path, u->mixer_handle); - if (u->hw_dB_min >= u->hw_dB_max) - pa_log_warn("Your kernel driver is broken: it reports a volume range from %0.2f dB to %0.2f dB which makes no sense.", (double) u->hw_dB_min/100.0, (double) u->hw_dB_max/100.0); - else { - pa_log_info("Volume ranges from %0.2f dB to %0.2f dB.", (double) u->hw_dB_min/100.0, (double) u->hw_dB_max/100.0); - u->hw_dB_supported = TRUE; - - if (u->hw_dB_max > 0) { - u->source->base_volume = pa_sw_volume_from_dB(- (double) u->hw_dB_max/100.0); - pa_log_info("Fixing base volume to %0.2f dB", pa_sw_volume_to_dB(u->source->base_volume)); - } else - pa_log_info("No particular base volume set, fixing to 0 dB"); - } - } + if (data->setting) + pa_alsa_setting_select(data->setting, u->mixer_handle); - if (!u->hw_dB_supported && - u->hw_volume_max - u->hw_volume_min < 3) { + } else { - pa_log_info("Device has less than 4 volume levels. Falling back to software volume control."); - suitable = FALSE; - } - } + if (!u->mixer_path && u->mixer_path_set) + u->mixer_path = u->mixer_path_set->paths; - if (suitable) { - u->mixer_seperate_channels = pa_alsa_calc_mixer_map(u->mixer_elem, &u->source->channel_map, u->mixer_map, FALSE) >= 0; + if (u->mixer_path) { + /* Hmm, we have only a single path, then let's activate it */ - u->source->get_volume = source_get_volume_cb; - u->source->set_volume = source_set_volume_cb; - u->source->flags |= PA_SOURCE_HW_VOLUME_CTRL | (u->hw_dB_supported ? PA_SOURCE_DECIBEL_VOLUME : 0); - pa_log_info("Using hardware volume control. Hardware dB scale %s.", u->hw_dB_supported ? "supported" : "not supported"); + pa_alsa_path_select(u->mixer_path, u->mixer_handle); - if (!u->hw_dB_supported) - u->source->n_volume_steps = u->hw_volume_max - u->hw_volume_min + 1; + if (u->mixer_path->settings) + pa_alsa_setting_select(u->mixer_path->settings, u->mixer_handle); } else - pa_log_info("Using software volume control."); + return 0; } - if (snd_mixer_selem_has_capture_switch(u->mixer_elem)) { + if (!u->mixer_path->has_volume) + pa_log_info("Driver does not support hardware volume control, falling back to software volume control."); + else { + + if (u->mixer_path->has_dB) { + pa_log_info("Hardware volume ranges from %0.2f dB to %0.2f dB.", u->mixer_path->min_dB, u->mixer_path->max_dB); + + u->source->base_volume = pa_sw_volume_from_dB(-u->mixer_path->max_dB); + u->source->n_volume_steps = PA_VOLUME_NORM+1; + + if (u->mixer_path->max_dB > 0.0) + pa_log_info("Fixing base volume to %0.2f dB", pa_sw_volume_to_dB(u->source->base_volume)); + else + pa_log_info("No particular base volume set, fixing to 0 dB"); + + } else { + pa_log_info("Hardware volume ranges from %li to %li.", u->mixer_path->min_volume, u->mixer_path->max_volume); + u->source->base_volume = PA_VOLUME_NORM; + u->source->n_volume_steps = u->mixer_path->max_volume - u->mixer_path->min_volume + 1; + } + + u->source->get_volume = source_get_volume_cb; + u->source->set_volume = source_set_volume_cb; + + u->source->flags |= PA_SOURCE_HW_VOLUME_CTRL | (u->mixer_path->has_dB ? PA_SOURCE_DECIBEL_VOLUME : 0); + pa_log_info("Using hardware volume control. Hardware dB scale %s.", u->mixer_path->has_dB ? "supported" : "not supported"); + } + + if (!u->mixer_path->has_mute) { + pa_log_info("Driver does not support hardware mute control, falling back to software mute control."); + } else { u->source->get_mute = source_get_mute_cb; u->source->set_mute = source_set_mute_cb; u->source->flags |= PA_SOURCE_HW_MUTE_CTRL; - } else - pa_log_info("Using software mute control."); + pa_log_info("Using hardware mute control."); + } u->mixer_fdl = pa_alsa_fdlist_new(); @@ -1349,13 +1344,15 @@ static int setup_mixer(struct userdata *u, pa_bool_t ignore_dB) { return -1; } - snd_mixer_elem_set_callback(u->mixer_elem, mixer_callback); - snd_mixer_elem_set_callback_private(u->mixer_elem, u); + if (u->mixer_path_set) + pa_alsa_path_set_set_callback(u->mixer_path_set, u->mixer_handle, mixer_callback, u); + else + pa_alsa_path_set_callback(u->mixer_path, u->mixer_handle, mixer_callback, u); return 0; } -pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, pa_card *card, const pa_alsa_profile_info *profile) { +pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, pa_card *card, pa_alsa_mapping *mapping) { struct userdata *u = NULL; const char *dev_id = NULL; @@ -1366,7 +1363,7 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p size_t frame_size; pa_bool_t use_mmap = TRUE, b, use_tsched = TRUE, d, ignore_dB = FALSE; pa_source_new_data data; - char *control_device = NULL; + pa_alsa_profile_set *profile_set = NULL; pa_assert(m); pa_assert(ma); @@ -1427,7 +1424,6 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p u->use_tsched = use_tsched; u->rtpoll = pa_rtpoll_new(); pa_thread_mq_init(&u->thread_mq, m->core->mainloop, u->rtpoll); - u->alsa_rtpoll_item = NULL; u->smoother = pa_smoother_new( DEFAULT_TSCHED_WATERMARK_USEC*2, @@ -1435,42 +1431,50 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p TRUE, TRUE, 5, - pa_rtclock_usec(), + pa_rtclock_now(), FALSE); - if (reserve_init(u, pa_modargs_get_value( - ma, "device_id", - pa_modargs_get_value(ma, "device", DEFAULT_DEVICE))) < 0) + dev_id = pa_modargs_get_value( + ma, "device_id", + pa_modargs_get_value(ma, "device", DEFAULT_DEVICE)); + + if (reserve_init(u, dev_id) < 0) + goto fail; + + if (reserve_monitor_init(u, dev_id) < 0) goto fail; b = use_mmap; d = use_tsched; - if (profile) { + if (mapping) { if (!(dev_id = pa_modargs_get_value(ma, "device_id", NULL))) { pa_log("device_id= not set"); goto fail; } - if (!(u->pcm_handle = pa_alsa_open_by_device_id_profile( + if (!(u->pcm_handle = pa_alsa_open_by_device_id_mapping( dev_id, &u->device_name, &ss, &map, SND_PCM_STREAM_CAPTURE, &nfrags, &period_frames, tsched_frames, - &b, &d, profile))) + &b, &d, mapping))) goto fail; } else if ((dev_id = pa_modargs_get_value(ma, "device_id", NULL))) { + if (!(profile_set = pa_alsa_profile_set_new(NULL, &map))) + goto fail; + if (!(u->pcm_handle = pa_alsa_open_by_device_id_auto( dev_id, &u->device_name, &ss, &map, SND_PCM_STREAM_CAPTURE, &nfrags, &period_frames, tsched_frames, - &b, &d, &profile))) + &b, &d, profile_set, &mapping))) goto fail; } else { @@ -1493,8 +1497,8 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p goto fail; } - if (profile) - pa_log_info("Selected configuration '%s' (%s).", profile->description, profile->name); + if (mapping) + pa_log_info("Selected mapping '%s' (%s).", mapping->description, mapping->name); if (use_mmap && !b) { pa_log_info("Device doesn't support mmap(), falling back to UNIX read/write mode."); @@ -1520,33 +1524,31 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p /* ALSA might tweak the sample spec, so recalculate the frame size */ frame_size = pa_frame_size(&ss); - pa_alsa_find_mixer_and_elem(u->pcm_handle, &control_device, &u->mixer_handle, &u->mixer_elem, pa_modargs_get_value(ma, "control", NULL), profile); + find_mixer(u, mapping, pa_modargs_get_value(ma, "control", NULL), ignore_dB); pa_source_new_data_init(&data); data.driver = driver; data.module = m; data.card = card; - set_source_name(&data, ma, dev_id, u->device_name); + set_source_name(&data, ma, dev_id, u->device_name, mapping); pa_source_new_data_set_sample_spec(&data, &ss); pa_source_new_data_set_channel_map(&data, &map); - pa_alsa_init_proplist_pcm(m->core, data.proplist, u->pcm_handle, u->mixer_elem); + pa_alsa_init_proplist_pcm(m->core, data.proplist, u->pcm_handle); pa_proplist_sets(data.proplist, PA_PROP_DEVICE_STRING, u->device_name); pa_proplist_setf(data.proplist, PA_PROP_DEVICE_BUFFERING_BUFFER_SIZE, "%lu", (unsigned long) (period_frames * frame_size * nfrags)); pa_proplist_setf(data.proplist, PA_PROP_DEVICE_BUFFERING_FRAGMENT_SIZE, "%lu", (unsigned long) (period_frames * frame_size)); pa_proplist_sets(data.proplist, PA_PROP_DEVICE_ACCESS_MODE, u->use_tsched ? "mmap+timer" : (u->use_mmap ? "mmap" : "serial")); - if (profile) { - pa_proplist_sets(data.proplist, PA_PROP_DEVICE_PROFILE_NAME, profile->name); - pa_proplist_sets(data.proplist, PA_PROP_DEVICE_PROFILE_DESCRIPTION, profile->description); + if (mapping) { + pa_proplist_sets(data.proplist, PA_PROP_DEVICE_PROFILE_NAME, mapping->name); + pa_proplist_sets(data.proplist, PA_PROP_DEVICE_PROFILE_DESCRIPTION, mapping->description); } pa_alsa_init_description(data.proplist); - if (control_device) { - pa_alsa_init_proplist_ctl(data.proplist, control_device); - pa_xfree(control_device); - } + if (u->control_device) + pa_alsa_init_proplist_ctl(data.proplist, u->control_device); if (pa_modargs_get_proplist(ma, "source_properties", data.proplist, PA_UPDATE_REPLACE) < 0) { pa_log("Invalid properties"); @@ -1554,6 +1556,9 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p goto fail; } + if (u->mixer_path_set) + pa_alsa_add_ports(&data.ports, u->mixer_path_set); + u->source = pa_source_new(m->core, &data, PA_SOURCE_HARDWARE|PA_SOURCE_LATENCY|(u->use_tsched ? PA_SOURCE_DYNAMIC_LATENCY : 0)); pa_source_new_data_done(&data); @@ -1565,6 +1570,7 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p u->source->parent.process_msg = source_process_msg; u->source->update_requested_latency = source_update_requested_latency_cb; u->source->set_state = source_set_state_cb; + u->source->set_port = source_set_port_cb; u->source->userdata = u; pa_source_set_asyncmsgq(u->source, u->thread_mq.inq); @@ -1629,6 +1635,9 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p pa_source_put(u->source); + if (profile_set) + pa_alsa_profile_set_free(profile_set); + return u->source; fail: @@ -1636,6 +1645,9 @@ fail: if (u) userdata_free(u); + if (profile_set) + pa_alsa_profile_set_free(profile_set); + return NULL; } @@ -1661,23 +1673,30 @@ static void userdata_free(struct userdata *u) { if (u->rtpoll) pa_rtpoll_free(u->rtpoll); + if (u->pcm_handle) { + snd_pcm_drop(u->pcm_handle); + snd_pcm_close(u->pcm_handle); + } + if (u->mixer_fdl) pa_alsa_fdlist_free(u->mixer_fdl); + if (u->mixer_path_set) + pa_alsa_path_set_free(u->mixer_path_set); + else if (u->mixer_path) + pa_alsa_path_free(u->mixer_path); + if (u->mixer_handle) snd_mixer_close(u->mixer_handle); - if (u->pcm_handle) { - snd_pcm_drop(u->pcm_handle); - snd_pcm_close(u->pcm_handle); - } - if (u->smoother) pa_smoother_free(u->smoother); reserve_done(u); + monitor_done(u); pa_xfree(u->device_name); + pa_xfree(u->control_device); pa_xfree(u); } diff --git a/src/modules/alsa/alsa-source.h b/src/modules/alsa/alsa-source.h index 9cbb0e17..5d9409e2 100644 --- a/src/modules/alsa/alsa-source.h +++ b/src/modules/alsa/alsa-source.h @@ -29,7 +29,7 @@ #include "alsa-util.h" -pa_source* pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, pa_card *card, const pa_alsa_profile_info *profile); +pa_source* pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, pa_card *card, pa_alsa_mapping *mapping); void pa_alsa_source_free(pa_source *s); diff --git a/src/modules/alsa/alsa-util.c b/src/modules/alsa/alsa-util.c index c03866cc..1f3e5dcd 100644 --- a/src/modules/alsa/alsa-util.c +++ b/src/modules/alsa/alsa-util.c @@ -42,8 +42,10 @@ #include <pulsecore/core-error.h> #include <pulsecore/once.h> #include <pulsecore/thread.h> +#include <pulsecore/conf-parser.h> #include "alsa-util.h" +#include "alsa-mixer.h" #ifdef HAVE_HAL #include "hal-util.h" @@ -53,182 +55,6 @@ #include "udev-util.h" #endif -struct pa_alsa_fdlist { - unsigned num_fds; - struct pollfd *fds; - /* This is a temporary buffer used to avoid lots of mallocs */ - struct pollfd *work_fds; - - snd_mixer_t *mixer; - - pa_mainloop_api *m; - pa_defer_event *defer; - pa_io_event **ios; - - pa_bool_t polled; - - void (*cb)(void *userdata); - void *userdata; -}; - -static void io_cb(pa_mainloop_api*a, pa_io_event* e, int fd, pa_io_event_flags_t events, void *userdata) { - - struct pa_alsa_fdlist *fdl = userdata; - int err; - unsigned i; - unsigned short revents; - - pa_assert(a); - pa_assert(fdl); - pa_assert(fdl->mixer); - pa_assert(fdl->fds); - pa_assert(fdl->work_fds); - - if (fdl->polled) - return; - - fdl->polled = TRUE; - - memcpy(fdl->work_fds, fdl->fds, sizeof(struct pollfd) * fdl->num_fds); - - for (i = 0; i < fdl->num_fds; i++) { - if (e == fdl->ios[i]) { - if (events & PA_IO_EVENT_INPUT) - fdl->work_fds[i].revents |= POLLIN; - if (events & PA_IO_EVENT_OUTPUT) - fdl->work_fds[i].revents |= POLLOUT; - if (events & PA_IO_EVENT_ERROR) - fdl->work_fds[i].revents |= POLLERR; - if (events & PA_IO_EVENT_HANGUP) - fdl->work_fds[i].revents |= POLLHUP; - break; - } - } - - pa_assert(i != fdl->num_fds); - - if ((err = snd_mixer_poll_descriptors_revents(fdl->mixer, fdl->work_fds, fdl->num_fds, &revents)) < 0) { - pa_log_error("Unable to get poll revent: %s", pa_alsa_strerror(err)); - return; - } - - a->defer_enable(fdl->defer, 1); - - if (revents) - snd_mixer_handle_events(fdl->mixer); -} - -static void defer_cb(pa_mainloop_api*a, pa_defer_event* e, void *userdata) { - struct pa_alsa_fdlist *fdl = userdata; - unsigned num_fds, i; - int err, n; - struct pollfd *temp; - - pa_assert(a); - pa_assert(fdl); - pa_assert(fdl->mixer); - - a->defer_enable(fdl->defer, 0); - - if ((n = snd_mixer_poll_descriptors_count(fdl->mixer)) < 0) { - pa_log("snd_mixer_poll_descriptors_count() failed: %s", pa_alsa_strerror(n)); - return; - } - num_fds = (unsigned) n; - - if (num_fds != fdl->num_fds) { - if (fdl->fds) - pa_xfree(fdl->fds); - if (fdl->work_fds) - pa_xfree(fdl->work_fds); - fdl->fds = pa_xnew0(struct pollfd, num_fds); - fdl->work_fds = pa_xnew(struct pollfd, num_fds); - } - - memset(fdl->work_fds, 0, sizeof(struct pollfd) * num_fds); - - if ((err = snd_mixer_poll_descriptors(fdl->mixer, fdl->work_fds, num_fds)) < 0) { - pa_log_error("Unable to get poll descriptors: %s", pa_alsa_strerror(err)); - return; - } - - fdl->polled = FALSE; - - if (memcmp(fdl->fds, fdl->work_fds, sizeof(struct pollfd) * num_fds) == 0) - return; - - if (fdl->ios) { - for (i = 0; i < fdl->num_fds; i++) - a->io_free(fdl->ios[i]); - - if (num_fds != fdl->num_fds) { - pa_xfree(fdl->ios); - fdl->ios = NULL; - } - } - - if (!fdl->ios) - fdl->ios = pa_xnew(pa_io_event*, num_fds); - - /* Swap pointers */ - temp = fdl->work_fds; - fdl->work_fds = fdl->fds; - fdl->fds = temp; - - fdl->num_fds = num_fds; - - for (i = 0;i < num_fds;i++) - fdl->ios[i] = a->io_new(a, fdl->fds[i].fd, - ((fdl->fds[i].events & POLLIN) ? PA_IO_EVENT_INPUT : 0) | - ((fdl->fds[i].events & POLLOUT) ? PA_IO_EVENT_OUTPUT : 0), - io_cb, fdl); -} - -struct pa_alsa_fdlist *pa_alsa_fdlist_new(void) { - struct pa_alsa_fdlist *fdl; - - fdl = pa_xnew0(struct pa_alsa_fdlist, 1); - - return fdl; -} - -void pa_alsa_fdlist_free(struct pa_alsa_fdlist *fdl) { - pa_assert(fdl); - - if (fdl->defer) { - pa_assert(fdl->m); - fdl->m->defer_free(fdl->defer); - } - - if (fdl->ios) { - unsigned i; - pa_assert(fdl->m); - for (i = 0; i < fdl->num_fds; i++) - fdl->m->io_free(fdl->ios[i]); - pa_xfree(fdl->ios); - } - - if (fdl->fds) - pa_xfree(fdl->fds); - if (fdl->work_fds) - pa_xfree(fdl->work_fds); - - pa_xfree(fdl); -} - -int pa_alsa_fdlist_set_mixer(struct pa_alsa_fdlist *fdl, snd_mixer_t *mixer_handle, pa_mainloop_api* m) { - pa_assert(fdl); - pa_assert(mixer_handle); - pa_assert(m); - pa_assert(!fdl->m); - - fdl->mixer = mixer_handle; - fdl->m = m; - fdl->defer = m->defer_new(m, defer_cb, fdl); - - return 0; -} - static int set_format(snd_pcm_t *pcm_handle, snd_pcm_hw_params_t *hwparams, pa_sample_format_t *f) { static const snd_pcm_format_t format_trans[] = { @@ -260,11 +86,11 @@ static int set_format(snd_pcm_t *pcm_handle, snd_pcm_hw_params_t *hwparams, pa_s PA_SAMPLE_S16RE, PA_SAMPLE_ALAW, PA_SAMPLE_ULAW, - PA_SAMPLE_U8, - PA_SAMPLE_INVALID + PA_SAMPLE_U8 }; - int i, ret; + unsigned i; + int ret; pa_assert(pcm_handle); pa_assert(f); @@ -276,7 +102,6 @@ static int set_format(snd_pcm_t *pcm_handle, snd_pcm_hw_params_t *hwparams, pa_s snd_pcm_format_description(format_trans[*f]), pa_alsa_strerror(ret)); - if (*f == PA_SAMPLE_FLOAT32BE) *f = PA_SAMPLE_FLOAT32LE; else if (*f == PA_SAMPLE_FLOAT32LE) @@ -309,7 +134,7 @@ static int set_format(snd_pcm_t *pcm_handle, snd_pcm_hw_params_t *hwparams, pa_s try_auto: - for (i = 0; try_order[i] != PA_SAMPLE_INVALID; i++) { + for (i = 0; i < PA_ELEMENTSOF(try_order); i++) { *f = try_order[i]; if ((ret = snd_pcm_hw_params_set_format(pcm_handle, hwparams, format_trans[*f])) >= 0) @@ -393,12 +218,12 @@ int pa_alsa_set_hw_params( if (require_exact_channel_number) { if ((ret = snd_pcm_hw_params_set_channels(pcm_handle, hwparams, c)) < 0) { - pa_log_debug("snd_pcm_hw_params_set_channels() failed: %s", pa_alsa_strerror(ret)); + pa_log_debug("snd_pcm_hw_params_set_channels(%u) failed: %s", c, pa_alsa_strerror(ret)); goto finish; } } else { if ((ret = snd_pcm_hw_params_set_channels_near(pcm_handle, hwparams, &c)) < 0) { - pa_log_debug("snd_pcm_hw_params_set_channels_near() failed: %s", pa_alsa_strerror(ret)); + pa_log_debug("snd_pcm_hw_params_set_channels_near(%u) failed: %s", c, pa_alsa_strerror(ret)); goto finish; } } @@ -415,10 +240,12 @@ int pa_alsa_set_hw_params( tsched_size = (snd_pcm_uframes_t) (((uint64_t) tsched_size * r) / ss->rate); if (_use_tsched) { - snd_pcm_uframes_t buffer_size; + snd_pcm_uframes_t buffer_size = 0; - pa_assert_se(snd_pcm_hw_params_get_buffer_size_max(hwparams, &buffer_size) == 0); - pa_log_debug("Maximum hw buffer size is %u ms", (unsigned) buffer_size * 1000 / r); + 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)); + else + pa_log_debug("Maximum hw buffer size is %u ms", (unsigned) buffer_size * 1000 / r); _period_size = tsched_size; _periods = 1; @@ -464,12 +291,16 @@ int pa_alsa_set_hw_params( if (ss->format != f) pa_log_info("Device %s doesn't support sample format %s, changed to %s.", snd_pcm_name(pcm_handle), pa_sample_format_to_string(ss->format), pa_sample_format_to_string(f)); - if ((ret = snd_pcm_prepare(pcm_handle)) < 0) + if ((ret = snd_pcm_prepare(pcm_handle)) < 0) { + pa_log_info("snd_pcm_prepare() failed: %s", pa_alsa_strerror(ret)); goto finish; + } if ((ret = snd_pcm_hw_params_get_period_size(hwparams, &_period_size, &dir)) < 0 || - (ret = snd_pcm_hw_params_get_periods(hwparams, &_periods, &dir)) < 0) + (ret = snd_pcm_hw_params_get_periods(hwparams, &_periods, &dir)) < 0) { + pa_log_info("snd_pcm_hw_params_get_period{s|_size}() failed: %s", pa_alsa_strerror(ret)); goto finish; + } /* If the sample rate deviates too much, we need to resample */ if (r < ss->rate*.95 || r > ss->rate*1.05) @@ -553,167 +384,6 @@ int pa_alsa_set_sw_params(snd_pcm_t *pcm, snd_pcm_uframes_t avail_min) { return 0; } -static const struct pa_alsa_profile_info device_table[] = { - {{ 1, { PA_CHANNEL_POSITION_MONO }}, - "hw", NULL, - N_("Analog Mono"), - "analog-mono", - 1, - "Master", "PCM", - "Capture", "Mic" }, - - {{ 2, { PA_CHANNEL_POSITION_LEFT, PA_CHANNEL_POSITION_RIGHT }}, - "front", "hw", - N_("Analog Stereo"), - "analog-stereo", - 10, - "Master", "PCM", - "Capture", "Mic" }, - - {{ 2, { PA_CHANNEL_POSITION_LEFT, PA_CHANNEL_POSITION_RIGHT }}, - "iec958", NULL, - N_("Digital Stereo (IEC958)"), - "iec958-stereo", - 5, - "IEC958", NULL, - "IEC958 In", NULL }, - - {{ 2, { PA_CHANNEL_POSITION_LEFT, PA_CHANNEL_POSITION_RIGHT }}, - "hdmi", NULL, - N_("Digital Stereo (HDMI)"), - "hdmi-stereo", - 4, - "IEC958", NULL, - "IEC958 In", NULL }, - - {{ 4, { PA_CHANNEL_POSITION_FRONT_LEFT, PA_CHANNEL_POSITION_FRONT_RIGHT, - PA_CHANNEL_POSITION_REAR_LEFT, PA_CHANNEL_POSITION_REAR_RIGHT }}, - "surround40", NULL, - N_("Analog Surround 4.0"), - "analog-surround-40", - 7, - "Master", "PCM", - "Capture", "Mic" }, - - {{ 4, { PA_CHANNEL_POSITION_FRONT_LEFT, PA_CHANNEL_POSITION_FRONT_RIGHT, - PA_CHANNEL_POSITION_REAR_LEFT, PA_CHANNEL_POSITION_REAR_RIGHT }}, - "a52", NULL, - N_("Digital Surround 4.0 (IEC958/AC3)"), - "iec958-ac3-surround-40", - 2, - "Master", "PCM", - "Capture", "Mic" }, - - {{ 5, { PA_CHANNEL_POSITION_FRONT_LEFT, PA_CHANNEL_POSITION_FRONT_RIGHT, - PA_CHANNEL_POSITION_REAR_LEFT, PA_CHANNEL_POSITION_REAR_RIGHT, - PA_CHANNEL_POSITION_LFE }}, - "surround41", NULL, - N_("Analog Surround 4.1"), - "analog-surround-41", - 7, - "Master", "PCM", - "Capture", "Mic" }, - - {{ 5, { PA_CHANNEL_POSITION_FRONT_LEFT, PA_CHANNEL_POSITION_FRONT_RIGHT, - PA_CHANNEL_POSITION_REAR_LEFT, PA_CHANNEL_POSITION_REAR_RIGHT, - PA_CHANNEL_POSITION_CENTER }}, - "surround50", NULL, - N_("Analog Surround 5.0"), - "analog-surround-50", - 7, - "Master", "PCM", - "Capture", "Mic" }, - - {{ 6, { PA_CHANNEL_POSITION_FRONT_LEFT, PA_CHANNEL_POSITION_FRONT_RIGHT, - PA_CHANNEL_POSITION_REAR_LEFT, PA_CHANNEL_POSITION_REAR_RIGHT, - PA_CHANNEL_POSITION_CENTER, PA_CHANNEL_POSITION_LFE }}, - "surround51", NULL, - N_("Analog Surround 5.1"), - "analog-surround-51", - 8, - "Master", "PCM", - "Capture", "Mic" }, - - {{ 6, { PA_CHANNEL_POSITION_FRONT_LEFT, PA_CHANNEL_POSITION_FRONT_RIGHT, - PA_CHANNEL_POSITION_REAR_LEFT, PA_CHANNEL_POSITION_REAR_RIGHT, - PA_CHANNEL_POSITION_FRONT_CENTER, PA_CHANNEL_POSITION_LFE}}, - "a52", NULL, - N_("Digital Surround 5.1 (IEC958/AC3)"), - "iec958-ac3-surround-51", - 3, - "IEC958", NULL, - "IEC958 In", NULL }, - - {{ 8, { PA_CHANNEL_POSITION_FRONT_LEFT, PA_CHANNEL_POSITION_FRONT_RIGHT, - PA_CHANNEL_POSITION_REAR_LEFT, PA_CHANNEL_POSITION_REAR_RIGHT, - PA_CHANNEL_POSITION_CENTER, PA_CHANNEL_POSITION_LFE, - PA_CHANNEL_POSITION_SIDE_LEFT, PA_CHANNEL_POSITION_SIDE_RIGHT }}, - "surround71", NULL, - N_("Analog Surround 7.1"), - "analog-surround-71", - 7, - "Master", "PCM", - "Capture", "Mic" }, - - {{ 0, { 0 }}, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL } -}; - -static snd_pcm_t *open_by_device_string_with_fallback( - const char *prefix, - const char *prefix_fallback, - const char *dev_id, - char **dev, - pa_sample_spec *ss, - pa_channel_map* map, - int mode, - uint32_t *nfrags, - snd_pcm_uframes_t *period_size, - snd_pcm_uframes_t tsched_size, - pa_bool_t *use_mmap, - pa_bool_t *use_tsched, - pa_bool_t require_exact_channel_number) { - - snd_pcm_t *pcm_handle; - char *d; - - d = pa_sprintf_malloc("%s:%s", prefix, dev_id); - - pcm_handle = pa_alsa_open_by_device_string( - d, - dev, - ss, - map, - mode, - nfrags, - period_size, - tsched_size, - use_mmap, - use_tsched, - require_exact_channel_number); - pa_xfree(d); - - if (!pcm_handle && prefix_fallback) { - - d = pa_sprintf_malloc("%s:%s", prefix_fallback, dev_id); - - pcm_handle = pa_alsa_open_by_device_string( - d, - dev, - ss, - map, - mode, - nfrags, - period_size, - tsched_size, - use_mmap, - use_tsched, - require_exact_channel_number); - pa_xfree(d); - } - - return pcm_handle; -} - snd_pcm_t *pa_alsa_open_by_device_id_auto( const char *dev_id, char **dev, @@ -725,12 +395,13 @@ snd_pcm_t *pa_alsa_open_by_device_id_auto( snd_pcm_uframes_t tsched_size, pa_bool_t *use_mmap, pa_bool_t *use_tsched, - const pa_alsa_profile_info **profile) { + pa_alsa_profile_set *ps, + pa_alsa_mapping **mapping) { - int i; - int direction = 1; char *d; snd_pcm_t *pcm_handle; + void *state; + pa_alsa_mapping *m; pa_assert(dev_id); pa_assert(dev); @@ -738,113 +409,82 @@ snd_pcm_t *pa_alsa_open_by_device_id_auto( pa_assert(map); pa_assert(nfrags); pa_assert(period_size); + pa_assert(ps); /* First we try to find a device string with a superset of the - * requested channel map and open it without the plug: prefix. We - * iterate through our device table from top to bottom and take - * the first that matches. If we didn't find a working device that - * way, we iterate backwards, and check all devices that do not - * provide a superset of the requested channel map.*/ + * requested channel map. We iterate through our device table from + * top to bottom and take the first that matches. If we didn't + * find a working device that way, we iterate backwards, and check + * all devices that do not provide a superset of the requested + * channel map.*/ - i = 0; - for (;;) { + PA_HASHMAP_FOREACH(m, ps->mappings, state) { + if (!pa_channel_map_superset(&m->channel_map, map)) + continue; - if ((direction > 0) == pa_channel_map_superset(&device_table[i].map, map)) { - pa_sample_spec try_ss; + pa_log_debug("Checking for superset %s (%s)", m->name, m->device_strings[0]); - pa_log_debug("Checking for %s (%s)", device_table[i].name, device_table[i].alsa_name); - - try_ss.channels = device_table[i].map.channels; - try_ss.rate = ss->rate; - try_ss.format = ss->format; - - pcm_handle = open_by_device_string_with_fallback( - device_table[i].alsa_name, - device_table[i].alsa_name_fallback, - dev_id, - dev, - &try_ss, - map, - mode, - nfrags, - period_size, - tsched_size, - use_mmap, - use_tsched, - TRUE); - - if (pcm_handle) { - - *ss = try_ss; - *map = device_table[i].map; - pa_assert(map->channels == ss->channels); - - if (profile) - *profile = &device_table[i]; - - return pcm_handle; - } + pcm_handle = pa_alsa_open_by_device_id_mapping( + dev_id, + dev, + ss, + map, + mode, + nfrags, + period_size, + tsched_size, + use_mmap, + use_tsched, + m); - } + if (pcm_handle) { + if (mapping) + *mapping = m; - if (direction > 0) { - if (!device_table[i+1].alsa_name) { - /* OK, so we are at the end of our list. Let's turn - * back. */ - direction = -1; - } else { - /* We are not at the end of the list, so let's simply - * try the next entry */ - i++; - } + return pcm_handle; } + } - if (direction < 0) { - - if (device_table[i+1].alsa_name && - device_table[i].map.channels == device_table[i+1].map.channels) { - - /* OK, the next entry has the same number of channels, - * let's try it */ - i++; + PA_HASHMAP_FOREACH_BACKWARDS(m, ps->mappings, state) { + if (pa_channel_map_superset(&m->channel_map, map)) + continue; - } else { - /* Hmm, so the next entry does not have the same - * number of channels, so let's go backwards until we - * find the next entry with a different number of - * channels */ + pa_log_debug("Checking for subset %s (%s)", m->name, m->device_strings[0]); - for (i--; i >= 0; i--) - if (device_table[i].map.channels != device_table[i+1].map.channels) - break; + pcm_handle = pa_alsa_open_by_device_id_mapping( + dev_id, + dev, + ss, + map, + mode, + nfrags, + period_size, + tsched_size, + use_mmap, + use_tsched, + m); - /* Hmm, there is no entry with a different number of - * entries, then we're done */ - if (i < 0) - break; + if (pcm_handle) { + if (mapping) + *mapping = m; - /* OK, now lets find go back as long as we have the same number of channels */ - for (; i > 0; i--) - if (device_table[i].map.channels != device_table[i-1].map.channels) - break; - } + return pcm_handle; } } - /* OK, we didn't find any good device, so let's try the raw plughw: stuff */ - + /* OK, we didn't find any good device, so let's try the raw hw: stuff */ d = pa_sprintf_malloc("hw:%s", dev_id); pa_log_debug("Trying %s as last resort...", d); pcm_handle = pa_alsa_open_by_device_string(d, dev, ss, map, mode, nfrags, period_size, tsched_size, use_mmap, use_tsched, FALSE); pa_xfree(d); - if (pcm_handle && profile) - *profile = NULL; + if (pcm_handle && mapping) + *mapping = NULL; return pcm_handle; } -snd_pcm_t *pa_alsa_open_by_device_id_profile( +snd_pcm_t *pa_alsa_open_by_device_id_mapping( const char *dev_id, char **dev, pa_sample_spec *ss, @@ -855,10 +495,11 @@ snd_pcm_t *pa_alsa_open_by_device_id_profile( snd_pcm_uframes_t tsched_size, pa_bool_t *use_mmap, pa_bool_t *use_tsched, - const pa_alsa_profile_info *profile) { + pa_alsa_mapping *m) { snd_pcm_t *pcm_handle; pa_sample_spec try_ss; + pa_channel_map try_map; pa_assert(dev_id); pa_assert(dev); @@ -866,19 +507,19 @@ snd_pcm_t *pa_alsa_open_by_device_id_profile( pa_assert(map); pa_assert(nfrags); pa_assert(period_size); - pa_assert(profile); + pa_assert(m); - try_ss.channels = profile->map.channels; + try_ss.channels = m->channel_map.channels; try_ss.rate = ss->rate; try_ss.format = ss->format; + try_map = m->channel_map; - pcm_handle = open_by_device_string_with_fallback( - profile->alsa_name, - profile->alsa_name_fallback, + pcm_handle = pa_alsa_open_by_template( + m->device_strings, dev_id, dev, &try_ss, - map, + &try_map, mode, nfrags, period_size, @@ -891,7 +532,7 @@ snd_pcm_t *pa_alsa_open_by_device_id_profile( return NULL; *ss = try_ss; - *map = profile->map; + *map = try_map; pa_assert(map->channels == ss->channels); return pcm_handle; @@ -924,14 +565,8 @@ snd_pcm_t *pa_alsa_open_by_device_string( for (;;) { pa_log_debug("Trying %s %s SND_PCM_NO_AUTO_FORMAT ...", d, reformat ? "without" : "with"); - /* We don't pass SND_PCM_NONBLOCK here, since alsa-lib <= - * 1.0.17a would then ignore the SND_PCM_NO_xxx flags. Instead - * we enable nonblock mode afterwards via - * snd_pcm_nonblock(). Also see - * http://mailman.alsa-project.org/pipermail/alsa-devel/2008-August/010258.html */ - if ((err = snd_pcm_open(&pcm_handle, d, mode, - /*SND_PCM_NONBLOCK|*/ + SND_PCM_NONBLOCK| SND_PCM_NO_AUTO_RESAMPLE| SND_PCM_NO_AUTO_CHANNELS| (reformat ? 0 : SND_PCM_NO_AUTO_FORMAT))) < 0) { @@ -951,7 +586,6 @@ snd_pcm_t *pa_alsa_open_by_device_string( } /* Hmm, some hw is very exotic, so we retry with plug, if without it didn't work */ - if (!pa_startswith(d, "plug:") && !pa_startswith(d, "plughw:")) { char *t; @@ -988,440 +622,48 @@ fail: return NULL; } -int pa_alsa_probe_profiles( +snd_pcm_t *pa_alsa_open_by_template( + char **template, const char *dev_id, - const pa_sample_spec *ss, - void (*cb)(const pa_alsa_profile_info *sink, const pa_alsa_profile_info *source, void *userdata), - void *userdata) { - - const pa_alsa_profile_info *i; - - pa_assert(dev_id); - pa_assert(ss); - pa_assert(cb); - - /* We try each combination of playback/capture. We also try to - * open only for capture resp. only for sink. Don't get confused - * by the trailing entry in device_table we use for this! */ - - for (i = device_table; i < device_table + PA_ELEMENTSOF(device_table); i++) { - const pa_alsa_profile_info *j; - snd_pcm_t *pcm_i = NULL; - - if (i->alsa_name) { - pa_sample_spec try_ss; - pa_channel_map try_map; - - pa_log_debug("Checking for playback on %s (%s)", i->name, i->alsa_name); - - try_ss = *ss; - try_ss.channels = i->map.channels; - try_map = i->map; - - pcm_i = open_by_device_string_with_fallback( - i->alsa_name, - i->alsa_name_fallback, - dev_id, - NULL, - &try_ss, &try_map, - SND_PCM_STREAM_PLAYBACK, - NULL, NULL, 0, NULL, NULL, - TRUE); - - if (!pcm_i) - continue; - } - - for (j = device_table; j < device_table + PA_ELEMENTSOF(device_table); j++) { - snd_pcm_t *pcm_j = NULL; - - if (j->alsa_name) { - pa_sample_spec try_ss; - pa_channel_map try_map; - - pa_log_debug("Checking for capture on %s (%s)", j->name, j->alsa_name); - - try_ss = *ss; - try_ss.channels = j->map.channels; - try_map = j->map; - - pcm_j = open_by_device_string_with_fallback( - j->alsa_name, - j->alsa_name_fallback, - dev_id, - NULL, - &try_ss, &try_map, - SND_PCM_STREAM_CAPTURE, - NULL, NULL, 0, NULL, NULL, - TRUE); - - if (!pcm_j) - continue; - } - - if (pcm_j) - snd_pcm_close(pcm_j); - - if (i->alsa_name || j->alsa_name) - cb(i->alsa_name ? i : NULL, - j->alsa_name ? j : NULL, userdata); - } - - if (pcm_i) - snd_pcm_close(pcm_i); - } - - return TRUE; -} - -int pa_alsa_prepare_mixer(snd_mixer_t *mixer, const char *dev) { - int err; - - pa_assert(mixer); - pa_assert(dev); - - if ((err = snd_mixer_attach(mixer, dev)) < 0) { - pa_log_info("Unable to attach to mixer %s: %s", dev, pa_alsa_strerror(err)); - return -1; - } - - if ((err = snd_mixer_selem_register(mixer, NULL, NULL)) < 0) { - pa_log_warn("Unable to register mixer: %s", pa_alsa_strerror(err)); - return -1; - } - - if ((err = snd_mixer_load(mixer)) < 0) { - pa_log_warn("Unable to load mixer: %s", pa_alsa_strerror(err)); - return -1; - } - - pa_log_info("Successfully attached to mixer '%s'", dev); - - return 0; -} - -static pa_bool_t elem_has_volume(snd_mixer_elem_t *elem, pa_bool_t playback) { - pa_assert(elem); - - if (playback && snd_mixer_selem_has_playback_volume(elem)) - return TRUE; - - if (!playback && snd_mixer_selem_has_capture_volume(elem)) - return TRUE; - - return FALSE; -} - -static pa_bool_t elem_has_switch(snd_mixer_elem_t *elem, pa_bool_t playback) { - pa_assert(elem); - - if (playback && snd_mixer_selem_has_playback_switch(elem)) - return TRUE; - - if (!playback && snd_mixer_selem_has_capture_switch(elem)) - return TRUE; - - return FALSE; -} - -snd_mixer_elem_t *pa_alsa_find_elem(snd_mixer_t *mixer, const char *name, const char *fallback, pa_bool_t playback) { - snd_mixer_elem_t *elem = NULL, *fallback_elem = NULL; - snd_mixer_selem_id_t *sid = NULL; - - snd_mixer_selem_id_alloca(&sid); - - pa_assert(mixer); - pa_assert(name); - - snd_mixer_selem_id_set_name(sid, name); - snd_mixer_selem_id_set_index(sid, 0); - - if ((elem = snd_mixer_find_selem(mixer, sid))) { - - if (elem_has_volume(elem, playback) && - elem_has_switch(elem, playback)) - goto success; - - if (!elem_has_volume(elem, playback) && - !elem_has_switch(elem, playback)) - elem = NULL; - } - - pa_log_info("Cannot find mixer control \"%s\" or mixer control is no combination of switch/volume.", snd_mixer_selem_id_get_name(sid)); - - if (fallback) { - snd_mixer_selem_id_set_name(sid, fallback); - snd_mixer_selem_id_set_index(sid, 0); - - if ((fallback_elem = snd_mixer_find_selem(mixer, sid))) { - - if (elem_has_volume(fallback_elem, playback) && - elem_has_switch(fallback_elem, playback)) { - elem = fallback_elem; - goto success; - } - - if (!elem_has_volume(fallback_elem, playback) && - !elem_has_switch(fallback_elem, playback)) - fallback_elem = NULL; - } - - pa_log_info("Cannot find fallback mixer control \"%s\" or mixer control is no combination of switch/volume.", snd_mixer_selem_id_get_name(sid)); - } - - if (elem && fallback_elem) { - - /* Hmm, so we have both elements, but neither has both mute - * and volume. Let's prefer the one with the volume */ - - if (elem_has_volume(elem, playback)) - goto success; - - if (elem_has_volume(fallback_elem, playback)) { - elem = fallback_elem; - goto success; - } - } - - if (!elem && fallback_elem) - elem = fallback_elem; - -success: - - if (elem) - pa_log_info("Using mixer control \"%s\".", snd_mixer_selem_id_get_name(sid)); - - return elem; -} - -int pa_alsa_find_mixer_and_elem( - snd_pcm_t *pcm, - char **ctl_device, - snd_mixer_t **_m, - snd_mixer_elem_t **_e, - const char *control_name, - const pa_alsa_profile_info *profile) { - - int err; - snd_mixer_t *m; - snd_mixer_elem_t *e; - pa_bool_t found = FALSE; - const char *dev; - - pa_assert(pcm); - pa_assert(_m); - pa_assert(_e); - - if (control_name && *control_name == 0) { - pa_log_debug("Hardware mixer usage disabled because empty control name passed"); - return -1; - } - - if ((err = snd_mixer_open(&m, 0)) < 0) { - pa_log("Error opening mixer: %s", pa_alsa_strerror(err)); - return -1; - } - - /* First, try by name */ - if ((dev = snd_pcm_name(pcm))) - if (pa_alsa_prepare_mixer(m, dev) >= 0) { - found = TRUE; - - if (ctl_device) - *ctl_device = pa_xstrdup(dev); - } - - /* Then, try by card index */ - if (!found) { - snd_pcm_info_t* info; - snd_pcm_info_alloca(&info); - - if (snd_pcm_info(pcm, info) >= 0) { - char *md; - int card_idx; - - if ((card_idx = snd_pcm_info_get_card(info)) >= 0) { - - md = pa_sprintf_malloc("hw:%i", card_idx); - - if (!dev || !pa_streq(dev, md)) - if (pa_alsa_prepare_mixer(m, md) >= 0) { - found = TRUE; - - if (ctl_device) { - *ctl_device = md; - md = NULL; - } - } - - pa_xfree(md); - } - } - } - - if (!found) { - snd_mixer_close(m); - return -1; - } - - switch (snd_pcm_stream(pcm)) { - - case SND_PCM_STREAM_PLAYBACK: - if (control_name) - e = pa_alsa_find_elem(m, control_name, NULL, TRUE); - else if (profile) - e = pa_alsa_find_elem(m, profile->playback_control_name, profile->playback_control_fallback, TRUE); - else - e = pa_alsa_find_elem(m, "Master", "PCM", TRUE); - break; - - case SND_PCM_STREAM_CAPTURE: - if (control_name) - e = pa_alsa_find_elem(m, control_name, NULL, FALSE); - else if (profile) - e = pa_alsa_find_elem(m, profile->record_control_name, profile->record_control_fallback, FALSE); - else - e = pa_alsa_find_elem(m, "Capture", "Mic", FALSE); - break; - - default: - pa_assert_not_reached(); - } - - if (!e) { - if (ctl_device) - pa_xfree(*ctl_device); - - snd_mixer_close(m); - return -1; - } - - pa_assert(e && m); - - *_m = m; - *_e = e; - - return 0; -} - -static const snd_mixer_selem_channel_id_t alsa_channel_ids[PA_CHANNEL_POSITION_MAX] = { - [PA_CHANNEL_POSITION_MONO] = SND_MIXER_SCHN_MONO, /* The ALSA name is just an alias! */ - - [PA_CHANNEL_POSITION_FRONT_CENTER] = SND_MIXER_SCHN_FRONT_CENTER, - [PA_CHANNEL_POSITION_FRONT_LEFT] = SND_MIXER_SCHN_FRONT_LEFT, - [PA_CHANNEL_POSITION_FRONT_RIGHT] = SND_MIXER_SCHN_FRONT_RIGHT, - - [PA_CHANNEL_POSITION_REAR_CENTER] = SND_MIXER_SCHN_REAR_CENTER, - [PA_CHANNEL_POSITION_REAR_LEFT] = SND_MIXER_SCHN_REAR_LEFT, - [PA_CHANNEL_POSITION_REAR_RIGHT] = SND_MIXER_SCHN_REAR_RIGHT, - - [PA_CHANNEL_POSITION_LFE] = SND_MIXER_SCHN_WOOFER, - - [PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER] = SND_MIXER_SCHN_UNKNOWN, - - [PA_CHANNEL_POSITION_SIDE_LEFT] = SND_MIXER_SCHN_SIDE_LEFT, - [PA_CHANNEL_POSITION_SIDE_RIGHT] = SND_MIXER_SCHN_SIDE_RIGHT, - - [PA_CHANNEL_POSITION_AUX0] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX1] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX2] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX3] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX4] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX5] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX6] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX7] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX8] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX9] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX10] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX11] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX12] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX13] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX14] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX15] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX16] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX17] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX18] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX19] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX20] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX21] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX22] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX23] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX24] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX25] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX26] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX27] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX28] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX29] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX30] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_AUX31] = SND_MIXER_SCHN_UNKNOWN, - - [PA_CHANNEL_POSITION_TOP_CENTER] = SND_MIXER_SCHN_UNKNOWN, - - [PA_CHANNEL_POSITION_TOP_FRONT_CENTER] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_TOP_FRONT_LEFT] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_TOP_FRONT_RIGHT] = SND_MIXER_SCHN_UNKNOWN, - - [PA_CHANNEL_POSITION_TOP_REAR_CENTER] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_TOP_REAR_LEFT] = SND_MIXER_SCHN_UNKNOWN, - [PA_CHANNEL_POSITION_TOP_REAR_RIGHT] = SND_MIXER_SCHN_UNKNOWN -}; - - -int pa_alsa_calc_mixer_map(snd_mixer_elem_t *elem, const pa_channel_map *channel_map, snd_mixer_selem_channel_id_t mixer_map[], pa_bool_t playback) { - unsigned i; - pa_bool_t alsa_channel_used[SND_MIXER_SCHN_LAST]; - pa_bool_t mono_used = FALSE; - - pa_assert(elem); - pa_assert(channel_map); - pa_assert(mixer_map); - - memset(&alsa_channel_used, 0, sizeof(alsa_channel_used)); - - if (channel_map->channels > 1 && - ((playback && snd_mixer_selem_has_playback_volume_joined(elem)) || - (!playback && snd_mixer_selem_has_capture_volume_joined(elem)))) { - pa_log_info("ALSA device lacks independant volume controls for each channel."); - return -1; - } + char **dev, + pa_sample_spec *ss, + pa_channel_map* map, + int mode, + uint32_t *nfrags, + snd_pcm_uframes_t *period_size, + snd_pcm_uframes_t tsched_size, + pa_bool_t *use_mmap, + pa_bool_t *use_tsched, + pa_bool_t require_exact_channel_number) { - for (i = 0; i < channel_map->channels; i++) { - snd_mixer_selem_channel_id_t id; - pa_bool_t is_mono; + snd_pcm_t *pcm_handle; + char **i; - is_mono = channel_map->map[i] == PA_CHANNEL_POSITION_MONO; - id = alsa_channel_ids[channel_map->map[i]]; + for (i = template; *i; i++) { + char *d; - if (!is_mono && id == SND_MIXER_SCHN_UNKNOWN) { - pa_log_info("Configured channel map contains channel '%s' that is unknown to the ALSA mixer.", pa_channel_position_to_string(channel_map->map[i])); - return -1; - } + d = pa_replace(*i, "%f", dev_id); - if ((is_mono && mono_used) || (!is_mono && alsa_channel_used[id])) { - pa_log_info("Channel map has duplicate channel '%s', falling back to software volume control.", pa_channel_position_to_string(channel_map->map[i])); - return -1; - } - - if ((playback && (!snd_mixer_selem_has_playback_channel(elem, id) || (is_mono && !snd_mixer_selem_is_playback_mono(elem)))) || - (!playback && (!snd_mixer_selem_has_capture_channel(elem, id) || (is_mono && !snd_mixer_selem_is_capture_mono(elem))))) { + pcm_handle = pa_alsa_open_by_device_string( + d, + dev, + ss, + map, + mode, + nfrags, + period_size, + tsched_size, + use_mmap, + use_tsched, + require_exact_channel_number); - pa_log_info("ALSA device lacks separate volumes control for channel '%s'", pa_channel_position_to_string(channel_map->map[i])); - return -1; - } + pa_xfree(d); - if (is_mono) { - mixer_map[i] = SND_MIXER_SCHN_MONO; - mono_used = TRUE; - } else { - mixer_map[i] = id; - alsa_channel_used[id] = TRUE; - } + if (pcm_handle) + return pcm_handle; } - pa_log_info("All %u channels can be mapped to mixer channels.", channel_map->channels); - - return 0; + return NULL; } void pa_alsa_dump(pa_log_level_t level, snd_pcm_t *pcm) { @@ -1447,24 +689,33 @@ void pa_alsa_dump_status(snd_pcm_t *pcm) { int err; snd_output_t *out; snd_pcm_status_t *status; + char *s = NULL; pa_assert(pcm); snd_pcm_status_alloca(&status); - pa_assert_se(snd_output_buffer_open(&out) == 0); + if ((err = snd_output_buffer_open(&out)) < 0) { + pa_log_debug("snd_output_buffer_open() failed: %s", pa_cstrerror(err)); + return; + } - pa_assert_se(snd_pcm_status(pcm, status) == 0); + if ((err = snd_pcm_status(pcm, status)) < 0) { + pa_log_debug("snd_pcm_status() failed: %s", pa_cstrerror(err)); + goto finish; + } - if ((err = snd_pcm_status_dump(status, out)) < 0) + if ((err = snd_pcm_status_dump(status, out)) < 0) { pa_log_debug("snd_pcm_dump(): %s", pa_alsa_strerror(err)); - else { - char *s = NULL; - snd_output_buffer_string(out, &s); - pa_log_debug("snd_pcm_dump():\n%s", pa_strnull(s)); + goto finish; } - pa_assert_se(snd_output_close(out) == 0); + snd_output_buffer_string(out, &s); + pa_log_debug("snd_pcm_dump():\n%s", pa_strnull(s)); + +finish: + + snd_output_close(out); } static void alsa_error_handler(const char *file, int line, const char *function, int err, const char *fmt,...) { @@ -1484,38 +735,43 @@ static void alsa_error_handler(const char *file, int line, const char *function, static pa_atomic_t n_error_handler_installed = PA_ATOMIC_INIT(0); -void pa_alsa_redirect_errors_inc(void) { +void pa_alsa_refcnt_inc(void) { /* This is not really thread safe, but we do our best */ if (pa_atomic_inc(&n_error_handler_installed) == 0) snd_lib_error_set_handler(alsa_error_handler); } -void pa_alsa_redirect_errors_dec(void) { +void pa_alsa_refcnt_dec(void) { int r; pa_assert_se((r = pa_atomic_dec(&n_error_handler_installed)) >= 1); - if (r == 1) + if (r == 1) { snd_lib_error_set_handler(NULL); + snd_config_update_free_global(); + } } pa_bool_t pa_alsa_init_description(pa_proplist *p) { - const char *s; + const char *d, *k; pa_assert(p); if (pa_device_init_description(p)) return TRUE; - if ((s = pa_proplist_gets(p, "alsa.card_name"))) { - pa_proplist_sets(p, PA_PROP_DEVICE_DESCRIPTION, s); - return TRUE; - } + if (!(d = pa_proplist_gets(p, "alsa.card_name"))) + d = pa_proplist_gets(p, "alsa.name"); - if ((s = pa_proplist_gets(p, "alsa.name"))) { - pa_proplist_sets(p, PA_PROP_DEVICE_DESCRIPTION, s); - return TRUE; - } + if (!d) + return FALSE; + + k = pa_proplist_gets(p, PA_PROP_DEVICE_PROFILE_DESCRIPTION); + + if (d && k) + pa_proplist_setf(p, PA_PROP_DEVICE_DESCRIPTION, _("%s %s"), d, k); + else if (d) + pa_proplist_sets(p, PA_PROP_DEVICE_DESCRIPTION, d); return FALSE; } @@ -1544,7 +800,7 @@ void pa_alsa_init_proplist_card(pa_core *c, pa_proplist *p, int card) { } #ifdef HAVE_UDEV - pa_udev_get_info(c, p, card); + pa_udev_get_info(card, p); #endif #ifdef HAVE_HAL @@ -1581,16 +837,14 @@ void pa_alsa_init_proplist_pcm_info(pa_core *c, pa_proplist *p, snd_pcm_info_t * pa_proplist_sets(p, PA_PROP_DEVICE_API, "alsa"); - class = snd_pcm_info_get_class(pcm_info); - if (class <= SND_PCM_CLASS_LAST) { + if ((class = snd_pcm_info_get_class(pcm_info)) <= SND_PCM_CLASS_LAST) { if (class_table[class]) pa_proplist_sets(p, PA_PROP_DEVICE_CLASS, class_table[class]); if (alsa_class_table[class]) pa_proplist_sets(p, "alsa.class", alsa_class_table[class]); } - subclass = snd_pcm_info_get_subclass(pcm_info); - if (subclass <= SND_PCM_SUBCLASS_LAST) + if ((subclass = snd_pcm_info_get_subclass(pcm_info)) <= SND_PCM_SUBCLASS_LAST) if (alsa_subclass_table[subclass]) pa_proplist_sets(p, "alsa.subclass", alsa_subclass_table[subclass]); @@ -1610,7 +864,7 @@ void pa_alsa_init_proplist_pcm_info(pa_core *c, pa_proplist *p, snd_pcm_info_t * pa_alsa_init_proplist_card(c, p, card); } -void pa_alsa_init_proplist_pcm(pa_core *c, pa_proplist *p, snd_pcm_t *pcm, snd_mixer_elem_t *elem) { +void pa_alsa_init_proplist_pcm(pa_core *c, pa_proplist *p, snd_pcm_t *pcm) { snd_pcm_hw_params_t *hwparams; snd_pcm_info_t *info; int bits, err; @@ -1626,9 +880,6 @@ void pa_alsa_init_proplist_pcm(pa_core *c, pa_proplist *p, snd_pcm_t *pcm, snd_m pa_proplist_setf(p, "alsa.resolution_bits", "%i", bits); } - if (elem) - pa_proplist_sets(p, "alsa.mixer_element", snd_mixer_selem_get_name(elem)); - if ((err = snd_pcm_info(pcm, info)) < 0) pa_log_warn("Error fetching PCM info: %s", pa_alsa_strerror(err)); else @@ -1656,10 +907,10 @@ void pa_alsa_init_proplist_ctl(pa_proplist *p, const char *name) { return; } - if ((t = snd_ctl_card_info_get_mixername(info))) + if ((t = snd_ctl_card_info_get_mixername(info)) && *t) pa_proplist_sets(p, "alsa.mixer_name", t); - if ((t = snd_ctl_card_info_get_components(info))) + if ((t = snd_ctl_card_info_get_components(info)) && *t) pa_proplist_sets(p, "alsa.components", t); snd_ctl_close(ctl); diff --git a/src/modules/alsa/alsa-util.h b/src/modules/alsa/alsa-util.h index 27f43712..830a922e 100644 --- a/src/modules/alsa/alsa-util.h +++ b/src/modules/alsa/alsa-util.h @@ -30,105 +30,97 @@ #include <pulse/mainloop-api.h> #include <pulse/channelmap.h> #include <pulse/proplist.h> +#include <pulse/volume.h> +#include <pulsecore/llist.h> #include <pulsecore/rtpoll.h> #include <pulsecore/core.h> #include <pulsecore/log.h> -typedef struct pa_alsa_fdlist pa_alsa_fdlist; - -struct pa_alsa_fdlist *pa_alsa_fdlist_new(void); -void pa_alsa_fdlist_free(struct pa_alsa_fdlist *fdl); -int pa_alsa_fdlist_set_mixer(struct pa_alsa_fdlist *fdl, snd_mixer_t *mixer_handle, pa_mainloop_api* m); +#include "alsa-mixer.h" int pa_alsa_set_hw_params( snd_pcm_t *pcm_handle, - pa_sample_spec *ss, - uint32_t *periods, - snd_pcm_uframes_t *period_size, + pa_sample_spec *ss, /* modified at return */ + uint32_t *periods, /* modified at return */ + snd_pcm_uframes_t *period_size, /* modified at return */ snd_pcm_uframes_t tsched_size, - pa_bool_t *use_mmap, - pa_bool_t *use_tsched, + pa_bool_t *use_mmap, /* modified at return */ + pa_bool_t *use_tsched, /* modified at return */ pa_bool_t require_exact_channel_number); -int pa_alsa_set_sw_params(snd_pcm_t *pcm, snd_pcm_uframes_t avail_min); - -typedef struct pa_alsa_profile_info { - pa_channel_map map; - const char *alsa_name; - const char *alsa_name_fallback; - const char *description; /* internationalized */ - const char *name; - unsigned priority; - const char *playback_control_name, *playback_control_fallback; - const char *record_control_name, *record_control_fallback; -} pa_alsa_profile_info; - -int pa_alsa_prepare_mixer(snd_mixer_t *mixer, const char *dev); -snd_mixer_elem_t *pa_alsa_find_elem(snd_mixer_t *mixer, const char *name, const char *fallback, pa_bool_t playback); -int pa_alsa_find_mixer_and_elem(snd_pcm_t *pcm, char **ctl_device, snd_mixer_t **_m, snd_mixer_elem_t **_e, const char *control_name, const pa_alsa_profile_info*profile); +int pa_alsa_set_sw_params( + snd_pcm_t *pcm, + snd_pcm_uframes_t avail_min); -void pa_alsa_init_proplist_ctl(pa_proplist *p, const char *name); - -/* Picks a working profile based on the specified ss/map */ +/* Picks a working mapping from the profile set based on the specified ss/map */ snd_pcm_t *pa_alsa_open_by_device_id_auto( const char *dev_id, - char **dev, - pa_sample_spec *ss, - pa_channel_map* map, + char **dev, /* modified at return */ + pa_sample_spec *ss, /* modified at return */ + pa_channel_map* map, /* modified at return */ int mode, - uint32_t *nfrags, - snd_pcm_uframes_t *period_size, + uint32_t *nfrags, /* modified at return */ + snd_pcm_uframes_t *period_size, /* modified at return */ snd_pcm_uframes_t tsched_size, - pa_bool_t *use_mmap, - pa_bool_t *use_tsched, - const pa_alsa_profile_info **profile); + pa_bool_t *use_mmap, /* modified at return */ + pa_bool_t *use_tsched, /* modified at return */ + pa_alsa_profile_set *ps, + pa_alsa_mapping **mapping); /* modified at return */ -/* Uses the specified profile */ -snd_pcm_t *pa_alsa_open_by_device_id_profile( +/* Uses the specified mapping */ +snd_pcm_t *pa_alsa_open_by_device_id_mapping( const char *dev_id, - char **dev, - pa_sample_spec *ss, - pa_channel_map* map, + char **dev, /* modified at return */ + pa_sample_spec *ss, /* modified at return */ + pa_channel_map* map, /* modified at return */ int mode, - uint32_t *nfrags, - snd_pcm_uframes_t *period_size, + uint32_t *nfrags, /* modified at return */ + snd_pcm_uframes_t *period_size, /* modified at return */ snd_pcm_uframes_t tsched_size, - pa_bool_t *use_mmap, - pa_bool_t *use_tsched, - const pa_alsa_profile_info *profile); + pa_bool_t *use_mmap, /* modified at return */ + pa_bool_t *use_tsched, /* modified at return */ + pa_alsa_mapping *mapping); /* Opens the explicit ALSA device */ snd_pcm_t *pa_alsa_open_by_device_string( - const char *device, - char **dev, - pa_sample_spec *ss, - pa_channel_map* map, + const char *dir, + char **dev, /* modified at return */ + pa_sample_spec *ss, /* modified at return */ + pa_channel_map* map, /* modified at return */ int mode, - uint32_t *nfrags, - snd_pcm_uframes_t *period_size, + uint32_t *nfrags, /* modified at return */ + snd_pcm_uframes_t *period_size, /* modified at return */ snd_pcm_uframes_t tsched_size, - pa_bool_t *use_mmap, - pa_bool_t *use_tsched, + pa_bool_t *use_mmap, /* modified at return */ + pa_bool_t *use_tsched, /* modified at return */ pa_bool_t require_exact_channel_number); -int pa_alsa_probe_profiles( +/* Opens the explicit ALSA device with a fallback list */ +snd_pcm_t *pa_alsa_open_by_template( + char **template, const char *dev_id, - const pa_sample_spec *ss, - void (*cb)(const pa_alsa_profile_info *sink, const pa_alsa_profile_info *source, void *userdata), - void *userdata); - -int pa_alsa_calc_mixer_map(snd_mixer_elem_t *elem, const pa_channel_map *channel_map, snd_mixer_selem_channel_id_t mixer_map[], pa_bool_t playback); + char **dev, /* modified at return */ + pa_sample_spec *ss, /* modified at return */ + pa_channel_map* map, /* modified at return */ + int mode, + uint32_t *nfrags, /* modified at return */ + snd_pcm_uframes_t *period_size, /* modified at return */ + snd_pcm_uframes_t tsched_size, + pa_bool_t *use_mmap, /* modified at return */ + pa_bool_t *use_tsched, /* modified at return */ + pa_bool_t require_exact_channel_number); void pa_alsa_dump(pa_log_level_t level, snd_pcm_t *pcm); void pa_alsa_dump_status(snd_pcm_t *pcm); -void pa_alsa_redirect_errors_inc(void); -void pa_alsa_redirect_errors_dec(void); +void pa_alsa_refcnt_inc(void); +void pa_alsa_refcnt_dec(void); void pa_alsa_init_proplist_pcm_info(pa_core *c, pa_proplist *p, snd_pcm_info_t *pcm_info); void pa_alsa_init_proplist_card(pa_core *c, pa_proplist *p, int card); -void pa_alsa_init_proplist_pcm(pa_core *c, pa_proplist *p, snd_pcm_t *pcm, snd_mixer_elem_t *elem); +void pa_alsa_init_proplist_pcm(pa_core *c, pa_proplist *p, snd_pcm_t *pcm); +void pa_alsa_init_proplist_ctl(pa_proplist *p, const char *name); pa_bool_t pa_alsa_init_description(pa_proplist *p); int pa_alsa_recover_from_poll(snd_pcm_t *pcm, int revents); @@ -140,13 +132,11 @@ int pa_alsa_safe_delay(snd_pcm_t *pcm, snd_pcm_sframes_t *delay, size_t hwbuf_si int pa_alsa_safe_mmap_begin(snd_pcm_t *pcm, const snd_pcm_channel_area_t **areas, snd_pcm_uframes_t *offset, snd_pcm_uframes_t *frames, size_t hwbuf_size, const pa_sample_spec *ss); char *pa_alsa_get_driver_name(int card); - char *pa_alsa_get_driver_name_by_pcm(snd_pcm_t *pcm); char *pa_alsa_get_reserve_name(const char *device); pa_bool_t pa_alsa_pcm_is_hw(snd_pcm_t *pcm); - pa_bool_t pa_alsa_pcm_is_modem(snd_pcm_t *pcm); const char* pa_alsa_strerror(int errnum); diff --git a/src/modules/alsa/mixer/paths/analog-input-aux.conf b/src/modules/alsa/mixer/paths/analog-input-aux.conf new file mode 100644 index 00000000..db78eb48 --- /dev/null +++ b/src/modules/alsa/mixer/paths/analog-input-aux.conf @@ -0,0 +1,62 @@ +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2.1 of the +# License, or (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + +; For devices where an 'Aux' element exists +; +; See analog-output.conf.common for an explanation on the directives + +[General] +priority = 90 +name = analog-input + +[Element Capture] +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +[Element Mic] +switch = off +volume = off + +[Element Line] +switch = off +volume = off + +[Element Aux] +required = any +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +[Element Video] +switch = off +volume = off + +[Element Mic/Line] +switch = off +volume = off + +[Element TV Tuner] +switch = off +volume = off + +[Element FM] +switch = off +volume = off + +.include analog-input.conf.common diff --git a/src/modules/alsa/mixer/paths/analog-input-fm.conf b/src/modules/alsa/mixer/paths/analog-input-fm.conf new file mode 100644 index 00000000..baf674aa --- /dev/null +++ b/src/modules/alsa/mixer/paths/analog-input-fm.conf @@ -0,0 +1,62 @@ +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2.1 of the +# License, or (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + +; For devices where an 'FM' element exists +; +; See analog-output.conf.common for an explanation on the directives + +[General] +priority = 70 +name = analog-input-radio + +[Element Capture] +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +[Element Mic] +switch = off +volume = off + +[Element Line] +switch = off +volume = off + +[Element Aux] +switch = off +volume = off + +[Element Video] +switch = off +volume = off + +[Element Mic/Line] +switch = off +volume = off + +[Element TV Tuner] +switch = off +volume = off + +[Element FM] +required = any +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +.include analog-input.conf.common diff --git a/src/modules/alsa/mixer/paths/analog-input-linein.conf b/src/modules/alsa/mixer/paths/analog-input-linein.conf new file mode 100644 index 00000000..4be5722d --- /dev/null +++ b/src/modules/alsa/mixer/paths/analog-input-linein.conf @@ -0,0 +1,61 @@ +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2.1 of the +# License, or (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + +; For devices where a 'Line' element exists +; +; See analog-output.conf.common for an explanation on the directives + +[General] +priority = 90 + +[Element Capture] +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +[Element Mic] +switch = off +volume = off + +[Element Line] +required = any +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +[Element Aux] +switch = off +volume = off + +[Element Video] +switch = off +volume = off + +[Element Mic/Line] +switch = off +volume = off + +[Element TV Tuner] +switch = off +volume = off + +[Element FM] +switch = off +volume = off + +.include analog-input.conf.common diff --git a/src/modules/alsa/mixer/paths/analog-input-mic-line.conf b/src/modules/alsa/mixer/paths/analog-input-mic-line.conf new file mode 100644 index 00000000..f7f30854 --- /dev/null +++ b/src/modules/alsa/mixer/paths/analog-input-mic-line.conf @@ -0,0 +1,63 @@ +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2.1 of the +# License, or (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + +; For devices where a 'Mic/Line' element exists +; +; See analog-output.conf.common for an explanation on the directives + +[General] +priority = 90 +name = analog-input + +[Element Capture] +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +[Element Mic] +switch = off +volume = off + +[Element Line] +switch = off +volume = off + +[Element Aux] +switch = off +volume = off + +[Element Video] +switch = off +volume = off + +[Element Mic/Line] +required = any +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +[Element TV Tuner] +switch = off +volume = off + +[Element FM] +switch = off +volume = off + +.include analog-input.conf.common +.include analog-input-mic.conf.common diff --git a/src/modules/alsa/mixer/paths/analog-input-mic.conf b/src/modules/alsa/mixer/paths/analog-input-mic.conf new file mode 100644 index 00000000..2a36f2f3 --- /dev/null +++ b/src/modules/alsa/mixer/paths/analog-input-mic.conf @@ -0,0 +1,63 @@ +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2.1 of the +# License, or (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + +; For devices where a 'Mic' element exists +; +; See analog-output.conf.common for an explanation on the directives + +[General] +priority = 100 +name = analog-input-microphone + +[Element Capture] +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +[Element Mic] +required = any +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +[Element Line] +switch = off +volume = off + +[Element Aux] +switch = off +volume = off + +[Element Video] +switch = off +volume = off + +[Element Mic/Line] +switch = off +volume = off + +[Element TV Tuner] +switch = off +volume = off + +[Element FM] +switch = off +volume = off + +.include analog-input.conf.common +.include analog-input-mic.conf.common diff --git a/src/modules/alsa/mixer/paths/analog-input-mic.conf.common b/src/modules/alsa/mixer/paths/analog-input-mic.conf.common new file mode 100644 index 00000000..b35e7af8 --- /dev/null +++ b/src/modules/alsa/mixer/paths/analog-input-mic.conf.common @@ -0,0 +1,63 @@ +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2.1 of the +# License, or (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + +; Common element for all microphone inputs +; +; See analog-output.conf.common for an explanation on the directives + +;;; 'Mic Select' + +[Element Mic Select] +enumeration = select + +[Option Mic Select:Mic1] +name = input-microphone +priority = 20 + +[Option Mic Select:Mic2] +name = input-microphone +priority = 19 + +;;; Various Boosts + +[Element Mic Boost (+20dB)] +switch = select +volume = merge + +[Option Mic Boost (+20dB):on] +name = input-boost-on + +[Option Mic Boost (+20dB):off] +name = input-boost-off + +[Element Mic Boost] +switch = select +volume = merge + +[Option Mic Boost:on] +name = input-boost-on + +[Option Mic Boost:off] +name = input-boost-off + +[Element Front Mic Boost] +switch = select + +[Option Front Mic Boost:on] +name = input-boost-on + +[Option Front Mic Boost:off] +name = input-boost-off diff --git a/src/modules/alsa/mixer/paths/analog-input-tvtuner.conf b/src/modules/alsa/mixer/paths/analog-input-tvtuner.conf new file mode 100644 index 00000000..8531ec70 --- /dev/null +++ b/src/modules/alsa/mixer/paths/analog-input-tvtuner.conf @@ -0,0 +1,62 @@ +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2.1 of the +# License, or (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + +; For devices where a 'TV Tuner' element exists +; +; See analog-output.conf.common for an explanation on the directives + +[General] +priority = 70 +name = analog-input-video + +[Element Capture] +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +[Element Mic] +switch = off +volume = off + +[Element Line] +switch = off +volume = off + +[Element Aux] +switch = off +volume = off + +[Element Video] +switch = off +volume = off + +[Element Mic/Line] +switch = off +volume = off + +[Element TV Tuner] +required = any +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +[Element FM] +switch = off +volume = off + +.include analog-input.conf.common diff --git a/src/modules/alsa/mixer/paths/analog-input-video.conf b/src/modules/alsa/mixer/paths/analog-input-video.conf new file mode 100644 index 00000000..74c76f07 --- /dev/null +++ b/src/modules/alsa/mixer/paths/analog-input-video.conf @@ -0,0 +1,61 @@ +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2.1 of the +# License, or (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + +; For devices where a 'Video' element exists +; +; See analog-output.conf.common for an explanation on the directives + +[General] +priority = 70 + +[Element Capture] +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +[Element Mic] +switch = off +volume = off + +[Element Line] +switch = off +volume = off + +[Element Aux] +switch = off +volume = off + +[Element Video] +required = any +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +[Element Mic/Line] +switch = off +volume = off + +[Element TV Tuner] +switch = off +volume = off + +[Element FM] +switch = off +volume = off + +.include analog-input.conf.common diff --git a/src/modules/alsa/mixer/paths/analog-input.conf b/src/modules/alsa/mixer/paths/analog-input.conf new file mode 100644 index 00000000..5055f90a --- /dev/null +++ b/src/modules/alsa/mixer/paths/analog-input.conf @@ -0,0 +1,54 @@ +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2.1 of the +# License, or (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + +; A fallback for devices that lack seperate Mic/Line/Aux/Video/TV +; Tuner/FM elements +; +; See analog-output.conf.common for an explanation on the directives + +[General] +priority = 100 + +[Element Capture] +required = volume +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +[Element Mic] +required-absent = any + +[Element Line] +required-absent = any + +[Element Aux] +required-absent = any + +[Element Video] +required-absent = any + +[Element Mic/Line] +required-absent = any + +[Element TV Tuner] +required-absent = any + +[Element FM] +required-absent = any + +.include analog-input.conf.common +.include analog-input-mic.conf.common diff --git a/src/modules/alsa/mixer/paths/analog-input.conf.common b/src/modules/alsa/mixer/paths/analog-input.conf.common new file mode 100644 index 00000000..6728a6ae --- /dev/null +++ b/src/modules/alsa/mixer/paths/analog-input.conf.common @@ -0,0 +1,257 @@ +# 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. + +; Mixer path for PulseAudio's ALSA backend, common elements for all +; input paths. If multiple options by the same id are discovered they +; will be suffixed with a number to distuingish them, in the same +; order they appear here. +; +; Source selection should use the following names: +; +; input -- If we don't know the exact kind of input +; input-microphone +; input-microphone-internal +; input-microphone-external +; input-linein +; input-video +; input-radio +; input-docking-microphone +; input-docking-linein +; input-docking +; +; We explicitly don't want to wrap the following sources: +; +; CD +; Synth/MIDI +; Phone +; Mix +; Digital/SPDIF +; Master +; PC Speaker +; +; See analog-output.conf.common for an explanation on the directives + +;;; 'Input Source Select' + +[Element Input Source Select] +enumeration = select + +[Option Input Source Select:Input1] +name = input +priority = 10 + +[Option Input Source Select:Input2] +name = input +priority = 5 + +;;; 'Input Source' + +[Element Input Source] +enumeration = select + +[Option Input Source:Mic] +name = input-microphone +priority = 20 + +[Option Input Source:Microphone] +name = input-microphone +priority = 20 + +[Option Input Source:Front Mic] +name = input-microphone +priority = 19 + +[Option Input Source:Front Microphone] +name = input-microphone +priority = 19 + +[Option Input Source:Line] +name = input-linein +priority = 18 + +[Option Input Source:Line-In] +name = input-linein +priority = 18 + +[Option Input Source:Line In] +name = input-linein +priority = 18 + +;;; ' Capture Source' + +[Element Capture Source] +enumeration = select + +[Option Capture Source:TV Tuner] +name = input-video + +[Option Capture Source:FM] +name = input-radio + +[Option Capture Source:Mic/Line] +name = input + +[Option Capture Source:Line/Mic] +name = input + +[Option Capture Source:Mic] +name = input-microphone + +[Option Capture Source:Microphone] +name = input-microphone + +[Option Capture Source:Int Mic] +name = input-microphone-internal + +[Option Capture Source:Int DMic] +name = input-microphone-internal + +[Option Capture Source:Internal Mic] +name = input-microphone-internal + +[Option Capture Source:iMic] +name = input-microphone-internal + +[Option Capture Source:i-Mic] +name = input-microphone-internal + +[Option Capture Source:Internal Microphone] +name = input-microphone-internal + +[Option Capture Source:Front Mic] +name = input-microphone + +[Option Capture Source:Front Microphone] +name = input-microphone + +[Option Capture Source:Rear Mic] +name = input-microphone + +[Option Capture Source:Mic1] +name = input-microphone + +[Option Capture Source:Mic2] +name = input-microphone + +[Option Capture Source:D-Mic] +name = input-microphone + +[Option Capture Source:IntMic] +name = input-microphone-internal + +[Option Capture Source:ExtMic] +name = input-microphone-external + +[Option Capture Source:Ext Mic] +name = input-microphone-external + +[Option Capture Source:E-Mic] +name = input-microphone-external + +[Option Capture Source:e-Mic] +name = input-microphone-external + +[Option Capture Source:LineIn] +name = input-linein + +[Option Capture Source:Analog] +name = input + +[Option Capture Source:Line] +name = input-linein + +[Option Capture Source:Line-In] +name = input-linein + +[Option Capture Source:Line In] +name = input-linein + +[Option Capture Source:Video] +name = input-video + +[Option Capture Source:Aux] +name = input + +[Option Capture Source:Aux0] +name = input + +[Option Capture Source:Aux1] +name = input + +[Option Capture Source:Aux2] +name = input + +[Option Capture Source:Aux3] +name = input + +[Option Capture Source:AUX IN] +name = input + +[Option Capture Source:Aux In] +name = input + +[Option Capture Source:AOUT] +name = input + +[Option Capture Source:AUX] +name = input + +[Option Capture Source:Cam Mic] +name = input-microphone + +[Option Capture Source:Digital Mic] +name = input-microphone + +[Option Capture Source:Digital Mic 1] +name = input-microphone + +[Option Capture Source:Digital Mic 2] +name = input-microphone + +[Option Capture Source:Analog Inputs] +name = input + +[Option Capture Source:Unknown1] +name = input + +[Option Capture Source:Unknown2] +name = input + +[Option Capture Source:Docking-Station] +name = input-docking + +[Option Capture Source:Dock Mic] +name = input-docking-microphone + +;;; Various Boosts + +[Element Capture Boost] +switch = select + +[Option Capture Boost:on] +name = input-boost-on + +[Option Capture Boost:off] +name = input-boost-off + +[Element Auto Gain Control] +switch = select + +[Option Auto Gain Control:on] +name = input-agc-on + +[Option Auto Gain Control:off] +name = input-agc-off diff --git a/src/modules/alsa/mixer/paths/analog-output-headphones.conf b/src/modules/alsa/mixer/paths/analog-output-headphones.conf new file mode 100644 index 00000000..c018e0eb --- /dev/null +++ b/src/modules/alsa/mixer/paths/analog-output-headphones.conf @@ -0,0 +1,71 @@ +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2.1 of the +# License, or (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + +; Path for mixers that have a 'Headphone' control +; +; See analog-output.conf.common for an explanation on the directives + +[General] +priority = 90 + +[Element Hardware Master] +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +[Element Master] +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +[Element Master Mono] +switch = off +volume = off + +[Element Headphone] +required = any +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +[Element Front] +switch = off +volume = off + +[Element Rear] +switch = off +volume = off + +[Element Sourround] +switch = off +volume = off + +[Element Side] +switch = off +volume = off + +[Element Center] +switch = off +volume = off + +[Element LFE] +switch = off +volume = off + +.include analog-output.conf.common 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 new file mode 100644 index 00000000..7a267890 --- /dev/null +++ b/src/modules/alsa/mixer/paths/analog-output-lfe-on-mono.conf @@ -0,0 +1,72 @@ +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2.1 of the +# License, or (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + +; Intended for usage in laptops that have a seperate LFE speaker +; connected to the Master mono connector +; +; See analog-output.conf.common for an explanation on the directives + +[General] +priority = 40 + +[Element Hardware Master] +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +[Element Master] +switch = mute +volume = merge +override-map.1 = all-no-lfe +override-map.2 = all-left,all-right + +[Element Master Mono] +required = any +switch = mute +volume = merge +override-map.1 = lfe +override-map.2 = lfe,lfe + +[Element Headphone] +switch = off +volume = off + +[Element Front] +switch = off +volume = off + +[Element Rear] +switch = off +volume = off + +[Element Sourround] +switch = off +volume = off + +[Element Side] +switch = off +volume = off + +[Element Center] +switch = off +volume = off + +[Element LFE] +switch = off +volume = off + +.include analog-output.conf.common diff --git a/src/modules/alsa/mixer/paths/analog-output-mono.conf b/src/modules/alsa/mixer/paths/analog-output-mono.conf new file mode 100644 index 00000000..f6cb9f8a --- /dev/null +++ b/src/modules/alsa/mixer/paths/analog-output-mono.conf @@ -0,0 +1,69 @@ +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2.1 of the +# License, or (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + +; Intended for usage on boards that have a seperate Mono output plug. +; +; See analog-output.conf.common for an explanation on the directives + +[General] +priority = 50 + +[Element Hardware Master] +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +[Element Master] +switch = off +volume = off + +[Element Master Mono] +required = any +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +[Element Headphone] +switch = off +volume = off + +[Element Front] +switch = off +volume = off + +[Element Rear] +switch = off +volume = off + +[Element Sourround] +switch = off +volume = off + +[Element Side] +switch = off +volume = off + +[Element Center] +switch = off +volume = off + +[Element LFE] +switch = off +volume = off + +.include analog-output.conf.common diff --git a/src/modules/alsa/mixer/paths/analog-output.conf b/src/modules/alsa/mixer/paths/analog-output.conf new file mode 100644 index 00000000..ea108aaf --- /dev/null +++ b/src/modules/alsa/mixer/paths/analog-output.conf @@ -0,0 +1,80 @@ +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2.1 of the +# License, or (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + +; Intended for the 'default' output +; +; See analog-output.conf.common for an explanation on the directives + +[General] +priority = 100 + +[Element Hardware Master] +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +[Element Master] +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +[Element Master Mono] +switch = off +volume = off + +[Element Headphone] +switch = off +volume = off + +[Element Front] +switch = mute +volume = merge +override-map.1 = all-front +override-map.2 = front-left,front-right + +[Element Rear] +switch = mute +volume = merge +override-map.1 = all-rear +override-map.2 = rear-left,rear-right + +[Element Surround] +switch = mute +volume = merge +override-map.1 = all-rear +override-map.2 = rear-left,rear-right + +[Element Side] +switch = mute +volume = merge +override-map.1 = all-side +override-map.2 = side-left,side-right + +[Element Center] +switch = mute +volume = merge +override-map.1 = all-center +override-map.2 = all-center,all-center + +[Element LFE] +switch = mute +volume = merge +override-map.1 = lfe +override-map.2 = lfe,lfe + +.include analog-output.conf.common diff --git a/src/modules/alsa/mixer/paths/analog-output.conf.common b/src/modules/alsa/mixer/paths/analog-output.conf.common new file mode 100644 index 00000000..cc1185f4 --- /dev/null +++ b/src/modules/alsa/mixer/paths/analog-output.conf.common @@ -0,0 +1,111 @@ +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2.1 of the +# License, or (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + +; Common part of all paths + +; So here's generally how mixer paths are used by PA: PA goes through +; a mixer path file from top to bottom and checks if a mixer element +; described therein exists. If so it is added to the list of mixer +; elements PA will control, keeping the order it read them in. If a +; mixer element described here has set the required= or +; required-absent= directives a path might not be accepted as valid +; and is ignored in its entirety (see below). However usually if a +; element listed here is missing this one element is ignored but not +; the entire path. +; +; When a device shall be muted/unmuted *all* elements listed in a path +; file with "switch = mute" will be toggled. +; +; When a device shall change its volume, PA will got through the list +; of all elements with "volume = merge" and set the volume on the +; first element. If that element does not support dB volumes, this is +; where the story ends. If it does support dB volumes, PA divides the +; requested volume by the volume that was set on this element, and +; then go on to the next element with "volume = merge" and then set +; that there, and so on. That way the first volume element in the +; path will be the one that does the 'biggest' part of the overall +; volume adjustment, with the remaining elements usually being set to +; some value next to 0dB. This logic makes sure we get the full range +; over all volume sliders and a very high granularity of volumes +; already in hardware. +; +; All switches and enumerations set to "select" are exposed via the +; "port" functionality of sinks/sources. Basically every possible +; switch setting and every possible enumeration setting will be +; combined and made into a "port". So make sure you don't list too +; many switches/enums for exposing, because the number of ports might +; rise exponentially. +; +; Only one path can be selected at a time. All paths that are valid +; for an audio device will be exposed as "port" for the sink/source. + + +; [General] +; priority = ... # Priority for this path +; description = ... +; +; [Option ...:...] # For each option of an enumeration or switch element +; # that shall be exposed as a sink/source port. Needs to +; # be named after the Element, followed by a colon, followed +; # by the option name, resp. on/off if the element is a switch. +; name = ... # Logical name to use in the path identifier +; priority = ... # Priority if this is made into a device port +; +; [Element ...] # For each element that we shall control +; required = ignore | switch | volume | enumeration | any # If set, require this element to be of this kind and available, +; # otherwise don't consider this path valid for the card +; required-absent = ignore | switch | volume # If set, require this element to not be of this kind and not +; # available, otherwise don't consider this path valid for the card +; +; switch = ignore | mute | off | on | select # What to do with this switch: ignore it, make it follow mute status, +; # always set it to off, always to on, or make it selectable as port. +; # If set to 'select' you need to define an Option section for on +; # and off +; volume = ignore | merge | off | zero # What to do with this volume: ignore it, merge it into the device +; # volume slider, always set it to the lowest value possible, or always +; # set it to 0 dB (for whatever that means) +; enumeration = ignore | select # What to do with this enumeration, ignore it or make it selectable +; # via device ports. If set to 'select' you need to define an Option section +; # for each of the items you want to expose +; direction = playback | capture # Is this relevant only for playback or capture? If not set this will implicitly be +; # set the direction of the PCM device is opened as. Generally this doesn't need to be set +; # unless you have a broken driver that has playback controls marked for capture or vice +; # versa +; direction-try-other = no | yes # If the element does not supported what is requested, try the other direction, too? +; +; override-map.1 = ... # Override the channel mask of the mixer control if the control only exposes a single channel +; override-map.2 = ... # Override the channel masks of the mixer control if the control only exposes two channels +; # Override maps should list for each element channel which high-level channels it controls via a +; # channel mask. A channel mask may either be the name of a single channel, or the words "all-left", +; # "all-right", "all-center", "all-front", "all-rear", and "all" to encode a specific subset of +; # channels in a mask + +[Element PCM] +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +[Element External Amplifier] +switch = select + +[Option External Amplifier:on] +name = output-amplifier-on +priority = 0 + +[Option External Amplifier:off] +name = output-amplifier-off +priority = 10 diff --git a/src/modules/alsa/mixer/profile-sets/90-pulseaudio.rules b/src/modules/alsa/mixer/profile-sets/90-pulseaudio.rules new file mode 100644 index 00000000..ea1a2fed --- /dev/null +++ b/src/modules/alsa/mixer/profile-sets/90-pulseaudio.rules @@ -0,0 +1,26 @@ +# do not edit this file, it will be overwritten on update + +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2.1 of the +# License, or (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + +SUBSYSTEM!="sound", GOTO="pulseaudio_end" +ACTION!="change", GOTO="pulseaudio_end" +KERNEL!="card*", GOTO="pulseaudio_end" + +SUBSYSTEMS=="usb", ATTRS{idVendor}=="17cc", ATTRS{idProduct}=="1978", ENV{PULSE_PROFILE_SET}="native-instruments-audio8dj.conf" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="17cc", ATTRS{idProduct}=="0839", ENV{PULSE_PROFILE_SET}="native-instruments-audio4dj.conf" + +LABEL="pulseaudio_end" diff --git a/src/modules/alsa/mixer/profile-sets/default.conf b/src/modules/alsa/mixer/profile-sets/default.conf new file mode 100644 index 00000000..ac41a8d3 --- /dev/null +++ b/src/modules/alsa/mixer/profile-sets/default.conf @@ -0,0 +1,144 @@ +# 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. + +; Default profile definitions for the ALSA backend of PulseAudio. This +; is used as fallback for all cards that have no special mapping +; assigned. (and should be good enough for the vast majority of +; cards). Use the udev property PULSE_PROFILE_SET to assign a +; different profile set than this one to a device. So what is this +; about? Simply, what we do here is map ALSA devices to how they are +; exposed in PA. We say which ALSA device string to use to open a +; device, which channel mapping to use then, and which mixer path to +; use. This is encoded in a 'mapping'. Multiple of these mappings can +; be bound together in a 'profile' which is then directly exposed in +; the UI as a card profile. Each mapping assigned to a profile will +; result in one sink/source to be created if the profile is selected +; for the card. + +; [General] +; auto-profiles = no | yes # Instead of defining all profiles manually, autogenerate +; # them by combining every input mapping with every output mapping. +; +; [Mapping id] +; device-strings = ... # ALSA device string. %f will be replaced by the card identifier. +; channel-map = ... # Channel mapping to use for this device +; description = ... +; paths-input = ... # A list of mixer paths to use. Every path in this list will be probed. +; # If multiple are found to be working they will be available as device ports +; paths-output = ... +; element-input = ... # Instead of configuring a full mixer path simply configure a single +; # mixer element for volume/mute handling +; element-output = ... +; priority = ... +; direction = any | input | output # Only useful for? +; +; [Profile id] +; input-mappings = ... # Lists mappings for sources on this profile, those mapping must be +; # defined in this file too +; output-mappings = ... # Lists mappings for sinks on this profile, those mappings must be +; # defined in this file too +; description = ... +; priority = ... # Numeric value to deduce priority for this profile +; skip-probe = no | yes # Skip probing for availability? If this is yes then this profile +; # will be assumed as working without probing. Makes initialization +; # a bit faster but only works if the card is really known well. + +[General] +auto-profiles = yes + +[Mapping analog-mono] +device-strings = hw:%f +channel-map = mono +paths-output = analog-output analog-output-headphones analog-output-mono analog-output-lfe-on-mono +paths-input = analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line +priority = 1 + +[Mapping analog-stereo] +device-strings = front:%f hw:%f +channel-map = left,right +paths-output = analog-output analog-output-headphones analog-output-mono analog-output-lfe-on-mono +paths-input = analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line +priority = 10 + +[Mapping analog-surround-40] +device-strings = surround40:%f +channel-map = front-left,front-right,rear-left,rear-right +paths-output = analog-output analog-output-lfe-on-mono +priority = 7 +direction = output + +[Mapping analog-surround-41] +device-strings = surround41:%f +channel-map = front-left,front-right,rear-left,rear-right,lfe +paths-output = analog-output analog-output-lfe-on-mono +priority = 8 +direction = output + +[Mapping analog-surround-50] +device-strings = surround50:%f +channel-map = front-left,front-right,rear-left,rear-right,front-center +paths-output = analog-output analog-output-lfe-on-mono +priority = 7 +direction = output + +[Mapping analog-surround-51] +device-strings = surround51:%f +channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe +paths-output = analog-output analog-output-lfe-on-mono +priority = 8 +direction = output + +[Mapping analog-surround-71] +device-strings = surround71:%f +channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right +description = Analog Surround 7.1 +paths-output = analog-output analog-output-lfe-on-mono +priority = 7 +direction = output + +[Mapping iec958-stereo] +device-strings = iec958:%f +channel-map = left,right +priority = 5 + +[Mapping iec958-surround-40] +device-strings = iec958:%f +channel-map = front-left,front-right,rear-left,rear-right +priority = 1 + +[Mapping iec958-ac3-surround-40] +device-strings = a52:%f +channel-map = front-left,front-right,rear-left,rear-right +priority = 2 +direction = output + +[Mapping iec958-ac3-surround-51] +device-strings = a52:%f +channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe +priority = 3 +direction = output + +[Mapping hdmi-stereo] +device-strings = hdmi:%f +channel-map = left,right +priority = 4 +direction = output + +; An example for defining multiple-sink profiles +#[Profile output:analog-stereo+output:iec958-stereo+input:analog-stereo] +#description = Foobar +#output-mappings = analog-stereo iec958-stereo +#input-mappings = analog-stereo diff --git a/src/modules/alsa/mixer/profile-sets/native-instruments-audio4dj.conf b/src/modules/alsa/mixer/profile-sets/native-instruments-audio4dj.conf new file mode 100644 index 00000000..2b835308 --- /dev/null +++ b/src/modules/alsa/mixer/profile-sets/native-instruments-audio4dj.conf @@ -0,0 +1,91 @@ +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2.1 of the +# License, or (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + +; Native Instruments Audio 4 DJ +; +; This card has two stereo pairs of input and two stereo pairs of +; output, named channels A and B. Channel B has an additional +; Headphone connector. +; +; We knowingly only define a subset of the theoretically possible +; mapping combinations as profiles here. +; +; See default.conf for an explanation on the directives used here. + +[General] +auto-profiles = no + +[Mapping analog-stereo-a] +description = Analog Stereo Channel A +device-strings = hw:%f,0,0 +channel-map = left,right + +[Mapping analog-stereo-b-output] +description = Analog Stereo Channel B (Headphones) +device-strings = hw:%f,0,1 +channel-map = left,right +direction = output + +[Mapping analog-stereo-b-input] +description = Analog Stereo Channel B +device-strings = hw:%f,0,1 +channel-map = left,right +direction = input + +[Profile output:analog-stereo-all+input:analog-stereo-all] +description = Analog Stereo Duplex Channels A, B (Headphones) +output-mappings = analog-stereo-a analog-stereo-b-output +input-mappings = analog-stereo-a analog-stereo-b-input +priority = 100 +skip-probe = yes + +[Profile output:analog-stereo-a+input:analog-stereo-a] +description = Analog Stereo Duplex Channel A +output-mappings = analog-stereo-a +input-mappings = analog-stereo-a +priority = 40 +skip-probe = yes + +[Profile output:analog-stereo-b+input:analog-stereo-b] +description = Analog Stereo Duplex Channel B (Headphones) +output-mappings = analog-stereo-b-output +input-mappings = analog-stereo-b-input +priority = 50 +skip-probe = yes + +[Profile output:analog-stereo-a] +description = Analog Stereo Output Channel A +output-mappings = analog-stereo-a +priority = 5 +skip-probe = yes + +[Profile output:analog-stereo-b] +description = Analog Stereo Output Channel B (Headphones) +output-mappings = analog-stereo-b-output +priority = 6 +skip-probe = yes + +[Profile input:analog-stereo-a] +description = Analog Stereo Input Channel A +input-mappings = analog-stereo-a +priority = 2 +skip-probe = yes + +[Profile input:analog-stereo-b] +description = Analog Stereo Input Channel B +input-mappings = analog-stereo-b-input +priority = 1 +skip-probe = yes diff --git a/src/modules/alsa/mixer/profile-sets/native-instruments-audio8dj.conf b/src/modules/alsa/mixer/profile-sets/native-instruments-audio8dj.conf new file mode 100644 index 00000000..3fe3cc56 --- /dev/null +++ b/src/modules/alsa/mixer/profile-sets/native-instruments-audio8dj.conf @@ -0,0 +1,162 @@ +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2.1 of the +# License, or (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + +; Native Instruments Audio 8 DJ +; +; This card has four stereo pairs of input and four stereo pairs of +; output, named channels A to D. Channel C has an additional Mic/Line +; connector, channel D an additional Headphone connector. +; +; We knowingly only define a subset of the theoretically possible +; mapping combinations as profiles here. +; +; See default.conf for an explanation on the directives used here. + +[General] +auto-profiles = no + +[Mapping analog-stereo-a] +description = Analog Stereo Channel A +device-strings = hw:%f,0,0 +channel-map = left,right + +[Mapping analog-stereo-b] +description = Analog Stereo Channel B +device-strings = hw:%f,0,1 +channel-map = left,right + +# Since we want to set a different description for channel C's/D's input +# and output we define two seperate mappings for them +[Mapping analog-stereo-c-output] +description = Analog Stereo Channel C +device-strings = hw:%f,0,2 +channel-map = left,right +direction = output + +[Mapping analog-stereo-c-input] +description = Analog Stereo Channel C (Line/Mic) +device-strings = hw:%f,0,2 +channel-map = left,right +direction = input + +[Mapping analog-stereo-d-output] +description = Analog Stereo Channel D (Headphones) +device-strings = hw:%f,0,3 +channel-map = left,right +direction = output + +[Mapping analog-stereo-d-input] +description = Analog Stereo Channel D +device-strings = hw:%f,0,3 +channel-map = left,right +direction = input + +[Profile output:analog-stereo-all+input:analog-stereo-all] +description = Analog Stereo Duplex Channels A, B, C (Line/Mic), D (Headphones) +output-mappings = analog-stereo-a analog-stereo-b analog-stereo-c-output analog-stereo-d-output +input-mappings = analog-stereo-a analog-stereo-b analog-stereo-c-input analog-stereo-d-input +priority = 100 +skip-probe = yes + +[Profile output:analog-stereo-d+input:analog-stereo-c] +description = Analog Stereo Channel D (Headphones) Output, Channel C (Line/Mic) Input +output-mappings = analog-stereo-d-output +input-mappings = analog-stereo-c-input +priority = 90 +skip-probe = yes + +[Profile output:analog-stereo-c-d+input:analog-stereo-c-d] +description = Analog Stereo Duplex Channels C (Line/Mic), D (Line/Mic) +output-mappings = analog-stereo-c-output analog-stereo-d-output +input-mappings = analog-stereo-c-input analog-stereo-d-input +priority = 80 +skip-probe = yes + +[Profile output:analog-stereo-a+input:analog-stereo-a] +description = Analog Stereo Duplex Channel A +output-mappings = analog-stereo-a +input-mappings = analog-stereo-a +priority = 50 +skip-probe = yes + +[Profile output:analog-stereo-b+input:analog-stereo-b] +description = Analog Stereo Duplex Channel B +output-mappings = analog-stereo-b +input-mappings = analog-stereo-b +priority = 40 +skip-probe = yes + +[Profile output:analog-stereo-c+input:analog-stereo-c] +description = Analog Stereo Duplex Channel C (Line/Mic) +output-mappings = analog-stereo-c-output +input-mappings = analog-stereo-c-input +priority = 60 +skip-probe = yes + +[Profile output:analog-stereo-d+input:analog-stereo-d] +description = Analog Stereo Duplex Channel D (Headphones) +output-mappings = analog-stereo-d-output +input-mappings = analog-stereo-d-input +priority = 70 +skip-probe = yes + +[Profile output:analog-stereo-a] +description = Analog Stereo Output Channel A +output-mappings = analog-stereo-a +priority = 6 +skip-probe = yes + +[Profile output:analog-stereo-b] +description = Analog Stereo Output Channel B +output-mappings = analog-stereo-b +priority = 5 +skip-probe = yes + +[Profile output:analog-stereo-c] +description = Analog Stereo Output Channel C +output-mappings = analog-stereo-c-output +priority = 7 +skip-probe = yes + +[Profile output:analog-stereo-d] +description = Analog Stereo Output Channel D (Headphones) +output-mappings = analog-stereo-d-output +priority = 8 +skip-probe = yes + +[Profile input:analog-stereo-a] +description = Analog Stereo Input Channel A +input-mappings = analog-stereo-a +priority = 2 +skip-probe = yes + +[Profile input:analog-stereo-b] +description = Analog Stereo Input Channel B +input-mappings = analog-stereo-b +priority = 1 +skip-probe = yes + +[Profile input:analog-stereo-c] +description = Analog Stereo Input Channel C (Line/Mic) +input-mappings = analog-stereo-c-input +priority = 4 +skip-probe = yes + +[Profile input:analog-stereo-d] +description = Analog Stereo Input Channel D +input-mappings = analog-stereo-d-input +priority = 3 +skip-probe = yes diff --git a/src/modules/alsa/mixer/samples/ATI IXP--Realtek ALC655 rev 0 b/src/modules/alsa/mixer/samples/ATI IXP--Realtek ALC655 rev 0 new file mode 100644 index 00000000..082c9a1b --- /dev/null +++ b/src/modules/alsa/mixer/samples/ATI IXP--Realtek ALC655 rev 0 @@ -0,0 +1,150 @@ +Simple mixer control 'Master',0 + Capabilities: pvolume pswitch pswitch-joined + Playback channels: Front Left - Front Right + Limits: Playback 0 - 31 + Mono: + Front Left: Playback 29 [94%] [-3.00dB] [on] + Front Right: Playback 29 [94%] [-3.00dB] [on] +Simple mixer control 'Master Mono',0 + Capabilities: pvolume pvolume-joined pswitch pswitch-joined + Playback channels: Mono + Limits: Playback 0 - 31 + Mono: Playback 0 [0%] [-46.50dB] [off] +Simple mixer control 'PCM',0 + Capabilities: pvolume pswitch pswitch-joined + Playback channels: Front Left - Front Right + Limits: Playback 0 - 31 + Mono: + Front Left: Playback 23 [74%] [0.00dB] [on] + Front Right: Playback 23 [74%] [0.00dB] [on] +Simple mixer control 'Surround',0 + Capabilities: pvolume pswitch + Playback channels: Front Left - Front Right + Limits: Playback 0 - 31 + Mono: + Front Left: Playback 0 [0%] [-46.50dB] [off] + Front Right: Playback 0 [0%] [-46.50dB] [off] +Simple mixer control 'Surround Jack Mode',0 + Capabilities: enum + Items: 'Shared' 'Independent' + Item0: 'Shared' +Simple mixer control 'Center',0 + Capabilities: pvolume pvolume-joined pswitch pswitch-joined + Playback channels: Mono + Limits: Playback 0 - 31 + Mono: Playback 0 [0%] [-46.50dB] [off] +Simple mixer control 'LFE',0 + Capabilities: pvolume pvolume-joined pswitch pswitch-joined + Playback channels: Mono + Limits: Playback 0 - 31 + Mono: Playback 0 [0%] [-46.50dB] [off] +Simple mixer control 'Line',0 + Capabilities: pvolume pswitch pswitch-joined cswitch cswitch-exclusive + Capture exclusive group: 0 + Playback channels: Front Left - Front Right + Capture channels: Front Left - Front Right + Limits: Playback 0 - 31 + Front Left: Playback 0 [0%] [-34.50dB] [off] Capture [off] + Front Right: Playback 0 [0%] [-34.50dB] [off] Capture [off] +Simple mixer control 'CD',0 + Capabilities: pvolume pswitch pswitch-joined cswitch cswitch-exclusive + Capture exclusive group: 0 + Playback channels: Front Left - Front Right + Capture channels: Front Left - Front Right + Limits: Playback 0 - 31 + Front Left: Playback 0 [0%] [-34.50dB] [off] Capture [off] + Front Right: Playback 0 [0%] [-34.50dB] [off] Capture [off] +Simple mixer control 'Mic',0 + Capabilities: pvolume pvolume-joined pswitch pswitch-joined cswitch cswitch-exclusive + Capture exclusive group: 0 + Playback channels: Mono + Capture channels: Front Left - Front Right + Limits: Playback 0 - 31 + Mono: Playback 0 [0%] [-34.50dB] [off] + Front Left: Capture [on] + Front Right: Capture [on] +Simple mixer control 'Mic Boost (+20dB)',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [off] +Simple mixer control 'Mic Select',0 + Capabilities: enum + Items: 'Mic1' 'Mic2' + Item0: 'Mic1' +Simple mixer control 'Video',0 + Capabilities: cswitch cswitch-exclusive + Capture exclusive group: 0 + Capture channels: Front Left - Front Right + Front Left: Capture [off] + Front Right: Capture [off] +Simple mixer control 'Phone',0 + Capabilities: pvolume pvolume-joined pswitch pswitch-joined cswitch cswitch-exclusive + Capture exclusive group: 0 + Playback channels: Mono + Capture channels: Front Left - Front Right + Limits: Playback 0 - 31 + Mono: Playback 31 [100%] [12.00dB] [off] + Front Left: Capture [off] + Front Right: Capture [off] +Simple mixer control 'IEC958',0 + Capabilities: pswitch pswitch-joined cswitch cswitch-joined + Playback channels: Mono + Capture channels: Mono + Mono: Playback [off] Capture [off] +Simple mixer control 'IEC958 Playback AC97-SPSA',0 + Capabilities: volume volume-joined + Playback channels: Mono + Capture channels: Mono + Limits: 0 - 3 + Mono: 0 [0%] +Simple mixer control 'IEC958 Playback Source',0 + Capabilities: enum + Items: 'PCM' 'Analog In' 'IEC958 In' + Item0: 'PCM' +Simple mixer control 'PC Speaker',0 + Capabilities: pvolume pvolume-joined pswitch pswitch-joined + Playback channels: Mono + Limits: Playback 0 - 15 + Mono: Playback 0 [0%] [-45.00dB] [on] +Simple mixer control 'Aux',0 + Capabilities: pvolume pswitch pswitch-joined cswitch cswitch-exclusive + Capture exclusive group: 0 + Playback channels: Front Left - Front Right + Capture channels: Front Left - Front Right + Limits: Playback 0 - 31 + Front Left: Playback 0 [0%] [-34.50dB] [on] Capture [off] + Front Right: Playback 0 [0%] [-34.50dB] [on] Capture [off] +Simple mixer control 'Mono Output Select',0 + Capabilities: enum + Items: 'Mix' 'Mic' + Item0: 'Mix' +Simple mixer control 'Capture',0 + Capabilities: cvolume cswitch cswitch-joined + Capture channels: Front Left - Front Right + Limits: Capture 0 - 15 + Front Left: Capture 12 [80%] [18.00dB] [on] + Front Right: Capture 12 [80%] [18.00dB] [on] +Simple mixer control 'Mix',0 + Capabilities: cswitch cswitch-exclusive + Capture exclusive group: 0 + Capture channels: Front Left - Front Right + Front Left: Capture [off] + Front Right: Capture [off] +Simple mixer control 'Mix Mono',0 + Capabilities: cswitch cswitch-exclusive + Capture exclusive group: 0 + Capture channels: Front Left - Front Right + Front Left: Capture [off] + Front Right: Capture [off] +Simple mixer control 'Channel Mode',0 + Capabilities: enum + Items: '2ch' '4ch' '6ch' + Item0: '2ch' +Simple mixer control 'Duplicate Front',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [off] +Simple mixer control 'External Amplifier',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [on] diff --git a/src/modules/alsa/mixer/samples/Brooktree Bt878--Bt87x b/src/modules/alsa/mixer/samples/Brooktree Bt878--Bt87x new file mode 100644 index 00000000..b8f61fab --- /dev/null +++ b/src/modules/alsa/mixer/samples/Brooktree Bt878--Bt87x @@ -0,0 +1,24 @@ +Simple mixer control 'FM',0 + Capabilities: cswitch cswitch-joined cswitch-exclusive + Capture exclusive group: 0 + Capture channels: Mono + Mono: Capture [off] +Simple mixer control 'Mic/Line',0 + Capabilities: cswitch cswitch-joined cswitch-exclusive + Capture exclusive group: 0 + Capture channels: Mono + Mono: Capture [off] +Simple mixer control 'Capture',0 + Capabilities: cvolume cvolume-joined + Capture channels: Mono + Limits: Capture 0 - 15 + Mono: Capture 13 [87%] +Simple mixer control 'Capture Boost',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [on] +Simple mixer control 'TV Tuner',0 + Capabilities: cswitch cswitch-joined cswitch-exclusive + Capture exclusive group: 0 + Capture channels: Mono + Mono: Capture [on] diff --git a/src/modules/alsa/mixer/samples/Ensoniq AudioPCI--Cirrus Logic CS4297A rev 3 b/src/modules/alsa/mixer/samples/Ensoniq AudioPCI--Cirrus Logic CS4297A rev 3 new file mode 100644 index 00000000..a500a817 --- /dev/null +++ b/src/modules/alsa/mixer/samples/Ensoniq AudioPCI--Cirrus Logic CS4297A rev 3 @@ -0,0 +1,135 @@ +Simple mixer control 'Master',0 + Capabilities: pvolume pswitch pswitch-joined + Playback channels: Front Left - Front Right + Limits: Playback 0 - 63 + Mono: + Front Left: Playback 63 [100%] [0.00dB] [on] + Front Right: Playback 63 [100%] [0.00dB] [on] +Simple mixer control 'Master Mono',0 + Capabilities: pvolume pvolume-joined pswitch pswitch-joined + Playback channels: Mono + Limits: Playback 0 - 31 + Mono: Playback 0 [0%] [-46.50dB] [off] +Simple mixer control 'Headphone',0 + Capabilities: pvolume pswitch pswitch-joined + Playback channels: Front Left - Front Right + Limits: Playback 0 - 31 + Mono: + Front Left: Playback 0 [0%] [-46.50dB] [off] + Front Right: Playback 0 [0%] [-46.50dB] [off] +Simple mixer control '3D Control - Center',0 + Capabilities: volume volume-joined + Playback channels: Mono + Capture channels: Mono + Limits: 0 - 15 + Mono: 0 [0%] +Simple mixer control '3D Control - Depth',0 + Capabilities: volume volume-joined + Playback channels: Mono + Capture channels: Mono + Limits: 0 - 15 + Mono: 0 [0%] +Simple mixer control '3D Control - Switch',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [off] +Simple mixer control 'PCM',0 + Capabilities: pvolume pswitch pswitch-joined + Playback channels: Front Left - Front Right + Limits: Playback 0 - 31 + Mono: + Front Left: Playback 23 [74%] [0.00dB] [on] + Front Right: Playback 23 [74%] [0.00dB] [on] +Simple mixer control 'Line',0 + Capabilities: pvolume pswitch pswitch-joined cswitch cswitch-exclusive + Capture exclusive group: 0 + Playback channels: Front Left - Front Right + Capture channels: Front Left - Front Right + Limits: Playback 0 - 31 + Front Left: Playback 0 [0%] [-34.50dB] [off] Capture [on] + Front Right: Playback 0 [0%] [-34.50dB] [off] Capture [on] +Simple mixer control 'CD',0 + Capabilities: pvolume pswitch pswitch-joined cswitch cswitch-exclusive + Capture exclusive group: 0 + Playback channels: Front Left - Front Right + Capture channels: Front Left - Front Right + Limits: Playback 0 - 31 + Front Left: Playback 0 [0%] [-34.50dB] [off] Capture [off] + Front Right: Playback 0 [0%] [-34.50dB] [off] Capture [off] +Simple mixer control 'Mic',0 + Capabilities: pvolume pvolume-joined pswitch pswitch-joined cswitch cswitch-exclusive + Capture exclusive group: 0 + Playback channels: Mono + Capture channels: Front Left - Front Right + Limits: Playback 0 - 31 + Mono: Playback 23 [74%] [0.00dB] [on] + Front Left: Capture [off] + Front Right: Capture [off] +Simple mixer control 'Mic Boost (+20dB)',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [off] +Simple mixer control 'Mic Select',0 + Capabilities: enum + Items: 'Mic1' 'Mic2' + Item0: 'Mic1' +Simple mixer control 'Video',0 + Capabilities: pvolume pswitch pswitch-joined cswitch cswitch-exclusive + Capture exclusive group: 0 + Playback channels: Front Left - Front Right + Capture channels: Front Left - Front Right + Limits: Playback 0 - 31 + Front Left: Playback 0 [0%] [-34.50dB] [off] Capture [off] + Front Right: Playback 0 [0%] [-34.50dB] [off] Capture [off] +Simple mixer control 'Phone',0 + Capabilities: pvolume pvolume-joined pswitch pswitch-joined cswitch cswitch-exclusive + Capture exclusive group: 0 + Playback channels: Mono + Capture channels: Front Left - Front Right + Limits: Playback 0 - 31 + Mono: Playback 0 [0%] [-34.50dB] [off] + Front Left: Capture [off] + Front Right: Capture [off] +Simple mixer control 'IEC958',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [off] +Simple mixer control 'PC Speaker',0 + Capabilities: pvolume pvolume-joined pswitch pswitch-joined + Playback channels: Mono + Limits: Playback 0 - 15 + Mono: Playback 0 [0%] [-45.00dB] [off] +Simple mixer control 'Aux',0 + Capabilities: pvolume pswitch pswitch-joined cswitch cswitch-exclusive + Capture exclusive group: 0 + Playback channels: Front Left - Front Right + Capture channels: Front Left - Front Right + Limits: Playback 0 - 31 + Front Left: Playback 0 [0%] [-34.50dB] [off] Capture [off] + Front Right: Playback 0 [0%] [-34.50dB] [off] Capture [off] +Simple mixer control 'Mono Output Select',0 + Capabilities: enum + Items: 'Mix' 'Mic' + Item0: 'Mic' +Simple mixer control 'Capture',0 + Capabilities: cvolume cswitch cswitch-joined + Capture channels: Front Left - Front Right + Limits: Capture 0 - 15 + Front Left: Capture 15 [100%] [22.50dB] [on] + Front Right: Capture 15 [100%] [22.50dB] [on] +Simple mixer control 'Mix',0 + Capabilities: cswitch cswitch-exclusive + Capture exclusive group: 0 + Capture channels: Front Left - Front Right + Front Left: Capture [off] + Front Right: Capture [off] +Simple mixer control 'Mix Mono',0 + Capabilities: cswitch cswitch-exclusive + Capture exclusive group: 0 + Capture channels: Front Left - Front Right + Front Left: Capture [off] + Front Right: Capture [off] +Simple mixer control 'External Amplifier',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [off] diff --git a/src/modules/alsa/mixer/samples/HDA ATI HDMI--ATI R6xx HDMI b/src/modules/alsa/mixer/samples/HDA ATI HDMI--ATI R6xx HDMI new file mode 100644 index 00000000..244f24a8 --- /dev/null +++ b/src/modules/alsa/mixer/samples/HDA ATI HDMI--ATI R6xx HDMI @@ -0,0 +1,4 @@ +Simple mixer control 'IEC958',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [on] diff --git a/src/modules/alsa/mixer/samples/HDA Intel--Analog Devices AD1981 b/src/modules/alsa/mixer/samples/HDA Intel--Analog Devices AD1981 new file mode 100644 index 00000000..165522fa --- /dev/null +++ b/src/modules/alsa/mixer/samples/HDA Intel--Analog Devices AD1981 @@ -0,0 +1,62 @@ +Simple mixer control 'Master',0 + Capabilities: pvolume pswitch + Playback channels: Front Left - Front Right + Limits: Playback 0 - 63 + Mono: + Front Left: Playback 63 [100%] [3.00dB] [on] + Front Right: Playback 63 [100%] [3.00dB] [on] +Simple mixer control 'PCM',0 + Capabilities: pvolume pswitch + Playback channels: Front Left - Front Right + Limits: Playback 0 - 31 + Mono: + Front Left: Playback 23 [74%] [0.00dB] [on] + Front Right: Playback 23 [74%] [0.00dB] [on] +Simple mixer control 'CD',0 + Capabilities: pvolume pswitch cswitch cswitch-joined cswitch-exclusive + Capture exclusive group: 0 + Playback channels: Front Left - Front Right + Capture channels: Mono + Limits: Playback 0 - 31 + Mono: Capture [off] + Front Left: Playback 0 [0%] [-34.50dB] [off] + Front Right: Playback 0 [0%] [-34.50dB] [off] +Simple mixer control 'Mic',0 + Capabilities: pvolume pswitch cswitch cswitch-joined cswitch-exclusive + Capture exclusive group: 0 + Playback channels: Front Left - Front Right + Capture channels: Mono + Limits: Playback 0 - 31 + Mono: Capture [on] + Front Left: Playback 0 [0%] [-34.50dB] [off] + Front Right: Playback 0 [0%] [-34.50dB] [off] +Simple mixer control 'Mic Boost',0 + Capabilities: volume + Playback channels: Front Left - Front Right + Capture channels: Front Left - Front Right + Limits: 0 - 3 + Front Left: 0 [0%] + Front Right: 0 [0%] +Simple mixer control 'IEC958',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [off] +Simple mixer control 'IEC958 Default PCM',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [off] +Simple mixer control 'IEC958 Playback Source',0 + Capabilities: enum + Items: 'PCM' 'ADC' + Item0: 'PCM' +Simple mixer control 'Capture',0 + Capabilities: cvolume cswitch + Capture channels: Front Left - Front Right + Limits: Capture 0 - 15 + Front Left: Capture 0 [0%] [0.00dB] [on] + Front Right: Capture 0 [0%] [0.00dB] [on] +Simple mixer control 'Mix',0 + Capabilities: cswitch cswitch-joined cswitch-exclusive + Capture exclusive group: 0 + Capture channels: Mono + Mono: Capture [off] diff --git a/src/modules/alsa/mixer/samples/HDA Intel--Realtek ALC889A b/src/modules/alsa/mixer/samples/HDA Intel--Realtek ALC889A new file mode 100644 index 00000000..28a2e73c --- /dev/null +++ b/src/modules/alsa/mixer/samples/HDA Intel--Realtek ALC889A @@ -0,0 +1,113 @@ +Simple mixer control 'Master',0 + Capabilities: pvolume pvolume-joined pswitch pswitch-joined + Playback channels: Mono + Limits: Playback 0 - 64 + Mono: Playback 64 [100%] [0.00dB] [on] +Simple mixer control 'Headphone',0 + Capabilities: pswitch + Playback channels: Front Left - Front Right + Mono: + Front Left: Playback [on] + Front Right: Playback [on] +Simple mixer control 'PCM',0 + Capabilities: pvolume + Playback channels: Front Left - Front Right + Limits: Playback 0 - 255 + Mono: + Front Left: Playback 255 [100%] [0.00dB] + Front Right: Playback 255 [100%] [0.00dB] +Simple mixer control 'Front',0 + Capabilities: pvolume pswitch + Playback channels: Front Left - Front Right + Limits: Playback 0 - 64 + Mono: + Front Left: Playback 44 [69%] [-20.00dB] [on] + Front Right: Playback 44 [69%] [-20.00dB] [on] +Simple mixer control 'Front Mic',0 + Capabilities: pvolume pswitch + Playback channels: Front Left - Front Right + Limits: Playback 0 - 31 + Mono: + Front Left: Playback 0 [0%] [-34.50dB] [off] + Front Right: Playback 0 [0%] [-34.50dB] [off] +Simple mixer control 'Front Mic Boost',0 + Capabilities: volume + Playback channels: Front Left - Front Right + Capture channels: Front Left - Front Right + Limits: 0 - 3 + Front Left: 0 [0%] + Front Right: 0 [0%] +Simple mixer control 'Surround',0 + Capabilities: pvolume pswitch + Playback channels: Front Left - Front Right + Limits: Playback 0 - 64 + Mono: + Front Left: Playback 0 [0%] [-64.00dB] [on] + Front Right: Playback 0 [0%] [-64.00dB] [on] +Simple mixer control 'Center',0 + Capabilities: pvolume pvolume-joined pswitch pswitch-joined + Playback channels: Mono + Limits: Playback 0 - 64 + Mono: Playback 0 [0%] [-64.00dB] [on] +Simple mixer control 'LFE',0 + Capabilities: pvolume pvolume-joined pswitch pswitch-joined + Playback channels: Mono + Limits: Playback 0 - 64 + Mono: Playback 0 [0%] [-64.00dB] [on] +Simple mixer control 'Side',0 + Capabilities: pvolume pswitch + Playback channels: Front Left - Front Right + Limits: Playback 0 - 64 + Mono: + Front Left: Playback 0 [0%] [-64.00dB] [on] + Front Right: Playback 0 [0%] [-64.00dB] [on] +Simple mixer control 'Line',0 + Capabilities: pvolume pswitch + Playback channels: Front Left - Front Right + Limits: Playback 0 - 31 + Mono: + Front Left: Playback 0 [0%] [-34.50dB] [off] + Front Right: Playback 0 [0%] [-34.50dB] [off] +Simple mixer control 'Mic',0 + Capabilities: pvolume pswitch + Playback channels: Front Left - Front Right + Limits: Playback 0 - 31 + Mono: + Front Left: Playback 0 [0%] [-34.50dB] [off] + Front Right: Playback 0 [0%] [-34.50dB] [off] +Simple mixer control 'Mic Boost',0 + Capabilities: volume + Playback channels: Front Left - Front Right + Capture channels: Front Left - Front Right + Limits: 0 - 3 + Front Left: 0 [0%] + Front Right: 0 [0%] +Simple mixer control 'IEC958',0 + Capabilities: pswitch pswitch-joined cswitch cswitch-joined + Playback channels: Mono + Capture channels: Mono + Mono: Playback [on] Capture [on] +Simple mixer control 'IEC958 Default PCM',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [on] +Simple mixer control 'Capture',0 + Capabilities: cvolume cswitch + Capture channels: Front Left - Front Right + Limits: Capture 0 - 46 + Front Left: Capture 23 [50%] [7.00dB] [on] + Front Right: Capture 23 [50%] [7.00dB] [on] +Simple mixer control 'Capture',1 + Capabilities: cvolume cswitch + Capture channels: Front Left - Front Right + Limits: Capture 0 - 46 + Front Left: Capture 0 [0%] [-16.00dB] [off] + Front Right: Capture 0 [0%] [-16.00dB] [off] +Simple mixer control 'Input Source',0 + Capabilities: cenum + Items: 'Mic' 'Front Mic' 'Line' + Item0: 'Mic' +Simple mixer control 'Input Source',1 + Capabilities: cenum + Items: 'Mic' 'Front Mic' 'Line' + Item0: 'Mic' diff --git a/src/modules/alsa/mixer/samples/Intel 82801CA-ICH3--Analog Devices AD1881A b/src/modules/alsa/mixer/samples/Intel 82801CA-ICH3--Analog Devices AD1881A new file mode 100644 index 00000000..3ddd8af6 --- /dev/null +++ b/src/modules/alsa/mixer/samples/Intel 82801CA-ICH3--Analog Devices AD1881A @@ -0,0 +1,128 @@ +Simple mixer control 'Master',0 + Capabilities: pvolume pswitch pswitch-joined + Playback channels: Front Left - Front Right + Limits: Playback 0 - 63 + Mono: + Front Left: Playback 44 [70%] [-28.50dB] [on] + Front Right: Playback 60 [95%] [-4.50dB] [on] +Simple mixer control 'Master Mono',0 + Capabilities: pvolume pvolume-joined pswitch pswitch-joined + Playback channels: Mono + Limits: Playback 0 - 31 + Mono: Playback 17 [55%] [-21.00dB] [on] +Simple mixer control '3D Control - Center',0 + Capabilities: volume volume-joined + Playback channels: Mono + Capture channels: Mono + Limits: 0 - 15 + Mono: 0 [0%] +Simple mixer control '3D Control - Depth',0 + Capabilities: volume volume-joined + Playback channels: Mono + Capture channels: Mono + Limits: 0 - 15 + Mono: 0 [0%] +Simple mixer control '3D Control - Switch',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [off] +Simple mixer control 'PCM',0 + Capabilities: pvolume pswitch pswitch-joined + Playback channels: Front Left - Front Right + Limits: Playback 0 - 31 + Mono: + Front Left: Playback 9 [29%] [-21.00dB] [on] + Front Right: Playback 9 [29%] [-21.00dB] [on] +Simple mixer control 'PCM Out Path & Mute',0 + Capabilities: enum + Items: 'pre 3D' 'post 3D' + Item0: 'pre 3D' +Simple mixer control 'Line',0 + Capabilities: pvolume pswitch pswitch-joined cswitch cswitch-exclusive + Capture exclusive group: 0 + Playback channels: Front Left - Front Right + Capture channels: Front Left - Front Right + Limits: Playback 0 - 31 + Front Left: Playback 0 [0%] [-34.50dB] [off] Capture [off] + Front Right: Playback 0 [0%] [-34.50dB] [off] Capture [off] +Simple mixer control 'CD',0 + Capabilities: pvolume pswitch pswitch-joined cswitch cswitch-exclusive + Capture exclusive group: 0 + Playback channels: Front Left - Front Right + Capture channels: Front Left - Front Right + Limits: Playback 0 - 31 + Front Left: Playback 9 [29%] [-21.00dB] [on] Capture [off] + Front Right: Playback 9 [29%] [-21.00dB] [on] Capture [off] +Simple mixer control 'Mic',0 + Capabilities: pvolume pvolume-joined pswitch pswitch-joined cswitch cswitch-exclusive + Capture exclusive group: 0 + Playback channels: Mono + Capture channels: Front Left - Front Right + Limits: Playback 0 - 31 + Mono: Playback 0 [0%] [-34.50dB] [off] + Front Left: Capture [on] + Front Right: Capture [on] +Simple mixer control 'Mic Boost (+20dB)',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [off] +Simple mixer control 'Mic Select',0 + Capabilities: enum + Items: 'Mic1' 'Mic2' + Item0: 'Mic1' +Simple mixer control 'Video',0 + Capabilities: pvolume pswitch pswitch-joined cswitch cswitch-exclusive + Capture exclusive group: 0 + Playback channels: Front Left - Front Right + Capture channels: Front Left - Front Right + Limits: Playback 0 - 31 + Front Left: Playback 0 [0%] [-34.50dB] [off] Capture [off] + Front Right: Playback 0 [0%] [-34.50dB] [off] Capture [off] +Simple mixer control 'Phone',0 + Capabilities: pvolume pvolume-joined pswitch pswitch-joined cswitch cswitch-exclusive + Capture exclusive group: 0 + Playback channels: Mono + Capture channels: Front Left - Front Right + Limits: Playback 0 - 31 + Mono: Playback 0 [0%] [-34.50dB] [off] + Front Left: Capture [off] + Front Right: Capture [off] +Simple mixer control 'PC Speaker',0 + Capabilities: pvolume pvolume-joined pswitch pswitch-joined + Playback channels: Mono + Limits: Playback 0 - 15 + Mono: Playback 8 [53%] [-21.00dB] [on] +Simple mixer control 'Aux',0 + Capabilities: pvolume pswitch pswitch-joined cswitch cswitch-exclusive + Capture exclusive group: 0 + Playback channels: Front Left - Front Right + Capture channels: Front Left - Front Right + Limits: Playback 0 - 31 + Front Left: Playback 0 [0%] [-34.50dB] [off] Capture [off] + Front Right: Playback 0 [0%] [-34.50dB] [off] Capture [off] +Simple mixer control 'Mono Output Select',0 + Capabilities: enum + Items: 'Mix' 'Mic' + Item0: 'Mix' +Simple mixer control 'Capture',0 + Capabilities: cvolume cswitch cswitch-joined + Capture channels: Front Left - Front Right + Limits: Capture 0 - 15 + Front Left: Capture 13 [87%] [19.50dB] [on] + Front Right: Capture 13 [87%] [19.50dB] [on] +Simple mixer control 'Mix',0 + Capabilities: cswitch cswitch-exclusive + Capture exclusive group: 0 + Capture channels: Front Left - Front Right + Front Left: Capture [off] + Front Right: Capture [off] +Simple mixer control 'Mix Mono',0 + Capabilities: cswitch cswitch-exclusive + Capture exclusive group: 0 + Capture channels: Front Left - Front Right + Front Left: Capture [off] + Front Right: Capture [off] +Simple mixer control 'External Amplifier',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [on] diff --git a/src/modules/alsa/mixer/samples/Logitech USB Speaker--USB Mixer b/src/modules/alsa/mixer/samples/Logitech USB Speaker--USB Mixer new file mode 100644 index 00000000..38cf6778 --- /dev/null +++ b/src/modules/alsa/mixer/samples/Logitech USB Speaker--USB Mixer @@ -0,0 +1,27 @@ +Simple mixer control 'Bass',0 + Capabilities: volume volume-joined + Playback channels: Mono + Capture channels: Mono + Limits: 0 - 48 + Mono: 22 [46%] +Simple mixer control 'Bass Boost',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [off] +Simple mixer control 'Treble',0 + Capabilities: volume volume-joined + Playback channels: Mono + Capture channels: Mono + Limits: 0 - 48 + Mono: 25 [52%] +Simple mixer control 'PCM',0 + Capabilities: pvolume pswitch pswitch-joined + Playback channels: Front Left - Front Right + Limits: Playback 0 - 44 + Mono: + Front Left: Playback 10 [23%] [-31.00dB] [on] + Front Right: Playback 10 [23%] [-31.00dB] [on] +Simple mixer control 'Auto Gain Control',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [off] diff --git a/src/modules/alsa/mixer/samples/USB Audio--USB Mixer b/src/modules/alsa/mixer/samples/USB Audio--USB Mixer new file mode 100644 index 00000000..9cb4fa7f --- /dev/null +++ b/src/modules/alsa/mixer/samples/USB Audio--USB Mixer @@ -0,0 +1,37 @@ +Simple mixer control 'Master',0 + Capabilities: pvolume pvolume-joined pswitch pswitch-joined + Playback channels: Mono + Limits: Playback 0 - 255 + Mono: Playback 105 [41%] [-28.97dB] [on] +Simple mixer control 'Line',0 + Capabilities: pvolume cvolume pswitch pswitch-joined cswitch cswitch-joined + Playback channels: Front Left - Front Right + Capture channels: Front Left - Front Right + Limits: Playback 0 - 255 Capture 0 - 128 + Front Left: Playback 191 [75%] [34.38dB] [off] Capture 0 [0%] [0.18dB] [off] + Front Right: Playback 191 [75%] [34.38dB] [off] Capture 0 [0%] [0.18dB] [off] +Simple mixer control 'Mic',0 + Capabilities: pvolume pvolume-joined cvolume cvolume-joined pswitch pswitch-joined cswitch cswitch-joined cswitch-exclusive + Capture exclusive group: 0 + Playback channels: Mono + Capture channels: Mono + Limits: Playback 0 - 255 Capture 0 - 128 + Mono: Playback 191 [75%] [34.38dB] [off] Capture 0 [0%] [0.18dB] [on] +Simple mixer control 'Mic Capture',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [off] +Simple mixer control 'IEC958 In',0 + Capabilities: cswitch cswitch-joined + Capture channels: Mono + Mono: Capture [off] +Simple mixer control 'Input 1',0 + Capabilities: cswitch cswitch-joined cswitch-exclusive + Capture exclusive group: 0 + Capture channels: Mono + Mono: Capture [off] +Simple mixer control 'Input 2',0 + Capabilities: cswitch cswitch-joined cswitch-exclusive + Capture exclusive group: 0 + Capture channels: Mono + Mono: Capture [off] diff --git a/src/modules/alsa/mixer/samples/USB Device 0x46d:0x9a4--USB Mixer b/src/modules/alsa/mixer/samples/USB Device 0x46d:0x9a4--USB Mixer new file mode 100644 index 00000000..783f826f --- /dev/null +++ b/src/modules/alsa/mixer/samples/USB Device 0x46d:0x9a4--USB Mixer @@ -0,0 +1,5 @@ +Simple mixer control 'Mic',0 + Capabilities: cvolume cvolume-joined cswitch cswitch-joined + Capture channels: Mono + Limits: Capture 0 - 3072 + Mono: Capture 1536 [50%] [23.00dB] [on] diff --git a/src/modules/alsa/mixer/samples/VIA 8237--Analog Devices AD1888 b/src/modules/alsa/mixer/samples/VIA 8237--Analog Devices AD1888 new file mode 100644 index 00000000..15e7b5a6 --- /dev/null +++ b/src/modules/alsa/mixer/samples/VIA 8237--Analog Devices AD1888 @@ -0,0 +1,211 @@ +Simple mixer control 'Master',0 + Capabilities: pvolume pswitch + Playback channels: Front Left - Front Right + Limits: Playback 0 - 31 + Mono: + Front Left: Playback 31 [100%] [0.00dB] [on] + Front Right: Playback 31 [100%] [0.00dB] [on] +Simple mixer control 'Master Mono',0 + Capabilities: pvolume pvolume-joined pswitch pswitch-joined + Playback channels: Mono + Limits: Playback 0 - 31 + Mono: Playback 0 [0%] [-46.50dB] [off] +Simple mixer control 'Master Surround',0 + Capabilities: pvolume pswitch + Playback channels: Front Left - Front Right + Limits: Playback 0 - 31 + Mono: + Front Left: Playback 0 [0%] [-46.50dB] [off] + Front Right: Playback 0 [0%] [-46.50dB] [off] +Simple mixer control 'Headphone Jack Sense',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [off] +Simple mixer control 'PCM',0 + Capabilities: pvolume pswitch + Playback channels: Front Left - Front Right + Limits: Playback 0 - 31 + Mono: + Front Left: Playback 23 [74%] [0.00dB] [on] + Front Right: Playback 23 [74%] [0.00dB] [on] +Simple mixer control 'Surround',0 + Capabilities: pvolume pswitch + Playback channels: Front Left - Front Right + Limits: Playback 0 - 31 + Mono: + Front Left: Playback 0 [0%] [-46.50dB] [off] + Front Right: Playback 0 [0%] [-46.50dB] [off] +Simple mixer control 'Surround Jack Mode',0 + Capabilities: enum + Items: 'Shared' 'Independent' + Item0: 'Shared' +Simple mixer control 'Center',0 + Capabilities: pvolume pvolume-joined pswitch pswitch-joined + Playback channels: Mono + Limits: Playback 0 - 31 + Mono: Playback 31 [100%] [0.00dB] [off] +Simple mixer control 'LFE',0 + Capabilities: pvolume pvolume-joined pswitch pswitch-joined + Playback channels: Mono + Limits: Playback 0 - 31 + Mono: Playback 0 [0%] [-46.50dB] [off] +Simple mixer control 'Line',0 + Capabilities: pvolume pswitch cswitch cswitch-exclusive + Capture exclusive group: 0 + Playback channels: Front Left - Front Right + Capture channels: Front Left - Front Right + Limits: Playback 0 - 31 + Front Left: Playback 0 [0%] [-34.50dB] [off] Capture [off] + Front Right: Playback 0 [0%] [-34.50dB] [off] Capture [off] +Simple mixer control 'Line Jack Sense',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [off] +Simple mixer control 'CD',0 + Capabilities: pvolume pswitch cswitch cswitch-exclusive + Capture exclusive group: 0 + Playback channels: Front Left - Front Right + Capture channels: Front Left - Front Right + Limits: Playback 0 - 31 + Front Left: Playback 0 [0%] [-34.50dB] [off] Capture [off] + Front Right: Playback 0 [0%] [-34.50dB] [off] Capture [off] +Simple mixer control 'Mic',0 + Capabilities: pvolume pvolume-joined pswitch pswitch-joined cswitch cswitch-exclusive + Capture exclusive group: 0 + Playback channels: Mono + Capture channels: Front Left - Front Right + Limits: Playback 0 - 31 + Mono: Playback 0 [0%] [-34.50dB] [off] + Front Left: Capture [on] + Front Right: Capture [on] +Simple mixer control 'Mic Boost (+20dB)',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [off] +Simple mixer control 'Mic Select',0 + Capabilities: enum + Items: 'Mic1' 'Mic2' + Item0: 'Mic1' +Simple mixer control 'Video',0 + Capabilities: cswitch cswitch-exclusive + Capture exclusive group: 0 + Capture channels: Front Left - Front Right + Front Left: Capture [off] + Front Right: Capture [off] +Simple mixer control 'Phone',0 + Capabilities: pvolume pvolume-joined pswitch pswitch-joined cswitch cswitch-exclusive + Capture exclusive group: 0 + Playback channels: Mono + Capture channels: Front Left - Front Right + Limits: Playback 0 - 31 + Mono: Playback 0 [0%] [-34.50dB] [off] + Front Left: Capture [off] + Front Right: Capture [off] +Simple mixer control 'IEC958',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [off] +Simple mixer control 'IEC958 Output',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [off] +Simple mixer control 'IEC958 Playback AC97-SPSA',0 + Capabilities: volume volume-joined + Playback channels: Mono + Capture channels: Mono + Limits: 0 - 3 + Mono: 3 [100%] +Simple mixer control 'IEC958 Playback Source',0 + Capabilities: enum + Items: 'AC-Link' 'A/D Converter' + Item0: 'AC-Link' +Simple mixer control 'Aux',0 + Capabilities: pvolume pswitch cswitch cswitch-exclusive + Capture exclusive group: 0 + Playback channels: Front Left - Front Right + Capture channels: Front Left - Front Right + Limits: Playback 0 - 31 + Front Left: Playback 0 [0%] [-34.50dB] [off] Capture [off] + Front Right: Playback 0 [0%] [-34.50dB] [off] Capture [off] +Simple mixer control 'Capture',0 + Capabilities: cvolume cswitch + Capture channels: Front Left - Front Right + Limits: Capture 0 - 15 + Front Left: Capture 0 [0%] [0.00dB] [on] + Front Right: Capture 0 [0%] [0.00dB] [on] +Simple mixer control 'Mix',0 + Capabilities: cswitch cswitch-exclusive + Capture exclusive group: 0 + Capture channels: Front Left - Front Right + Front Left: Capture [off] + Front Right: Capture [off] +Simple mixer control 'Mix Mono',0 + Capabilities: cswitch cswitch-exclusive + Capture exclusive group: 0 + Capture channels: Front Left - Front Right + Front Left: Capture [off] + Front Right: Capture [off] +Simple mixer control 'Channel Mode',0 + Capabilities: enum + Items: '2ch' '4ch' '6ch' + Item0: '2ch' +Simple mixer control 'Downmix',0 + Capabilities: enum + Items: 'Off' '6 -> 4' '6 -> 2' + Item0: 'Off' +Simple mixer control 'Exchange Front/Surround',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [off] +Simple mixer control 'External Amplifier',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [on] +Simple mixer control 'High Pass Filter Enable',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [off] +Simple mixer control 'Input Source Select',0 + Capabilities: enum + Items: 'Input1' 'Input2' + Item0: 'Input1' +Simple mixer control 'Input Source Select',1 + Capabilities: enum + Items: 'Input1' 'Input2' + Item0: 'Input1' +Simple mixer control 'Spread Front to Surround and Center/LFE',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [off] +Simple mixer control 'VIA DXS',0 + Capabilities: pvolume + Playback channels: Front Left - Front Right + Limits: Playback 0 - 31 + Mono: + Front Left: Playback 31 [100%] [-48.00dB] + Front Right: Playback 31 [100%] [-48.00dB] +Simple mixer control 'VIA DXS',1 + Capabilities: pvolume + Playback channels: Front Left - Front Right + Limits: Playback 0 - 31 + Mono: + Front Left: Playback 31 [100%] [-48.00dB] + Front Right: Playback 31 [100%] [-48.00dB] +Simple mixer control 'VIA DXS',2 + Capabilities: pvolume + Playback channels: Front Left - Front Right + Limits: Playback 0 - 31 + Mono: + Front Left: Playback 31 [100%] [-48.00dB] + Front Right: Playback 31 [100%] [-48.00dB] +Simple mixer control 'VIA DXS',3 + Capabilities: pvolume + Playback channels: Front Left - Front Right + Limits: Playback 0 - 31 + Mono: + Front Left: Playback 31 [100%] [-48.00dB] + Front Right: Playback 31 [100%] [-48.00dB] +Simple mixer control 'V_REFOUT Enable',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [on] diff --git a/src/modules/alsa/mixer/samples/VIA 8237--C-Media Electronics CMI9761A+ b/src/modules/alsa/mixer/samples/VIA 8237--C-Media Electronics CMI9761A+ new file mode 100644 index 00000000..d4f3db62 --- /dev/null +++ b/src/modules/alsa/mixer/samples/VIA 8237--C-Media Electronics CMI9761A+ @@ -0,0 +1,160 @@ +Simple mixer control 'Master',0 + Capabilities: pvolume pswitch pswitch-joined + Playback channels: Front Left - Front Right + Limits: Playback 0 - 31 + Mono: + Front Left: Playback 0 [0%] [-46.50dB] [off] + Front Right: Playback 0 [0%] [-46.50dB] [off] +Simple mixer control 'PCM',0 + Capabilities: pvolume pswitch pswitch-joined + Playback channels: Front Left - Front Right + Limits: Playback 0 - 31 + Mono: + Front Left: Playback 31 [100%] [-48.00dB] [off] + Front Right: Playback 31 [100%] [-48.00dB] [off] +Simple mixer control 'Surround',0 + Capabilities: pswitch + Playback channels: Front Left - Front Right + Mono: + Front Left: Playback [off] + Front Right: Playback [off] +Simple mixer control 'Surround Jack Mode',0 + Capabilities: enum + Items: 'Shared' 'Independent' + Item0: 'Shared' +Simple mixer control 'Center',0 + Capabilities: pvolume pvolume-joined pswitch pswitch-joined + Playback channels: Mono + Limits: Playback 0 - 31 + Mono: Playback 31 [100%] [0.00dB] [off] +Simple mixer control 'LFE',0 + Capabilities: pvolume pvolume-joined pswitch pswitch-joined + Playback channels: Mono + Limits: Playback 0 - 31 + Mono: Playback 0 [0%] [-46.50dB] [off] +Simple mixer control 'Line',0 + Capabilities: pvolume pswitch pswitch-joined cswitch cswitch-exclusive + Capture exclusive group: 0 + Playback channels: Front Left - Front Right + Capture channels: Front Left - Front Right + Limits: Playback 0 - 31 + Front Left: Playback 0 [0%] [-34.50dB] [off] Capture [off] + Front Right: Playback 0 [0%] [-34.50dB] [off] Capture [off] +Simple mixer control 'CD',0 + Capabilities: pvolume pswitch pswitch-joined cswitch cswitch-exclusive + Capture exclusive group: 0 + Playback channels: Front Left - Front Right + Capture channels: Front Left - Front Right + Limits: Playback 0 - 31 + Front Left: Playback 0 [0%] [-34.50dB] [off] Capture [off] + Front Right: Playback 0 [0%] [-34.50dB] [off] Capture [off] +Simple mixer control 'Mic',0 + Capabilities: pvolume pswitch pswitch-joined cswitch cswitch-exclusive + Capture exclusive group: 0 + Playback channels: Front Left - Front Right + Capture channels: Front Left - Front Right + Limits: Playback 0 - 31 + Front Left: Playback 0 [0%] [-34.50dB] [off] Capture [on] + Front Right: Playback 0 [0%] [-34.50dB] [off] Capture [on] +Simple mixer control 'Mic Boost (+20dB)',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [off] +Simple mixer control 'Mic Select',0 + Capabilities: enum + Items: 'Mic1' 'Mic2' + Item0: 'Mic1' +Simple mixer control 'Video',0 + Capabilities: cswitch cswitch-exclusive + Capture exclusive group: 0 + Capture channels: Front Left - Front Right + Front Left: Capture [off] + Front Right: Capture [off] +Simple mixer control 'Phone',0 + Capabilities: cswitch cswitch-exclusive + Capture exclusive group: 0 + Capture channels: Front Left - Front Right + Front Left: Capture [off] + Front Right: Capture [off] +Simple mixer control 'IEC958',0 + Capabilities: pswitch pswitch-joined cswitch cswitch-joined + Playback channels: Mono + Capture channels: Mono + Mono: Playback [off] Capture [off] +Simple mixer control 'IEC958 Capture Monitor',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [off] +Simple mixer control 'IEC958 Capture Valid',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [off] +Simple mixer control 'IEC958 Output',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [off] +Simple mixer control 'IEC958 Playback AC97-SPSA',0 + Capabilities: volume volume-joined + Playback channels: Mono + Capture channels: Mono + Limits: 0 - 3 + Mono: 3 [100%] +Simple mixer control 'IEC958 Playback Source',0 + Capabilities: enum + Items: 'AC-Link' 'ADC' 'SPDIF-In' + Item0: 'AC-Link' +Simple mixer control 'PC Speaker',0 + Capabilities: pvolume pvolume-joined pswitch pswitch-joined + Playback channels: Mono + Limits: Playback 0 - 15 + Mono: Playback 0 [0%] [-45.00dB] [off] +Simple mixer control 'Aux',0 + Capabilities: pvolume pswitch pswitch-joined cswitch cswitch-exclusive + Capture exclusive group: 0 + Playback channels: Front Left - Front Right + Capture channels: Front Left - Front Right + Limits: Playback 0 - 31 + Front Left: Playback 0 [0%] [-34.50dB] [off] Capture [off] + Front Right: Playback 0 [0%] [-34.50dB] [off] Capture [off] +Simple mixer control 'Mono Output Select',0 + Capabilities: enum + Items: 'Mix' 'Mic' + Item0: 'Mix' +Simple mixer control 'Capture',0 + Capabilities: cvolume cswitch cswitch-joined + Capture channels: Front Left - Front Right + Limits: Capture 0 - 15 + Front Left: Capture 0 [0%] [0.00dB] [on] + Front Right: Capture 0 [0%] [0.00dB] [on] +Simple mixer control 'Mix',0 + Capabilities: cswitch cswitch-exclusive + Capture exclusive group: 0 + Capture channels: Front Left - Front Right + Front Left: Capture [off] + Front Right: Capture [off] +Simple mixer control 'Mix Mono',0 + Capabilities: cswitch cswitch-exclusive + Capture exclusive group: 0 + Capture channels: Front Left - Front Right + Front Left: Capture [off] + Front Right: Capture [off] +Simple mixer control 'Channel Mode',0 + Capabilities: enum + Items: '2ch' '4ch' '6ch' + Item0: '2ch' +Simple mixer control 'DAC Clock Source',0 + Capabilities: enum + Items: 'AC-Link' 'SPDIF-In' 'Both' + Item0: 'AC-Link' +Simple mixer control 'External Amplifier',0 + Capabilities: pswitch pswitch-joined + Playback channels: Mono + Mono: Playback [on] +Simple mixer control 'Input Source Select',0 + Capabilities: enum + Items: 'Input1' 'Input2' + Item0: 'Input1' +Simple mixer control 'Input Source Select',1 + Capabilities: enum + Items: 'Input1' 'Input2' + Item0: 'Input1' diff --git a/src/modules/alsa/module-alsa-card.c b/src/modules/alsa/module-alsa-card.c index ad52f5e3..55f6a6e2 100644 --- a/src/modules/alsa/module-alsa-card.c +++ b/src/modules/alsa/module-alsa-card.c @@ -32,6 +32,10 @@ #include <modules/reserve-wrap.h> +#ifdef HAVE_UDEV +#include <modules/udev-util.h> +#endif + #include "alsa-util.h" #include "alsa-sink.h" #include "alsa-source.h" @@ -92,81 +96,53 @@ struct userdata { char *device_id; pa_card *card; - pa_sink *sink; - pa_source *source; pa_modargs *modargs; - pa_hashmap *profiles; + pa_alsa_profile_set *profile_set; }; struct profile_data { - const pa_alsa_profile_info *sink_profile, *source_profile; + pa_alsa_profile *profile; }; -static void enumerate_cb( - const pa_alsa_profile_info *sink, - const pa_alsa_profile_info *source, - void *userdata) { +static void add_profiles(struct userdata *u, pa_hashmap *h) { + pa_alsa_profile *ap; + void *state; - struct userdata *u = userdata; - char *t, *n; - pa_card_profile *p; - struct profile_data *d; - unsigned bonus = 0; - - if (sink && source) { - n = pa_sprintf_malloc("output-%s+input-%s", sink->name, source->name); - t = pa_sprintf_malloc(_("Output %s + Input %s"), sink->description, _(source->description)); - } else if (sink) { - n = pa_sprintf_malloc("output-%s", sink->name); - t = pa_sprintf_malloc(_("Output %s"), _(sink->description)); - } else { - pa_assert(source); - n = pa_sprintf_malloc("input-%s", source->name); - t = pa_sprintf_malloc(_("Input %s"), _(source->description)); - } - - if (sink) { - if (pa_channel_map_equal(&sink->map, &u->core->default_channel_map)) - bonus += 50000; - else if (sink->map.channels == u->core->default_channel_map.channels) - bonus += 40000; - } - - if (source) { - if (pa_channel_map_equal(&source->map, &u->core->default_channel_map)) - bonus += 30000; - else if (source->map.channels == u->core->default_channel_map.channels) - bonus += 20000; - } + pa_assert(u); + pa_assert(h); - pa_log_info("Found profile '%s'", t); + PA_HASHMAP_FOREACH(ap, u->profile_set->profiles, state) { + struct profile_data *d; + pa_card_profile *cp; + pa_alsa_mapping *m; + uint32_t idx; - p = pa_card_profile_new(n, t, sizeof(struct profile_data)); + cp = pa_card_profile_new(ap->name, ap->description, sizeof(struct profile_data)); + cp->priority = ap->priority; - pa_xfree(t); - pa_xfree(n); + if (ap->output_mappings) { + cp->n_sinks = pa_idxset_size(ap->output_mappings); - p->priority = - (sink ? sink->priority : 0) * 100 + - (source ? source->priority : 0) + - bonus; - - p->n_sinks = !!sink; - p->n_sources = !!source; + PA_IDXSET_FOREACH(m, ap->output_mappings, idx) + if (m->channel_map.channels > cp->max_sink_channels) + cp->max_sink_channels = m->channel_map.channels; + } - if (sink) - p->max_sink_channels = sink->map.channels; - if (source) - p->max_source_channels = source->map.channels; + if (ap->input_mappings) { + cp->n_sources = pa_idxset_size(ap->input_mappings); - d = PA_CARD_PROFILE_DATA(p); + PA_IDXSET_FOREACH(m, ap->input_mappings, idx) + if (m->channel_map.channels > cp->max_source_channels) + cp->max_source_channels = m->channel_map.channels; + } - d->sink_profile = sink; - d->source_profile = source; + d = PA_CARD_PROFILE_DATA(cp); + d->profile = ap; - pa_hashmap_put(u->profiles, p->name, p); + pa_hashmap_put(h, cp->name, cp); + } } static void add_disabled_profile(pa_hashmap *profiles) { @@ -176,7 +152,7 @@ static void add_disabled_profile(pa_hashmap *profiles) { p = pa_card_profile_new("off", _("Off"), sizeof(struct profile_data)); d = PA_CARD_PROFILE_DATA(p); - d->sink_profile = d->source_profile = NULL; + d->profile = NULL; pa_hashmap_put(profiles, p->name, p); } @@ -184,6 +160,9 @@ static void add_disabled_profile(pa_hashmap *profiles) { static int card_set_profile(pa_card *c, pa_card_profile *new_profile) { struct userdata *u; struct profile_data *nd, *od; + uint32_t idx; + pa_alsa_mapping *am; + pa_queue *sink_inputs = NULL, *source_outputs = NULL; pa_assert(c); pa_assert(new_profile); @@ -192,67 +171,85 @@ static int card_set_profile(pa_card *c, pa_card_profile *new_profile) { nd = PA_CARD_PROFILE_DATA(new_profile); od = PA_CARD_PROFILE_DATA(c->active_profile); - if (od->sink_profile != nd->sink_profile) { - pa_queue *inputs = NULL; + if (od->profile && od->profile->output_mappings) + PA_IDXSET_FOREACH(am, od->profile->output_mappings, idx) { + if (!am->sink) + continue; - if (u->sink) { - if (nd->sink_profile) - inputs = pa_sink_move_all_start(u->sink); + if (nd->profile && + nd->profile->output_mappings && + pa_idxset_get_by_data(nd->profile->output_mappings, am, NULL)) + continue; - pa_alsa_sink_free(u->sink); - u->sink = NULL; + sink_inputs = pa_sink_move_all_start(am->sink, sink_inputs); + pa_alsa_sink_free(am->sink); + am->sink = NULL; } - if (nd->sink_profile) { - u->sink = pa_alsa_sink_new(c->module, u->modargs, __FILE__, c, nd->sink_profile); + if (od->profile && od->profile->input_mappings) + PA_IDXSET_FOREACH(am, od->profile->input_mappings, idx) { + if (!am->source) + continue; - if (inputs) { - if (u->sink) - pa_sink_move_all_finish(u->sink, inputs, FALSE); - else - pa_sink_move_all_fail(inputs); - } + if (nd->profile && + nd->profile->input_mappings && + pa_idxset_get_by_data(nd->profile->input_mappings, am, NULL)) + continue; + + source_outputs = pa_source_move_all_start(am->source, source_outputs); + pa_alsa_source_free(am->source); + am->source = NULL; } - } - if (od->source_profile != nd->source_profile) { - pa_queue *outputs = NULL; + if (nd->profile && nd->profile->output_mappings) + PA_IDXSET_FOREACH(am, nd->profile->output_mappings, idx) { - if (u->source) { - if (nd->source_profile) - outputs = pa_source_move_all_start(u->source); + if (!am->sink) + am->sink = pa_alsa_sink_new(c->module, u->modargs, __FILE__, c, am); - pa_alsa_source_free(u->source); - u->source = NULL; + if (sink_inputs && am->sink) { + pa_sink_move_all_finish(am->sink, sink_inputs, FALSE); + sink_inputs = NULL; + } } - if (nd->source_profile) { - u->source = pa_alsa_source_new(c->module, u->modargs, __FILE__, c, nd->source_profile); + if (nd->profile && nd->profile->input_mappings) + PA_IDXSET_FOREACH(am, nd->profile->input_mappings, idx) { - if (outputs) { - if (u->source) - pa_source_move_all_finish(u->source, outputs, FALSE); - else - pa_source_move_all_fail(outputs); + if (!am->source) + am->source = pa_alsa_source_new(c->module, u->modargs, __FILE__, c, am); + + if (source_outputs && am->source) { + pa_source_move_all_finish(am->source, source_outputs, FALSE); + source_outputs = NULL; } } - } + + if (sink_inputs) + pa_sink_move_all_fail(sink_inputs); + + if (source_outputs) + pa_source_move_all_fail(source_outputs); return 0; } static void init_profile(struct userdata *u) { + uint32_t idx; + pa_alsa_mapping *am; struct profile_data *d; pa_assert(u); d = PA_CARD_PROFILE_DATA(u->card->active_profile); - if (d->sink_profile) - u->sink = pa_alsa_sink_new(u->module, u->modargs, __FILE__, u->card, d->sink_profile); + if (d->profile && d->profile->output_mappings) + PA_IDXSET_FOREACH(am, d->profile->output_mappings, idx) + am->sink = pa_alsa_sink_new(u->module, u->modargs, __FILE__, u->card, am); - if (d->source_profile) - u->source = pa_alsa_source_new(u->module, u->modargs, __FILE__, u->card, d->source_profile); + if (d->profile && d->profile->input_mappings) + PA_IDXSET_FOREACH(am, d->profile->input_mappings, idx) + am->source = pa_alsa_source_new(u->module, u->modargs, __FILE__, u->card, am); } static void set_card_name(pa_card_new_data *data, pa_modargs *ma, const char *device_id) { @@ -286,12 +283,11 @@ int pa__init(pa_module *m) { pa_modargs *ma; int alsa_card_index; struct userdata *u; - char rname[32]; pa_reserve_wrapper *reserve = NULL; const char *description; + char *fn = NULL; - pa_alsa_redirect_errors_inc(); - snd_config_update_free_global(); + pa_alsa_refcnt_inc(); pa_assert(m); @@ -300,13 +296,10 @@ int pa__init(pa_module *m) { goto fail; } - m->userdata = u = pa_xnew(struct userdata, 1); + m->userdata = u = pa_xnew0(struct userdata, 1); u->core = m->core; u->module = m; u->device_id = pa_xstrdup(pa_modargs_get_value(ma, "device_id", DEFAULT_DEVICE_ID)); - u->card = NULL; - u->sink = NULL; - u->source = NULL; u->modargs = ma; if ((alsa_card_index = snd_card_get_index(u->device_id)) < 0) { @@ -314,16 +307,36 @@ int pa__init(pa_module *m) { goto fail; } - pa_snprintf(rname, sizeof(rname), "Audio%i", alsa_card_index); + if (!pa_in_system_mode()) { + char *rname; + + if ((rname = pa_alsa_get_reserve_name(u->device_id))) { + reserve = pa_reserve_wrapper_get(m->core, rname); + pa_xfree(rname); + + if (!reserve) + goto fail; + } + } + +#ifdef HAVE_UDEV + fn = pa_udev_get_property(alsa_card_index, "PULSE_PROFILE_SET"); +#endif + + u->profile_set = pa_alsa_profile_set_new(fn, &u->core->default_channel_map); + pa_xfree(fn); + + if (!u->profile_set) + goto fail; - if (!pa_in_system_mode()) - if (!(reserve = pa_reserve_wrapper_get(m->core, rname))) - goto fail; + pa_alsa_profile_set_probe(u->profile_set, u->device_id, &m->core->default_sample_spec); pa_card_new_data_init(&data); data.driver = __FILE__; data.module = m; + pa_alsa_init_proplist_card(m->core, data.proplist, alsa_card_index); + pa_proplist_sets(data.proplist, PA_PROP_DEVICE_STRING, u->device_id); pa_alsa_init_description(data.proplist); set_card_name(&data, ma, u->device_id); @@ -332,11 +345,8 @@ int pa__init(pa_module *m) { if ((description = pa_proplist_gets(data.proplist, PA_PROP_DEVICE_DESCRIPTION))) pa_reserve_wrapper_set_application_device_name(reserve, description); - u->profiles = data.profiles = pa_hashmap_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func); - if (pa_alsa_probe_profiles(u->device_id, &m->core->default_sample_spec, enumerate_cb, u) < 0) { - pa_card_new_data_done(&data); - goto fail; - } + data.profiles = pa_hashmap_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func); + add_profiles(u, data.profiles); if (pa_hashmap_isempty(data.profiles)) { pa_log("Failed to find a working profile."); @@ -379,13 +389,22 @@ fail: int pa__get_n_used(pa_module *m) { struct userdata *u; + int n = 0; + uint32_t idx; + pa_sink *sink; + pa_source *source; pa_assert(m); pa_assert_se(u = m->userdata); + pa_assert(u->card); + + PA_IDXSET_FOREACH(sink, u->card->sinks, idx) + n += pa_sink_linked_by(sink); - return - (u->sink ? pa_sink_linked_by(u->sink) : 0) + - (u->source ? pa_source_linked_by(u->source) : 0); + PA_IDXSET_FOREACH(source, u->card->sources, idx) + n += pa_source_linked_by(source); + + return n; } void pa__done(pa_module*m) { @@ -396,11 +415,19 @@ void pa__done(pa_module*m) { if (!(u = m->userdata)) goto finish; - if (u->sink) - pa_alsa_sink_free(u->sink); + if (u->card && u->card->sinks) { + pa_sink *s; + + while ((s = pa_idxset_steal_first(u->card->sinks, NULL))) + pa_alsa_sink_free(s); + } + + if (u->card && u->card->sources) { + pa_source *s; - if (u->source) - pa_alsa_source_free(u->source); + while ((s = pa_idxset_steal_first(u->card->sources, NULL))) + pa_alsa_source_free(s); + } if (u->card) pa_card_free(u->card); @@ -408,10 +435,12 @@ void pa__done(pa_module*m) { if (u->modargs) pa_modargs_free(u->modargs); + if (u->profile_set) + pa_alsa_profile_set_free(u->profile_set); + pa_xfree(u->device_id); pa_xfree(u); finish: - snd_config_update_free_global(); - pa_alsa_redirect_errors_dec(); + pa_alsa_refcnt_dec(); } diff --git a/src/modules/alsa/module-alsa-sink.c b/src/modules/alsa/module-alsa-sink.c index 058ea205..3aa89b2a 100644 --- a/src/modules/alsa/module-alsa-sink.c +++ b/src/modules/alsa/module-alsa-sink.c @@ -82,8 +82,7 @@ int pa__init(pa_module*m) { pa_assert(m); - pa_alsa_redirect_errors_inc(); - snd_config_update_free_global(); + pa_alsa_refcnt_inc(); if (!(ma = pa_modargs_new(m->argument, valid_modargs))) { pa_log("Failed to parse module arguments"); @@ -124,6 +123,5 @@ void pa__done(pa_module*m) { if ((sink = m->userdata)) pa_alsa_sink_free(sink); - snd_config_update_free_global(); - pa_alsa_redirect_errors_dec(); + pa_alsa_refcnt_dec(); } diff --git a/src/modules/alsa/module-alsa-source.c b/src/modules/alsa/module-alsa-source.c index 3bd1b451..23da4185 100644 --- a/src/modules/alsa/module-alsa-source.c +++ b/src/modules/alsa/module-alsa-source.c @@ -37,6 +37,7 @@ #include <pulse/timeval.h> #include <pulsecore/core-error.h> +#include <pulsecore/core-rtclock.h> #include <pulsecore/core.h> #include <pulsecore/module.h> #include <pulsecore/memchunk.h> @@ -51,7 +52,6 @@ #include <pulsecore/thread-mq.h> #include <pulsecore/rtpoll.h> #include <pulsecore/time-smoother.h> -#include <pulsecore/rtclock.h> #include "alsa-util.h" #include "alsa-source.h" @@ -106,8 +106,7 @@ int pa__init(pa_module*m) { pa_assert(m); - pa_alsa_redirect_errors_inc(); - snd_config_update_free_global(); + pa_alsa_refcnt_inc(); if (!(ma = pa_modargs_new(m->argument, valid_modargs))) { pa_log("Failed to parse module arguments"); @@ -148,6 +147,5 @@ void pa__done(pa_module*m) { if ((source = m->userdata)) pa_alsa_source_free(source); - snd_config_update_free_global(); - pa_alsa_redirect_errors_dec(); + pa_alsa_refcnt_dec(); } diff --git a/src/modules/bluetooth/module-bluetooth-device.c b/src/modules/bluetooth/module-bluetooth-device.c index dbec00d4..e7c6d5e4 100644 --- a/src/modules/bluetooth/module-bluetooth-device.c +++ b/src/modules/bluetooth/module-bluetooth-device.c @@ -30,13 +30,15 @@ #include <linux/sockios.h> #include <arpa/inet.h> -#include <pulse/xmalloc.h> -#include <pulse/timeval.h> -#include <pulse/sample.h> #include <pulse/i18n.h> +#include <pulse/rtclock.h> +#include <pulse/sample.h> +#include <pulse/timeval.h> +#include <pulse/xmalloc.h> #include <pulsecore/module.h> #include <pulsecore/modargs.h> +#include <pulsecore/core-rtclock.h> #include <pulsecore/core-util.h> #include <pulsecore/core-error.h> #include <pulsecore/socket-util.h> @@ -44,7 +46,6 @@ #include <pulsecore/thread-mq.h> #include <pulsecore/rtpoll.h> #include <pulsecore/time-smoother.h> -#include <pulsecore/rtclock.h> #include <pulsecore/namereg.h> #include <pulsecore/dbus-shared.h> @@ -773,7 +774,7 @@ static int start_stream_fd(struct userdata *u) { TRUE, TRUE, 10, - pa_rtclock_usec(), + pa_rtclock_now(), TRUE); return 0; @@ -867,14 +868,14 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse if (u->read_smoother) { pa_usec_t wi, ri; - ri = pa_smoother_get(u->read_smoother, pa_rtclock_usec()); + ri = pa_smoother_get(u->read_smoother, pa_rtclock_now()); wi = pa_bytes_to_usec(u->write_index + u->block_size, &u->sample_spec); *((pa_usec_t*) data) = wi > ri ? wi - ri : 0; } else { pa_usec_t ri, wi; - ri = pa_rtclock_usec() - u->started_at; + ri = pa_rtclock_now() - u->started_at; wi = pa_bytes_to_usec(u->write_index, &u->sample_spec); *((pa_usec_t*) data) = wi > ri ? wi - ri : 0; @@ -912,7 +913,7 @@ static int source_process_msg(pa_msgobject *o, int code, void *data, int64_t off stop_stream_fd(u); if (u->read_smoother) - pa_smoother_pause(u->read_smoother, pa_rtclock_usec()); + pa_smoother_pause(u->read_smoother, pa_rtclock_now()); break; case PA_SOURCE_IDLE: @@ -939,7 +940,7 @@ static int source_process_msg(pa_msgobject *o, int code, void *data, int64_t off case PA_SOURCE_MESSAGE_GET_LATENCY: { pa_usec_t wi, ri; - wi = pa_smoother_get(u->read_smoother, pa_rtclock_usec()); + wi = pa_smoother_get(u->read_smoother, pa_rtclock_now()); ri = pa_bytes_to_usec(u->read_index, &u->sample_spec); *((pa_usec_t*) data) = (wi > ri ? wi - ri : 0) + u->source->fixed_latency; @@ -1086,7 +1087,7 @@ static int hsp_process_push(struct userdata *u) { if (!found_tstamp) { pa_log_warn("Couldn't find SO_TIMESTAMP data in auxiliary recvmsg() data!"); - tstamp = pa_rtclock_usec(); + tstamp = pa_rtclock_now(); } pa_smoother_put(u->read_smoother, tstamp, pa_bytes_to_usec(u->read_index, &u->sample_spec)); @@ -1265,7 +1266,6 @@ static void thread_func(void *userdata) { goto fail; pa_thread_mq_install(&u->thread_mq); - pa_rtpoll_install(u->rtpoll); for (;;) { struct pollfd *pollfd; @@ -1309,7 +1309,7 @@ static void thread_func(void *userdata) { /* Hmm, there is no input stream we could synchronize * to. So let's do things by time */ - time_passed = pa_rtclock_usec() - u->started_at; + time_passed = pa_rtclock_now() - u->started_at; audio_sent = pa_bytes_to_usec(u->write_index, &u->sample_spec); if (audio_sent <= time_passed) { @@ -1341,7 +1341,7 @@ static void thread_func(void *userdata) { int n_written; if (u->write_index <= 0) - u->started_at = pa_rtclock_usec(); + u->started_at = pa_rtclock_now(); if (u->profile == PROFILE_A2DP) { if ((n_written = a2dp_process_render(u)) < 0) @@ -1361,7 +1361,7 @@ static void thread_func(void *userdata) { /* Hmm, there is no input stream we could synchronize * to. So let's estimate when we need to wake up the latest */ - time_passed = pa_rtclock_usec() - u->started_at; + time_passed = pa_rtclock_now() - u->started_at; next_write_at = pa_bytes_to_usec(u->write_index, &u->sample_spec); sleep_for = time_passed < next_write_at ? next_write_at - time_passed : 0; @@ -1443,12 +1443,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); + pa_sink_volume_changed(u->sink, &v, TRUE); } 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); + pa_source_volume_changed(u->source, &v, TRUE); } } } @@ -1622,6 +1622,8 @@ static int add_sink(struct userdata *u) { data.module = u->module; pa_sink_new_data_set_sample_spec(&data, &u->sample_spec); pa_proplist_sets(data.proplist, "bluetooth.protocol", u->profile == PROFILE_A2DP ? "a2dp" : "sco"); + if (u->profile == PROFILE_HSP) + pa_proplist_sets(data.proplist, PA_PROP_DEVICE_INTENDED_ROLES, "phone"); data.card = u->card; data.name = get_name("sink", u->modargs, u->address, &b); data.namereg_fail = b; @@ -1680,6 +1682,8 @@ static int add_source(struct userdata *u) { data.module = u->module; pa_source_new_data_set_sample_spec(&data, &u->sample_spec); pa_proplist_sets(data.proplist, "bluetooth.protocol", u->profile == PROFILE_A2DP ? "a2dp" : "hsp"); + if (u->profile == PROFILE_HSP) + pa_proplist_sets(data.proplist, PA_PROP_DEVICE_INTENDED_ROLES, "phone"); data.card = u->card; data.name = get_name("source", u->modargs, u->address, &b); data.namereg_fail = b; @@ -1916,7 +1920,7 @@ static int card_set_profile(pa_card *c, pa_card_profile *new_profile) { if (!(device = pa_bluetooth_discovery_get_by_path(u->discovery, u->path))) { pa_log_error("Failed to get device object."); - return -1; + return -PA_ERR_IO; } /* The state signal is sent by bluez, so it is racy to check @@ -1926,15 +1930,15 @@ static int card_set_profile(pa_card *c, pa_card_profile *new_profile) { module will be unloaded. */ if (device->headset_state < PA_BT_AUDIO_STATE_CONNECTED && *d == PROFILE_HSP) { pa_log_warn("HSP is not connected, refused to switch profile"); - return -1; + return -PA_ERR_IO; } else if (device->audio_sink_state < PA_BT_AUDIO_STATE_CONNECTED && *d == PROFILE_A2DP) { pa_log_warn("A2DP is not connected, refused to switch profile"); - return -1; + return -PA_ERR_IO; } if (u->sink) { - inputs = pa_sink_move_all_start(u->sink); + inputs = pa_sink_move_all_start(u->sink, NULL); #ifdef NOKIA if (!USE_SCO_OVER_PCM(u)) #endif @@ -1942,7 +1946,7 @@ static int card_set_profile(pa_card *c, pa_card_profile *new_profile) { } if (u->source) { - outputs = pa_source_move_all_start(u->source); + outputs = pa_source_move_all_start(u->source, NULL); #ifdef NOKIA if (!USE_SCO_OVER_PCM(u)) #endif diff --git a/src/modules/bluetooth/module-bluetooth-proximity.c b/src/modules/bluetooth/module-bluetooth-proximity.c index 9993c8dc..c4cfd733 100644 --- a/src/modules/bluetooth/module-bluetooth-proximity.c +++ b/src/modules/bluetooth/module-bluetooth-proximity.c @@ -109,7 +109,7 @@ static void update_volume(struct userdata *u) { } pa_log_info("Found %u BT devices, unmuting.", u->n_found); - pa_sink_set_mute(s, FALSE); + pa_sink_set_mute(s, FALSE, FALSE); } else if (!u->muted && (u->n_found+u->n_unknown) <= 0) { pa_sink *s; @@ -122,7 +122,7 @@ static void update_volume(struct userdata *u) { } pa_log_info("No BT devices found, muting."); - pa_sink_set_mute(s, TRUE); + pa_sink_set_mute(s, TRUE, FALSE); } else pa_log_info("%u devices now active, %u with unknown state.", u->n_found, u->n_unknown); diff --git a/src/modules/jack/module-jack-sink.c b/src/modules/jack/module-jack-sink.c index 290038e7..fc976fa7 100644 --- a/src/modules/jack/module-jack-sink.c +++ b/src/modules/jack/module-jack-sink.c @@ -225,7 +225,6 @@ static void thread_func(void *userdata) { pa_make_realtime(u->core->realtime_priority); pa_thread_mq_install(&u->thread_mq); - pa_rtpoll_install(u->rtpoll); for (;;) { int ret; diff --git a/src/modules/jack/module-jack-source.c b/src/modules/jack/module-jack-source.c index ef89a98e..a898e0e5 100644 --- a/src/modules/jack/module-jack-source.c +++ b/src/modules/jack/module-jack-source.c @@ -196,7 +196,6 @@ static void thread_func(void *userdata) { pa_make_realtime(u->core->realtime_priority); pa_thread_mq_install(&u->thread_mq); - pa_rtpoll_install(u->rtpoll); for (;;) { int ret; diff --git a/src/modules/module-augment-properties.c b/src/modules/module-augment-properties.c index c3e5997a..15aa3a1e 100644 --- a/src/modules/module-augment-properties.c +++ b/src/modules/module-augment-properties.c @@ -58,6 +58,7 @@ struct rule { char *process_name; char *application_name; char *icon_name; + char *role; pa_proplist *proplist; }; @@ -72,12 +73,21 @@ static void rule_free(struct rule *r) { pa_xfree(r->process_name); pa_xfree(r->application_name); pa_xfree(r->icon_name); + pa_xfree(r->role); if (r->proplist) pa_proplist_free(r->proplist); pa_xfree(r); } -static int parse_properties(const char *filename, unsigned line, const char *section, const char *lvalue, const char *rvalue, void *data, void *userdata) { +static int parse_properties( + const char *filename, + unsigned line, + const char *section, + const char *lvalue, + const char *rvalue, + void *data, + void *userdata) { + struct rule *r = userdata; pa_proplist *n; @@ -93,11 +103,56 @@ static int parse_properties(const char *filename, unsigned line, const char *sec return 0; } -static int check_type(const char *filename, unsigned line, const char *section, const char *lvalue, const char *rvalue, void *data, void *userdata) { +static int parse_categories( + const char *filename, + unsigned line, + const char *section, + const char *lvalue, + const char *rvalue, + void *data, + void *userdata) { + + struct rule *r = userdata; + const char *state = NULL; + char *c; + + while ((c = pa_split(rvalue, ";", &state))) { + + if (pa_streq(c, "Game")) { + pa_xfree(r->role); + r->role = pa_xstrdup("game"); + } else if (pa_streq(c, "Telephony")) { + pa_xfree(r->role); + r->role = pa_xstrdup("phone"); + } + + pa_xfree(c); + } + + return 0; +} + +static int check_type( + const char *filename, + unsigned line, + const char *section, + const char *lvalue, + const char *rvalue, + void *data, + void *userdata) { + return pa_streq(rvalue, "Application") ? 0 : -1; } -static int catch_all(const char *filename, unsigned line, const char *section, const char *lvalue, const char *rvalue, void *data, void *userdata) { +static int catch_all( + const char *filename, + unsigned line, + const char *section, + const char *lvalue, + const char *rvalue, + void *data, + void *userdata) { + return 0; } @@ -109,6 +164,7 @@ static void update_rule(struct rule *r) { { "Icon", pa_config_parse_string, NULL, "Desktop Entry" }, { "Type", check_type, NULL, "Desktop Entry" }, { "X-PulseAudio-Properties", parse_properties, NULL, "Desktop Entry" }, + { "Categories", parse_categories, NULL, "Desktop Entry" }, { NULL, catch_all, NULL, NULL }, { NULL, NULL, NULL, NULL }, }; @@ -131,7 +187,8 @@ static void update_rule(struct rule *r) { r->mtime = st.st_mtime; pa_xfree(r->application_name); pa_xfree(r->icon_name); - r->application_name = r->icon_name = NULL; + pa_xfree(r->role); + r->application_name = r->icon_name = r->role = NULL; if (r->proplist) pa_proplist_clear(r->proplist); @@ -151,6 +208,9 @@ static void apply_rule(struct rule *r, pa_proplist *p) { if (!r->good) return; + if (r->proplist) + pa_proplist_update(p, PA_UPDATE_MERGE, r->proplist); + if (r->icon_name) if (!pa_proplist_contains(p, PA_PROP_APPLICATION_ICON_NAME)) pa_proplist_sets(p, PA_PROP_APPLICATION_ICON_NAME, r->icon_name); @@ -164,8 +224,9 @@ static void apply_rule(struct rule *r, pa_proplist *p) { pa_proplist_sets(p, PA_PROP_APPLICATION_NAME, r->application_name); } - if (r->proplist) - pa_proplist_update(p, PA_UPDATE_MERGE, r->proplist); + if (r->role) + if (!pa_proplist_contains(p, PA_PROP_MEDIA_ROLE)) + pa_proplist_sets(p, PA_PROP_MEDIA_ROLE, r->role); } static void make_room(pa_hashmap *cache) { diff --git a/src/modules/module-card-restore.c b/src/modules/module-card-restore.c index 85478d12..7dea94f7 100644 --- a/src/modules/module-card-restore.c +++ b/src/modules/module-card-restore.c @@ -35,6 +35,7 @@ #include <pulse/volume.h> #include <pulse/timeval.h> #include <pulse/util.h> +#include <pulse/rtclock.h> #include <pulsecore/core-error.h> #include <pulsecore/module.h> @@ -53,7 +54,7 @@ PA_MODULE_DESCRIPTION("Automatically restore profile of cards"); PA_MODULE_VERSION(PACKAGE_VERSION); PA_MODULE_LOAD_ONCE(TRUE); -#define SAVE_INTERVAL 10 +#define SAVE_INTERVAL (10 * PA_USEC_PER_SEC) static const char* const valid_modargs[] = { NULL @@ -75,12 +76,11 @@ struct entry { char profile[PA_NAME_MAX]; } PA_GCC_PACKED ; -static void save_time_callback(pa_mainloop_api*a, pa_time_event* e, const struct timeval *tv, void *userdata) { +static void save_time_callback(pa_mainloop_api*a, pa_time_event* e, const struct timeval *t, void *userdata) { struct userdata *u = userdata; pa_assert(a); pa_assert(e); - pa_assert(tv); pa_assert(u); pa_assert(e == u->save_time_event); @@ -132,14 +132,10 @@ fail: } static void trigger_save(struct userdata *u) { - struct timeval tv; - if (u->save_time_event) return; - pa_gettimeofday(&tv); - tv.tv_sec += SAVE_INTERVAL; - u->save_time_event = u->core->mainloop->time_new(u->core->mainloop, &tv, save_time_callback, u); + u->save_time_event = pa_core_rttime_new(u->core, pa_rtclock_now() + SAVE_INTERVAL, save_time_callback, u); } static void subscribe_callback(pa_core *c, pa_subscription_event_type_t t, uint32_t idx, void *userdata) { @@ -197,8 +193,9 @@ static pa_hook_result_t card_new_hook_callback(pa_core *c, pa_card_new_data *new if ((e = read_entry(u, new_data->name)) && e->profile[0]) { if (!new_data->active_profile) { - pa_card_new_data_set_profile(new_data, e->profile); pa_log_info("Restoring profile for card %s.", new_data->name); + pa_card_new_data_set_profile(new_data, e->profile); + new_data->save_profile = TRUE; } else pa_log_debug("Not restoring profile for card %s, because already set.", new_data->name); @@ -222,11 +219,9 @@ int pa__init(pa_module*m) { goto fail; } - m->userdata = u = pa_xnew(struct userdata, 1); + m->userdata = u = pa_xnew0(struct userdata, 1); u->core = m->core; u->module = m; - u->save_time_event = NULL; - u->database = NULL; u->subscription = pa_subscription_new(m->core, PA_SUBSCRIPTION_MASK_CARD, subscribe_callback, u); diff --git a/src/modules/module-combine.c b/src/modules/module-combine.c index 02a7e1ff..d50e59ae 100644 --- a/src/modules/module-combine.c +++ b/src/modules/module-combine.c @@ -26,6 +26,7 @@ #include <stdio.h> #include <errno.h> +#include <pulse/rtclock.h> #include <pulse/timeval.h> #include <pulse/xmalloc.h> @@ -36,6 +37,7 @@ #include <pulsecore/sink-input.h> #include <pulsecore/memblockq.h> #include <pulsecore/log.h> +#include <pulsecore/core-rtclock.h> #include <pulsecore/core-util.h> #include <pulsecore/modargs.h> #include <pulsecore/namereg.h> @@ -43,7 +45,6 @@ #include <pulsecore/thread.h> #include <pulsecore/thread-mq.h> #include <pulsecore/rtpoll.h> -#include <pulsecore/rtclock.h> #include <pulsecore/core-error.h> #include <pulsecore/time-smoother.h> @@ -224,9 +225,8 @@ static void adjust_rates(struct userdata *u) { pa_asyncmsgq_send(u->sink->asyncmsgq, PA_MSGOBJECT(u->sink), SINK_MESSAGE_UPDATE_LATENCY, NULL, (int64_t) avg_total_latency, NULL); } -static void time_callback(pa_mainloop_api*a, pa_time_event* e, const struct timeval *tv, void *userdata) { +static void time_callback(pa_mainloop_api *a, pa_time_event *e, const struct timeval *t, void *userdata) { struct userdata *u = userdata; - struct timeval n; pa_assert(u); pa_assert(a); @@ -234,9 +234,7 @@ static void time_callback(pa_mainloop_api*a, pa_time_event* e, const struct time adjust_rates(u); - pa_gettimeofday(&n); - n.tv_sec += (time_t) u->adjust_time; - u->sink->core->mainloop->time_restart(e, &n); + pa_core_rttime_restart(u->core, e, pa_rtclock_now() + u->adjust_time * PA_USEC_PER_SEC); } static void process_render_null(struct userdata *u, pa_usec_t now) { @@ -280,9 +278,8 @@ static void thread_func(void *userdata) { pa_make_realtime(u->core->realtime_priority+1); pa_thread_mq_install(&u->thread_mq); - pa_rtpoll_install(u->rtpoll); - u->thread_info.timestamp = pa_rtclock_usec(); + u->thread_info.timestamp = pa_rtclock_now(); u->thread_info.in_null_mode = FALSE; for (;;) { @@ -296,7 +293,7 @@ static void thread_func(void *userdata) { if (PA_SINK_IS_OPENED(u->sink->thread_info.state) && !u->thread_info.active_outputs) { pa_usec_t now; - now = pa_rtclock_usec(); + now = pa_rtclock_now(); if (!u->thread_info.in_null_mode || u->thread_info.timestamp <= now) process_render_null(u, now); @@ -593,7 +590,7 @@ static void unsuspend(struct userdata *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_sink_suspend(o->sink, FALSE, PA_SUSPEND_IDLE); if (PA_SINK_IS_OPENED(pa_sink_get_state(o->sink))) enable_output(o); @@ -664,16 +661,16 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse pa_atomic_store(&u->thread_info.running, PA_PTR_TO_UINT(data) == PA_SINK_RUNNING); if (PA_PTR_TO_UINT(data) == PA_SINK_SUSPENDED) - pa_smoother_pause(u->thread_info.smoother, pa_rtclock_usec()); + pa_smoother_pause(u->thread_info.smoother, pa_rtclock_now()); else - pa_smoother_resume(u->thread_info.smoother, pa_rtclock_usec(), TRUE); + pa_smoother_resume(u->thread_info.smoother, pa_rtclock_now(), TRUE); break; case PA_SINK_MESSAGE_GET_LATENCY: { pa_usec_t x, y, c, *delay = data; - x = pa_rtclock_usec(); + x = pa_rtclock_now(); y = pa_smoother_get(u->thread_info.smoother, x); c = pa_bytes_to_usec(u->thread_info.counter, &u->sink->sample_spec); @@ -730,7 +727,7 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse case SINK_MESSAGE_UPDATE_LATENCY: { pa_usec_t x, y, latency = (pa_usec_t) offset; - x = pa_rtclock_usec(); + x = pa_rtclock_now(); y = pa_bytes_to_usec(u->thread_info.counter, &u->sink->sample_spec); if (y > latency) @@ -873,7 +870,7 @@ static struct output *output_new(struct userdata *u, pa_sink *sink) { } if (PA_SINK_IS_OPENED(state) || state == PA_SINK_INIT) { - pa_sink_suspend(sink, FALSE); + pa_sink_suspend(sink, FALSE, PA_SUSPEND_IDLE); if (PA_SINK_IS_OPENED(pa_sink_get_state(sink))) if (output_create_sink_input(o) < 0) @@ -1170,12 +1167,8 @@ int pa__init(pa_module*m) { if (o->sink_input) pa_sink_input_put(o->sink_input); - if (u->adjust_time > 0) { - struct timeval tv; - pa_gettimeofday(&tv); - tv.tv_sec += (time_t) u->adjust_time; - u->time_event = m->core->mainloop->time_new(m->core->mainloop, &tv, time_callback, u); - } + if (u->adjust_time > 0) + u->time_event = pa_core_rttime_new(m->core, pa_rtclock_now() + u->adjust_time * PA_USEC_PER_SEC, time_callback, u); pa_modargs_free(ma); diff --git a/src/modules/module-dbus-protocol.c b/src/modules/module-dbus-protocol.c index 46f64921..f7c1f0a9 100644 --- a/src/modules/module-dbus-protocol.c +++ b/src/modules/module-dbus-protocol.c @@ -157,7 +157,7 @@ static void connection_new_cb(DBusServer *dbus_server, DBusConnection *new_conne c = pa_xnew(struct connection, 1); c->server = s; - c->wrap_conn = pa_dbus_wrap_connection_new_from_existing(s->userdata->module->core->mainloop, new_connection); + c->wrap_conn = pa_dbus_wrap_connection_new_from_existing(s->userdata->module->core->mainloop, TRUE, new_connection); c->client = client; c->client->kill = client_kill_cb; diff --git a/src/modules/module-default-device-restore.c b/src/modules/module-default-device-restore.c index 0092d1c7..27ae60e5 100644 --- a/src/modules/module-default-device-restore.c +++ b/src/modules/module-default-device-restore.c @@ -26,6 +26,7 @@ #include <errno.h> #include <stdio.h> +#include <pulse/rtclock.h> #include <pulse/timeval.h> #include <pulse/util.h> @@ -42,7 +43,7 @@ PA_MODULE_DESCRIPTION("Automatically restore the default sink and source"); PA_MODULE_VERSION(PACKAGE_VERSION); PA_MODULE_LOAD_ONCE(TRUE); -#define DEFAULT_SAVE_INTERVAL 5 +#define SAVE_INTERVAL (5 * PA_USEC_PER_SEC) struct userdata { pa_core *core; @@ -127,7 +128,7 @@ static void save(struct userdata *u) { u->modified = FALSE; } -static void time_cb(pa_mainloop_api *a, pa_time_event *e, const struct timeval *tv, void *userdata) { +static void time_cb(pa_mainloop_api *a, pa_time_event *e, const struct timeval *t, void *userdata) { struct userdata *u = userdata; pa_assert(u); @@ -146,12 +147,8 @@ static void subscribe_cb(pa_core *c, pa_subscription_event_type_t t, uint32_t id u->modified = TRUE; - if (!u->time_event) { - struct timeval tv; - pa_gettimeofday(&tv); - pa_timeval_add(&tv, DEFAULT_SAVE_INTERVAL*PA_USEC_PER_SEC); - u->time_event = u->core->mainloop->time_new(u->core->mainloop, &tv, time_cb, u); - } + if (!u->time_event) + u->time_event = pa_core_rttime_new(u->core, pa_rtclock_now() + SAVE_INTERVAL, time_cb, u); } int pa__init(pa_module *m) { diff --git a/src/modules/module-device-restore.c b/src/modules/module-device-restore.c index ae21acd5..120b762c 100644 --- a/src/modules/module-device-restore.c +++ b/src/modules/module-device-restore.c @@ -35,6 +35,7 @@ #include <pulse/volume.h> #include <pulse/timeval.h> #include <pulse/util.h> +#include <pulse/rtclock.h> #include <pulsecore/core-error.h> #include <pulsecore/module.h> @@ -54,14 +55,16 @@ PA_MODULE_DESCRIPTION("Automatically restore the volume/mute state of devices"); PA_MODULE_VERSION(PACKAGE_VERSION); PA_MODULE_LOAD_ONCE(TRUE); PA_MODULE_USAGE( + "restore_port=<Save/restore port?> " "restore_volume=<Save/restore volumes?> " "restore_muted=<Save/restore muted states?>"); -#define SAVE_INTERVAL 10 +#define SAVE_INTERVAL (10 * PA_USEC_PER_SEC) static const char* const valid_modargs[] = { "restore_volume", "restore_muted", + "restore_port", NULL }; @@ -70,30 +73,34 @@ struct userdata { pa_module *module; pa_subscription *subscription; pa_hook_slot + *sink_new_hook_slot, *sink_fixate_hook_slot, + *source_new_hook_slot, *source_fixate_hook_slot; pa_time_event *save_time_event; pa_database *database; pa_bool_t restore_volume:1; pa_bool_t restore_muted:1; + pa_bool_t restore_port:1; }; -#define ENTRY_VERSION 1 +#define ENTRY_VERSION 2 struct entry { uint8_t version; + pa_bool_t muted_valid:1, volume_valid:1, port_valid:1; pa_bool_t muted:1; pa_channel_map channel_map; pa_cvolume volume; + char port[PA_NAME_MAX]; } PA_GCC_PACKED; -static void save_time_callback(pa_mainloop_api*a, pa_time_event* e, const struct timeval *tv, void *userdata) { +static void save_time_callback(pa_mainloop_api*a, pa_time_event* e, const struct timeval *t, void *userdata) { struct userdata *u = userdata; pa_assert(a); pa_assert(e); - pa_assert(tv); pa_assert(u); pa_assert(e == u->save_time_event); @@ -131,17 +138,17 @@ static struct entry* read_entry(struct userdata *u, const char *name) { goto fail; } - if (!(pa_cvolume_valid(&e->volume))) { - pa_log_warn("Invalid volume stored in database for device %s", name); + if (!memchr(e->port, 0, sizeof(e->port))) { + pa_log_warn("Database contains entry for device %s with missing NUL byte in port name", name); goto fail; } - if (!(pa_channel_map_valid(&e->channel_map))) { + if (e->volume_valid && !pa_channel_map_valid(&e->channel_map)) { pa_log_warn("Invalid channel map stored in database for device %s", name); goto fail; } - if (e->volume.channels != e->channel_map.channels) { + if (e->volume_valid && (!pa_cvolume_valid(&e->volume) || !pa_cvolume_compatible_with_channel_map(&e->volume, &e->channel_map))) { pa_log_warn("Volume and channel map don't match in database entry for device %s", name); goto fail; } @@ -155,14 +162,29 @@ fail: } static void trigger_save(struct userdata *u) { - struct timeval tv; - if (u->save_time_event) return; - pa_gettimeofday(&tv); - tv.tv_sec += SAVE_INTERVAL; - u->save_time_event = u->core->mainloop->time_new(u->core->mainloop, &tv, save_time_callback, u); + u->save_time_event = pa_core_rttime_new(u->core, pa_rtclock_now() + SAVE_INTERVAL, save_time_callback, u); +} + +static pa_bool_t entries_equal(const struct entry *a, const struct entry *b) { + pa_cvolume t; + + if (a->port_valid != b->port_valid || + (a->port_valid && strncmp(a->port, b->port, sizeof(a->port)))) + return FALSE; + + if (a->muted_valid != b->muted_valid || + (a->muted_valid && (a->muted != b->muted))) + return FALSE; + + t = b->volume; + if (a->volume_valid != b->volume_valid || + (a->volume_valid && !pa_cvolume_equal(pa_cvolume_remap(&t, &b->channel_map, &a->channel_map), &a->volume))) + return FALSE; + + return TRUE; } static void subscribe_callback(pa_core *c, pa_subscription_event_type_t t, uint32_t idx, void *userdata) { @@ -190,9 +212,25 @@ static void subscribe_callback(pa_core *c, pa_subscription_event_type_t t, uint3 return; name = pa_sprintf_malloc("sink:%s", sink->name); - entry.channel_map = sink->channel_map; - entry.volume = *pa_sink_get_volume(sink, FALSE, TRUE); - entry.muted = pa_sink_get_mute(sink, FALSE); + + if ((old = read_entry(u, name))) + entry = *old; + + if (sink->save_volume) { + entry.channel_map = sink->channel_map; + entry.volume = *pa_sink_get_volume(sink, FALSE, TRUE); + entry.volume_valid = TRUE; + } + + if (sink->save_muted) { + entry.muted = pa_sink_get_mute(sink, FALSE); + entry.muted_valid = TRUE; + } + + if (sink->save_port) { + pa_strlcpy(entry.port, sink->active_port ? sink->active_port->name : "", sizeof(entry.port)); + entry.port_valid = TRUE; + } } else { pa_source *source; @@ -203,16 +241,30 @@ static void subscribe_callback(pa_core *c, pa_subscription_event_type_t t, uint3 return; name = pa_sprintf_malloc("source:%s", source->name); - entry.channel_map = source->channel_map; - entry.volume = *pa_source_get_volume(source, FALSE); - entry.muted = pa_source_get_mute(source, FALSE); - } - if ((old = read_entry(u, name))) { + if ((old = read_entry(u, name))) + entry = *old; + + if (source->save_volume) { + entry.channel_map = source->channel_map; + entry.volume = *pa_source_get_volume(source, FALSE); + entry.volume_valid = TRUE; + } + + if (source->save_muted) { + entry.muted = pa_source_get_mute(source, FALSE); + entry.muted_valid = TRUE; + } + + if (source->save_port) { + pa_strlcpy(entry.port, source->active_port ? source->active_port->name : "", sizeof(entry.port)); + entry.port_valid = TRUE; + } + } - if (pa_cvolume_equal(pa_cvolume_remap(&old->volume, &old->channel_map, &entry.channel_map), &entry.volume) && - !old->muted == !entry.muted) { + if (old) { + if (entries_equal(old, &entry)) { pa_xfree(old); pa_xfree(name); return; @@ -227,7 +279,7 @@ static void subscribe_callback(pa_core *c, pa_subscription_event_type_t t, uint3 data.data = &entry; data.size = sizeof(entry); - pa_log_info("Storing volume/mute for device %s.", name); + pa_log_info("Storing volume/mute/port for device %s.", name); pa_database_set(u->database, &key, &data, TRUE); @@ -236,31 +288,71 @@ static void subscribe_callback(pa_core *c, pa_subscription_event_type_t t, uint3 trigger_save(u); } +static pa_hook_result_t sink_new_hook_callback(pa_core *c, pa_sink_new_data *new_data, struct userdata *u) { + char *name; + struct entry *e; + + pa_assert(c); + pa_assert(new_data); + pa_assert(u); + pa_assert(u->restore_port); + + name = pa_sprintf_malloc("sink:%s", new_data->name); + + if ((e = read_entry(u, name))) { + + if (e->port_valid) { + if (!new_data->active_port) { + pa_log_info("Restoring port for sink %s.", name); + pa_sink_new_data_set_port(new_data, e->port); + new_data->save_port = TRUE; + } else + pa_log_debug("Not restoring port for sink %s, because already set.", name); + } + + pa_xfree(e); + } + + pa_xfree(name); + + return PA_HOOK_OK; +} + static pa_hook_result_t sink_fixate_hook_callback(pa_core *c, pa_sink_new_data *new_data, struct userdata *u) { char *name; struct entry *e; + pa_assert(c); pa_assert(new_data); + pa_assert(u); + pa_assert(u->restore_volume || u->restore_muted); name = pa_sprintf_malloc("sink:%s", new_data->name); if ((e = read_entry(u, name))) { - if (u->restore_volume) { + if (u->restore_volume && e->volume_valid) { if (!new_data->volume_is_set) { + pa_cvolume v; + pa_log_info("Restoring volume for sink %s.", new_data->name); - pa_sink_new_data_set_volume(new_data, pa_cvolume_remap(&e->volume, &e->channel_map, &new_data->channel_map)); + + v = e->volume; + pa_cvolume_remap(&v, &e->channel_map, &new_data->channel_map); + pa_sink_new_data_set_volume(new_data, &v); + + new_data->save_volume = TRUE; } else pa_log_debug("Not restoring volume for sink %s, because already set.", new_data->name); - } - if (u->restore_muted) { + if (u->restore_muted && e->muted_valid) { if (!new_data->muted_is_set) { pa_log_info("Restoring mute state for sink %s.", new_data->name); pa_sink_new_data_set_muted(new_data, e->muted); + new_data->save_muted = TRUE; } else pa_log_debug("Not restoring mute state for sink %s, because already set.", new_data->name); } @@ -273,30 +365,71 @@ static pa_hook_result_t sink_fixate_hook_callback(pa_core *c, pa_sink_new_data * return PA_HOOK_OK; } +static pa_hook_result_t source_new_hook_callback(pa_core *c, pa_source_new_data *new_data, struct userdata *u) { + char *name; + struct entry *e; + + pa_assert(c); + pa_assert(new_data); + pa_assert(u); + pa_assert(u->restore_port); + + name = pa_sprintf_malloc("source:%s", new_data->name); + + if ((e = read_entry(u, name))) { + + if (e->port_valid) { + if (!new_data->active_port) { + pa_log_info("Restoring port for source %s.", name); + pa_source_new_data_set_port(new_data, e->port); + new_data->save_port = TRUE; + } else + pa_log_debug("Not restoring port for source %s, because already set.", name); + } + + pa_xfree(e); + } + + pa_xfree(name); + + return PA_HOOK_OK; +} + static pa_hook_result_t source_fixate_hook_callback(pa_core *c, pa_source_new_data *new_data, struct userdata *u) { char *name; struct entry *e; + pa_assert(c); pa_assert(new_data); + pa_assert(u); + pa_assert(u->restore_volume || u->restore_muted); name = pa_sprintf_malloc("source:%s", new_data->name); if ((e = read_entry(u, name))) { - if (u->restore_volume) { + if (u->restore_volume && e->volume_valid) { if (!new_data->volume_is_set) { + pa_cvolume v; + pa_log_info("Restoring volume for source %s.", new_data->name); - pa_source_new_data_set_volume(new_data, pa_cvolume_remap(&e->volume, &e->channel_map, &new_data->channel_map)); + + v = e->volume; + pa_cvolume_remap(&v, &e->channel_map, &new_data->channel_map); + pa_source_new_data_set_volume(new_data, &v); + + new_data->save_volume = TRUE; } else pa_log_debug("Not restoring volume for source %s, because already set.", new_data->name); } - if (u->restore_muted) { + if (u->restore_muted && e->muted_valid) { if (!new_data->muted_is_set) { pa_log_info("Restoring mute state for source %s.", new_data->name); pa_source_new_data_set_muted(new_data, e->muted); + new_data->save_muted = TRUE; } else pa_log_debug("Not restoring mute state for source %s, because already set.", new_data->name); } @@ -316,7 +449,7 @@ int pa__init(pa_module*m) { pa_sink *sink; pa_source *source; uint32_t idx; - pa_bool_t restore_volume = TRUE, restore_muted = TRUE; + pa_bool_t restore_volume = TRUE, restore_muted = TRUE, restore_port = TRUE; pa_assert(m); @@ -326,24 +459,29 @@ int pa__init(pa_module*m) { } if (pa_modargs_get_value_boolean(ma, "restore_volume", &restore_volume) < 0 || - pa_modargs_get_value_boolean(ma, "restore_muted", &restore_muted) < 0) { - pa_log("restore_volume= and restore_muted= expect boolean arguments"); + pa_modargs_get_value_boolean(ma, "restore_muted", &restore_muted) < 0 || + pa_modargs_get_value_boolean(ma, "restore_port", &restore_port) < 0) { + pa_log("restore_port=, restore_volume= and restore_muted= expect boolean arguments"); goto fail; } - if (!restore_muted && !restore_volume) - pa_log_warn("Neither restoring volume nor restoring muted enabled!"); + if (!restore_muted && !restore_volume && !restore_port) + pa_log_warn("Neither restoring volume, nor restoring muted, nor restoring port enabled!"); - m->userdata = u = pa_xnew(struct userdata, 1); + m->userdata = u = pa_xnew0(struct userdata, 1); u->core = m->core; u->module = m; - u->save_time_event = NULL; u->restore_volume = restore_volume; u->restore_muted = restore_muted; - u->database = NULL; + u->restore_port = restore_port; u->subscription = pa_subscription_new(m->core, PA_SUBSCRIPTION_MASK_SINK|PA_SUBSCRIPTION_MASK_SOURCE, subscribe_callback, u); + if (restore_port) { + u->sink_new_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SINK_NEW], PA_HOOK_EARLY, (pa_hook_cb_t) sink_new_hook_callback, u); + u->source_new_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SOURCE_NEW], PA_HOOK_EARLY, (pa_hook_cb_t) source_new_hook_callback, u); + } + if (restore_muted || restore_volume) { u->sink_fixate_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SINK_FIXATE], PA_HOOK_EARLY, (pa_hook_cb_t) sink_fixate_hook_callback, u); u->source_fixate_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SOURCE_FIXATE], PA_HOOK_EARLY, (pa_hook_cb_t) source_fixate_hook_callback, u); @@ -394,6 +532,10 @@ void pa__done(pa_module*m) { pa_hook_slot_free(u->sink_fixate_hook_slot); if (u->source_fixate_hook_slot) pa_hook_slot_free(u->source_fixate_hook_slot); + if (u->sink_new_hook_slot) + pa_hook_slot_free(u->sink_new_hook_slot); + if (u->source_new_hook_slot) + pa_hook_slot_free(u->source_new_hook_slot); if (u->save_time_event) u->core->mainloop->time_free(u->save_time_event); diff --git a/src/modules/module-esound-sink.c b/src/modules/module-esound-sink.c index 8cb25c51..d7c678ca 100644 --- a/src/modules/module-esound-sink.c +++ b/src/modules/module-esound-sink.c @@ -41,13 +41,15 @@ #include <linux/sockios.h> #endif -#include <pulse/xmalloc.h> +#include <pulse/rtclock.h> #include <pulse/timeval.h> +#include <pulse/xmalloc.h> #include <pulsecore/core-error.h> #include <pulsecore/iochannel.h> #include <pulsecore/sink.h> #include <pulsecore/module.h> +#include <pulsecore/core-rtclock.h> #include <pulsecore/core-util.h> #include <pulsecore/modargs.h> #include <pulsecore/log.h> @@ -57,7 +59,6 @@ #include <pulsecore/thread-mq.h> #include <pulsecore/thread.h> #include <pulsecore/time-smoother.h> -#include <pulsecore/rtclock.h> #include <pulsecore/socket-util.h> #include "module-esound-sink-symdef.h" @@ -145,14 +146,14 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse case PA_SINK_SUSPENDED: pa_assert(PA_SINK_IS_OPENED(u->sink->thread_info.state)); - pa_smoother_pause(u->smoother, pa_rtclock_usec()); + pa_smoother_pause(u->smoother, pa_rtclock_now()); break; case PA_SINK_IDLE: case PA_SINK_RUNNING: if (u->sink->thread_info.state == PA_SINK_SUSPENDED) - pa_smoother_resume(u->smoother, pa_rtclock_usec(), TRUE); + pa_smoother_resume(u->smoother, pa_rtclock_now(), TRUE); break; @@ -167,7 +168,7 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse case PA_SINK_MESSAGE_GET_LATENCY: { pa_usec_t w, r; - r = pa_smoother_get(u->smoother, pa_rtclock_usec()); + r = pa_smoother_get(u->smoother, pa_rtclock_now()); w = pa_bytes_to_usec((uint64_t) u->offset + u->memchunk.length, &u->sink->sample_spec); *((pa_usec_t*) data) = w > r ? w - r : 0; @@ -200,9 +201,8 @@ static void thread_func(void *userdata) { pa_log_debug("Thread starting up"); pa_thread_mq_install(&u->thread_mq); - pa_rtpoll_install(u->rtpoll); - pa_smoother_set_time_offset(u->smoother, pa_rtclock_usec()); + pa_smoother_set_time_offset(u->smoother, pa_rtclock_now()); for (;;) { int ret; @@ -295,7 +295,7 @@ static void thread_func(void *userdata) { else usec = 0; - pa_smoother_put(u->smoother, pa_rtclock_usec(), usec); + pa_smoother_put(u->smoother, pa_rtclock_now(), usec); } /* Hmm, nothing to do. Let's sleep */ @@ -608,7 +608,7 @@ int pa__init(pa_module*m) { pa_sink_set_asyncmsgq(u->sink, u->thread_mq.inq); pa_sink_set_rtpoll(u->sink, u->rtpoll); - if (!(u->client = pa_socket_client_new_string(u->core->mainloop, espeaker, ESD_DEFAULT_PORT))) { + if (!(u->client = pa_socket_client_new_string(u->core->mainloop, TRUE, espeaker, ESD_DEFAULT_PORT))) { pa_log("Failed to connect to server."); goto fail; } diff --git a/src/modules/module-hal-detect.c b/src/modules/module-hal-detect.c index b6139e43..658b3e55 100644 --- a/src/modules/module-hal-detect.c +++ b/src/modules/module-hal-detect.c @@ -64,6 +64,7 @@ PA_MODULE_USAGE("api=<alsa> " #elif defined(HAVE_OSS) PA_MODULE_USAGE("api=<oss>"); #endif +PA_MODULE_DEPRECATED("Please use module-udev-detect instead of module-hal-detect!"); struct device { char *udi, *originating_udi; @@ -232,7 +233,7 @@ static int hal_device_load_alsa(struct userdata *u, const char *udi, struct devi goto fail; card_name = pa_sprintf_malloc("alsa_card.%s", strip_udi(originating_udi)); - args = pa_sprintf_malloc("device_id=%u name=%s card_name=%s tsched=%i", card, strip_udi(originating_udi), card_name, (int) u->use_tsched); + args = pa_sprintf_malloc("device_id=%u name=\"%s\" card_name=\"%s\" tsched=%i card_properties=\"module-hal-detect.discovered=1\"", card, strip_udi(originating_udi), card_name, (int) u->use_tsched); pa_log_debug("Loading module-alsa-card with arguments '%s'", args); m = pa_module_load(u->core, "module-alsa-card", args); @@ -567,7 +568,7 @@ static DBusHandlerResult filter_cb(DBusConnection *bus, DBusMessage *message, vo pa_sink *sink; if ((sink = pa_namereg_get(u->core, d->sink_name, PA_NAMEREG_SINK))) { - pa_bool_t success = pa_sink_suspend(sink, suspend) >= 0; + pa_bool_t success = pa_sink_suspend(sink, suspend, PA_SUSPEND_SESSION) >= 0; if (!success && !suspend) d->acl_race_fix = TRUE; /* resume failed, let's try again */ @@ -580,7 +581,7 @@ static DBusHandlerResult filter_cb(DBusConnection *bus, DBusMessage *message, vo pa_source *source; if ((source = pa_namereg_get(u->core, d->source_name, PA_NAMEREG_SOURCE))) { - pa_bool_t success = pa_source_suspend(source, suspend) >= 0; + pa_bool_t success = pa_source_suspend(source, suspend, PA_SUSPEND_SESSION) >= 0; if (!success && !suspend) d->acl_race_fix = TRUE; /* resume failed, let's try again */ @@ -593,7 +594,7 @@ static DBusHandlerResult filter_cb(DBusConnection *bus, DBusMessage *message, vo pa_card *card; if ((card = pa_namereg_get(u->core, d->card_name, PA_NAMEREG_CARD))) { - pa_bool_t success = pa_card_suspend(card, suspend) >= 0; + pa_bool_t success = pa_card_suspend(card, suspend, PA_SUSPEND_SESSION) >= 0; if (!success && !suspend) d->acl_race_fix = TRUE; /* resume failed, let's try again */ @@ -637,21 +638,21 @@ static DBusHandlerResult filter_cb(DBusConnection *bus, DBusMessage *message, vo pa_sink *sink; if ((sink = pa_namereg_get(u->core, d->sink_name, PA_NAMEREG_SINK))) - pa_sink_suspend(sink, FALSE); + pa_sink_suspend(sink, FALSE, PA_SUSPEND_SESSION); } if (d->source_name) { pa_source *source; if ((source = pa_namereg_get(u->core, d->source_name, PA_NAMEREG_SOURCE))) - pa_source_suspend(source, FALSE); + pa_source_suspend(source, FALSE, PA_SUSPEND_SESSION); } if (d->card_name) { pa_card *card; if ((card = pa_namereg_get(u->core, d->source_name, PA_NAMEREG_CARD))) - pa_card_suspend(card, FALSE); + pa_card_suspend(card, FALSE, PA_SUSPEND_SESSION); } } diff --git a/src/modules/module-intended-roles.c b/src/modules/module-intended-roles.c new file mode 100644 index 00000000..c697209a --- /dev/null +++ b/src/modules/module-intended-roles.c @@ -0,0 +1,428 @@ +/*** + This file is part of PulseAudio. + + Copyright 2009 Lennart Poettering + + PulseAudio is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 2.1 of the License, + or (at your option) any later version. + + PulseAudio is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with PulseAudio; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + USA. +***/ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <pulse/xmalloc.h> +#include <pulse/volume.h> +#include <pulse/timeval.h> +#include <pulse/util.h> + +#include <pulsecore/core-error.h> +#include <pulsecore/module.h> +#include <pulsecore/core-util.h> +#include <pulsecore/modargs.h> +#include <pulsecore/log.h> +#include <pulsecore/core-subscribe.h> +#include <pulsecore/sink-input.h> +#include <pulsecore/source-output.h> +#include <pulsecore/namereg.h> + +#include "module-intended-roles-symdef.h" + +PA_MODULE_AUTHOR("Lennart Poettering"); +PA_MODULE_DESCRIPTION("Automatically set device of streams based of intended roles of devices"); +PA_MODULE_VERSION(PACKAGE_VERSION); +PA_MODULE_LOAD_ONCE(TRUE); +PA_MODULE_USAGE( + "on_hotplug=<When new device becomes available, recheck streams?> " + "on_rescue=<When device becomes unavailable, recheck streams?>"); + +static const char* const valid_modargs[] = { + "on_hotplug", + "on_rescue", + NULL +}; + +struct userdata { + pa_core *core; + pa_module *module; + + pa_hook_slot + *sink_input_new_hook_slot, + *source_output_new_hook_slot, + *sink_put_hook_slot, + *source_put_hook_slot, + *sink_unlink_hook_slot, + *source_unlink_hook_slot; + + pa_bool_t on_hotplug:1; + pa_bool_t on_rescue:1; +}; + +static pa_bool_t role_match(pa_proplist *proplist, const char *role) { + const char *ir; + char *r; + const char *state = NULL; + + if (!(ir = pa_proplist_gets(proplist, PA_PROP_DEVICE_INTENDED_ROLES))) + return FALSE; + + while ((r = pa_split_spaces(ir, &state))) { + + if (pa_streq(role, r)) { + pa_xfree(r); + return TRUE; + } + + pa_xfree(r); + } + + return FALSE; +} + +static pa_hook_result_t sink_input_new_hook_callback(pa_core *c, pa_sink_input_new_data *new_data, struct userdata *u) { + const char *role; + pa_sink *s, *def; + uint32_t idx; + + pa_assert(c); + pa_assert(new_data); + pa_assert(u); + + if (!new_data->proplist) { + pa_log_debug("New stream lacks property data."); + return PA_HOOK_OK; + } + + if (new_data->sink) { + pa_log_debug("Not setting device for stream %s, because already set.", pa_strnull(pa_proplist_gets(new_data->proplist, PA_PROP_MEDIA_NAME))); + return PA_HOOK_OK; + } + + if (!(role = pa_proplist_gets(new_data->proplist, PA_PROP_MEDIA_ROLE))) { + pa_log_debug("Not setting device for stream %s, because it lacks role.", pa_strnull(pa_proplist_gets(new_data->proplist, PA_PROP_MEDIA_NAME))); + return PA_HOOK_OK; + } + + /* Prefer the default sink over any other sink, just in case... */ + if ((def = pa_namereg_get_default_sink(c))) + if (role_match(def->proplist, role)) { + new_data->sink = def; + new_data->save_sink = FALSE; + return PA_HOOK_OK; + } + + PA_IDXSET_FOREACH(s, c->sinks, idx) { + if (s == def) + continue; + + if (role_match(s->proplist, role)) { + new_data->sink = s; + new_data->save_sink = FALSE; + return PA_HOOK_OK; + } + } + + return PA_HOOK_OK; +} + +static pa_hook_result_t source_output_new_hook_callback(pa_core *c, pa_source_output_new_data *new_data, struct userdata *u) { + const char *role; + pa_source *s, *def; + uint32_t idx; + + pa_assert(c); + pa_assert(new_data); + pa_assert(u); + + if (!new_data->proplist) { + pa_log_debug("New stream lacks property data."); + return PA_HOOK_OK; + } + + if (new_data->source) { + pa_log_debug("Not setting device for stream %s, because already set.", pa_strnull(pa_proplist_gets(new_data->proplist, PA_PROP_MEDIA_NAME))); + return PA_HOOK_OK; + } + + if (!(role = pa_proplist_gets(new_data->proplist, PA_PROP_MEDIA_ROLE))) { + pa_log_debug("Not setting device for stream %s, because it lacks role.", pa_strnull(pa_proplist_gets(new_data->proplist, PA_PROP_MEDIA_NAME))); + return PA_HOOK_OK; + } + + /* Prefer the default source over any other source, just in case... */ + if ((def = pa_namereg_get_default_source(c))) + if (role_match(def->proplist, role)) { + new_data->source = def; + new_data->save_source = FALSE; + return PA_HOOK_OK; + } + + PA_IDXSET_FOREACH(s, c->sources, idx) { + if (s == def) + continue; + + if (role_match(s->proplist, role)) { + new_data->source = s; + new_data->save_source = FALSE; + return PA_HOOK_OK; + } + } + + return PA_HOOK_OK; +} + +static pa_hook_result_t sink_put_hook_callback(pa_core *c, pa_sink *sink, struct userdata *u) { + pa_sink_input *si; + uint32_t idx; + + pa_assert(c); + pa_assert(sink); + pa_assert(u); + pa_assert(u->on_hotplug); + + PA_IDXSET_FOREACH(si, c->sink_inputs, idx) { + const char *role; + + if (si->sink == sink) + continue; + + if (si->save_sink) + continue; + + if (!(role = pa_proplist_gets(si->proplist, PA_PROP_MEDIA_ROLE))) + continue; + + if (role_match(si->sink->proplist, role)) + continue; + + if (!role_match(sink->proplist, role)) + continue; + + pa_sink_input_move_to(si, sink, FALSE); + } + + return PA_HOOK_OK; +} + +static pa_hook_result_t source_put_hook_callback(pa_core *c, pa_source *source, struct userdata *u) { + pa_source_output *so; + uint32_t idx; + + pa_assert(c); + pa_assert(source); + pa_assert(u); + pa_assert(u->on_hotplug); + + PA_IDXSET_FOREACH(so, c->source_outputs, idx) { + const char *role; + + if (so->source == source) + continue; + + if (so->save_source) + continue; + + if (so->direct_on_input) + continue; + + if (!(role = pa_proplist_gets(so->proplist, PA_PROP_MEDIA_ROLE))) + continue; + + if (role_match(so->source->proplist, role)) + continue; + + if (!role_match(source->proplist, role)) + continue; + + pa_source_output_move_to(so, source, FALSE); + } + + return PA_HOOK_OK; +} + +static pa_hook_result_t sink_unlink_hook_callback(pa_core *c, pa_sink *sink, struct userdata *u) { + pa_sink_input *si; + uint32_t idx; + pa_sink *def; + + pa_assert(c); + pa_assert(sink); + pa_assert(u); + pa_assert(u->on_rescue); + + /* There's no point in doing anything if the core is shut down anyway */ + if (c->state == PA_CORE_SHUTDOWN) + return PA_HOOK_OK; + + /* If there not default sink, then there is no sink at all */ + if (!(def = pa_namereg_get_default_sink(c))) + return PA_HOOK_OK; + + PA_IDXSET_FOREACH(si, sink->inputs, idx) { + const char *role; + uint32_t jdx; + pa_sink *d; + + if (!(role = pa_proplist_gets(si->proplist, PA_PROP_MEDIA_ROLE))) + continue; + + /* Would the default sink fit? If so, let's use it */ + if (def != sink && role_match(def->proplist, role)) { + pa_sink_input_move_to(si, def, FALSE); + continue; + } + + /* Try to find some other fitting sink */ + PA_IDXSET_FOREACH(d, c->sinks, jdx) { + if (d == def || d == sink) + continue; + + if (role_match(d->proplist, role)) { + pa_sink_input_move_to(si, d, FALSE); + break; + } + } + } + + return PA_HOOK_OK; +} + +static pa_hook_result_t source_unlink_hook_callback(pa_core *c, pa_source *source, struct userdata *u) { + pa_source_output *so; + uint32_t idx; + pa_source *def; + + pa_assert(c); + pa_assert(source); + pa_assert(u); + pa_assert(u->on_rescue); + + /* There's no point in doing anything if the core is shut down anyway */ + if (c->state == PA_CORE_SHUTDOWN) + return PA_HOOK_OK; + + /* If there not default source, then there is no source at all */ + if (!(def = pa_namereg_get_default_source(c))) + return PA_HOOK_OK; + + PA_IDXSET_FOREACH(so, source->outputs, idx) { + const char *role; + uint32_t jdx; + pa_source *d; + + if (so->direct_on_input) + continue; + + if (!(role = pa_proplist_gets(so->proplist, PA_PROP_MEDIA_ROLE))) + continue; + + /* Would the default source fit? If so, let's use it */ + if (def != source && role_match(def->proplist, role) && !source->monitor_of == !def->monitor_of) { + pa_source_output_move_to(so, def, FALSE); + continue; + } + + /* Try to find some other fitting source */ + PA_IDXSET_FOREACH(d, c->sources, jdx) { + if (d == def || d == source) + continue; + + if (role_match(d->proplist, role) && !source->monitor_of == !d->monitor_of) { + pa_source_output_move_to(so, d, FALSE); + break; + } + } + } + + return PA_HOOK_OK; +} + +int pa__init(pa_module*m) { + pa_modargs *ma = NULL; + struct userdata *u; + pa_bool_t on_hotplug = TRUE, on_rescue = TRUE; + + pa_assert(m); + + if (!(ma = pa_modargs_new(m->argument, valid_modargs))) { + pa_log("Failed to parse module arguments"); + goto fail; + } + + if (pa_modargs_get_value_boolean(ma, "on_hotplug", &on_hotplug) < 0 || + pa_modargs_get_value_boolean(ma, "on_rescue", &on_rescue) < 0) { + pa_log("on_hotplug= and on_rescue= expect boolean arguments"); + goto fail; + } + + m->userdata = u = pa_xnew0(struct userdata, 1); + u->core = m->core; + u->module = m; + u->on_hotplug = on_hotplug; + u->on_rescue = on_rescue; + + /* A little bit later than module-stream-restore */ + u->sink_input_new_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SINK_INPUT_NEW], PA_HOOK_EARLY+10, (pa_hook_cb_t) sink_input_new_hook_callback, u); + u->source_output_new_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SOURCE_OUTPUT_NEW], PA_HOOK_EARLY+10, (pa_hook_cb_t) source_output_new_hook_callback, u); + + if (on_hotplug) { + /* A little bit later than module-stream-restore */ + u->sink_put_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SINK_PUT], PA_HOOK_LATE+10, (pa_hook_cb_t) sink_put_hook_callback, u); + u->source_put_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SOURCE_PUT], PA_HOOK_LATE+10, (pa_hook_cb_t) source_put_hook_callback, u); + } + + if (on_rescue) { + /* A little bit later than module-stream-restore, a little bit earlier than module-rescue-streams, ... */ + u->sink_unlink_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SINK_UNLINK], PA_HOOK_LATE+10, (pa_hook_cb_t) sink_unlink_hook_callback, u); + u->source_unlink_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SOURCE_UNLINK], PA_HOOK_LATE+10, (pa_hook_cb_t) source_unlink_hook_callback, u); + } + + pa_modargs_free(ma); + return 0; + +fail: + pa__done(m); + + if (ma) + pa_modargs_free(ma); + + return -1; +} + +void pa__done(pa_module*m) { + struct userdata* u; + + pa_assert(m); + + if (!(u = m->userdata)) + return; + + if (u->sink_input_new_hook_slot) + pa_hook_slot_free(u->sink_input_new_hook_slot); + if (u->source_output_new_hook_slot) + pa_hook_slot_free(u->source_output_new_hook_slot); + + if (u->sink_put_hook_slot) + pa_hook_slot_free(u->sink_put_hook_slot); + if (u->source_put_hook_slot) + pa_hook_slot_free(u->source_put_hook_slot); + + if (u->sink_unlink_hook_slot) + pa_hook_slot_free(u->sink_unlink_hook_slot); + if (u->source_unlink_hook_slot) + pa_hook_slot_free(u->source_unlink_hook_slot); + + pa_xfree(u); +} diff --git a/src/modules/module-ladspa-sink.c b/src/modules/module-ladspa-sink.c index 15af74a6..21f4a8f1 100644 --- a/src/modules/module-ladspa-sink.c +++ b/src/modules/module-ladspa-sink.c @@ -27,6 +27,7 @@ #endif #include <pulse/xmalloc.h> +#include <pulse/i18n.h> #include <pulsecore/core-error.h> #include <pulsecore/namereg.h> @@ -45,20 +46,20 @@ #include "ladspa.h" PA_MODULE_AUTHOR("Lennart Poettering"); -PA_MODULE_DESCRIPTION("Virtual LADSPA sink"); +PA_MODULE_DESCRIPTION(_("Virtual LADSPA sink")); PA_MODULE_VERSION(PACKAGE_VERSION); PA_MODULE_LOAD_ONCE(FALSE); PA_MODULE_USAGE( - "sink_name=<name for the sink> " - "sink_properties=<properties for the sink> " - "master=<name of sink to remap> " - "format=<sample format> " - "rate=<sample rate> " - "channels=<number of channels> " - "channel_map=<channel map> " - "plugin=<ladspa plugin name> " - "label=<ladspa plugin label> " - "control=<comma seperated list of input control values>"); + _("sink_name=<name for the sink> " + "sink_properties=<properties for the sink> " + "master=<name of sink to filter> " + "format=<sample format> " + "rate=<sample rate> " + "channels=<number of channels> " + "channel_map=<channel map> " + "plugin=<ladspa plugin name> " + "label=<ladspa plugin label> " + "control=<comma seperated list of input control values>")); #define MEMBLOCKQ_MAXLENGTH (16*1024*1024) diff --git a/src/modules/module-lirc.c b/src/modules/module-lirc.c index a1a8726f..06efeb8f 100644 --- a/src/modules/module-lirc.c +++ b/src/modules/module-lirc.c @@ -112,7 +112,7 @@ static void io_callback(pa_mainloop_api *io, pa_io_event *e, int fd, pa_io_event volchange = RESET; if (volchange == INVALID) - pa_log_warn("Recieved unknown IR code '%s'", name); + pa_log_warn("Received unknown IR code '%s'", name); else { pa_sink *s; @@ -133,7 +133,7 @@ static void io_callback(pa_mainloop_api *io, pa_io_event *e, int fd, pa_io_event cv.values[i] = PA_VOLUME_MAX; } - pa_sink_set_volume(s, &cv, TRUE, TRUE, TRUE); + pa_sink_set_volume(s, &cv, TRUE, TRUE, TRUE, TRUE); break; case DOWN: @@ -144,20 +144,20 @@ static void io_callback(pa_mainloop_api *io, pa_io_event *e, int fd, pa_io_event cv.values[i] = PA_VOLUME_MUTED; } - pa_sink_set_volume(s, &cv, TRUE, TRUE, TRUE); + pa_sink_set_volume(s, &cv, TRUE, TRUE, TRUE, TRUE); break; case MUTE: - pa_sink_set_mute(s, TRUE); + pa_sink_set_mute(s, TRUE, TRUE); break; case RESET: - pa_sink_set_mute(s, FALSE); + pa_sink_set_mute(s, FALSE, TRUE); break; case MUTE_TOGGLE: - pa_sink_set_mute(s, !pa_sink_get_mute(s, FALSE)); + pa_sink_set_mute(s, !pa_sink_get_mute(s, FALSE), TRUE); break; case INVALID: diff --git a/src/modules/module-mmkbd-evdev.c b/src/modules/module-mmkbd-evdev.c index d8b9c79e..b30fae51 100644 --- a/src/modules/module-mmkbd-evdev.c +++ b/src/modules/module-mmkbd-evdev.c @@ -115,7 +115,7 @@ static void io_callback(pa_mainloop_api *io, pa_io_event *e, int fd, pa_io_event cv.values[i] = PA_VOLUME_MAX; } - pa_sink_set_volume(s, &cv, TRUE, TRUE, TRUE); + pa_sink_set_volume(s, &cv, TRUE, TRUE, TRUE, TRUE); break; case DOWN: @@ -126,12 +126,12 @@ static void io_callback(pa_mainloop_api *io, pa_io_event *e, int fd, pa_io_event cv.values[i] = PA_VOLUME_MUTED; } - pa_sink_set_volume(s, &cv, TRUE, TRUE, TRUE); + pa_sink_set_volume(s, &cv, TRUE, TRUE, TRUE, TRUE); break; case MUTE_TOGGLE: - pa_sink_set_mute(s, !pa_sink_get_mute(s, FALSE)); + pa_sink_set_mute(s, !pa_sink_get_mute(s, FALSE), TRUE); break; case INVALID: diff --git a/src/modules/module-null-sink.c b/src/modules/module-null-sink.c index 30a99ca7..36c50b05 100644 --- a/src/modules/module-null-sink.c +++ b/src/modules/module-null-sink.c @@ -32,12 +32,14 @@ #include <unistd.h> #include <limits.h> +#include <pulse/rtclock.h> #include <pulse/timeval.h> #include <pulse/xmalloc.h> #include <pulsecore/macro.h> #include <pulsecore/sink.h> #include <pulsecore/module.h> +#include <pulsecore/core-rtclock.h> #include <pulsecore/core-util.h> #include <pulsecore/core-error.h> #include <pulsecore/modargs.h> @@ -45,7 +47,6 @@ #include <pulsecore/thread.h> #include <pulsecore/thread-mq.h> #include <pulsecore/rtpoll.h> -#include <pulsecore/rtclock.h> #include "module-null-sink-symdef.h" @@ -101,14 +102,14 @@ static int sink_process_msg( case PA_SINK_MESSAGE_SET_STATE: if (PA_PTR_TO_UINT(data) == PA_SINK_RUNNING) - u->timestamp = pa_rtclock_usec(); + u->timestamp = pa_rtclock_now(); break; case PA_SINK_MESSAGE_GET_LATENCY: { pa_usec_t now; - now = pa_rtclock_usec(); + now = pa_rtclock_now(); *((pa_usec_t*) data) = u->timestamp > now ? u->timestamp - now : 0ULL; return 0; @@ -208,9 +209,8 @@ static void thread_func(void *userdata) { pa_log_debug("Thread starting up"); pa_thread_mq_install(&u->thread_mq); - pa_rtpoll_install(u->rtpoll); - u->timestamp = pa_rtclock_usec(); + u->timestamp = pa_rtclock_now(); for (;;) { int ret; @@ -219,7 +219,7 @@ static void thread_func(void *userdata) { if (PA_SINK_IS_OPENED(u->sink->thread_info.state)) { pa_usec_t now; - now = pa_rtclock_usec(); + now = pa_rtclock_now(); if (u->sink->thread_info.rewind_requested) { if (u->sink->thread_info.rewind_nbytes > 0) diff --git a/src/modules/module-pipe-sink.c b/src/modules/module-pipe-sink.c index 5b0f6414..8a7dc846 100644 --- a/src/modules/module-pipe-sink.c +++ b/src/modules/module-pipe-sink.c @@ -170,7 +170,6 @@ static void thread_func(void *userdata) { pa_log_debug("Thread starting up"); pa_thread_mq_install(&u->thread_mq); - pa_rtpoll_install(u->rtpoll); for (;;) { struct pollfd *pollfd; diff --git a/src/modules/module-pipe-source.c b/src/modules/module-pipe-source.c index 61c9fc0e..e5609fb5 100644 --- a/src/modules/module-pipe-source.c +++ b/src/modules/module-pipe-source.c @@ -129,7 +129,6 @@ static void thread_func(void *userdata) { pa_log_debug("Thread starting up"); pa_thread_mq_install(&u->thread_mq); - pa_rtpoll_install(u->rtpoll); for (;;) { int ret; diff --git a/src/modules/module-rescue-streams.c b/src/modules/module-rescue-streams.c index c22711ae..c23feceb 100644 --- a/src/modules/module-rescue-streams.c +++ b/src/modules/module-rescue-streams.c @@ -65,14 +65,14 @@ static pa_hook_result_t sink_hook_callback(pa_core *c, pa_sink *sink, void* user return PA_HOOK_OK; } - if (!(target = pa_namereg_get(c, NULL, PA_NAMEREG_SINK)) || target == sink) { + if (!(target = pa_namereg_get_default_sink(c)) || target == sink) { PA_IDXSET_FOREACH(target, c->sinks, idx) if (target != sink) break; if (!target) { - pa_log_info("No evacuation sink found."); + pa_log_debug("No evacuation sink found."); return PA_HOOK_OK; } } @@ -108,7 +108,7 @@ static pa_hook_result_t source_hook_callback(pa_core *c, pa_source *source, void return PA_HOOK_OK; } - if (!(target = pa_namereg_get(c, NULL, PA_NAMEREG_SOURCE)) || target == source) { + if (!(target = pa_namereg_get_default_source(c)) || target == source) { PA_IDXSET_FOREACH(target, c->sources, idx) if (target != source && !target->monitor_of == !source->monitor_of) @@ -146,8 +146,10 @@ int pa__init(pa_module*m) { } m->userdata = u = pa_xnew(struct userdata, 1); - u->sink_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SINK_UNLINK], PA_HOOK_LATE, (pa_hook_cb_t) sink_hook_callback, NULL); - u->source_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SOURCE_UNLINK], PA_HOOK_LATE, (pa_hook_cb_t) source_hook_callback, NULL); + + /* A little bit later than module-stream-restore, module-intended-roles... */ + u->sink_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SINK_UNLINK], PA_HOOK_LATE+20, (pa_hook_cb_t) sink_hook_callback, u); + u->source_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SOURCE_UNLINK], PA_HOOK_LATE+20, (pa_hook_cb_t) source_hook_callback, u); pa_modargs_free(ma); return 0; diff --git a/src/modules/module-sine-source.c b/src/modules/module-sine-source.c index 14a04e47..9826e5f4 100644 --- a/src/modules/module-sine-source.c +++ b/src/modules/module-sine-source.c @@ -34,19 +34,20 @@ #include <sys/ioctl.h> #include <sys/poll.h> -#include <pulse/xmalloc.h> +#include <pulse/rtclock.h> #include <pulse/timeval.h> +#include <pulse/xmalloc.h> #include <pulsecore/core-error.h> #include <pulsecore/source.h> #include <pulsecore/module.h> +#include <pulsecore/core-rtclock.h> #include <pulsecore/core-util.h> #include <pulsecore/modargs.h> #include <pulsecore/log.h> #include <pulsecore/thread.h> #include <pulsecore/thread-mq.h> #include <pulsecore/rtpoll.h> -#include <pulsecore/rtclock.h> #include "module-sine-source-symdef.h" @@ -101,14 +102,14 @@ static int source_process_msg( case PA_SOURCE_MESSAGE_SET_STATE: if (PA_PTR_TO_UINT(data) == PA_SOURCE_RUNNING) - u->timestamp = pa_rtclock_usec(); + u->timestamp = pa_rtclock_now(); break; case PA_SOURCE_MESSAGE_GET_LATENCY: { pa_usec_t now, left_to_fill; - now = pa_rtclock_usec(); + now = pa_rtclock_now(); left_to_fill = u->timestamp > now ? u->timestamp - now : 0ULL; *((pa_usec_t*) data) = u->block_usec > left_to_fill ? u->block_usec - left_to_fill : 0ULL; @@ -166,9 +167,8 @@ static void thread_func(void *userdata) { pa_log_debug("Thread starting up"); pa_thread_mq_install(&u->thread_mq); - pa_rtpoll_install(u->rtpoll); - u->timestamp = pa_rtclock_usec(); + u->timestamp = pa_rtclock_now(); for (;;) { int ret; @@ -176,7 +176,7 @@ static void thread_func(void *userdata) { if (PA_SOURCE_IS_OPENED(u->source->thread_info.state)) { pa_usec_t now; - now = pa_rtclock_usec(); + now = pa_rtclock_now(); if (u->timestamp <= now) process_render(u, now); diff --git a/src/modules/module-solaris.c b/src/modules/module-solaris.c index 5cfa97a7..08fe6f58 100644 --- a/src/modules/module-solaris.c +++ b/src/modules/module-solaris.c @@ -641,7 +641,7 @@ static void thread_func(void *userdata) { * Since we cannot modify the size of the output buffer we fake it * by not filling it more than u->buffer_size. */ - xtime0 = pa_rtclock_usec(); + xtime0 = pa_rtclock_now(); buffered_bytes = get_playback_buffered_bytes(u); if (buffered_bytes >= (uint64_t)u->buffer_size) break; diff --git a/src/modules/module-stream-restore.c b/src/modules/module-stream-restore.c index 2de98f4e..e60cc735 100644 --- a/src/modules/module-stream-restore.c +++ b/src/modules/module-stream-restore.c @@ -35,6 +35,7 @@ #include <pulse/volume.h> #include <pulse/timeval.h> #include <pulse/util.h> +#include <pulse/rtclock.h> #include <pulsecore/core-error.h> #include <pulsecore/module.h> @@ -59,15 +60,19 @@ PA_MODULE_LOAD_ONCE(TRUE); PA_MODULE_USAGE( "restore_device=<Save/restore sinks/sources?> " "restore_volume=<Save/restore volumes?> " - "restore_muted=<Save/restore muted states?>"); + "restore_muted=<Save/restore muted states?> " + "on_hotplug=<When new device becomes available, recheck streams?> " + "on_rescue=<When device becomes unavailable, recheck streams?>"); -#define SAVE_INTERVAL 10 +#define SAVE_INTERVAL (10 * PA_USEC_PER_SEC) #define IDENTIFICATION_PROPERTY "module-stream-restore.id" static const char* const valid_modargs[] = { "restore_device", "restore_volume", "restore_muted", + "on_hotplug", + "on_rescue", NULL }; @@ -79,6 +84,10 @@ struct userdata { *sink_input_new_hook_slot, *sink_input_fixate_hook_slot, *source_output_new_hook_slot, + *sink_put_hook_slot, + *source_put_hook_slot, + *sink_unlink_hook_slot, + *source_unlink_hook_slot, *connection_unlink_hook_slot; pa_time_event *save_time_event; pa_database* database; @@ -86,6 +95,8 @@ struct userdata { pa_bool_t restore_device:1; pa_bool_t restore_volume:1; pa_bool_t restore_muted:1; + pa_bool_t on_hotplug:1; + pa_bool_t on_rescue:1; pa_native_protocol *protocol; pa_idxset *subscribed; @@ -111,12 +122,11 @@ enum { SUBCOMMAND_EVENT }; -static void save_time_callback(pa_mainloop_api*a, pa_time_event* e, const struct timeval *tv, void *userdata) { +static void save_time_callback(pa_mainloop_api*a, pa_time_event* e, const struct timeval *t, void *userdata) { struct userdata *u = userdata; pa_assert(a); pa_assert(e); - pa_assert(tv); pa_assert(u); pa_assert(e == u->save_time_event); @@ -210,7 +220,6 @@ fail: } static void trigger_save(struct userdata *u) { - struct timeval tv; pa_native_connection *c; uint32_t idx; @@ -230,9 +239,7 @@ static void trigger_save(struct userdata *u) { if (u->save_time_event) return; - pa_gettimeofday(&tv); - tv.tv_sec += SAVE_INTERVAL; - u->save_time_event = u->core->mainloop->time_new(u->core->mainloop, &tv, save_time_callback, u); + u->save_time_event = pa_core_rttime_new(u->core, pa_rtclock_now() + SAVE_INTERVAL, save_time_callback, u); } static pa_bool_t entries_equal(const struct entry *a, const struct entry *b) { @@ -353,18 +360,18 @@ static pa_hook_result_t sink_input_new_hook_callback(pa_core *c, pa_sink_input_n char *name; struct entry *e; + pa_assert(c); pa_assert(new_data); - - if (!u->restore_device) - return PA_HOOK_OK; + pa_assert(u); + pa_assert(u->restore_device); if (!(name = get_name(new_data->proplist, "sink-input"))) return PA_HOOK_OK; if ((e = read_entry(u, name))) { - pa_sink *s; if (e->device_valid) { + pa_sink *s; if ((s = pa_namereg_get(c, e->device, PA_NAMEREG_SINK))) { if (!new_data->sink) { @@ -372,7 +379,7 @@ static pa_hook_result_t sink_input_new_hook_callback(pa_core *c, pa_sink_input_n new_data->sink = s; new_data->save_sink = TRUE; } else - pa_log_info("Not restore device for stream %s, because already set.", name); + pa_log_debug("Not restoring device for stream %s, because already set.", name); } } @@ -388,10 +395,10 @@ static pa_hook_result_t sink_input_fixate_hook_callback(pa_core *c, pa_sink_inpu char *name; struct entry *e; + pa_assert(c); pa_assert(new_data); - - if (!u->restore_volume && !u->restore_muted) - return PA_HOOK_OK; + pa_assert(u); + pa_assert(u->restore_volume || u->restore_muted); if (!(name = get_name(new_data->proplist, "sink-input"))) return PA_HOOK_OK; @@ -404,12 +411,13 @@ static pa_hook_result_t sink_input_fixate_hook_callback(pa_core *c, pa_sink_inpu pa_cvolume v; pa_log_info("Restoring volume for sink input %s.", name); + v = e->volume; pa_cvolume_remap(&v, &e->channel_map, &new_data->channel_map); pa_sink_input_new_data_set_volume(new_data, &v); new_data->volume_is_absolute = FALSE; - new_data->save_volume = FALSE; + new_data->save_volume = TRUE; } else pa_log_debug("Not restoring volume for sink input %s, because already set.", name); } @@ -436,10 +444,10 @@ static pa_hook_result_t source_output_new_hook_callback(pa_core *c, pa_source_ou char *name; struct entry *e; + pa_assert(c); pa_assert(new_data); - - if (!u->restore_device) - return PA_HOOK_OK; + pa_assert(u); + pa_assert(u->restore_device); if (new_data->direct_on_input) return PA_HOOK_OK; @@ -457,7 +465,7 @@ static pa_hook_result_t source_output_new_hook_callback(pa_core *c, pa_source_ou new_data->source = s; new_data->save_source = TRUE; } else - pa_log_info("Not restoring device for stream %s, because already set", name); + pa_log_debug("Not restoring device for stream %s, because already set", name); } } @@ -469,6 +477,155 @@ static pa_hook_result_t source_output_new_hook_callback(pa_core *c, pa_source_ou return PA_HOOK_OK; } +static pa_hook_result_t sink_put_hook_callback(pa_core *c, pa_sink *sink, struct userdata *u) { + pa_sink_input *si; + uint32_t idx; + + pa_assert(c); + pa_assert(sink); + pa_assert(u); + pa_assert(u->on_hotplug && u->restore_device); + + PA_IDXSET_FOREACH(si, c->sink_inputs, idx) { + char *name; + struct entry *e; + + if (si->sink == sink) + continue; + + if (si->save_sink) + continue; + + if (!(name = get_name(si->proplist, "sink-input"))) + continue; + + if ((e = read_entry(u, name))) { + if (e->device_valid && pa_streq(e->device, sink->name)) + pa_sink_input_move_to(si, sink, TRUE); + + pa_xfree(e); + } + + pa_xfree(name); + } + + return PA_HOOK_OK; +} + +static pa_hook_result_t source_put_hook_callback(pa_core *c, pa_source *source, struct userdata *u) { + pa_source_output *so; + uint32_t idx; + + pa_assert(c); + pa_assert(source); + pa_assert(u); + pa_assert(u->on_hotplug && u->restore_device); + + PA_IDXSET_FOREACH(so, c->source_outputs, idx) { + char *name; + struct entry *e; + + if (so->source == source) + continue; + + if (so->save_source) + continue; + + if (so->direct_on_input) + continue; + + if (!(name = get_name(so->proplist, "source-input"))) + continue; + + if ((e = read_entry(u, name))) { + if (e->device_valid && pa_streq(e->device, source->name)) + pa_source_output_move_to(so, source, TRUE); + + pa_xfree(e); + } + + pa_xfree(name); + } + + return PA_HOOK_OK; +} + +static pa_hook_result_t sink_unlink_hook_callback(pa_core *c, pa_sink *sink, struct userdata *u) { + pa_sink_input *si; + uint32_t idx; + + pa_assert(c); + pa_assert(sink); + pa_assert(u); + pa_assert(u->on_rescue && u->restore_device); + + /* There's no point in doing anything if the core is shut down anyway */ + if (c->state == PA_CORE_SHUTDOWN) + return PA_HOOK_OK; + + PA_IDXSET_FOREACH(si, sink->inputs, idx) { + char *name; + struct entry *e; + + if (!(name = get_name(si->proplist, "sink-input"))) + continue; + + if ((e = read_entry(u, name))) { + + if (e->device_valid) { + pa_sink *d; + + if ((d = pa_namereg_get(c, e->device, PA_NAMEREG_SINK)) && d != sink) + pa_sink_input_move_to(si, d, TRUE); + } + + pa_xfree(e); + } + + pa_xfree(name); + } + + return PA_HOOK_OK; +} + +static pa_hook_result_t source_unlink_hook_callback(pa_core *c, pa_source *source, struct userdata *u) { + pa_source_output *so; + uint32_t idx; + + pa_assert(c); + pa_assert(source); + pa_assert(u); + pa_assert(u->on_rescue && u->restore_device); + + /* There's no point in doing anything if the core is shut down anyway */ + if (c->state == PA_CORE_SHUTDOWN) + return PA_HOOK_OK; + + PA_IDXSET_FOREACH(so, source->outputs, idx) { + char *name; + struct entry *e; + + if (!(name = get_name(so->proplist, "source-output"))) + continue; + + if ((e = read_entry(u, name))) { + + if (e->device_valid) { + pa_source *d; + + if ((d = pa_namereg_get(c, e->device, PA_NAMEREG_SOURCE)) && d != source) + pa_source_output_move_to(so, d, TRUE); + } + + pa_xfree(e); + } + + pa_xfree(name); + } + + return PA_HOOK_OK; +} + #define EXT_VERSION 1 static void apply_entry(struct userdata *u, const char *name, struct entry *e) { @@ -503,7 +660,7 @@ static void apply_entry(struct userdata *u, const char *name, struct entry *e) { 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, TRUE); + pa_sink_input_set_mute(si, e->muted, FALSE); } if (u->restore_device && @@ -511,7 +668,7 @@ 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, TRUE); + pa_sink_input_move_to(si, s, FALSE); } } @@ -533,7 +690,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, TRUE); + pa_source_output_move_to(so, s, FALSE); } } } @@ -774,7 +931,7 @@ int pa__init(pa_module*m) { pa_sink_input *si; pa_source_output *so; uint32_t idx; - pa_bool_t restore_device = TRUE, restore_volume = TRUE, restore_muted = TRUE; + pa_bool_t restore_device = TRUE, restore_volume = TRUE, restore_muted = TRUE, on_hotplug = TRUE, on_rescue = TRUE; pa_assert(m); @@ -785,22 +942,24 @@ int pa__init(pa_module*m) { if (pa_modargs_get_value_boolean(ma, "restore_device", &restore_device) < 0 || pa_modargs_get_value_boolean(ma, "restore_volume", &restore_volume) < 0 || - pa_modargs_get_value_boolean(ma, "restore_muted", &restore_muted) < 0) { - pa_log("restore_device=, restore_volume= and restore_muted= expect boolean arguments"); + pa_modargs_get_value_boolean(ma, "restore_muted", &restore_muted) < 0 || + pa_modargs_get_value_boolean(ma, "on_hotplug", &on_hotplug) < 0 || + pa_modargs_get_value_boolean(ma, "on_rescue", &on_rescue) < 0) { + pa_log("restore_device=, restore_volume=, restore_muted=, on_hotplug= and on_rescue= expect boolean arguments"); goto fail; } if (!restore_muted && !restore_volume && !restore_device) pa_log_warn("Neither restoring volume, nor restoring muted, nor restoring device enabled!"); - m->userdata = u = pa_xnew(struct userdata, 1); + m->userdata = u = pa_xnew0(struct userdata, 1); u->core = m->core; u->module = m; - u->save_time_event = NULL; u->restore_device = restore_device; u->restore_volume = restore_volume; u->restore_muted = restore_muted; - u->database = NULL; + u->on_hotplug = on_hotplug; + u->on_rescue = on_rescue; u->subscribed = pa_idxset_new(pa_idxset_trivial_hash_func, pa_idxset_trivial_compare_func); u->protocol = pa_native_protocol_get(m->core); @@ -811,17 +970,27 @@ int pa__init(pa_module*m) { u->subscription = pa_subscription_new(m->core, PA_SUBSCRIPTION_MASK_SINK_INPUT|PA_SUBSCRIPTION_MASK_SOURCE_OUTPUT, subscribe_callback, u); if (restore_device) { + /* A little bit earlier than module-intended-roles ... */ u->sink_input_new_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SINK_INPUT_NEW], PA_HOOK_EARLY, (pa_hook_cb_t) sink_input_new_hook_callback, u); u->source_output_new_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SOURCE_OUTPUT_NEW], PA_HOOK_EARLY, (pa_hook_cb_t) source_output_new_hook_callback, u); } - if (restore_volume || restore_muted) - u->sink_input_fixate_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SINK_INPUT_FIXATE], PA_HOOK_EARLY, (pa_hook_cb_t) sink_input_fixate_hook_callback, u); + if (restore_device && on_hotplug) { + /* A little bit earlier than module-intended-roles ... */ + u->sink_put_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SINK_PUT], PA_HOOK_LATE, (pa_hook_cb_t) sink_put_hook_callback, u); + u->source_put_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SOURCE_PUT], PA_HOOK_LATE, (pa_hook_cb_t) source_put_hook_callback, u); + } + if (restore_device && on_rescue) { + /* A little bit earlier than module-intended-roles, module-rescue-streams, ... */ + u->sink_unlink_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SINK_UNLINK], PA_HOOK_LATE, (pa_hook_cb_t) sink_unlink_hook_callback, u); + u->source_unlink_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SOURCE_UNLINK], PA_HOOK_LATE, (pa_hook_cb_t) source_unlink_hook_callback, u); + } - fname = pa_state_path("stream-volumes", TRUE); + if (restore_volume || restore_muted) + u->sink_input_fixate_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SINK_INPUT_FIXATE], PA_HOOK_EARLY, (pa_hook_cb_t) sink_input_fixate_hook_callback, u); - if (!fname) + if (!(fname = pa_state_path("stream-volumes", TRUE))) goto fail; if (!(u->database = pa_database_open(fname, TRUE))) { @@ -833,10 +1002,10 @@ int pa__init(pa_module*m) { pa_log_info("Sucessfully opened database file '%s'.", fname); pa_xfree(fname); - for (si = pa_idxset_first(m->core->sink_inputs, &idx); si; si = pa_idxset_next(m->core->sink_inputs, &idx)) + PA_IDXSET_FOREACH(si, m->core->sink_inputs, idx) subscribe_callback(m->core, PA_SUBSCRIPTION_EVENT_SINK_INPUT|PA_SUBSCRIPTION_EVENT_NEW, si->index, u); - for (so = pa_idxset_first(m->core->source_outputs, &idx); so; so = pa_idxset_next(m->core->source_outputs, &idx)) + PA_IDXSET_FOREACH(so, m->core->source_outputs, idx) subscribe_callback(m->core, PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT|PA_SUBSCRIPTION_EVENT_NEW, so->index, u); pa_modargs_free(ma); @@ -869,6 +1038,16 @@ void pa__done(pa_module*m) { if (u->source_output_new_hook_slot) pa_hook_slot_free(u->source_output_new_hook_slot); + if (u->sink_put_hook_slot) + pa_hook_slot_free(u->sink_put_hook_slot); + if (u->source_put_hook_slot) + pa_hook_slot_free(u->source_put_hook_slot); + + if (u->sink_unlink_hook_slot) + pa_hook_slot_free(u->sink_unlink_hook_slot); + if (u->source_unlink_hook_slot) + pa_hook_slot_free(u->source_unlink_hook_slot); + if (u->connection_unlink_hook_slot) pa_hook_slot_free(u->connection_unlink_hook_slot); diff --git a/src/modules/module-suspend-on-idle.c b/src/modules/module-suspend-on-idle.c index cc69d74c..70a7b049 100644 --- a/src/modules/module-suspend-on-idle.c +++ b/src/modules/module-suspend-on-idle.c @@ -25,6 +25,7 @@ #include <pulse/xmalloc.h> #include <pulse/timeval.h> +#include <pulse/rtclock.h> #include <pulsecore/core.h> #include <pulsecore/core-util.h> @@ -75,45 +76,43 @@ struct device_info { struct userdata *userdata; pa_sink *sink; pa_source *source; - struct timeval last_use; + pa_usec_t last_use; pa_time_event *time_event; }; -static void timeout_cb(pa_mainloop_api*a, pa_time_event* e, const struct timeval *tv, void *userdata) { +static void timeout_cb(pa_mainloop_api*a, pa_time_event* e, const struct timeval *t, void *userdata) { struct device_info *d = userdata; pa_assert(d); d->userdata->core->mainloop->time_restart(d->time_event, NULL); - if (d->sink && pa_sink_check_suspend(d->sink) <= 0 && pa_sink_get_state(d->sink) != PA_SINK_SUSPENDED) { + if (d->sink && pa_sink_check_suspend(d->sink) <= 0 && !(d->sink->suspend_cause & PA_SUSPEND_IDLE)) { pa_log_info("Sink %s idle for too long, suspending ...", d->sink->name); - pa_sink_suspend(d->sink, TRUE); + pa_sink_suspend(d->sink, TRUE, PA_SUSPEND_IDLE); } - if (d->source && pa_source_check_suspend(d->source) <= 0 && pa_source_get_state(d->source) != PA_SOURCE_SUSPENDED) { + if (d->source && pa_source_check_suspend(d->source) <= 0 && !(d->source->suspend_cause & PA_SUSPEND_IDLE)) { pa_log_info("Source %s idle for too long, suspending ...", d->source->name); - pa_source_suspend(d->source, TRUE); + pa_source_suspend(d->source, TRUE, PA_SUSPEND_IDLE); } } static void restart(struct device_info *d) { - struct timeval tv; + pa_usec_t now; const char *s; uint32_t timeout; + pa_assert(d); pa_assert(d->sink || d->source); - pa_gettimeofday(&tv); - d->last_use = tv; + d->last_use = now = pa_rtclock_now(); s = pa_proplist_gets(d->sink ? d->sink->proplist : d->source->proplist, "module-suspend-on-idle.timeout"); if (!s || pa_atou(s, &timeout) < 0) - timeout = d->userdata->timeout; - - pa_timeval_add(&tv, timeout * PA_USEC_PER_SEC); + timeout = d->userdata->timeout; - d->userdata->core->mainloop->time_restart(d->time_event, &tv); + pa_core_rttime_restart(d->userdata->core, d->time_event, now + timeout * PA_USEC_PER_SEC); if (d->sink) pa_log_debug("Sink %s becomes idle, timeout in %u seconds.", d->sink->name, timeout); @@ -127,13 +126,13 @@ static void resume(struct device_info *d) { d->userdata->core->mainloop->time_restart(d->time_event, NULL); if (d->sink) { - pa_sink_suspend(d->sink, FALSE); + pa_sink_suspend(d->sink, FALSE, PA_SUSPEND_IDLE); pa_log_debug("Sink %s becomes busy.", d->sink->name); } if (d->source) { - pa_source_suspend(d->source, FALSE); + pa_source_suspend(d->source, FALSE, PA_SUSPEND_IDLE); pa_log_debug("Source %s becomes busy.", d->source->name); } @@ -338,7 +337,7 @@ static pa_hook_result_t device_new_hook_cb(pa_core *c, pa_object *o, struct user d->userdata = u; d->source = source ? pa_source_ref(source) : NULL; d->sink = sink ? pa_sink_ref(sink) : NULL; - d->time_event = c->mainloop->time_new(c->mainloop, NULL, timeout_cb, d); + d->time_event = pa_core_rttime_new(c, PA_USEC_INVALID, timeout_cb, d); pa_hashmap_put(u->device_infos, o, d); if ((d->sink && pa_sink_check_suspend(d->sink) <= 0) || diff --git a/src/modules/module-tunnel.c b/src/modules/module-tunnel.c index 6f525da3..d1153829 100644 --- a/src/modules/module-tunnel.c +++ b/src/modules/module-tunnel.c @@ -31,6 +31,7 @@ #include <stdio.h> #include <stdlib.h> +#include <pulse/rtclock.h> #include <pulse/timeval.h> #include <pulse/util.h> #include <pulse/version.h> @@ -50,7 +51,7 @@ #include <pulsecore/time-smoother.h> #include <pulsecore/thread.h> #include <pulsecore/thread-mq.h> -#include <pulsecore/rtclock.h> +#include <pulsecore/core-rtclock.h> #include <pulsecore/core-error.h> #include <pulsecore/proplist-util.h> #include <pulsecore/auth-cookie.h> @@ -112,7 +113,7 @@ static const char* const valid_modargs[] = { #define DEFAULT_TIMEOUT 5 -#define LATENCY_INTERVAL 10 +#define LATENCY_INTERVAL (10*PA_USEC_PER_SEC) #define MIN_NETWORK_LATENCY_USEC (8*PA_USEC_PER_MSEC) @@ -395,7 +396,7 @@ static void check_smoother_status(struct userdata *u, pa_bool_t past) { pa_assert(u); - x = pa_rtclock_usec(); + x = pa_rtclock_now(); /* Correct by the time the requested issued needs to travel to the * other side. This is a valid thread-safe access, because the @@ -500,7 +501,7 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse pa_usec_t yl, yr, *usec = data; yl = pa_bytes_to_usec((uint64_t) u->counter, &u->sink->sample_spec); - yr = pa_smoother_get(u->smoother, pa_rtclock_usec()); + yr = pa_smoother_get(u->smoother, pa_rtclock_now()); *usec = yl > yr ? yl - yr : 0; return 0; @@ -533,7 +534,7 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse else y = 0; - pa_smoother_put(u->smoother, pa_rtclock_usec(), y); + pa_smoother_put(u->smoother, pa_rtclock_now(), y); /* We can access this freely here, since the main thread is waiting for us */ u->thread_transport_usec = u->transport_usec; @@ -607,7 +608,7 @@ static int source_process_msg(pa_msgobject *o, int code, void *data, int64_t off pa_usec_t yr, yl, *usec = data; yl = pa_bytes_to_usec((uint64_t) u->counter, &PA_SOURCE(o)->sample_spec); - yr = pa_smoother_get(u->smoother, pa_rtclock_usec()); + yr = pa_smoother_get(u->smoother, pa_rtclock_now()); *usec = yr > yl ? yr - yl : 0; return 0; @@ -633,7 +634,7 @@ static int source_process_msg(pa_msgobject *o, int code, void *data, int64_t off y = pa_bytes_to_usec((uint64_t) u->counter, &u->source->sample_spec); y += (pa_usec_t) offset; - pa_smoother_put(u->smoother, pa_rtclock_usec(), y); + pa_smoother_put(u->smoother, pa_rtclock_now(), y); /* We can access this freely here, since the main thread is waiting for us */ u->thread_transport_usec = u->transport_usec; @@ -683,7 +684,6 @@ static void thread_func(void *userdata) { pa_log_debug("Thread starting up"); pa_thread_mq_install(&u->thread_mq); - pa_rtpoll_install(u->rtpoll); for (;;) { int ret; @@ -730,7 +730,7 @@ static void command_request(pa_pdispatch *pd, uint32_t command, uint32_t tag, p } if (channel != u->channel) { - pa_log("Recieved data for invalid channel"); + pa_log("Received data for invalid channel"); goto fail; } @@ -878,9 +878,8 @@ static void request_latency(struct userdata *u) { } /* Called from main context */ -static void timeout_callback(pa_mainloop_api *m, pa_time_event*e, const struct timeval *tv, void *userdata) { +static void timeout_callback(pa_mainloop_api *m, pa_time_event *e, const struct timeval *t, void *userdata) { struct userdata *u = userdata; - struct timeval ntv; pa_assert(m); pa_assert(e); @@ -888,9 +887,7 @@ static void timeout_callback(pa_mainloop_api *m, pa_time_event*e, const struct request_latency(u); - pa_gettimeofday(&ntv); - ntv.tv_sec += LATENCY_INTERVAL; - m->time_restart(e, &ntv); + pa_core_rttime_restart(u->core, e, pa_rtclock_now() + LATENCY_INTERVAL); } /* Called from main context */ @@ -1157,10 +1154,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); + pa_sink_volume_changed(u->sink, &volume, FALSE); if (u->version >= 11) - pa_sink_mute_changed(u->sink, mute); + pa_sink_mute_changed(u->sink, mute, FALSE); return; @@ -1357,7 +1354,6 @@ static void start_subscribe(struct userdata *u) { /* Called from main context */ static void create_stream_callback(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa_tagstruct *t, void *userdata) { struct userdata *u = userdata; - struct timeval ntv; #ifdef TUNNEL_SINK uint32_t bytes; #endif @@ -1439,9 +1435,7 @@ static void create_stream_callback(pa_pdispatch *pd, uint32_t command, uint32_t request_info(u); pa_assert(!u->time_event); - pa_gettimeofday(&ntv); - ntv.tv_sec += LATENCY_INTERVAL; - u->time_event = u->core->mainloop->time_new(u->core->mainloop, &ntv, timeout_callback, u); + u->time_event = pa_core_rttime_new(u->core, pa_rtclock_now() + LATENCY_INTERVAL, timeout_callback, u); request_latency(u); @@ -1675,7 +1669,7 @@ static void pstream_memblock_callback(pa_pstream *p, uint32_t channel, int64_t o pa_assert(u); if (channel != u->channel) { - pa_log("Recieved memory block on bad channel."); + pa_log("Received memory block on bad channel."); pa_module_unload_request(u->module, TRUE); return; } @@ -1706,7 +1700,7 @@ static void on_connection(pa_socket_client *sc, pa_iochannel *io, void *userdata } u->pstream = pa_pstream_new(u->core->mainloop, io, u->core->mempool); - u->pdispatch = pa_pdispatch_new(u->core->mainloop, command_table, PA_COMMAND_MAX); + u->pdispatch = pa_pdispatch_new(u->core->mainloop, TRUE, command_table, PA_COMMAND_MAX); pa_pstream_set_die_callback(u->pstream, pstream_die_callback, u); pa_pstream_set_recieve_packet_callback(u->pstream, pstream_packet_callback, u); @@ -1825,7 +1819,7 @@ int pa__init(pa_module*m) { TRUE, TRUE, 10, - pa_rtclock_usec(), + pa_rtclock_now(), FALSE); u->ctag = 1; u->device_index = u->channel = PA_INVALID_INDEX; @@ -1853,7 +1847,7 @@ int pa__init(pa_module*m) { goto fail; } - if (!(u->client = pa_socket_client_new_string(m->core->mainloop, u->server_name, PA_NATIVE_DEFAULT_PORT))) { + if (!(u->client = pa_socket_client_new_string(m->core->mainloop, TRUE, u->server_name, PA_NATIVE_DEFAULT_PORT))) { pa_log("Failed to connect to server '%s'", u->server_name); goto fail; } diff --git a/src/modules/module-udev-detect.c b/src/modules/module-udev-detect.c new file mode 100644 index 00000000..1ad6fa2d --- /dev/null +++ b/src/modules/module-udev-detect.c @@ -0,0 +1,457 @@ +/*** + This file is part of PulseAudio. + + Copyright 2009 Lennart Poettering + + PulseAudio is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. + + PulseAudio is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with PulseAudio; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + USA. +***/ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <errno.h> +#include <limits.h> +#include <sys/inotify.h> +#include <libudev.h> + +#include <pulsecore/modargs.h> +#include <pulsecore/core-error.h> +#include <pulsecore/core-util.h> +#include <pulsecore/namereg.h> + +#include "module-udev-detect-symdef.h" + +PA_MODULE_AUTHOR("Lennart Poettering"); +PA_MODULE_DESCRIPTION("Detect available audio hardware and load matching drivers"); +PA_MODULE_VERSION(PACKAGE_VERSION); +PA_MODULE_LOAD_ONCE(TRUE); + +struct device { + char *path; + pa_bool_t accessible; + char *card_name; + uint32_t module; +}; + +struct userdata { + pa_core *core; + pa_hashmap *devices; + pa_bool_t use_tsched; + + struct udev* udev; + struct udev_monitor *monitor; + pa_io_event *udev_io; + + int inotify_fd; + pa_io_event *inotify_io; +}; + +static const char* const valid_modargs[] = { + "tsched", + NULL +}; + +static void device_free(struct device *d) { + pa_assert(d); + + pa_xfree(d->path); + pa_xfree(d->card_name); + pa_xfree(d); +} + +static const char *path_get_card_id(const char *path) { + const char *e; + + if (!path) + return NULL; + + if (!(e = strrchr(path, '/'))) + return NULL; + + if (!pa_startswith(e, "/card")) + return NULL; + + return e + 5; +} + +static void verify_access(struct userdata *u, struct device *d) { + char *cd; + pa_card *card; + + pa_assert(u); + pa_assert(d); + + if (!(card = pa_namereg_get(u->core, d->card_name, PA_NAMEREG_CARD))) + return; + + cd = pa_sprintf_malloc("%s/snd/controlC%s", udev_get_dev_path(u->udev), path_get_card_id(d->path)); + d->accessible = access(cd, W_OK) >= 0; + pa_log_info("%s is accessible: %s", cd, pa_yes_no(d->accessible)); + pa_xfree(cd); + + pa_card_suspend(card, !d->accessible, PA_SUSPEND_SESSION); +} + +static void card_changed(struct userdata *u, struct udev_device *dev) { + struct device *d; + const char *path; + const char *t; + char *card_name, *args; + pa_module *m; + char *n; + + pa_assert(u); + pa_assert(dev); + + path = udev_device_get_devpath(dev); + + if ((d = pa_hashmap_get(u->devices, path))) { + verify_access(u, d); + return; + } + + if (!(t = udev_device_get_property_value(dev, "PULSE_NAME"))) + if (!(t = udev_device_get_property_value(dev, "ID_ID"))) + if (!(t = udev_device_get_property_value(dev, "ID_PATH"))) + t = path_get_card_id(path); + + n = pa_namereg_make_valid_name(t); + + card_name = pa_sprintf_malloc("alsa_card.%s", n); + args = pa_sprintf_malloc("device_id=\"%s\" " + "name=\"%s\" " + "card_name=\"%s\" " + "tsched=%i " + "card_properties=\"module-udev-detect.discovered=1\"", + path_get_card_id(path), + n, + card_name, + (int) u->use_tsched); + + pa_log_debug("Loading module-alsa-card with arguments '%s'", args); + m = pa_module_load(u->core, "module-alsa-card", args); + pa_xfree(args); + + if (m) { + pa_log_info("Card %s (%s) added.", path, n); + + d = pa_xnew(struct device, 1); + d->path = pa_xstrdup(path); + d->card_name = card_name; + d->module = m->index; + d->accessible = TRUE; + + pa_hashmap_put(u->devices, d->path, d); + } else + pa_xfree(card_name); + + pa_xfree(n); +} + +static void remove_card(struct userdata *u, struct udev_device *dev) { + struct device *d; + + pa_assert(u); + pa_assert(dev); + + if (!(d = pa_hashmap_remove(u->devices, udev_device_get_devpath(dev)))) + return; + + pa_log_info("Card %s removed.", d->path); + pa_module_unload_request_by_index(u->core, d->module, TRUE); + device_free(d); +} + +static void process_device(struct userdata *u, struct udev_device *dev) { + const char *action, *ff; + + pa_assert(u); + pa_assert(dev); + + if (udev_device_get_property_value(dev, "PULSE_IGNORE")) { + pa_log_debug("Ignoring %s, because marked so.", udev_device_get_devpath(dev)); + return; + } + + if ((ff = udev_device_get_property_value(dev, "SOUND_FORM_FACTOR")) && + pa_streq(ff, "modem")) { + pa_log_debug("Ignoring %s, because it is a modem.", udev_device_get_devpath(dev)); + return; + } + + action = udev_device_get_action(dev); + + if (action && pa_streq(action, "remove")) + remove_card(u, dev); + else if ((!action || pa_streq(action, "change")) && + udev_device_get_property_value(dev, "SOUND_INITIALIZED")) + card_changed(u, dev); + + /* For an explanation why we don't look for 'add' events here + * have a look into /lib/udev/rules.d/78-sound-card.rules! */ +} + +static void process_path(struct userdata *u, const char *path) { + struct udev_device *dev; + + if (!path_get_card_id(path)) + return; + + if (!(dev = udev_device_new_from_syspath(u->udev, path))) { + pa_log("Failed to get udev device object from udev."); + return; + } + + process_device(u, dev); + udev_device_unref(dev); +} + +static void monitor_cb( + pa_mainloop_api*a, + pa_io_event* e, + int fd, + pa_io_event_flags_t events, + void *userdata) { + + struct userdata *u = userdata; + struct udev_device *dev; + + pa_assert(a); + + if (!(dev = udev_monitor_receive_device(u->monitor))) { + pa_log("Failed to get udev device object from monitor."); + goto fail; + } + + if (!path_get_card_id(udev_device_get_devpath(dev))) + return; + + process_device(u, dev); + udev_device_unref(dev); + return; + +fail: + a->io_free(u->udev_io); + u->udev_io = NULL; +} + +static void inotify_cb( + pa_mainloop_api*a, + pa_io_event* e, + int fd, + pa_io_event_flags_t events, + void *userdata) { + + struct { + struct inotify_event e; + char name[NAME_MAX]; + } buf; + struct userdata *u = userdata; + static int type = 0; + pa_bool_t verify = FALSE; + + for (;;) { + ssize_t r; + + pa_zero(buf); + if ((r = pa_read(fd, &buf, sizeof(buf), &type)) <= 0) { + + if (r < 0 && errno == EAGAIN) + break; + + pa_log("read() from inotify failed: %s", r < 0 ? pa_cstrerror(errno) : "EOF"); + goto fail; + } + + if ((buf.e.mask & IN_CLOSE_WRITE) && pa_startswith(buf.e.name, "pcmC")) + verify = TRUE; + } + + if (verify) { + struct device *d; + void *state; + + pa_log_debug("Verifying access."); + + PA_HASHMAP_FOREACH(d, u->devices, state) + verify_access(u, d); + } + + return; + +fail: + a->io_free(u->inotify_io); + u->inotify_io = NULL; + + if (u->inotify_fd >= 0) { + pa_close(u->inotify_fd); + u->inotify_fd = -1; + } +} + +static int setup_inotify(struct userdata *u) { + char *dev_snd; + int r; + + 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); + pa_xfree(dev_snd); + + if (r < 0) { + pa_log("inotify_add_watch() failed: %s", pa_cstrerror(errno)); + return -1; + } + + pa_assert_se(u->inotify_io = u->core->mainloop->io_new(u->core->mainloop, u->inotify_fd, PA_IO_EVENT_INPUT, inotify_cb, u)); + + return 0; +} + +int pa__init(pa_module *m) { + struct userdata *u = NULL; + pa_modargs *ma; + struct udev_enumerate *enumerate = NULL; + struct udev_list_entry *item = NULL, *first = NULL; + int fd; + + pa_assert(m); + + if (!(ma = pa_modargs_new(m->argument, valid_modargs))) { + pa_log("Failed to parse module arguments"); + goto fail; + } + + m->userdata = u = pa_xnew0(struct userdata, 1); + u->core = m->core; + u->devices = pa_hashmap_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func); + u->use_tsched = TRUE; + u->inotify_fd = -1; + + if (pa_modargs_get_value_boolean(ma, "tsched", &u->use_tsched) < 0) { + pa_log("Failed to parse tsched argument."); + goto fail; + } + + if (!(u->udev = udev_new())) { + pa_log("Failed to initialize udev library."); + goto fail; + } + + if (setup_inotify(u) < 0) + goto fail; + + if (!(u->monitor = udev_monitor_new_from_netlink(u->udev, "udev"))) { + pa_log("Failed to initialize monitor."); + goto fail; + } + + errno = 0; + if (udev_monitor_enable_receiving(u->monitor) < 0) { + pa_log("Failed to enable monitor: %s", pa_cstrerror(errno)); + if (errno == EPERM) + pa_log_info("Most likely your kernel is simply too old and " + "allows only priviliged processes to listen to device events. " + "Please upgrade your kernel to at least 2.6.30."); + goto fail; + } + + if ((fd = udev_monitor_get_fd(u->monitor)) < 0) { + pa_log("Failed to get udev monitor fd."); + goto fail; + } + + pa_assert_se(u->udev_io = u->core->mainloop->io_new(u->core->mainloop, fd, PA_IO_EVENT_INPUT, monitor_cb, u)); + + if (!(enumerate = udev_enumerate_new(u->udev))) { + pa_log("Failed to initialize udev enumerator."); + goto fail; + } + + if (udev_enumerate_add_match_subsystem(enumerate, "sound") < 0) { + pa_log("Failed to match to subsystem."); + goto fail; + } + + if (udev_enumerate_scan_devices(enumerate) < 0) { + pa_log("Failed to scan for devices."); + goto fail; + } + + first = udev_enumerate_get_list_entry(enumerate); + udev_list_entry_foreach(item, first) + process_path(u, udev_list_entry_get_name(item)); + + udev_enumerate_unref(enumerate); + + pa_log_info("Loaded %u modules.", pa_hashmap_size(u->devices)); + + pa_modargs_free(ma); + + return 0; + +fail: + + if (enumerate) + udev_enumerate_unref(enumerate); + + if (ma) + pa_modargs_free(ma); + + pa__done(m); + + return -1; +} + +void pa__done(pa_module *m) { + struct userdata *u; + + pa_assert(m); + + if (!(u = m->userdata)) + return; + + if (u->udev_io) + m->core->mainloop->io_free(u->udev_io); + + if (u->monitor) + udev_monitor_unref(u->monitor); + + if (u->udev) + udev_unref(u->udev); + + if (u->inotify_io) + m->core->mainloop->io_free(u->inotify_io); + + if (u->inotify_fd >= 0) + pa_close(u->inotify_fd); + + if (u->devices) { + struct device *d; + + while ((d = pa_hashmap_steal_first(u->devices))) + device_free(d); + + pa_hashmap_free(u->devices, NULL, NULL); + } + + pa_xfree(u); +} diff --git a/src/modules/module-waveout.c b/src/modules/module-waveout.c index 2d35828d..d1b9f2ff 100644 --- a/src/modules/module-waveout.c +++ b/src/modules/module-waveout.c @@ -256,7 +256,7 @@ static void poll_cb(pa_mainloop_api*a, pa_time_event *e, const struct timeval *t pa_gettimeofday(&ntv); pa_timeval_add(&ntv, u->poll_timeout); - a->time_restart(e, &ntv); + a->rtclock_time_restart(e, &ntv); } static void defer_cb(pa_mainloop_api*a, pa_defer_event *e, void *userdata) { @@ -549,7 +549,7 @@ int pa__init(pa_core *c, pa_module*m) { pa_gettimeofday(&tv); pa_timeval_add(&tv, u->poll_timeout); - u->event = c->mainloop->time_new(c->mainloop, &tv, poll_cb, u); + u->event = c->mainloop->rtclock_time_new(c->mainloop, &tv, poll_cb, u); assert(u->event); u->defer = c->mainloop->defer_new(c->mainloop, defer_cb, u); diff --git a/src/modules/oss/module-oss.c b/src/modules/oss/module-oss.c index b1afcfd6..c44b882b 100644 --- a/src/modules/oss/module-oss.c +++ b/src/modules/oss/module-oss.c @@ -889,7 +889,6 @@ static void thread_func(void *userdata) { pa_make_realtime(u->core->realtime_priority); pa_thread_mq_install(&u->thread_mq); - pa_rtpoll_install(u->rtpoll); for (;;) { int ret; diff --git a/src/modules/module-raop-discover.c b/src/modules/raop/module-raop-discover.c index eaeb77fc..eaeb77fc 100644 --- a/src/modules/module-raop-discover.c +++ b/src/modules/raop/module-raop-discover.c diff --git a/src/modules/module-raop-sink.c b/src/modules/raop/module-raop-sink.c index 052a3a5e..9699132d 100644 --- a/src/modules/module-raop-sink.c +++ b/src/modules/raop/module-raop-sink.c @@ -42,13 +42,15 @@ #include <linux/sockios.h> #endif -#include <pulse/xmalloc.h> +#include <pulse/rtclock.h> #include <pulse/timeval.h> +#include <pulse/xmalloc.h> #include <pulsecore/core-error.h> #include <pulsecore/iochannel.h> #include <pulsecore/sink.h> #include <pulsecore/module.h> +#include <pulsecore/core-rtclock.h> #include <pulsecore/core-util.h> #include <pulsecore/modargs.h> #include <pulsecore/log.h> @@ -57,7 +59,6 @@ #include <pulsecore/thread-mq.h> #include <pulsecore/thread.h> #include <pulsecore/time-smoother.h> -#include <pulsecore/rtclock.h> #include <pulsecore/socket-util.h> #include "module-raop-sink-symdef.h" @@ -181,7 +182,7 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse case PA_SINK_SUSPENDED: pa_assert(PA_SINK_IS_OPENED(u->sink->thread_info.state)); - pa_smoother_pause(u->smoother, pa_rtclock_usec()); + pa_smoother_pause(u->smoother, pa_rtclock_now()); /* Issue a FLUSH if we are connected */ if (u->fd >= 0) { @@ -193,7 +194,7 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse case PA_SINK_RUNNING: if (u->sink->thread_info.state == PA_SINK_SUSPENDED) { - pa_smoother_resume(u->smoother, pa_rtclock_usec(), TRUE); + pa_smoother_resume(u->smoother, pa_rtclock_now(), TRUE); /* The connection can be closed when idle, so check to see if we need to reestablish it */ @@ -216,7 +217,7 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse case PA_SINK_MESSAGE_GET_LATENCY: { pa_usec_t w, r; - r = pa_smoother_get(u->smoother, pa_rtclock_usec()); + r = pa_smoother_get(u->smoother, pa_rtclock_now()); w = pa_bytes_to_usec((u->offset - u->encoding_overhead + (u->encoded_memchunk.length / u->encoding_ratio)), &u->sink->sample_spec); *((pa_usec_t*) data) = w > r ? w - r : 0; @@ -323,9 +324,8 @@ static void thread_func(void *userdata) { pa_log_debug("Thread starting up"); pa_thread_mq_install(&u->thread_mq); - pa_rtpoll_install(u->rtpoll); - pa_smoother_set_time_offset(u->smoother, pa_rtclock_usec()); + pa_smoother_set_time_offset(u->smoother, pa_rtclock_now()); /* Create a chunk of memory that is our encoded silence sample. */ pa_memchunk_reset(&silence); @@ -465,7 +465,7 @@ static void thread_func(void *userdata) { else usec = 0; - pa_smoother_put(u->smoother, pa_rtclock_usec(), usec); + pa_smoother_put(u->smoother, pa_rtclock_now(), usec); } /* Hmm, nothing to do. Let's sleep */ @@ -583,6 +583,7 @@ 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_proplist_sets(data.proplist, PA_PROP_DEVICE_STRING, server); + pa_proplist_sets(data.proplist, PA_PROP_DEVICE_INTENDED_ROLES, "music"); if ((desc = pa_modargs_get_value(ma, "description", NULL))) pa_proplist_sets(data.proplist, PA_PROP_DEVICE_DESCRIPTION, desc); else diff --git a/src/modules/raop/raop_client.c b/src/modules/raop/raop_client.c index b3f243c3..c4b02371 100644 --- a/src/modules/raop/raop_client.c +++ b/src/modules/raop/raop_client.c @@ -331,7 +331,7 @@ static void rtsp_cb(pa_rtsp_client *rtsp, pa_rtsp_state state, pa_headerlist* he uint32_t port = pa_rtsp_serverport(c->rtsp); pa_log_debug("RAOP: RECORDED"); - if (!(c->sc = pa_socket_client_new_string(c->core->mainloop, c->host, port))) { + if (!(c->sc = pa_socket_client_new_string(c->core->mainloop, TRUE, c->host, port))) { pa_log("failed to connect to server '%s:%d'", c->host, port); return; } diff --git a/src/modules/reserve-monitor.c b/src/modules/reserve-monitor.c new file mode 100644 index 00000000..64d2a7cc --- /dev/null +++ b/src/modules/reserve-monitor.c @@ -0,0 +1,259 @@ +/*** + Copyright 2009 Lennart Poettering + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +***/ + +#include <string.h> +#include <unistd.h> +#include <errno.h> +#include <stdlib.h> +#include <stdio.h> +#include <assert.h> + +#include "reserve-monitor.h" + +struct rm_monitor { + int ref; + + char *device_name; + char *service_name; + + DBusConnection *connection; + + unsigned busy:1; + unsigned filtering:1; + unsigned matching:1; + + rm_change_cb_t change_cb; + void *userdata; +}; + +#define SERVICE_PREFIX "org.freedesktop.ReserveDevice1." + +static DBusHandlerResult filter_handler( + DBusConnection *c, + DBusMessage *s, + void *userdata) { + + DBusMessage *reply; + rm_monitor *m; + DBusError error; + + dbus_error_init(&error); + + m = userdata; + assert(m->ref >= 1); + + if (dbus_message_is_signal(s, "org.freedesktop.DBus", "NameOwnerChanged")) { + const char *name, *old, *new; + + if (!dbus_message_get_args( + s, + &error, + DBUS_TYPE_STRING, &name, + DBUS_TYPE_STRING, &old, + DBUS_TYPE_STRING, &new, + DBUS_TYPE_INVALID)) + goto invalid; + + if (strcmp(name, m->service_name) == 0) { + + m->busy = !!(new && *new); + + if (m->change_cb) { + m->ref++; + m->change_cb(m); + rm_release(m); + } + } + } + + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + +invalid: + if (!(reply = dbus_message_new_error( + s, + DBUS_ERROR_INVALID_ARGS, + "Invalid arguments"))) + goto oom; + + if (!dbus_connection_send(c, reply, NULL)) + goto oom; + + dbus_message_unref(reply); + + dbus_error_free(&error); + + return DBUS_HANDLER_RESULT_HANDLED; + +oom: + if (reply) + dbus_message_unref(reply); + + dbus_error_free(&error); + + return DBUS_HANDLER_RESULT_NEED_MEMORY; +} + +int rm_watch( + rm_monitor **_m, + DBusConnection *connection, + const char*device_name, + rm_change_cb_t change_cb, + DBusError *error) { + + rm_monitor *m = NULL; + int r; + DBusError _error; + + if (!error) + error = &_error; + + dbus_error_init(error); + + if (!_m) + return -EINVAL; + + if (!connection) + return -EINVAL; + + if (!device_name) + return -EINVAL; + + if (!(m = calloc(sizeof(rm_monitor), 1))) + return -ENOMEM; + + m->ref = 1; + + if (!(m->device_name = strdup(device_name))) { + r = -ENOMEM; + goto fail; + } + + m->connection = dbus_connection_ref(connection); + m->change_cb = change_cb; + + if (!(m->service_name = malloc(sizeof(SERVICE_PREFIX) + strlen(device_name)))) { + r = -ENOMEM; + goto fail; + } + sprintf(m->service_name, SERVICE_PREFIX "%s", m->device_name); + + if (!(dbus_connection_add_filter(m->connection, filter_handler, m, NULL))) { + r = -ENOMEM; + goto fail; + } + + m->filtering = 1; + + dbus_bus_add_match(m->connection, + "type='signal'," + "sender='" DBUS_SERVICE_DBUS "'," + "interface='" DBUS_INTERFACE_DBUS "'," + "member='NameOwnerChanged'", error); + + if (dbus_error_is_set(error)) { + r = -EIO; + goto fail; + } + + m->matching = 1; + + m->busy = dbus_bus_name_has_owner(m->connection, m->service_name, error); + + if (dbus_error_is_set(error)) { + r = -EIO; + goto fail; + } + + *_m = m; + return 0; + +fail: + if (&_error == error) + dbus_error_free(&_error); + + if (m) + rm_release(m); + + return r; +} + +void rm_release(rm_monitor *m) { + if (!m) + return; + + assert(m->ref > 0); + + if (--m->ref > 0) + return; + + if (m->matching) + dbus_bus_remove_match( + m->connection, + "type='signal'," + "sender='" DBUS_SERVICE_DBUS "'," + "interface='" DBUS_INTERFACE_DBUS "'," + "member='NameOwnerChanged'", NULL); + + if (m->filtering) + dbus_connection_remove_filter( + m->connection, + filter_handler, + m); + + free(m->device_name); + free(m->service_name); + + if (m->connection) + dbus_connection_unref(m->connection); + + free(m); +} + +int rm_busy(rm_monitor *m) { + if (!m) + return -EINVAL; + + assert(m->ref > 0); + + return m->busy; +} + +void rm_set_userdata(rm_monitor *m, void *userdata) { + + if (!m) + return; + + assert(m->ref > 0); + m->userdata = userdata; +} + +void* rm_get_userdata(rm_monitor *m) { + + if (!m) + return NULL; + + assert(m->ref > 0); + + return m->userdata; +} diff --git a/src/modules/reserve-monitor.h b/src/modules/reserve-monitor.h new file mode 100644 index 00000000..4f4a8332 --- /dev/null +++ b/src/modules/reserve-monitor.h @@ -0,0 +1,62 @@ +#ifndef fooreservemonitorhfoo +#define fooreservemonitorhfoo + +/*** + Copyright 2009 Lennart Poettering + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +***/ + +#include <dbus/dbus.h> +#include <inttypes.h> + +typedef struct rm_monitor rm_monitor; + +/* Prototype for a function that is called whenever the reservation + * device of a device changes. Use rm_monitor_busy() to find out the + * new state.*/ +typedef void (*rm_change_cb_t)(rm_monitor *m); + +/* Creates a monitor for watching the lock status of a device. Returns + * 0 on success, a negative errno style return value on error. The + * DBus error might be set as well if the error was caused D-Bus. */ +int rm_watch( + rm_monitor **m, /* On success a pointer to the newly allocated rm_device object will be filled in here */ + DBusConnection *connection, /* Session bus (when D-Bus learns about user busses we should switchg to user busses) */ + const char *device_name, /* The device to monitor, e.g. "Audio0" */ + rm_change_cb_t change_cb, /* Will be called whenever the lock status changes. May be NULL */ + DBusError *error); /* If we fail due to a D-Bus related issue the error will be filled in here. May be NULL. */ + +/* Free a rm_monitor object */ +void rm_release(rm_monitor *m); + +/* Checks whether the device is currently reserved, and returns 1 + * then, 0 if not, negative errno style error code value on error. */ +int rm_busy(rm_monitor *m); + +/* Attach a userdata pointer to an rm_monitor */ +void rm_set_userdata(rm_monitor *m, void *userdata); + +/* Query the userdata pointer from an rm_monitor. Returns NULL if no + * userdata was set. */ +void* rm_get_userdata(rm_monitor *m); + +#endif diff --git a/src/modules/reserve-wrap.c b/src/modules/reserve-wrap.c index d0d014d3..07b592d3 100644 --- a/src/modules/reserve-wrap.c +++ b/src/modules/reserve-wrap.c @@ -35,6 +35,7 @@ #ifdef HAVE_DBUS #include <pulsecore/dbus-shared.h> #include "reserve.h" +#include "reserve-monitor.h" #endif #include "reserve-wrap.h" @@ -50,6 +51,17 @@ struct pa_reserve_wrapper { #endif }; +struct pa_reserve_monitor_wrapper { + PA_REFCNT_DECLARE; + pa_core *core; + pa_hook hook; + char *shared_name; +#ifdef HAVE_DBUS + pa_dbus_connection *connection; + struct rm_monitor *monitor; +#endif +}; + static void reserve_wrapper_free(pa_reserve_wrapper *r) { pa_assert(r); @@ -83,7 +95,7 @@ static int request_cb(rd_device *d, int forced) { PA_REFCNT_INC(r); k = pa_hook_fire(&r->hook, PA_INT_TO_PTR(forced)); - pa_log_debug("Device unlock has been requested and %s.", k < 0 ? "failed" : "succeeded"); + pa_log_debug("Device unlock of %s has been requested and %s.", r->shared_name, k < 0 ? "failed" : "succeeded"); pa_reserve_wrapper_unref(r); @@ -191,3 +203,138 @@ void pa_reserve_wrapper_set_application_device_name(pa_reserve_wrapper *r, const rd_set_application_device_name(r->device, name); #endif } + +static void reserve_monitor_wrapper_free(pa_reserve_monitor_wrapper *w) { + pa_assert(w); + +#ifdef HAVE_DBUS + if (w->monitor) + rm_release(w->monitor); + + if (w->connection) + pa_dbus_connection_unref(w->connection); +#endif + + pa_hook_done(&w->hook); + + if (w->shared_name) { + pa_assert_se(pa_shared_remove(w->core, w->shared_name) >= 0); + pa_xfree(w->shared_name); + } + + pa_xfree(w); +} + +#ifdef HAVE_DBUS +static void change_cb(rm_monitor *m) { + pa_reserve_monitor_wrapper *w; + int k; + + pa_assert(m); + pa_assert_se(w = rm_get_userdata(m)); + pa_assert(PA_REFCNT_VALUE(w) >= 1); + + PA_REFCNT_INC(w); + + if ((k = rm_busy(w->monitor)) < 0) + return; + + pa_hook_fire(&w->hook, PA_INT_TO_PTR(!!k)); + pa_log_debug("Device lock status of %s changed: %s", w->shared_name, k ? "busy" : "not busy"); + + pa_reserve_monitor_wrapper_unref(w); +} +#endif + +pa_reserve_monitor_wrapper* pa_reserve_monitor_wrapper_get(pa_core *c, const char *device_name) { + pa_reserve_monitor_wrapper *w; + int k; + char *t; +#ifdef HAVE_DBUS + DBusError error; + + dbus_error_init(&error); +#endif + + pa_assert(c); + pa_assert(device_name); + + t = pa_sprintf_malloc("reserve-monitor-wrapper@%s", device_name); + + if ((w = pa_shared_get(c, t))) { + pa_xfree(t); + + pa_assert(PA_REFCNT_VALUE(w) >= 1); + PA_REFCNT_INC(w); + + return w; + } + + w = pa_xnew0(pa_reserve_monitor_wrapper, 1); + PA_REFCNT_INIT(w); + w->core = c; + pa_hook_init(&w->hook, w); + w->shared_name = t; + + pa_assert_se(pa_shared_set(c, w->shared_name, w) >= 0); + +#ifdef HAVE_DBUS + if (!(w->connection = pa_dbus_bus_get(c, DBUS_BUS_SESSION, &error)) || dbus_error_is_set(&error)) { + pa_log_warn("Unable to contact D-Bus session bus: %s: %s", error.name, error.message); + + /* We don't treat this as error here because we want allow PA + * to run even when no session bus is available. */ + return w; + } + + if ((k = rm_watch( + &w->monitor, + pa_dbus_connection_get(w->connection), + device_name, + change_cb, + NULL)) < 0) { + + pa_log_warn("Failed to create watch on device '%s': %s", device_name, pa_cstrerror(-k)); + goto fail; + } + + pa_log_debug("Successfully create reservation lock monitor for device '%s'", device_name); + + rm_set_userdata(w->monitor, w); + return w; + +fail: + dbus_error_free(&error); + + reserve_monitor_wrapper_free(w); + + return NULL; +#else + return w; +#endif +} + +void pa_reserve_monitor_wrapper_unref(pa_reserve_monitor_wrapper *w) { + pa_assert(w); + pa_assert(PA_REFCNT_VALUE(w) >= 1); + + if (PA_REFCNT_DEC(w) > 0) + return; + + reserve_monitor_wrapper_free(w); +} + +pa_hook* pa_reserve_monitor_wrapper_hook(pa_reserve_monitor_wrapper *w) { + pa_assert(w); + pa_assert(PA_REFCNT_VALUE(w) >= 1); + + return &w->hook; +} + +pa_bool_t pa_reserve_monitor_wrapper_busy(pa_reserve_monitor_wrapper *w) { + pa_assert(w); + + pa_assert(PA_REFCNT_VALUE(w) >= 1); + + return rm_busy(w->monitor) > 0; +} diff --git a/src/modules/reserve-wrap.h b/src/modules/reserve-wrap.h index 2b97c91c..2de6c093 100644 --- a/src/modules/reserve-wrap.h +++ b/src/modules/reserve-wrap.h @@ -28,11 +28,18 @@ typedef struct pa_reserve_wrapper pa_reserve_wrapper; pa_reserve_wrapper* pa_reserve_wrapper_get(pa_core *c, const char *device_name); - void pa_reserve_wrapper_unref(pa_reserve_wrapper *r); pa_hook* pa_reserve_wrapper_hook(pa_reserve_wrapper *r); void pa_reserve_wrapper_set_application_device_name(pa_reserve_wrapper *r, const char *name); +typedef struct pa_reserve_monitor_wrapper pa_reserve_monitor_wrapper; + +pa_reserve_monitor_wrapper* pa_reserve_monitor_wrapper_get(pa_core *c, const char *device_name); +void pa_reserve_monitor_wrapper_unref(pa_reserve_monitor_wrapper *m); + +pa_hook* pa_reserve_monitor_wrapper_hook(pa_reserve_monitor_wrapper *m); +pa_bool_t pa_reserve_monitor_wrapper_busy(pa_reserve_monitor_wrapper *m); + #endif diff --git a/src/modules/reserve.c b/src/modules/reserve.c index 9a9591d2..09bc46cb 100644 --- a/src/modules/reserve.c +++ b/src/modules/reserve.c @@ -43,16 +43,15 @@ struct rd_device { DBusConnection *connection; - int owning:1; - int registered:1; - int filtering:1; - int gave_up:1; + unsigned owning:1; + unsigned registered:1; + unsigned filtering:1; + unsigned gave_up:1; rd_request_cb_t request_cb; void *userdata; }; - #define SERVICE_PREFIX "org.freedesktop.ReserveDevice1." #define OBJECT_PREFIX "/org/freedesktop/ReserveDevice1/" @@ -297,6 +296,7 @@ static DBusHandlerResult filter_handler( dbus_error_init(&error); d = userdata; + assert(d->ref >= 1); if (dbus_message_is_signal(m, "org.freedesktop.DBus", "NameLost")) { const char *name; @@ -560,7 +560,7 @@ void rd_release( assert(d->ref > 0); - if (--d->ref) + if (--d->ref > 0) return; @@ -575,17 +575,11 @@ void rd_release( d->connection, d->object_path); - if (d->owning) { - DBusError error; - dbus_error_init(&error); - + if (d->owning) dbus_bus_release_name( d->connection, d->service_name, - &error); - - dbus_error_free(&error); - } + NULL); free(d->device_name); free(d->application_name); diff --git a/src/modules/reserve.h b/src/modules/reserve.h index b315a08c..31071298 100644 --- a/src/modules/reserve.h +++ b/src/modules/reserve.h @@ -45,7 +45,7 @@ typedef int (*rd_request_cb_t)( * the error was caused D-Bus. */ int rd_acquire( rd_device **d, /* On success a pointer to the newly allocated rd_device object will be filled in here */ - DBusConnection *connection, + DBusConnection *connection, /* Session bus (when D-Bus learns about user busses we should switchg to user busses) */ const char *device_name, /* The device to lock, e.g. "Audio0" */ const char *application_name, /* A human readable name of the application, e.g. "PulseAudio Sound Server" */ int32_t priority, /* The priority for this application. If unsure use 0 */ diff --git a/src/modules/rtp/module-rtp-recv.c b/src/modules/rtp/module-rtp-recv.c index c61d2d8b..5caf8272 100644 --- a/src/modules/rtp/module-rtp-recv.c +++ b/src/modules/rtp/module-rtp-recv.c @@ -33,6 +33,7 @@ #include <unistd.h> #include <poll.h> +#include <pulse/rtclock.h> #include <pulse/timeval.h> #include <pulse/xmalloc.h> @@ -43,13 +44,13 @@ #include <pulsecore/sink-input.h> #include <pulsecore/memblockq.h> #include <pulsecore/log.h> +#include <pulsecore/core-rtclock.h> #include <pulsecore/core-util.h> #include <pulsecore/modargs.h> #include <pulsecore/namereg.h> #include <pulsecore/sample-util.h> #include <pulsecore/macro.h> #include <pulsecore/atomic.h> -#include <pulsecore/rtclock.h> #include <pulsecore/atomic.h> #include <pulsecore/time-smoother.h> #include <pulsecore/socket-util.h> @@ -62,7 +63,7 @@ #include "sap.h" PA_MODULE_AUTHOR("Lennart Poettering"); -PA_MODULE_DESCRIPTION("Recieve data from a network via RTP/SAP/SDP"); +PA_MODULE_DESCRIPTION("Receive data from a network via RTP/SAP/SDP"); PA_MODULE_VERSION(PACKAGE_VERSION); PA_MODULE_LOAD_ONCE(FALSE); PA_MODULE_USAGE( @@ -112,6 +113,7 @@ struct session { struct userdata { pa_module *module; + pa_core *core; pa_sap_context sap_context; pa_io_event* sap_event; @@ -193,7 +195,7 @@ static void sink_input_suspend_within_thread(pa_sink_input* i, pa_bool_t b) { pa_assert_se(s = i->userdata); if (b) { - pa_smoother_pause(s->smoother, pa_rtclock_usec()); + pa_smoother_pause(s->smoother, pa_rtclock_now()); pa_memblockq_flush_read(s->memblockq); } else s->first_packet = FALSE; @@ -621,15 +623,13 @@ static void sap_event_cb(pa_mainloop_api *m, pa_io_event *e, int fd, pa_io_event } } -static void check_death_event_cb(pa_mainloop_api *m, pa_time_event *t, const struct timeval *ptv, void *userdata) { +static void check_death_event_cb(pa_mainloop_api *m, pa_time_event *t, const struct timeval *tv, void *userdata) { struct session *s, *n; struct userdata *u = userdata; struct timeval now; - struct timeval tv; pa_assert(m); pa_assert(t); - pa_assert(ptv); pa_assert(u); pa_rtclock_get(&now); @@ -647,9 +647,7 @@ static void check_death_event_cb(pa_mainloop_api *m, pa_time_event *t, const str } /* Restart timer */ - pa_gettimeofday(&tv); - pa_timeval_add(&tv, DEATH_TIMEOUT*PA_USEC_PER_SEC); - m->time_restart(t, &tv); + pa_core_rttime_restart(u->module->core, t, pa_rtclock_now() + DEATH_TIMEOUT * PA_USEC_PER_SEC); } int pa__init(pa_module*m) { @@ -663,7 +661,6 @@ int pa__init(pa_module*m) { socklen_t salen; const char *sap_address; int fd = -1; - struct timeval tv; pa_assert(m); @@ -696,6 +693,7 @@ int pa__init(pa_module*m) { m->userdata = u = pa_xnew(struct userdata, 1); u->module = m; + u->core = m->core; u->sink_name = pa_xstrdup(pa_modargs_get_value(ma, "sink", NULL)); u->sap_event = m->core->mainloop->io_new(m->core->mainloop, fd, PA_IO_EVENT_INPUT, sap_event_cb, u); @@ -705,9 +703,7 @@ int pa__init(pa_module*m) { u->n_sessions = 0; u->by_origin = pa_hashmap_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func); - pa_gettimeofday(&tv); - pa_timeval_add(&tv, DEATH_TIMEOUT * PA_USEC_PER_SEC); - u->check_death_event = m->core->mainloop->time_new(m->core->mainloop, &tv, check_death_event_cb, u); + u->check_death_event = pa_core_rttime_new(m->core, pa_rtclock_now() + DEATH_TIMEOUT * PA_USEC_PER_SEC, check_death_event_cb, u); pa_modargs_free(ma); diff --git a/src/modules/rtp/module-rtp-send.c b/src/modules/rtp/module-rtp-send.c index cdd2c57d..f147364d 100644 --- a/src/modules/rtp/module-rtp-send.c +++ b/src/modules/rtp/module-rtp-send.c @@ -31,6 +31,7 @@ #include <string.h> #include <unistd.h> +#include <pulse/rtclock.h> #include <pulse/timeval.h> #include <pulse/util.h> #include <pulse/xmalloc.h> @@ -77,7 +78,7 @@ PA_MODULE_USAGE( #define DEFAULT_DESTINATION "224.0.0.56" #define MEMBLOCKQ_MAXLENGTH (1024*170) #define DEFAULT_MTU 1280 -#define SAP_INTERVAL 5 +#define SAP_INTERVAL (5*PA_USEC_PER_SEC) static const char* const valid_modargs[] = { "source", @@ -151,18 +152,14 @@ static void source_output_kill(pa_source_output* o) { static void sap_event_cb(pa_mainloop_api *m, pa_time_event *t, const struct timeval *tv, void *userdata) { struct userdata *u = userdata; - struct timeval next; pa_assert(m); pa_assert(t); - pa_assert(tv); pa_assert(u); pa_sap_send(&u->sap_context, 0); - pa_gettimeofday(&next); - pa_timeval_add(&next, SAP_INTERVAL * PA_USEC_PER_SEC); - m->time_restart(t, &next); + pa_core_rttime_restart(u->module->core, t, pa_rtclock_now() + SAP_INTERVAL); } int pa__init(pa_module*m) { @@ -186,7 +183,6 @@ int pa__init(pa_module*m) { char *p; int r, j; socklen_t k; - struct timeval tv; char hn[128], *n; pa_bool_t loop = FALSE; pa_source_output_new_data data; @@ -347,8 +343,8 @@ int pa__init(pa_module*m) { o->push = source_output_push; o->kill = source_output_kill; - pa_log_info("Configured source latency of %lu ms.", - pa_source_output_set_requested_latency(o, pa_bytes_to_usec(mtu, &o->sample_spec)) / PA_USEC_PER_MSEC); + pa_log_info("Configured source latency of %llu ms.", + (unsigned long long) pa_source_output_set_requested_latency(o, pa_bytes_to_usec(mtu, &o->sample_spec)) / PA_USEC_PER_MSEC); m->userdata = o->userdata = u = pa_xnew(struct userdata, 1); u->module = m; @@ -395,9 +391,7 @@ int pa__init(pa_module*m) { pa_sap_send(&u->sap_context, 0); - pa_gettimeofday(&tv); - pa_timeval_add(&tv, SAP_INTERVAL * PA_USEC_PER_SEC); - u->sap_event = m->core->mainloop->time_new(m->core->mainloop, &tv, sap_event_cb, u); + u->sap_event = pa_core_rttime_new(m->core, pa_rtclock_now() + SAP_INTERVAL, sap_event_cb, u); pa_source_output_put(u->source_output); diff --git a/src/modules/rtp/rtsp_client.c b/src/modules/rtp/rtsp_client.c index cb037de6..72d304e8 100644 --- a/src/modules/rtp/rtsp_client.c +++ b/src/modules/rtp/rtsp_client.c @@ -333,7 +333,7 @@ int pa_rtsp_connect(pa_rtsp_client *c) { pa_xfree(c->session); c->session = NULL; - if (!(c->sc = pa_socket_client_new_string(c->mainloop, c->hostname, c->port))) { + if (!(c->sc = pa_socket_client_new_string(c->mainloop, TRUE, c->hostname, c->port))) { pa_log("failed to connect to server '%s:%d'", c->hostname, c->port); return -1; } diff --git a/src/modules/udev-util.c b/src/modules/udev-util.c index 144ad797..cc824465 100644 --- a/src/modules/udev-util.c +++ b/src/modules/udev-util.c @@ -58,7 +58,7 @@ static int read_id(struct udev_device *d, const char *n) { return u; } -int pa_udev_get_info(pa_core *core, pa_proplist *p, int card_idx) { +int pa_udev_get_info(int card_idx, pa_proplist *p) { int r = -1; struct udev *udev; struct udev_device *card = NULL; @@ -66,7 +66,6 @@ int pa_udev_get_info(pa_core *core, pa_proplist *p, int card_idx) { const char *v; int id; - pa_assert(core); pa_assert(p); pa_assert(card_idx >= 0); @@ -84,6 +83,19 @@ int pa_udev_get_info(pa_core *core, pa_proplist *p, int card_idx) { goto finish; } + if (!pa_proplist_contains(p, PA_PROP_DEVICE_BUS_PATH)) + if (((v = udev_device_get_property_value(card, "ID_PATH")) && *v) || + (v = udev_device_get_devpath(card))) + pa_proplist_sets(p, PA_PROP_DEVICE_BUS_PATH, v); + + if (!pa_proplist_contains(p, "sysfs.path")) + if ((v = udev_device_get_devpath(card))) + pa_proplist_sets(p, "sysfs.path", v); + + if (!pa_proplist_contains(p, "udev.id")) + if ((v = udev_device_get_property_value(card, "ID_ID")) && *v) + pa_proplist_sets(p, "udev.id", v); + if (!pa_proplist_contains(p, PA_PROP_DEVICE_BUS)) if ((v = udev_device_get_property_value(card, "ID_BUS")) && *v) pa_proplist_sets(p, PA_PROP_DEVICE_BUS, v); @@ -114,15 +126,15 @@ int pa_udev_get_info(pa_core *core, pa_proplist *p, int card_idx) { if ((v = udev_device_get_property_value(card, "ID_SERIAL")) && *v) pa_proplist_sets(p, PA_PROP_DEVICE_SERIAL, v); + if (!pa_proplist_contains(p, PA_PROP_DEVICE_CLASS)) + if ((v = udev_device_get_property_value(card, "SOUND_CLASS")) && *v) + pa_proplist_sets(p, PA_PROP_DEVICE_CLASS, v); + if (!pa_proplist_contains(p, PA_PROP_DEVICE_FORM_FACTOR)) if ((v = udev_device_get_property_value(card, "SOUND_FORM_FACTOR")) && *v) pa_proplist_sets(p, PA_PROP_DEVICE_FORM_FACTOR, v); - if (!pa_proplist_contains(p, PA_PROP_DEVICE_BUS_PATH)) - if ((v = udev_device_get_devpath(card))) - pa_proplist_sets(p, PA_PROP_DEVICE_BUS_PATH, v); - - /* This is normaly not set by th udev rules but may be useful to + /* This is normaly not set by the udev rules but may be useful to * allow administrators to overwrite the device description.*/ if (!pa_proplist_contains(p, PA_PROP_DEVICE_DESCRIPTION)) if ((v = udev_device_get_property_value(card, "SOUND_DESCRIPTION")) && *v) @@ -140,3 +152,40 @@ finish: return r; } + +char* pa_udev_get_property(int card_idx, const char *name) { + struct udev *udev; + struct udev_device *card = NULL; + char *t, *r = NULL; + const char *v; + + pa_assert(card_idx >= 0); + pa_assert(name); + + if (!(udev = udev_new())) { + pa_log_error("Failed to allocate udev context."); + goto finish; + } + + t = pa_sprintf_malloc("%s/class/sound/card%i", udev_get_sys_path(udev), card_idx); + card = udev_device_new_from_syspath(udev, t); + pa_xfree(t); + + if (!card) { + pa_log_error("Failed to get card object."); + goto finish; + } + + if ((v = udev_device_get_property_value(card, name)) && *v) + r = pa_xstrdup(v); + +finish: + + if (card) + udev_device_unref(card); + + if (udev) + udev_unref(udev); + + return r; +} diff --git a/src/modules/udev-util.h b/src/modules/udev-util.h index 5120abdd..8523bc4d 100644 --- a/src/modules/udev-util.h +++ b/src/modules/udev-util.h @@ -25,6 +25,7 @@ #include <pulsecore/core.h> -int pa_udev_get_info(pa_core *core, pa_proplist *p, int card); +int pa_udev_get_info(int card_idx, pa_proplist *p); +char* pa_udev_get_property(int card_idx, const char *name); #endif diff --git a/src/pulse/channelmap.c b/src/pulse/channelmap.c index 4654a9ad..88823012 100644 --- a/src/pulse/channelmap.c +++ b/src/pulse/channelmap.c @@ -30,9 +30,11 @@ #include <pulse/xmalloc.h> #include <pulse/i18n.h> + #include <pulsecore/core-util.h> #include <pulsecore/macro.h> #include <pulsecore/bitset.h> +#include <pulsecore/sample-util.h> #include "channelmap.h" @@ -491,6 +493,27 @@ char* pa_channel_map_snprint(char *s, size_t l, const pa_channel_map *map) { return s; } +pa_channel_position_t pa_channel_position_from_string(const char *p) { + pa_channel_position_t i; + pa_assert(p); + + /* Some special aliases */ + if (pa_streq(p, "left")) + return PA_CHANNEL_POSITION_LEFT; + else if (pa_streq(p, "right")) + return PA_CHANNEL_POSITION_RIGHT; + else if (pa_streq(p, "center")) + return PA_CHANNEL_POSITION_CENTER; + else if (pa_streq(p, "subwoofer")) + return PA_CHANNEL_POSITION_SUBWOOFER; + + for (i = 0; i < PA_CHANNEL_POSITION_MAX; i++) + if (pa_streq(p, table[i])) + return i; + + return PA_CHANNEL_POSITION_INVALID; +} + pa_channel_map *pa_channel_map_parse(pa_channel_map *rmap, const char *s) { const char *state; pa_channel_map map; @@ -559,36 +582,19 @@ pa_channel_map *pa_channel_map_parse(pa_channel_map *rmap, const char *s) { map.channels = 0; while ((p = pa_split(s, ",", &state))) { + pa_channel_position_t f; if (map.channels >= PA_CHANNELS_MAX) { pa_xfree(p); return NULL; } - /* Some special aliases */ - if (pa_streq(p, "left")) - map.map[map.channels++] = PA_CHANNEL_POSITION_LEFT; - else if (pa_streq(p, "right")) - map.map[map.channels++] = PA_CHANNEL_POSITION_RIGHT; - else if (pa_streq(p, "center")) - map.map[map.channels++] = PA_CHANNEL_POSITION_CENTER; - else if (pa_streq(p, "subwoofer")) - map.map[map.channels++] = PA_CHANNEL_POSITION_SUBWOOFER; - else { - pa_channel_position_t i; - - for (i = 0; i < PA_CHANNEL_POSITION_MAX; i++) - if (strcmp(p, table[i]) == 0) { - map.map[map.channels++] = i; - break; - } - - if (i >= PA_CHANNEL_POSITION_MAX) { - pa_xfree(p); - return NULL; - } + if ((f = pa_channel_position_from_string(p)) == PA_CHANNEL_POSITION_INVALID) { + pa_xfree(p); + return NULL; } + map.map[map.channels++] = f; pa_xfree(p); } @@ -627,8 +633,7 @@ int pa_channel_map_compatible(const pa_channel_map *map, const pa_sample_spec *s } int pa_channel_map_superset(const pa_channel_map *a, const pa_channel_map *b) { - pa_bitset_t in_a[PA_BITSET_ELEMENTS(PA_CHANNEL_POSITION_MAX)]; - unsigned i; + pa_channel_position_mask_t am, bm; pa_assert(a); pa_assert(b); @@ -636,98 +641,36 @@ int pa_channel_map_superset(const pa_channel_map *a, const pa_channel_map *b) { pa_return_val_if_fail(pa_channel_map_valid(a), 0); pa_return_val_if_fail(pa_channel_map_valid(b), 0); - memset(in_a, 0, sizeof(in_a)); + am = pa_channel_map_mask(a); + bm = pa_channel_map_mask(b); - for (i = 0; i < a->channels; i++) - pa_bitset_set(in_a, a->map[i], TRUE); - - for (i = 0; i < b->channels; i++) - if (!pa_bitset_get(in_a, b->map[i])) - return 0; - - return 1; + return (bm & am) == bm; } int pa_channel_map_can_balance(const pa_channel_map *map) { - unsigned c; - pa_bool_t left = FALSE, right = FALSE; + pa_channel_position_mask_t m; pa_assert(map); - pa_return_val_if_fail(pa_channel_map_valid(map), 0); - for (c = 0; c < map->channels; c++) { - - switch (map->map[c]) { - case PA_CHANNEL_POSITION_LEFT: - case PA_CHANNEL_POSITION_REAR_LEFT: - case PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER: - case PA_CHANNEL_POSITION_SIDE_LEFT: - case PA_CHANNEL_POSITION_TOP_FRONT_LEFT: - case PA_CHANNEL_POSITION_TOP_REAR_LEFT: - left = TRUE; - break; - - case PA_CHANNEL_POSITION_RIGHT: - case PA_CHANNEL_POSITION_REAR_RIGHT: - case PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER: - case PA_CHANNEL_POSITION_SIDE_RIGHT: - case PA_CHANNEL_POSITION_TOP_FRONT_RIGHT: - case PA_CHANNEL_POSITION_TOP_REAR_RIGHT: - right = TRUE; - break; - - default: - ; - } - - if (left && right) - return 1; - } + m = pa_channel_map_mask(map); - return 0; + return + (PA_CHANNEL_POSITION_MASK_LEFT & m) && + (PA_CHANNEL_POSITION_MASK_RIGHT & m); } int pa_channel_map_can_fade(const pa_channel_map *map) { - unsigned c; - pa_bool_t front = FALSE, rear = FALSE; + pa_channel_position_mask_t m; pa_assert(map); - pa_return_val_if_fail(pa_channel_map_valid(map), 0); - for (c = 0; c < map->channels; c++) { - - switch (map->map[c]) { - case PA_CHANNEL_POSITION_FRONT_LEFT: - case PA_CHANNEL_POSITION_FRONT_RIGHT: - case PA_CHANNEL_POSITION_FRONT_CENTER: - case PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER: - case PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER: - case PA_CHANNEL_POSITION_TOP_FRONT_LEFT: - case PA_CHANNEL_POSITION_TOP_FRONT_RIGHT: - case PA_CHANNEL_POSITION_TOP_FRONT_CENTER: - front = TRUE; - break; - - case PA_CHANNEL_POSITION_REAR_LEFT: - case PA_CHANNEL_POSITION_REAR_RIGHT: - case PA_CHANNEL_POSITION_REAR_CENTER: - case PA_CHANNEL_POSITION_TOP_REAR_LEFT: - case PA_CHANNEL_POSITION_TOP_REAR_RIGHT: - case PA_CHANNEL_POSITION_TOP_REAR_CENTER: - rear = TRUE; - break; - - default: - ; - } - - if (front && rear) - return 1; - } + m = pa_channel_map_mask(map); - return 0; + return + (PA_CHANNEL_POSITION_MASK_FRONT & m) && + (PA_CHANNEL_POSITION_MASK_REAR & m); } const char* pa_channel_map_to_name(const pa_channel_map *map) { diff --git a/src/pulse/channelmap.h b/src/pulse/channelmap.h index 2aaead01..d7901ac2 100644 --- a/src/pulse/channelmap.h +++ b/src/pulse/channelmap.h @@ -209,7 +209,7 @@ typedef enum pa_channel_position { typedef uint64_t pa_channel_position_mask_t; /** Makes a bit mask from a channel position. \since 0.9.16 */ -#define PA_CHANNEL_POSITION_MASK(f) ((pa_channel_position_mask_t) (1 << (f))) +#define PA_CHANNEL_POSITION_MASK(f) ((pa_channel_position_mask_t) (1ULL << (f))) /** A list of channel mapping definitions for pa_channel_map_init_auto() */ typedef enum pa_channel_map_def { @@ -282,6 +282,9 @@ pa_channel_map* pa_channel_map_init_extend(pa_channel_map *m, unsigned channels, /** Return a text label for the specified channel position */ const char* pa_channel_position_to_string(pa_channel_position_t pos) PA_GCC_PURE; +/* The inverse of pa_channel_position_to_string(). \since 0.9.16 */ +pa_channel_position_t pa_channel_position_from_string(const char *s) PA_GCC_PURE; + /** Return a human readable text label for the specified channel position. \since 0.9.7 */ const char* pa_channel_position_to_pretty_string(pa_channel_position_t pos); diff --git a/src/pulse/context.c b/src/pulse/context.c index 3b7bf08d..505e758a 100644 --- a/src/pulse/context.c +++ b/src/pulse/context.c @@ -54,6 +54,8 @@ #include <pulse/utf8.h> #include <pulse/util.h> #include <pulse/i18n.h> +#include <pulse/mainloop.h> +#include <pulse/timeval.h> #include <pulsecore/winsock.h> #include <pulsecore/core-error.h> @@ -64,6 +66,7 @@ #include <pulsecore/dynarray.h> #include <pulsecore/socket-client.h> #include <pulsecore/pstream-util.h> +#include <pulsecore/core-rtclock.h> #include <pulsecore/core-util.h> #include <pulsecore/log.h> #include <pulsecore/socket-util.h> @@ -157,6 +160,7 @@ pa_context *pa_context_new_with_proplist(pa_mainloop_api *mainloop, const char * c->playback_streams = pa_dynarray_new(); c->record_streams = pa_dynarray_new(); c->client_index = PA_INVALID_INDEX; + c->use_rtclock = pa_mainloop_is_our_api(mainloop); PA_LLIST_HEAD_INIT(pa_stream, c->streams); PA_LLIST_HEAD_INIT(pa_operation, c->operations); @@ -540,7 +544,7 @@ static void setup_context(pa_context *c, pa_iochannel *io) { pa_pstream_set_recieve_memblock_callback(c->pstream, pstream_memblock_callback, c); pa_assert(!c->pdispatch); - c->pdispatch = pa_pdispatch_new(c->mainloop, command_table, PA_COMMAND_MAX); + c->pdispatch = pa_pdispatch_new(c->mainloop, c->use_rtclock, command_table, PA_COMMAND_MAX); if (!c->conf->cookie_valid) pa_log_info(_("No cookie loaded. Attempting to connect without.")); @@ -757,7 +761,7 @@ static void track_pulseaudio_on_dbus(pa_context *c, DBusBusType type, pa_dbus_wr pa_assert(conn); dbus_error_init(&error); - if (!(*conn = pa_dbus_wrap_connection_new(c->mainloop, type, &error)) || dbus_error_is_set(&error)) { + if (!(*conn = pa_dbus_wrap_connection_new(c->mainloop, c->use_rtclock, type, &error)) || dbus_error_is_set(&error)) { pa_log_warn("Unable to contact DBUS: %s: %s", error.name, error.message); goto finish; } @@ -827,7 +831,7 @@ static int try_next_connection(pa_context *c) { pa_xfree(c->server); c->server = pa_xstrdup(u); - if (!(c->client = pa_socket_client_new_string(c->mainloop, u, PA_NATIVE_DEFAULT_PORT))) + if (!(c->client = pa_socket_client_new_string(c->mainloop, c->use_rtclock, u, PA_NATIVE_DEFAULT_PORT))) continue; c->is_local = !!pa_socket_client_is_local(c->client); @@ -1443,3 +1447,31 @@ finish: if (pl) pa_proplist_free(pl); } + +pa_time_event* pa_context_rttime_new(pa_context *c, pa_usec_t usec, pa_time_event_cb_t cb, void *userdata) { + struct timeval tv; + + pa_assert(c); + pa_assert(c->mainloop); + + if (usec == PA_USEC_INVALID) + return c->mainloop->time_new(c->mainloop, NULL, cb, userdata); + + pa_timeval_rtstore(&tv, usec, c->use_rtclock); + + return c->mainloop->time_new(c->mainloop, &tv, cb, userdata); +} + +void pa_context_rttime_restart(pa_context *c, pa_time_event *e, pa_usec_t usec) { + struct timeval tv; + + pa_assert(c); + pa_assert(c->mainloop); + + if (usec == PA_USEC_INVALID) + c->mainloop->time_restart(e, NULL); + else { + pa_timeval_rtstore(&tv, usec, c->use_rtclock); + c->mainloop->time_restart(e, &tv); + } +} diff --git a/src/pulse/context.h b/src/pulse/context.h index 139d0e0b..cd129313 100644 --- a/src/pulse/context.h +++ b/src/pulse/context.h @@ -260,6 +260,14 @@ pa_operation *pa_context_proplist_remove(pa_context *c, const char *const keys[] * introspection functions, such as pa_context_get_client_info(). \since 0.9.11 */ uint32_t pa_context_get_index(pa_context *s); +/** Create a new timer event source for the specified time (wrapper + for mainloop->time_new). \since 0.9.16 */ +pa_time_event* pa_context_rttime_new(pa_context *c, pa_usec_t usec, pa_time_event_cb_t cb, void *userdata); +/** Restart a running or expired timer event source (wrapper + for mainloop->time_restart). \since 0.9.16 */ +void pa_context_rttime_restart(pa_context *c, pa_time_event *e, pa_usec_t usec); + + PA_C_DECL_END #endif diff --git a/src/pulse/def.h b/src/pulse/def.h index d5bbefe3..08399ca8 100644 --- a/src/pulse/def.h +++ b/src/pulse/def.h @@ -393,6 +393,7 @@ enum { PA_ERR_OBSOLETE, /**< Obsolete functionality. \since 0.9.15 */ PA_ERR_NOTIMPLEMENTED, /**< Missing implementation. \since 0.9.15 */ PA_ERR_FORKED, /**< The caller forked without calling execve() and tried to reuse the context. \since 0.9.15 */ + PA_ERR_IO, /**< An IO error happened. \since 0.9.16 */ PA_ERR_MAX /**< Not really an error but the first invalid error code */ }; diff --git a/src/pulse/internal.h b/src/pulse/internal.h index 28a989b3..ec2da85b 100644 --- a/src/pulse/internal.h +++ b/src/pulse/internal.h @@ -89,6 +89,7 @@ struct pa_context { pa_bool_t server_specified:1; pa_bool_t no_fail:1; pa_bool_t do_autospawn:1; + pa_bool_t use_rtclock:1; pa_spawn_api spawn_api; pa_strlist *server_list; @@ -279,4 +280,6 @@ pa_tagstruct *pa_tagstruct_command(pa_context *c, uint32_t command, uint32_t *ta void pa_ext_stream_restore_command(pa_context *c, uint32_t tag, pa_tagstruct *t); +pa_bool_t pa_mainloop_is_our_api(pa_mainloop_api*m); + #endif diff --git a/src/pulse/introspect.c b/src/pulse/introspect.c index ac8a11aa..ab67f596 100644 --- a/src/pulse/introspect.c +++ b/src/pulse/introspect.c @@ -49,7 +49,7 @@ static void context_stat_callback(pa_pdispatch *pd, uint32_t command, uint32_t t pa_assert(o); pa_assert(PA_REFCNT_VALUE(o) >= 1); - memset(&i, 0, sizeof(i)); + pa_zero(i); if (!o->context) goto finish; @@ -93,7 +93,7 @@ static void context_get_server_info_callback(pa_pdispatch *pd, uint32_t command, pa_assert(o); pa_assert(PA_REFCNT_VALUE(o) >= 1); - memset(&i, 0, sizeof(i)); + pa_zero(i); if (!o->context) goto finish; @@ -161,8 +161,10 @@ static void context_get_sink_info_callback(pa_pdispatch *pd, uint32_t command, u pa_bool_t mute; uint32_t flags; uint32_t state; + uint32_t j; + const char *ap = NULL; - memset(&i, 0, sizeof(i)); + pa_zero(i); i.proplist = pa_proplist_new(); i.base_volume = PA_VOLUME_NORM; i.n_volume_steps = PA_VOLUME_NORM+1; @@ -190,13 +192,53 @@ static void context_get_sink_info_callback(pa_pdispatch *pd, uint32_t command, u (pa_tagstruct_get_volume(t, &i.base_volume) < 0 || pa_tagstruct_getu32(t, &state) < 0 || pa_tagstruct_getu32(t, &i.n_volume_steps) < 0 || - pa_tagstruct_getu32(t, &i.card) < 0))) { + pa_tagstruct_getu32(t, &i.card) < 0)) || + (o->context->version >= 16 && + (pa_tagstruct_getu32(t, &i.n_ports)))) { + + pa_context_fail(o->context, PA_ERR_PROTOCOL); + pa_proplist_free(i.proplist); + 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; + } + + i.ports[j] = &i.ports[0][j]; + } + + 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 (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; i.flags = (pa_sink_flags_t) flags; i.state = (pa_sink_state_t) state; @@ -271,6 +313,56 @@ pa_operation* pa_context_get_sink_info_by_name(pa_context *c, const char *name, return o; } +pa_operation* pa_context_set_sink_port_by_index(pa_context *c, uint32_t idx, const char*port, pa_context_success_cb_t cb, void *userdata) { + pa_operation *o; + pa_tagstruct *t; + uint32_t tag; + + pa_assert(c); + pa_assert(PA_REFCNT_VALUE(c) >= 1); + + PA_CHECK_VALIDITY_RETURN_NULL(c, !pa_detect_fork(), PA_ERR_FORKED); + PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); + PA_CHECK_VALIDITY_RETURN_NULL(c, idx != PA_INVALID_INDEX, PA_ERR_INVALID); + PA_CHECK_VALIDITY_RETURN_NULL(c, c->version >= 16, PA_ERR_NOTSUPPORTED); + + o = pa_operation_new(c, NULL, (pa_operation_cb_t) cb, userdata); + + t = pa_tagstruct_command(c, PA_COMMAND_SET_SINK_PORT, &tag); + pa_tagstruct_putu32(t, idx); + pa_tagstruct_puts(t, NULL); + pa_tagstruct_puts(t, port); + pa_pstream_send_tagstruct(c->pstream, t); + pa_pdispatch_register_reply(c->pdispatch, tag, DEFAULT_TIMEOUT, pa_context_simple_ack_callback, pa_operation_ref(o), (pa_free_cb_t) pa_operation_unref); + + return o; +} + +pa_operation* pa_context_set_sink_port_by_name(pa_context *c, const char *name, const char*port, pa_context_success_cb_t cb, void *userdata) { + pa_operation *o; + pa_tagstruct *t; + uint32_t tag; + + pa_assert(c); + pa_assert(PA_REFCNT_VALUE(c) >= 1); + + PA_CHECK_VALIDITY_RETURN_NULL(c, !pa_detect_fork(), PA_ERR_FORKED); + PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); + PA_CHECK_VALIDITY_RETURN_NULL(c, !name || *name, PA_ERR_INVALID); + PA_CHECK_VALIDITY_RETURN_NULL(c, c->version >= 16, PA_ERR_NOTSUPPORTED); + + o = pa_operation_new(c, NULL, (pa_operation_cb_t) cb, userdata); + + t = pa_tagstruct_command(c, PA_COMMAND_SET_SINK_PORT, &tag); + pa_tagstruct_putu32(t, PA_INVALID_INDEX); + pa_tagstruct_puts(t, name); + pa_tagstruct_puts(t, port); + pa_pstream_send_tagstruct(c->pstream, t); + pa_pdispatch_register_reply(c->pdispatch, tag, DEFAULT_TIMEOUT, pa_context_simple_ack_callback, pa_operation_ref(o), (pa_free_cb_t) pa_operation_unref); + + return o; +} + /*** Source info ***/ static void context_get_source_info_callback(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa_tagstruct *t, void *userdata) { @@ -296,8 +388,10 @@ static void context_get_source_info_callback(pa_pdispatch *pd, uint32_t command, pa_bool_t mute; uint32_t flags; uint32_t state; + unsigned j; + const char *ap; - memset(&i, 0, sizeof(i)); + pa_zero(i); i.proplist = pa_proplist_new(); i.base_volume = PA_VOLUME_NORM; i.n_volume_steps = PA_VOLUME_NORM+1; @@ -325,13 +419,53 @@ static void context_get_source_info_callback(pa_pdispatch *pd, uint32_t command, (pa_tagstruct_get_volume(t, &i.base_volume) < 0 || pa_tagstruct_getu32(t, &state) < 0 || pa_tagstruct_getu32(t, &i.n_volume_steps) < 0 || - pa_tagstruct_getu32(t, &i.card) < 0))) { + pa_tagstruct_getu32(t, &i.card) < 0)) || + (o->context->version >= 16 && + (pa_tagstruct_getu32(t, &i.n_ports)))) { pa_context_fail(o->context, PA_ERR_PROTOCOL); pa_proplist_free(i.proplist); 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); + + 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] = 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 (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; i.flags = (pa_source_flags_t) flags; i.state = (pa_source_state_t) state; @@ -406,6 +540,56 @@ pa_operation* pa_context_get_source_info_by_name(pa_context *c, const char *name return o; } +pa_operation* pa_context_set_source_port_by_index(pa_context *c, uint32_t idx, const char*port, pa_context_success_cb_t cb, void *userdata) { + pa_operation *o; + pa_tagstruct *t; + uint32_t tag; + + pa_assert(c); + pa_assert(PA_REFCNT_VALUE(c) >= 1); + + PA_CHECK_VALIDITY_RETURN_NULL(c, !pa_detect_fork(), PA_ERR_FORKED); + PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); + PA_CHECK_VALIDITY_RETURN_NULL(c, idx != PA_INVALID_INDEX, PA_ERR_INVALID); + PA_CHECK_VALIDITY_RETURN_NULL(c, c->version >= 16, PA_ERR_NOTSUPPORTED); + + o = pa_operation_new(c, NULL, (pa_operation_cb_t) cb, userdata); + + t = pa_tagstruct_command(c, PA_COMMAND_SET_SOURCE_PORT, &tag); + pa_tagstruct_putu32(t, idx); + pa_tagstruct_puts(t, NULL); + pa_tagstruct_puts(t, port); + pa_pstream_send_tagstruct(c->pstream, t); + pa_pdispatch_register_reply(c->pdispatch, tag, DEFAULT_TIMEOUT, pa_context_simple_ack_callback, pa_operation_ref(o), (pa_free_cb_t) pa_operation_unref); + + return o; +} + +pa_operation* pa_context_set_source_port_by_name(pa_context *c, const char *name, const char*port, pa_context_success_cb_t cb, void *userdata) { + pa_operation *o; + pa_tagstruct *t; + uint32_t tag; + + pa_assert(c); + pa_assert(PA_REFCNT_VALUE(c) >= 1); + + PA_CHECK_VALIDITY_RETURN_NULL(c, !pa_detect_fork(), PA_ERR_FORKED); + PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); + PA_CHECK_VALIDITY_RETURN_NULL(c, !name || *name, PA_ERR_INVALID); + PA_CHECK_VALIDITY_RETURN_NULL(c, c->version >= 16, PA_ERR_NOTSUPPORTED); + + o = pa_operation_new(c, NULL, (pa_operation_cb_t) cb, userdata); + + t = pa_tagstruct_command(c, PA_COMMAND_SET_SOURCE_PORT, &tag); + pa_tagstruct_putu32(t, PA_INVALID_INDEX); + pa_tagstruct_puts(t, name); + pa_tagstruct_puts(t, port); + pa_pstream_send_tagstruct(c->pstream, t); + pa_pdispatch_register_reply(c->pdispatch, tag, DEFAULT_TIMEOUT, pa_context_simple_ack_callback, pa_operation_ref(o), (pa_free_cb_t) pa_operation_unref); + + return o; +} + /*** Client info ***/ static void context_get_client_info_callback(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa_tagstruct *t, void *userdata) { @@ -429,7 +613,7 @@ static void context_get_client_info_callback(pa_pdispatch *pd, uint32_t command, while (!pa_tagstruct_eof(t)) { pa_client_info i; - memset(&i, 0, sizeof(i)); + pa_zero(i); i.proplist = pa_proplist_new(); if (pa_tagstruct_getu32(t, &i.index) < 0 || @@ -514,7 +698,7 @@ static void context_get_card_info_callback(pa_pdispatch *pd, uint32_t command, u uint32_t j; const char*ap; - memset(&i, 0, sizeof(i)); + pa_zero(i); if (pa_tagstruct_getu32(t, &i.index) < 0 || pa_tagstruct_gets(t, &i.name) < 0 || @@ -527,7 +711,7 @@ static void context_get_card_info_callback(pa_pdispatch *pd, uint32_t command, u } if (i.n_profiles > 0) { - i.profiles = pa_xnew(pa_card_profile_info, i.n_profiles+1); + i.profiles = pa_xnew0(pa_card_profile_info, i.n_profiles+1); for (j = 0; j < i.n_profiles; j++) { @@ -715,7 +899,7 @@ static void context_get_module_info_callback(pa_pdispatch *pd, uint32_t command, pa_module_info i; pa_bool_t auto_unload = FALSE; - memset(&i, 0, sizeof(i)); + pa_zero(i); i.proplist = pa_proplist_new(); if (pa_tagstruct_getu32(t, &i.index) < 0 || @@ -800,7 +984,7 @@ static void context_get_sink_input_info_callback(pa_pdispatch *pd, uint32_t comm pa_sink_input_info i; pa_bool_t mute = FALSE; - memset(&i, 0, sizeof(i)); + pa_zero(i); i.proplist = pa_proplist_new(); if (pa_tagstruct_getu32(t, &i.index) < 0 || @@ -894,7 +1078,7 @@ static void context_get_source_output_info_callback(pa_pdispatch *pd, uint32_t c while (!pa_tagstruct_eof(t)) { pa_source_output_info i; - memset(&i, 0, sizeof(i)); + pa_zero(i); i.proplist = pa_proplist_new(); if (pa_tagstruct_getu32(t, &i.index) < 0 || @@ -1236,7 +1420,7 @@ static void context_get_sample_info_callback(pa_pdispatch *pd, uint32_t command, pa_sample_info i; pa_bool_t lazy = FALSE; - memset(&i, 0, sizeof(i)); + pa_zero(i); i.proplist = pa_proplist_new(); if (pa_tagstruct_getu32(t, &i.index) < 0 || diff --git a/src/pulse/introspect.h b/src/pulse/introspect.h index 117880c8..ee982100 100644 --- a/src/pulse/introspect.h +++ b/src/pulse/introspect.h @@ -193,6 +193,15 @@ PA_C_DECL_BEGIN /** @{ \name Sinks */ +/** Stores information about a specific port of a sink. Please + * note that this structure can be extended as part of evolutionary + * API updates at any time in any new release. \since 0.9.16 */ +typedef struct pa_sink_port_info { + const char *name; /**< Name of this port */ + const char *description; /**< Description of this port */ + uint32_t priority; /**< The higher this value is the more useful this port is as a default */ +} pa_sink_port_info; + /** Stores information about sinks. Please note that this structure * can be extended as part of evolutionary API updates at any time in * any new release. */ @@ -216,6 +225,9 @@ typedef struct pa_sink_info { pa_sink_state_t state; /**< State \since 0.9.15 */ uint32_t n_volume_steps; /**< Number of volume steps for sinks which do not support arbitrary volumes. \since 0.9.15 */ uint32_t card; /**< Card index, or PA_INVALID_INDEX. \since 0.9.15 */ + uint32_t n_ports; /**< Number of entries in port array \since 0.9.16 */ + pa_sink_port_info** ports; /**< Array of available ports, or NULL. Array is terminated by an entry set to NULL. The number of entries is stored in n_ports \since 0.9.16 */ + pa_sink_port_info* active_port; /**< Pointer to active port in the array, or NULL \since 0.9.16 */ } pa_sink_info; /** Callback prototype for pa_context_get_sink_info_by_name() and friends */ @@ -248,10 +260,25 @@ pa_operation* pa_context_suspend_sink_by_name(pa_context *c, const char *sink_na /** Suspend/Resume a sink. If idx is PA_INVALID_INDEX all sinks will be suspended. \since 0.9.7 */ pa_operation* pa_context_suspend_sink_by_index(pa_context *c, uint32_t idx, int suspend, pa_context_success_cb_t cb, void* userdata); +/** Change the profile of a sink. \since 0.9.16 */ +pa_operation* pa_context_set_sink_port_by_index(pa_context *c, uint32_t idx, const char*port, pa_context_success_cb_t cb, void *userdata); + +/** Change the profile of a sink. \since 0.9.15 */ +pa_operation* pa_context_set_sink_port_by_name(pa_context *c, const char*name, const char*port, pa_context_success_cb_t cb, void *userdata); + /** @} */ /** @{ \name Sources */ +/** Stores information about a specific port of a source. Please + * note that this structure can be extended as part of evolutionary + * API updates at any time in any new release. \since 0.9.16 */ +typedef struct pa_source_port_info { + const char *name; /**< Name of this port */ + const char *description; /**< Description of this port */ + uint32_t priority; /**< The higher this value is the more useful this port is as a default */ +} pa_source_port_info; + /** Stores information about sources. Please note that this structure * can be extended as part of evolutionary API updates at any time in * any new release. */ @@ -275,6 +302,9 @@ typedef struct pa_source_info { pa_source_state_t state; /**< State \since 0.9.15 */ uint32_t n_volume_steps; /**< Number of volume steps for sources which do not support arbitrary volumes. \since 0.9.15 */ uint32_t card; /**< Card index, or PA_INVALID_INDEX. \since 0.9.15 */ + uint32_t n_ports; /**< Number of entries in port array \since 0.9.16 */ + pa_source_port_info** ports; /**< Array of available ports, or NULL. Array is terminated by an entry set to NULL. The number of entries is stored in n_ports \since 0.9.16 */ + pa_source_port_info* active_port; /**< Pointer to active port in the array, or NULL \since 0.9.16 */ } pa_source_info; /** Callback prototype for pa_context_get_source_info_by_name() and friends */ @@ -301,6 +331,12 @@ pa_operation* pa_context_set_source_mute_by_index(pa_context *c, uint32_t idx, i /** Set the mute switch of a source device specified by its name */ pa_operation* pa_context_set_source_mute_by_name(pa_context *c, const char *name, int mute, pa_context_success_cb_t cb, void *userdata); +/** Change the profile of a source. \since 0.9.16 */ +pa_operation* pa_context_set_source_port_by_index(pa_context *c, uint32_t idx, const char*port, pa_context_success_cb_t cb, void *userdata); + +/** Change the profile of a source. \since 0.9.15 */ +pa_operation* pa_context_set_source_port_by_name(pa_context *c, const char*name, const char*port, pa_context_success_cb_t cb, void *userdata); + /** @} */ /** @{ \name Server */ diff --git a/src/pulse/mainloop-api.h b/src/pulse/mainloop-api.h index e353ed96..aa0d5e73 100644 --- a/src/pulse/mainloop-api.h +++ b/src/pulse/mainloop-api.h @@ -27,6 +27,7 @@ #include <time.h> #include <pulse/cdecl.h> +#include <pulse/sample.h> #include <pulse/version.h> /** \file diff --git a/src/pulse/mainloop.c b/src/pulse/mainloop.c index 225fd098..c418d108 100644 --- a/src/pulse/mainloop.c +++ b/src/pulse/mainloop.c @@ -42,10 +42,12 @@ #include <pulsecore/pipe.h> #endif +#include <pulse/i18n.h> +#include <pulse/rtclock.h> #include <pulse/timeval.h> #include <pulse/xmalloc.h> -#include <pulse/i18n.h> +#include <pulsecore/core-rtclock.h> #include <pulsecore/core-util.h> #include <pulsecore/llist.h> #include <pulsecore/log.h> @@ -54,6 +56,7 @@ #include <pulsecore/macro.h> #include "mainloop.h" +#include "internal.h" struct pa_io_event { pa_mainloop *mainloop; @@ -75,7 +78,7 @@ struct pa_time_event { pa_bool_t dead:1; pa_bool_t enabled:1; - struct timeval timeval; + pa_usec_t time; pa_time_event_cb_t callback; void *userdata; @@ -317,6 +320,23 @@ static void mainloop_defer_set_destroy(pa_defer_event *e, pa_defer_event_destroy } /* Time events */ +static pa_usec_t timeval_load(const struct timeval *tv) { + pa_bool_t is_rtclock; + struct timeval ttv; + + if (!tv) + return PA_USEC_INVALID; + + ttv = *tv; + is_rtclock = !!(ttv.tv_usec & PA_TIMEVAL_RTCLOCK); + ttv.tv_usec &= ~PA_TIMEVAL_RTCLOCK; + + if (!is_rtclock) + pa_rtclock_from_wallclock(&ttv); + + return pa_timeval_load(&ttv); +} + static pa_time_event* mainloop_time_new( pa_mainloop_api*a, const struct timeval *tv, @@ -325,11 +345,14 @@ static pa_time_event* mainloop_time_new( pa_mainloop *m; pa_time_event *e; + pa_usec_t t; pa_assert(a); pa_assert(a->userdata); pa_assert(callback); + t = timeval_load(tv); + m = a->userdata; pa_assert(a == &m->api); @@ -337,15 +360,15 @@ static pa_time_event* mainloop_time_new( e->mainloop = m; e->dead = FALSE; - if ((e->enabled = !!tv)) { - e->timeval = *tv; + if ((e->enabled = (t != PA_USEC_INVALID))) { + e->time = t; m->n_enabled_time_events++; if (m->cached_next_time_event) { pa_assert(m->cached_next_time_event->enabled); - if (pa_timeval_cmp(tv, &m->cached_next_time_event->timeval) < 0) + if (t < m->cached_next_time_event->time) m->cached_next_time_event = e; } } @@ -363,24 +386,30 @@ static pa_time_event* mainloop_time_new( } static void mainloop_time_restart(pa_time_event *e, const struct timeval *tv) { + pa_bool_t valid; + pa_usec_t t; + pa_assert(e); pa_assert(!e->dead); - if (e->enabled && !tv) { + t = timeval_load(tv); + + valid = (t != PA_USEC_INVALID); + if (e->enabled && !valid) { pa_assert(e->mainloop->n_enabled_time_events > 0); e->mainloop->n_enabled_time_events--; - } else if (!e->enabled && tv) + } else if (!e->enabled && valid) e->mainloop->n_enabled_time_events++; - if ((e->enabled = !!tv)) { - e->timeval = *tv; + if ((e->enabled = valid)) { + e->time = t; pa_mainloop_wakeup(e->mainloop); } if (e->mainloop->cached_next_time_event && e->enabled) { pa_assert(e->mainloop->cached_next_time_event->enabled); - if (pa_timeval_cmp(tv, &e->mainloop->cached_next_time_event->timeval) < 0) + if (t < e->mainloop->cached_next_time_event->time) e->mainloop->cached_next_time_event = e; } else if (e->mainloop->cached_next_time_event == e) e->mainloop->cached_next_time_event = NULL; @@ -428,10 +457,10 @@ static void mainloop_quit(pa_mainloop_api*a, int retval) { static const pa_mainloop_api vtable = { .userdata = NULL, - .io_new= mainloop_io_new, - .io_enable= mainloop_io_enable, - .io_free= mainloop_io_free, - .io_set_destroy= mainloop_io_set_destroy, + .io_new = mainloop_io_new, + .io_enable = mainloop_io_enable, + .io_free = mainloop_io_free, + .io_set_destroy = mainloop_io_set_destroy, .time_new = mainloop_time_new, .time_restart = mainloop_time_restart, @@ -721,11 +750,11 @@ static pa_time_event* find_next_time_event(pa_mainloop *m) { if (t->dead || !t->enabled) continue; - if (!n || pa_timeval_cmp(&t->timeval, &n->timeval) < 0) { + if (!n || t->time < n->time) { n = t; - /* Shortcut for tv = { 0, 0 } */ - if (n->timeval.tv_sec <= 0) + /* Shortcut for time == 0 */ + if (n->time == 0) break; } } @@ -736,7 +765,6 @@ static pa_time_event* find_next_time_event(pa_mainloop *m) { static int calc_next_timeout(pa_mainloop *m) { pa_time_event *t; - struct timeval now; pa_usec_t usec; if (!m->n_enabled_time_events) @@ -745,41 +773,41 @@ static int calc_next_timeout(pa_mainloop *m) { t = find_next_time_event(m); pa_assert(t); - if (t->timeval.tv_sec <= 0) + if (t->time == 0) return 0; - pa_gettimeofday(&now); + usec = t->time - pa_rtclock_now(); - if (pa_timeval_cmp(&t->timeval, &now) <= 0) + if (usec <= 0) return 0; - usec = pa_timeval_diff(&t->timeval, &now); - return (int) (usec / 1000); + return (int) (usec / 1000); /* in milliseconds */ } static int dispatch_timeout(pa_mainloop *m) { pa_time_event *e; - struct timeval now; + pa_usec_t now; int r = 0; pa_assert(m); if (m->n_enabled_time_events <= 0) return 0; - pa_gettimeofday(&now); + now = pa_rtclock_now(); for (e = m->time_events; e && !m->quit; e = e->next) { if (e->dead || !e->enabled) continue; - if (pa_timeval_cmp(&e->timeval, &now) <= 0) { + if (e->time <= now) { + struct timeval tv; pa_assert(e->callback); /* Disable time event */ mainloop_time_restart(e, NULL); - e->callback(&m->api, e, &e->timeval, e->userdata); + e->callback(&m->api, e, pa_timeval_rtstore(&tv, e->time, TRUE), e->userdata); r++; } @@ -967,3 +995,9 @@ void pa_mainloop_set_poll_func(pa_mainloop *m, pa_poll_func poll_func, void *use m->poll_func = poll_func; m->poll_func_userdata = userdata; } + +pa_bool_t pa_mainloop_is_our_api(pa_mainloop_api*m) { + pa_assert(m); + + return m->io_new == mainloop_io_new; +} diff --git a/src/pulse/proplist.h b/src/pulse/proplist.h index 4c791dce..bc4dbd8a 100644 --- a/src/pulse/proplist.h +++ b/src/pulse/proplist.h @@ -206,6 +206,9 @@ PA_C_DECL_BEGIN /** For devices: profile identifier for the profile this devices is in. e.g. "analog-stereo", "analog-surround-40", "iec958-stereo", ...*/ #define PA_PROP_DEVICE_PROFILE_NAME "device.profile.name" +/** For devices: intended use. A comma seperated list of roles (see PA_PROP_MEDIA_ROLE) this device is particularly well suited for, due to latency, quality or form factor. \since 0.9.16 */ +#define PA_PROP_DEVICE_INTENDED_ROLES "device.intended_roles" + /** For devices: human readable one-line description of the profile this device is in. e.g. "Analog Stereo", ... */ #define PA_PROP_DEVICE_PROFILE_DESCRIPTION "device.profile.description" diff --git a/src/pulsecore/rtsig.h b/src/pulse/rtclock.c index e414122d..49ff6aae 100644 --- a/src/pulsecore/rtsig.h +++ b/src/pulse/rtclock.c @@ -1,6 +1,3 @@ -#ifndef foopulsertsighfoo -#define foopulsertsighfoo - /*** This file is part of PulseAudio. @@ -22,18 +19,17 @@ USA. ***/ -/* Return the next unused POSIX Realtime signals */ -int pa_rtsig_get(void); +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif -/* If not called before in the current thread, return the next unused - * rtsig, and install it in a TLS region and give it up automatically - * when the thread shuts down */ -int pa_rtsig_get_for_thread(void); +#include <pulsecore/core-rtclock.h> -/* Give an rtsig back. */ -void pa_rtsig_put(int sig); +#include "rtclock.h" +#include "timeval.h" -/* Block all RT signals */ -void pa_rtsig_configure(int start, int end); +pa_usec_t pa_rtclock_now(void) { + struct timeval tv; -#endif + return pa_timeval_load(pa_rtclock_get(&tv)); +} diff --git a/src/pulse/rtclock.h b/src/pulse/rtclock.h new file mode 100644 index 00000000..6459d92d --- /dev/null +++ b/src/pulse/rtclock.h @@ -0,0 +1,41 @@ +#ifndef foortclockfoo +#define foortclockfoo + +/*** + This file is part of PulseAudio. + + Copyright 2004-2009 Lennart Poettering + + PulseAudio is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. + + PulseAudio is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with PulseAudio; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + USA. +***/ + +#include <pulse/cdecl.h> +#include <pulse/def.h> +#include <pulse/gccmacro.h> + +/** \file + * Monotonic clock utilities. */ + +PA_C_DECL_BEGIN + +/** Return the current monotonic system time in usec, if such a clock + * is available. If it is not available this will return the + * wallclock time instead. \since 0.9.16 */ +pa_usec_t pa_rtclock_now(void); + +PA_C_DECL_END + +#endif diff --git a/src/pulse/stream.c b/src/pulse/stream.c index 339a89e5..40556329 100644 --- a/src/pulse/stream.c +++ b/src/pulse/stream.c @@ -30,13 +30,14 @@ #include <pulse/def.h> #include <pulse/timeval.h> +#include <pulse/rtclock.h> #include <pulse/xmalloc.h> #include <pulsecore/pstream-util.h> #include <pulsecore/log.h> #include <pulsecore/hashmap.h> #include <pulsecore/macro.h> -#include <pulsecore/rtclock.h> +#include <pulsecore/core-rtclock.h> #include "fork-detect.h" #include "internal.h" @@ -319,14 +320,10 @@ static void request_auto_timing_update(pa_stream *s, pa_bool_t force) { } if (s->auto_timing_update_event) { - struct timeval next; - if (force) s->auto_timing_interval_usec = AUTO_TIMING_INTERVAL_START_USEC; - pa_gettimeofday(&next); - pa_timeval_add(&next, s->auto_timing_interval_usec); - s->mainloop->time_restart(s->auto_timing_update_event, &next); + pa_context_rttime_restart(s->context, s->auto_timing_update_event, pa_rtclock_now() + s->auto_timing_interval_usec); s->auto_timing_interval_usec = PA_MIN(AUTO_TIMING_INTERVAL_END_USEC, s->auto_timing_interval_usec*2); } @@ -373,7 +370,7 @@ static void check_smoother_status(pa_stream *s, pa_bool_t aposteriori, pa_bool_t if (!s->smoother) return; - x = pa_rtclock_usec(); + x = pa_rtclock_now(); if (s->timing_info_valid) { if (aposteriori) @@ -800,7 +797,7 @@ static void invalidate_indexes(pa_stream *s, pa_bool_t r, pa_bool_t w) { request_auto_timing_update(s, TRUE); } -static void auto_timing_update_callback(pa_mainloop_api *m, pa_time_event *e, const struct timeval *tv, void *userdata) { +static void auto_timing_update_callback(pa_mainloop_api *m, pa_time_event *e, const struct timeval *t, void *userdata) { pa_stream *s = userdata; pa_assert(s); @@ -822,12 +819,9 @@ static void create_stream_complete(pa_stream *s) { s->write_callback(s, (size_t) s->requested_bytes, s->write_userdata); if (s->flags & PA_STREAM_AUTO_TIMING_UPDATE) { - struct timeval tv; - pa_gettimeofday(&tv); s->auto_timing_interval_usec = AUTO_TIMING_INTERVAL_START_USEC; - pa_timeval_add(&tv, s->auto_timing_interval_usec); pa_assert(!s->auto_timing_update_event); - s->auto_timing_update_event = s->mainloop->time_new(s->mainloop, &tv, &auto_timing_update_callback, s); + s->auto_timing_update_event = pa_context_rttime_new(s->context, pa_rtclock_now() + s->auto_timing_interval_usec, &auto_timing_update_callback, s); request_auto_timing_update(s, TRUE); } @@ -1057,7 +1051,7 @@ static int create_stream( if (flags & PA_STREAM_INTERPOLATE_TIMING) { pa_usec_t x; - x = pa_rtclock_usec(); + x = pa_rtclock_now(); pa_assert(!s->smoother); s->smoother = pa_smoother_new( @@ -1594,7 +1588,7 @@ static void stream_get_timing_info_callback(pa_pdispatch *pd, uint32_t command, if (o->stream->smoother) { pa_usec_t u, x; - u = x = pa_rtclock_usec() - i->transport_usec; + u = x = pa_rtclock_now() - i->transport_usec; if (o->stream->direction == PA_STREAM_PLAYBACK && o->context->version >= 13) { pa_usec_t su; @@ -2103,7 +2097,7 @@ int pa_stream_get_time(pa_stream *s, pa_usec_t *r_usec) { PA_CHECK_VALIDITY(s->context, s->direction != PA_STREAM_RECORD || !s->timing_info.write_index_corrupt, PA_ERR_NODATA); if (s->smoother) - usec = pa_smoother_get(s->smoother, pa_rtclock_usec()); + usec = pa_smoother_get(s->smoother, pa_rtclock_now()); else usec = calc_time(s, FALSE); diff --git a/src/pulse/timeval.h b/src/pulse/timeval.h index 651da953..48c6cdb3 100644 --- a/src/pulse/timeval.h +++ b/src/pulse/timeval.h @@ -40,16 +40,19 @@ PA_C_DECL_BEGIN #define PA_USEC_PER_SEC ((pa_usec_t) 1000000ULL) /** The number of nanoseconds in a second */ -#define PA_NSEC_PER_SEC ((pa_usec_t) 1000000000ULL) +#define PA_NSEC_PER_SEC ((unsigned long long) 1000000000ULL) /** The number of microseconds in a millisecond */ #define PA_USEC_PER_MSEC ((pa_usec_t) 1000ULL) /** The number of nanoseconds in a millisecond */ -#define PA_NSEC_PER_MSEC ((pa_usec_t) 1000000ULL) +#define PA_NSEC_PER_MSEC ((unsigned long long) 1000000ULL) /** The number of nanoseconds in a microsecond */ -#define PA_NSEC_PER_USEC ((pa_usec_t) 1000ULL) +#define PA_NSEC_PER_USEC ((unsigned long long) 1000ULL) + +/** Invalid time in usec */ +#define PA_USEC_INVALID ((pa_usec_t) -1) struct timeval; diff --git a/src/pulse/version.h.in b/src/pulse/version.h.in index 3143e98e..c2c1f20a 100644 --- a/src/pulse/version.h.in +++ b/src/pulse/version.h.in @@ -64,8 +64,8 @@ const char* pa_get_library_version(void); * newer than the specified. \since 0.9.16 */ #define PA_CHECK_VERSION(major,minor,micro) \ ((PA_MAJOR > (major)) || \ - (PA_MAJOR == (major) && CA_MINOR > (minor)) || \ - (PA_MAJOR == (major) && CA_MINOR == (minor) && CA_MICRO >= (micro))) + (PA_MAJOR == (major) && PA_MINOR > (minor)) || \ + (PA_MAJOR == (major) && PA_MINOR == (minor) && PA_MICRO >= (micro))) PA_C_DECL_END diff --git a/src/pulse/volume.c b/src/pulse/volume.c index 64688e0b..42cde5b9 100644 --- a/src/pulse/volume.c +++ b/src/pulse/volume.c @@ -27,8 +27,10 @@ #include <string.h> #include <pulse/i18n.h> + #include <pulsecore/core-util.h> #include <pulsecore/macro.h> +#include <pulsecore/sample-util.h> #include "volume.h" @@ -344,7 +346,7 @@ pa_cvolume *pa_sw_cvolume_multiply(pa_cvolume *dest, const pa_cvolume *a, const pa_return_val_if_fail(pa_cvolume_valid(a), NULL); pa_return_val_if_fail(pa_cvolume_valid(b), NULL); - for (i = 0; i < a->channels && i < b->channels && i < PA_CHANNELS_MAX; i++) + for (i = 0; i < a->channels && i < b->channels; i++) dest->values[i] = pa_sw_volume_multiply(a->values[i], b->values[i]); dest->channels = (uint8_t) i; @@ -352,6 +354,22 @@ pa_cvolume *pa_sw_cvolume_multiply(pa_cvolume *dest, const pa_cvolume *a, const return dest; } +pa_cvolume *pa_sw_cvolume_multiply_scalar(pa_cvolume *dest, const pa_cvolume *a, pa_volume_t b) { + unsigned i; + + pa_assert(dest); + pa_assert(a); + + pa_return_val_if_fail(pa_cvolume_valid(a), NULL); + + for (i = 0; i < a->channels; i++) + dest->values[i] = pa_sw_volume_multiply(a->values[i], b); + + dest->channels = (uint8_t) i; + + return dest; +} + pa_cvolume *pa_sw_cvolume_divide(pa_cvolume *dest, const pa_cvolume *a, const pa_cvolume *b) { unsigned i; @@ -362,7 +380,7 @@ pa_cvolume *pa_sw_cvolume_divide(pa_cvolume *dest, const pa_cvolume *a, const pa pa_return_val_if_fail(pa_cvolume_valid(a), NULL); pa_return_val_if_fail(pa_cvolume_valid(b), NULL); - for (i = 0; i < a->channels && i < b->channels && i < PA_CHANNELS_MAX; i++) + for (i = 0; i < a->channels && i < b->channels; i++) dest->values[i] = pa_sw_volume_divide(a->values[i], b->values[i]); dest->channels = (uint8_t) i; @@ -370,6 +388,22 @@ pa_cvolume *pa_sw_cvolume_divide(pa_cvolume *dest, const pa_cvolume *a, const pa return dest; } +pa_cvolume *pa_sw_cvolume_divide_scalar(pa_cvolume *dest, const pa_cvolume *a, pa_volume_t b) { + unsigned i; + + pa_assert(dest); + pa_assert(a); + + pa_return_val_if_fail(pa_cvolume_valid(a), NULL); + + for (i = 0; i < a->channels; i++) + dest->values[i] = pa_sw_volume_divide(a->values[i], b); + + dest->channels = (uint8_t) i; + + return dest; +} + int pa_cvolume_valid(const pa_cvolume *v) { unsigned c; @@ -386,65 +420,27 @@ int pa_cvolume_valid(const pa_cvolume *v) { } static pa_bool_t on_left(pa_channel_position_t p) { - - return - p == PA_CHANNEL_POSITION_FRONT_LEFT || - p == PA_CHANNEL_POSITION_REAR_LEFT || - p == PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER || - p == PA_CHANNEL_POSITION_SIDE_LEFT || - p == PA_CHANNEL_POSITION_TOP_FRONT_LEFT || - p == PA_CHANNEL_POSITION_TOP_REAR_LEFT; + return !!(PA_CHANNEL_POSITION_MASK(p) & PA_CHANNEL_POSITION_MASK_LEFT); } static pa_bool_t on_right(pa_channel_position_t p) { - - return - p == PA_CHANNEL_POSITION_FRONT_RIGHT || - p == PA_CHANNEL_POSITION_REAR_RIGHT || - p == PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER || - p == PA_CHANNEL_POSITION_SIDE_RIGHT || - p == PA_CHANNEL_POSITION_TOP_FRONT_RIGHT || - p == PA_CHANNEL_POSITION_TOP_REAR_RIGHT; + return !!(PA_CHANNEL_POSITION_MASK(p) & PA_CHANNEL_POSITION_MASK_RIGHT); } static pa_bool_t on_center(pa_channel_position_t p) { - - return - p == PA_CHANNEL_POSITION_FRONT_CENTER || - p == PA_CHANNEL_POSITION_REAR_CENTER || - p == PA_CHANNEL_POSITION_TOP_CENTER || - p == PA_CHANNEL_POSITION_TOP_FRONT_CENTER || - p == PA_CHANNEL_POSITION_TOP_REAR_CENTER; + return !!(PA_CHANNEL_POSITION_MASK(p) & PA_CHANNEL_POSITION_MASK_CENTER); } static pa_bool_t on_lfe(pa_channel_position_t p) { - - return - p == PA_CHANNEL_POSITION_LFE; + return p == PA_CHANNEL_POSITION_LFE; } static pa_bool_t on_front(pa_channel_position_t p) { - - return - p == PA_CHANNEL_POSITION_FRONT_LEFT || - p == PA_CHANNEL_POSITION_FRONT_RIGHT || - p == PA_CHANNEL_POSITION_FRONT_CENTER || - p == PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER || - p == PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER || - p == PA_CHANNEL_POSITION_TOP_FRONT_LEFT || - p == PA_CHANNEL_POSITION_TOP_FRONT_RIGHT || - p == PA_CHANNEL_POSITION_TOP_FRONT_CENTER; + return !!(PA_CHANNEL_POSITION_MASK(p) & PA_CHANNEL_POSITION_MASK_FRONT); } static pa_bool_t on_rear(pa_channel_position_t p) { - - return - p == PA_CHANNEL_POSITION_REAR_LEFT || - p == PA_CHANNEL_POSITION_REAR_RIGHT || - p == PA_CHANNEL_POSITION_REAR_CENTER || - p == PA_CHANNEL_POSITION_TOP_REAR_LEFT || - p == PA_CHANNEL_POSITION_TOP_REAR_RIGHT || - p == PA_CHANNEL_POSITION_TOP_REAR_CENTER; + return !!(PA_CHANNEL_POSITION_MASK(p) & PA_CHANNEL_POSITION_MASK_REAR); } pa_cvolume *pa_cvolume_remap(pa_cvolume *v, const pa_channel_map *from, const pa_channel_map *to) { diff --git a/src/pulse/volume.h b/src/pulse/volume.h index c07fd99a..05b7ebb4 100644 --- a/src/pulse/volume.h +++ b/src/pulse/volume.h @@ -216,16 +216,26 @@ pa_volume_t pa_sw_volume_multiply(pa_volume_t a, pa_volume_t b) PA_GCC_CONST; * *dest. This is only valid for software volumes! */ pa_cvolume *pa_sw_cvolume_multiply(pa_cvolume *dest, const pa_cvolume *a, const pa_cvolume *b); +/** Multiply a per-channel volume with a scalar volume and return the + * result in *dest. This is only valid for software volumes! \since + * 0.9.16 */ +pa_cvolume *pa_sw_cvolume_multiply_scalar(pa_cvolume *dest, const pa_cvolume *a, pa_volume_t b); + /** Divide two volume specifications, return the result. This uses * PA_VOLUME_NORM as neutral element of division. This is only valid * for software volumes! If a division by zero is tried the result * will be 0. \since 0.9.13 */ pa_volume_t pa_sw_volume_divide(pa_volume_t a, pa_volume_t b) PA_GCC_CONST; -/** Multiply to per-channel volumes and return the result in +/** Divide two per-channel volumes and return the result in * *dest. This is only valid for software volumes! \since 0.9.13 */ pa_cvolume *pa_sw_cvolume_divide(pa_cvolume *dest, const pa_cvolume *a, const pa_cvolume *b); +/** Divide a per-channel volume by a scalar volume and return the + * result in *dest. This is only valid for software volumes! \since + * 0.9.16 */ +pa_cvolume *pa_sw_cvolume_divide_scalar(pa_cvolume *dest, const pa_cvolume *a, pa_volume_t b); + /** Convert a decibel value to a volume (amplitude, not power). This is only valid for software volumes! */ pa_volume_t pa_sw_volume_from_dB(double f) PA_GCC_CONST; diff --git a/src/pulse/xmalloc.h b/src/pulse/xmalloc.h index db20496f..f720d83f 100644 --- a/src/pulse/xmalloc.h +++ b/src/pulse/xmalloc.h @@ -88,9 +88,20 @@ static inline void* _pa_xnewdup_internal(const void *p, size_t n, size_t k) { return pa_xmemdup(p, n*k); } -/** Same as pa_xnew() but set the memory to zero */ +/** Same as pa_xnew() but duplicate the specified data */ #define pa_xnewdup(type, p, n) ((type*) _pa_xnewdup_internal((p), (n), sizeof(type))) +/** Internal helper for pa_xrenew() */ +static void* _pa_xrenew_internal(void *p, size_t n, size_t k) PA_GCC_MALLOC PA_GCC_ALLOC_SIZE2(2,3); + +static inline void* _pa_xrenew_internal(void *p, size_t n, size_t k) { + assert(n < INT_MAX/k); + return pa_xrealloc(p, n*k); +} + +/** Reallocate n new structures of the specified type. */ +#define pa_xrenew(type, p, n) ((type*) _pa_xrenew_internal(p, (n), sizeof(type))) + PA_C_DECL_END #endif diff --git a/src/pulsecore/avahi-wrap.c b/src/pulsecore/avahi-wrap.c index 56d9d3dd..f1f08bcc 100644 --- a/src/pulsecore/avahi-wrap.c +++ b/src/pulsecore/avahi-wrap.c @@ -23,6 +23,7 @@ #include <config.h> #endif +#include <pulse/timeval.h> #include <pulse/xmalloc.h> #include <pulsecore/log.h> @@ -116,14 +117,13 @@ struct AvahiTimeout { void *userdata; }; -static void timeout_callback(pa_mainloop_api*a, pa_time_event* e, const struct timeval *tv, void *userdata) { - AvahiTimeout *t = userdata; +static void timeout_callback(pa_mainloop_api*a, pa_time_event* e, const struct timeval *t, void *userdata) { + AvahiTimeout *to = userdata; pa_assert(a); pa_assert(e); - pa_assert(t); - t->callback(t, t->userdata); + to->callback(to, to->userdata); } static AvahiTimeout* timeout_new(const AvahiPoll *api, const struct timeval *tv, AvahiTimeoutCallback callback, void *userdata) { @@ -145,6 +145,7 @@ static AvahiTimeout* timeout_new(const AvahiPoll *api, const struct timeval *tv, } static void timeout_update(AvahiTimeout *t, const struct timeval *tv) { + pa_assert(t); if (t->time_event && tv) diff --git a/src/pulsecore/card.c b/src/pulsecore/card.c index 8101a92e..2f0a3af0 100644 --- a/src/pulsecore/card.c +++ b/src/pulsecore/card.c @@ -148,15 +148,12 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) { c->save_profile = data->save_profile; if (!c->active_profile && c->profiles) { - void *state = NULL; + void *state; pa_card_profile *p; - while ((p = pa_hashmap_iterate(c->profiles, &state, NULL))) { - if (!c->active_profile || - p->priority > c->active_profile->priority) - + PA_HASHMAP_FOREACH(p, c->profiles, state) + if (!c->active_profile || p->priority > c->active_profile->priority) c->active_profile = p; - } } c->userdata = NULL; @@ -164,6 +161,7 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) { pa_device_init_description(c->proplist); pa_device_init_icon(c->proplist, TRUE); + pa_device_init_intended_roles(c->proplist); pa_assert_se(pa_idxset_put(core->cards, c, &c->index) >= 0); @@ -176,7 +174,6 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) { void pa_card_free(pa_card *c) { pa_core *core; - pa_card_profile *profile; pa_assert(c); pa_assert(c->core); @@ -199,8 +196,10 @@ void pa_card_free(pa_card *c) { pa_idxset_free(c->sources, NULL, NULL); if (c->profiles) { - while ((profile = pa_hashmap_steal_first(c->profiles))) - pa_card_profile_free(profile); + pa_card_profile *p; + + while ((p = pa_hashmap_steal_first(c->profiles))) + pa_card_profile_free(p); pa_hashmap_free(c->profiles, NULL, NULL); } @@ -213,26 +212,27 @@ void pa_card_free(pa_card *c) { int pa_card_set_profile(pa_card *c, const char *name, pa_bool_t save) { pa_card_profile *profile; + int r; pa_assert(c); if (!c->set_profile) { - pa_log_warn("set_profile() operation not implemented for card %u \"%s\"", c->index, c->name); - return -1; + pa_log_debug("set_profile() operation not implemented for card %u \"%s\"", c->index, c->name); + return -PA_ERR_NOTIMPLEMENTED; } if (!c->profiles) - return -1; + return -PA_ERR_NOENTITY; if (!(profile = pa_hashmap_get(c->profiles, name))) - return -1; + return -PA_ERR_NOENTITY; if (c->active_profile == profile) { c->save_profile = c->save_profile || save; return 0; } - if (c->set_profile(c, profile) < 0) - return -1; + if ((r = c->set_profile(c, profile)) < 0) + return r; pa_subscription_post(c->core, PA_SUBSCRIPTION_EVENT_CARD|PA_SUBSCRIPTION_EVENT_CHANGE, c->index); @@ -244,19 +244,28 @@ int pa_card_set_profile(pa_card *c, const char *name, pa_bool_t save) { return 0; } -int pa_card_suspend(pa_card *c, pa_bool_t suspend) { +int pa_card_suspend(pa_card *c, pa_bool_t suspend, pa_suspend_cause_t cause) { pa_sink *sink; pa_source *source; uint32_t idx; int ret = 0; pa_assert(c); + pa_assert(cause != 0); - for (sink = pa_idxset_first(c->sinks, &idx); sink; sink = pa_idxset_next(c->sinks, &idx)) - ret -= pa_sink_suspend(sink, suspend) < 0; + for (sink = pa_idxset_first(c->sinks, &idx); sink; sink = pa_idxset_next(c->sinks, &idx)) { + int r; - for (source = pa_idxset_first(c->sources, &idx); source; source = pa_idxset_next(c->sources, &idx)) - ret -= pa_source_suspend(source, suspend) < 0; + if ((r = pa_sink_suspend(sink, suspend, cause)) < 0) + ret = r; + } + + for (source = pa_idxset_first(c->sources, &idx); source; source = pa_idxset_next(c->sources, &idx)) { + int r; + + if ((r = pa_source_suspend(source, suspend, cause)) < 0) + ret = r; + } return ret; } diff --git a/src/pulsecore/card.h b/src/pulsecore/card.h index 3b7608f6..2d691b67 100644 --- a/src/pulsecore/card.h +++ b/src/pulsecore/card.h @@ -63,7 +63,7 @@ struct pa_card { pa_hashmap *profiles; pa_card_profile *active_profile; - pa_bool_t save_profile; + pa_bool_t save_profile:1; void *userdata; @@ -72,9 +72,8 @@ struct pa_card { typedef struct pa_card_new_data { char *name; - char *description; - pa_proplist *proplist; + const char *driver; pa_module *module; @@ -99,6 +98,6 @@ void pa_card_free(pa_card *c); int pa_card_set_profile(pa_card *c, const char *name, pa_bool_t save); -int pa_card_suspend(pa_card *c, pa_bool_t suspend); +int pa_card_suspend(pa_card *c, pa_bool_t suspend, pa_suspend_cause_t cause); #endif diff --git a/src/pulsecore/cli-command.c b/src/pulsecore/cli-command.c index dad647a8..e2c3c066 100644 --- a/src/pulsecore/cli-command.c +++ b/src/pulsecore/cli-command.c @@ -125,6 +125,8 @@ static int pa_cli_command_update_source_proplist(pa_core *c, pa_tokenizer *t, pa static int pa_cli_command_update_sink_input_proplist(pa_core *c, pa_tokenizer *t, pa_strbuf *buf, pa_bool_t *fail); static int pa_cli_command_update_source_output_proplist(pa_core *c, pa_tokenizer *t, pa_strbuf *buf, pa_bool_t *fail); static int pa_cli_command_card_profile(pa_core *c, pa_tokenizer *t, pa_strbuf *buf, pa_bool_t *fail); +static int pa_cli_command_sink_port(pa_core *c, pa_tokenizer *t, pa_strbuf *buf, pa_bool_t *fail); +static int pa_cli_command_source_port(pa_core *c, pa_tokenizer *t, pa_strbuf *buf, pa_bool_t *fail); /* A method table for all available commands */ @@ -176,10 +178,12 @@ static const struct command commands[] = { { "suspend-source", pa_cli_command_suspend_source, "Suspend source (args: index|name, bool)", 3}, { "suspend", pa_cli_command_suspend, "Suspend all sinks and all sources (args: bool)", 2}, { "set-card-profile", pa_cli_command_card_profile, "Change the profile of a card (args: index, name)", 3}, + { "set-sink-port", pa_cli_command_sink_port, "Change the port of a sink (args: index, name)", 3}, + { "set-source-port", pa_cli_command_source_port, "Change the port of a source (args: index, name)", 3}, { "set-log-level", pa_cli_command_log_level, "Change the log level (args: numeric level)", 2}, { "set-log-meta", pa_cli_command_log_meta, "Show source code location in log messages (args: bool)", 2}, { "set-log-time", pa_cli_command_log_time, "Show timestamps in log messages (args: bool)", 2}, - { "set-log-backtrace", pa_cli_command_log_backtrace, "Show bakctrace in log messages (args: frames)", 2}, + { "set-log-backtrace", pa_cli_command_log_backtrace, "Show backtrace in log messages (args: frames)", 2}, { NULL, NULL, NULL, 0 } }; @@ -526,7 +530,7 @@ static int pa_cli_command_sink_volume(pa_core *c, pa_tokenizer *t, pa_strbuf *bu } pa_cvolume_set(&cvolume, sink->sample_spec.channels, volume); - pa_sink_set_volume(sink, &cvolume, TRUE, TRUE, TRUE); + pa_sink_set_volume(sink, &cvolume, TRUE, TRUE, TRUE, TRUE); return 0; } @@ -604,7 +608,7 @@ static int pa_cli_command_source_volume(pa_core *c, pa_tokenizer *t, pa_strbuf * } pa_cvolume_set(&cvolume, source->sample_spec.channels, volume); - pa_source_set_volume(source, &cvolume); + pa_source_set_volume(source, &cvolume, TRUE); return 0; } @@ -638,7 +642,7 @@ static int pa_cli_command_sink_mute(pa_core *c, pa_tokenizer *t, pa_strbuf *buf, return -1; } - pa_sink_set_mute(sink, mute); + pa_sink_set_mute(sink, mute, TRUE); return 0; } @@ -672,7 +676,7 @@ static int pa_cli_command_source_mute(pa_core *c, pa_tokenizer *t, pa_strbuf *bu return -1; } - pa_source_set_mute(source, mute); + pa_source_set_mute(source, mute, TRUE); return 0; } @@ -1278,7 +1282,7 @@ static int pa_cli_command_suspend_sink(pa_core *c, pa_tokenizer *t, pa_strbuf *b return -1; } - if ((r = pa_sink_suspend(sink, suspend)) < 0) + if ((r = pa_sink_suspend(sink, suspend, PA_SUSPEND_USER)) < 0) pa_strbuf_printf(buf, "Failed to resume/suspend sink: %s\n", pa_strerror(r)); return 0; @@ -1314,7 +1318,7 @@ static int pa_cli_command_suspend_source(pa_core *c, pa_tokenizer *t, pa_strbuf return -1; } - if ((r = pa_source_suspend(source, suspend)) < 0) + if ((r = pa_source_suspend(source, suspend, PA_SUSPEND_USER)) < 0) pa_strbuf_printf(buf, "Failed to resume/suspend source: %s\n", pa_strerror(r)); return 0; @@ -1339,10 +1343,10 @@ static int pa_cli_command_suspend(pa_core *c, pa_tokenizer *t, pa_strbuf *buf, p return -1; } - if ((r = pa_sink_suspend_all(c, suspend)) < 0) + if ((r = pa_sink_suspend_all(c, suspend, PA_SUSPEND_USER)) < 0) pa_strbuf_printf(buf, "Failed to resume/suspend all sinks: %s\n", pa_strerror(r)); - if ((r = pa_source_suspend_all(c, suspend)) < 0) + if ((r = pa_source_suspend_all(c, suspend, PA_SUSPEND_USER)) < 0) pa_strbuf_printf(buf, "Failed to resume/suspend all sources: %s\n", pa_strerror(r)); return 0; @@ -1476,6 +1480,70 @@ static int pa_cli_command_card_profile(pa_core *c, pa_tokenizer *t, pa_strbuf *b return 0; } +static int pa_cli_command_sink_port(pa_core *c, pa_tokenizer *t, pa_strbuf *buf, pa_bool_t *fail) { + const char *n, *p; + pa_sink *sink; + + pa_core_assert_ref(c); + pa_assert(t); + pa_assert(buf); + pa_assert(fail); + + if (!(n = pa_tokenizer_get(t, 1))) { + pa_strbuf_puts(buf, "You need to specify a sink either by its name or its index.\n"); + return -1; + } + + if (!(p = pa_tokenizer_get(t, 2))) { + pa_strbuf_puts(buf, "You need to specify a profile by its name.\n"); + return -1; + } + + if (!(sink = pa_namereg_get(c, n, PA_NAMEREG_SINK))) { + pa_strbuf_puts(buf, "No sink found by this name or index.\n"); + return -1; + } + + if (pa_sink_set_port(sink, p, TRUE) < 0) { + pa_strbuf_printf(buf, "Failed to set sink port to '%s'.\n", p); + return -1; + } + + return 0; +} + +static int pa_cli_command_source_port(pa_core *c, pa_tokenizer *t, pa_strbuf *buf, pa_bool_t *fail) { + const char *n, *p; + pa_source *source; + + pa_core_assert_ref(c); + pa_assert(t); + pa_assert(buf); + pa_assert(fail); + + if (!(n = pa_tokenizer_get(t, 1))) { + pa_strbuf_puts(buf, "You need to specify a source either by its name or its index.\n"); + return -1; + } + + if (!(p = pa_tokenizer_get(t, 2))) { + pa_strbuf_puts(buf, "You need to specify a profile by its name.\n"); + return -1; + } + + if (!(source = pa_namereg_get(c, n, PA_NAMEREG_SOURCE))) { + pa_strbuf_puts(buf, "No source found by this name or index.\n"); + return -1; + } + + if (pa_source_set_port(source, p, TRUE) < 0) { + pa_strbuf_printf(buf, "Failed to set source port to '%s'.\n", p); + return -1; + } + + return 0; +} + static int pa_cli_command_dump(pa_core *c, pa_tokenizer *t, pa_strbuf *buf, pa_bool_t *fail) { pa_module *m; pa_sink *sink; diff --git a/src/pulsecore/cli-text.c b/src/pulsecore/cli-text.c index 604678be..9395513d 100644 --- a/src/pulsecore/cli-text.c +++ b/src/pulsecore/cli-text.c @@ -139,11 +139,10 @@ char *pa_card_list_to_string(pa_core *c) { if (card->profiles) { pa_card_profile *p; - void *state = NULL; + void *state; pa_strbuf_puts(s, "\tprofiles:\n"); - - while ((p = pa_hashmap_iterate(card->profiles, &state, NULL))) + PA_HASHMAP_FOREACH(p, card->profiles, state) pa_strbuf_printf(s, "\t\t%s: %s (priority %u)\n", p->name, p->description, p->priority); } @@ -232,6 +231,7 @@ char *pa_sink_list_to_string(pa_core *c) { "\tdriver: <%s>\n" "\tflags: %s%s%s%s%s%s%s%s\n" "\tstate: %s\n" + "\tsuspend cause: %s%s%s%s\n" "\tvolume: %s%s%s\n" "\t balance %0.2f\n" "\tbase volume: %s%s%s\n" @@ -258,6 +258,10 @@ char *pa_sink_list_to_string(pa_core *c) { sink->flags & PA_SINK_FLAT_VOLUME ? "FLAT_VOLUME " : "", sink->flags & PA_SINK_DYNAMIC_LATENCY ? "DYNAMIC_LATENCY" : "", sink_state_to_string(pa_sink_get_state(sink)), + sink->suspend_cause & PA_SUSPEND_USER ? "USER " : "", + sink->suspend_cause & PA_SUSPEND_APPLICATION ? "APPLICATION " : "", + sink->suspend_cause & PA_SUSPEND_IDLE ? "IDLE " : "", + sink->suspend_cause & PA_SUSPEND_SESSION ? "SESSION" : "", pa_cvolume_snprint(cv, sizeof(cv), pa_sink_get_volume(sink, FALSE, FALSE)), sink->flags & PA_SINK_DECIBEL_VOLUME ? "\n\t " : "", sink->flags & PA_SINK_DECIBEL_VOLUME ? pa_sw_cvolume_snprint_dB(cvdb, sizeof(cvdb), pa_sink_get_volume(sink, FALSE, FALSE)) : "", @@ -302,6 +306,22 @@ char *pa_sink_list_to_string(pa_core *c) { t = pa_proplist_to_string_sep(sink->proplist, "\n\t\t"); pa_strbuf_printf(s, "\tproperties:\n\t\t%s\n", t); pa_xfree(t); + + if (sink->ports) { + pa_device_port *p; + void *state; + + pa_strbuf_puts(s, "\tports:\n"); + PA_HASHMAP_FOREACH(p, sink->ports, state) + pa_strbuf_printf(s, "\t\t%s: %s (priority %u)\n", p->name, p->description, p->priority); + } + + + if (sink->active_port) + pa_strbuf_printf( + s, + "\tactive port: <%s>\n", + sink->active_port->name); } return pa_strbuf_tostring_free(s); @@ -335,6 +355,7 @@ char *pa_source_list_to_string(pa_core *c) { "\tdriver: <%s>\n" "\tflags: %s%s%s%s%s%s%s\n" "\tstate: %s\n" + "\tsuspend cause: %s%s%s%s\n" "\tvolume: %s%s%s\n" "\t balance %0.2f\n" "\tbase volume: %s%s%s\n" @@ -358,6 +379,10 @@ char *pa_source_list_to_string(pa_core *c) { source->flags & PA_SOURCE_LATENCY ? "LATENCY " : "", source->flags & PA_SOURCE_DYNAMIC_LATENCY ? "DYNAMIC_LATENCY" : "", source_state_to_string(pa_source_get_state(source)), + source->suspend_cause & PA_SUSPEND_USER ? "USER " : "", + source->suspend_cause & PA_SUSPEND_APPLICATION ? "APPLICATION " : "", + source->suspend_cause & PA_SUSPEND_IDLE ? "IDLE " : "", + source->suspend_cause & PA_SUSPEND_SESSION ? "SESSION" : "", pa_cvolume_snprint(cv, sizeof(cv), pa_source_get_volume(source, FALSE)), source->flags & PA_SOURCE_DECIBEL_VOLUME ? "\n\t " : "", source->flags & PA_SOURCE_DECIBEL_VOLUME ? pa_sw_cvolume_snprint_dB(cvdb, sizeof(cvdb), pa_source_get_volume(source, FALSE)) : "", @@ -402,6 +427,21 @@ char *pa_source_list_to_string(pa_core *c) { t = pa_proplist_to_string_sep(source->proplist, "\n\t\t"); pa_strbuf_printf(s, "\tproperties:\n\t\t%s\n", t); pa_xfree(t); + + if (source->ports) { + pa_device_port *p; + void *state; + + pa_strbuf_puts(s, "\tports:\n"); + PA_HASHMAP_FOREACH(p, source->ports, state) + pa_strbuf_printf(s, "\t\t%s: %s (priority %u)\n", p->name, p->description, p->priority); + } + + if (source->active_port) + pa_strbuf_printf( + s, + "\tactive port: <%s>\n", + source->active_port->name); } return pa_strbuf_tostring_free(s); diff --git a/src/pulsecore/conf-parser.c b/src/pulsecore/conf-parser.c index a6eb581c..2dc9a223 100644 --- a/src/pulsecore/conf-parser.c +++ b/src/pulsecore/conf-parser.c @@ -40,19 +40,35 @@ #define COMMENTS "#;\n" /* Run the user supplied parser for an assignment */ -static int next_assignment(const char *filename, unsigned line, const char *section, const pa_config_item *t, const char *lvalue, const char *rvalue, void *userdata) { +static int next_assignment( + const char *filename, + unsigned line, + const char *section, + const pa_config_item *t, + const char *lvalue, + const char *rvalue, + void *userdata) { + pa_assert(filename); pa_assert(t); pa_assert(lvalue); pa_assert(rvalue); - for (; t->parse; t++) - if (!t->lvalue || - (pa_streq(lvalue, t->lvalue) && - ((!section && !t->section) || pa_streq(section, t->section)))) - return t->parse(filename, line, section, lvalue, rvalue, t->data, userdata); + for (; t->parse; t++) { + + if (t->lvalue && !pa_streq(lvalue, t->lvalue)) + continue; + + if (t->section && !section) + continue; + + if (t->section && !pa_streq(section, t->section)) + continue; + + return t->parse(filename, line, section, lvalue, rvalue, t->data, userdata); + } - pa_log("[%s:%u] Unknown lvalue '%s' in section '%s'.", filename, line, lvalue, pa_strnull(section)); + pa_log("[%s:%u] Unknown lvalue '%s' in section '%s'.", filename, line, lvalue, pa_strna(section)); return -1; } @@ -96,6 +112,25 @@ static int parse_line(const char *filename, unsigned line, char **section, const if (!*b) return 0; + if (pa_startswith(b, ".include ")) { + char *path, *fn; + int r; + + fn = strip(b+9); + if (!pa_is_path_absolute(fn)) { + const char *k; + if ((k = strrchr(filename, '/'))) { + char *dir = pa_xstrndup(filename, k-filename); + fn = path = pa_sprintf_malloc("%s" PA_PATH_SEP "%s", dir, fn); + pa_xfree(dir); + } + } + + r = pa_config_parse(fn, NULL, t, userdata); + pa_xfree(path); + return r; + } + if (*b == '[') { size_t k; @@ -135,6 +170,7 @@ int pa_config_parse(const char *filename, FILE *f, const pa_config_item *t, void if (!f && !(f = fopen(filename, "r"))) { if (errno == ENOENT) { + pa_log_debug("Failed to open configuration file '%s': %s", filename, pa_cstrerror(errno)); r = 0; goto finish; } diff --git a/src/pulsecore/rtclock.c b/src/pulsecore/core-rtclock.c index 65c826a6..3b3e3a64 100644 --- a/src/pulsecore/rtclock.c +++ b/src/pulsecore/core-rtclock.c @@ -37,7 +37,7 @@ #include <pulsecore/macro.h> #include <pulsecore/core-error.h> -#include "rtclock.h" +#include "core-rtclock.h" pa_usec_t pa_rtclock_age(const struct timeval *tv) { struct timeval now; @@ -65,7 +65,7 @@ struct timeval *pa_rtclock_get(struct timeval *tv) { pa_assert(tv); tv->tv_sec = ts.tv_sec; - tv->tv_usec = ts.tv_nsec / 1000; + tv->tv_usec = ts.tv_nsec / PA_NSEC_PER_USEC; return tv; @@ -82,11 +82,11 @@ pa_bool_t pa_rtclock_hrtimer(void) { #ifdef CLOCK_MONOTONIC if (clock_getres(CLOCK_MONOTONIC, &ts) >= 0) - return ts.tv_sec == 0 && ts.tv_nsec <= PA_HRTIMER_THRESHOLD_USEC*1000; + return ts.tv_sec == 0 && ts.tv_nsec <= (long) (PA_HRTIMER_THRESHOLD_USEC*PA_NSEC_PER_USEC); #endif pa_assert_se(clock_getres(CLOCK_REALTIME, &ts) == 0); - return ts.tv_sec == 0 && ts.tv_nsec <= PA_HRTIMER_THRESHOLD_USEC*1000; + return ts.tv_sec == 0 && ts.tv_nsec <= (long) (PA_HRTIMER_THRESHOLD_USEC*PA_NSEC_PER_USEC); #else /* HAVE_CLOCK_GETTIME */ @@ -122,12 +122,6 @@ void pa_rtclock_hrtimer_enable(void) { #endif } -pa_usec_t pa_rtclock_usec(void) { - struct timeval tv; - - return pa_timeval_load(pa_rtclock_get(&tv)); -} - struct timeval* pa_rtclock_from_wallclock(struct timeval *tv) { #ifdef HAVE_CLOCK_GETTIME @@ -156,3 +150,41 @@ pa_usec_t pa_timespec_load(const struct timespec *ts) { (pa_usec_t) ts->tv_sec * PA_USEC_PER_SEC + (pa_usec_t) ts->tv_nsec / PA_NSEC_PER_USEC; } + + +static struct timeval* wallclock_from_rtclock(struct timeval *tv) { + +#ifdef HAVE_CLOCK_GETTIME + struct timeval wc_now, rt_now; + + pa_gettimeofday(&wc_now); + pa_rtclock_get(&rt_now); + + pa_assert(tv); + + if (pa_timeval_cmp(&rt_now, tv) < 0) + pa_timeval_add(&wc_now, pa_timeval_diff(tv, &rt_now)); + else + pa_timeval_sub(&wc_now, pa_timeval_diff(&rt_now, tv)); + + *tv = wc_now; +#endif + + return tv; +} + +struct timeval* pa_timeval_rtstore(struct timeval *tv, pa_usec_t v, pa_bool_t rtclock) { + pa_assert(tv); + + if (v == PA_USEC_INVALID) + return NULL; + + pa_timeval_store(tv, v); + + if (rtclock) + tv->tv_usec |= PA_TIMEVAL_RTCLOCK; + else + wallclock_from_rtclock(tv); + + return tv; +} diff --git a/src/pulsecore/rtclock.h b/src/pulsecore/core-rtclock.h index 03cc1c72..9f5ae2dd 100644 --- a/src/pulsecore/rtclock.h +++ b/src/pulsecore/core-rtclock.h @@ -31,8 +31,6 @@ struct timeval; struct timeval *pa_rtclock_get(struct timeval *ts); -pa_usec_t pa_rtclock_usec(void); - pa_usec_t pa_rtclock_age(const struct timeval *tv); pa_bool_t pa_rtclock_hrtimer(void); void pa_rtclock_hrtimer_enable(void); @@ -40,8 +38,13 @@ void pa_rtclock_hrtimer_enable(void); /* timer with a resolution better than this are considered high-resolution */ #define PA_HRTIMER_THRESHOLD_USEC 10 +/* bit to set in tv.tv_usec to mark that the timeval is in monotonic time */ +#define PA_TIMEVAL_RTCLOCK ((time_t) (1LU << 30)) + struct timeval* pa_rtclock_from_wallclock(struct timeval *tv); pa_usec_t pa_timespec_load(const struct timespec *ts); +struct timeval* pa_timeval_rtstore(struct timeval *tv, pa_usec_t v, pa_bool_t rtclock); + #endif diff --git a/src/pulsecore/core-scache.c b/src/pulsecore/core-scache.c index 086f5fcb..4c5a4b26 100644 --- a/src/pulsecore/core-scache.c +++ b/src/pulsecore/core-scache.c @@ -47,6 +47,7 @@ #include <pulse/util.h> #include <pulse/volume.h> #include <pulse/xmalloc.h> +#include <pulse/rtclock.h> #include <pulsecore/sink-input.h> #include <pulsecore/sample-util.h> @@ -54,6 +55,7 @@ #include <pulsecore/core-subscribe.h> #include <pulsecore/namereg.h> #include <pulsecore/sound-file.h> +#include <pulsecore/core-rtclock.h> #include <pulsecore/core-util.h> #include <pulsecore/log.h> #include <pulsecore/core-error.h> @@ -61,11 +63,10 @@ #include "core-scache.h" -#define UNLOAD_POLL_TIME 60 +#define UNLOAD_POLL_TIME (60 * PA_USEC_PER_SEC) -static void timeout_callback(pa_mainloop_api *m, pa_time_event*e, const struct timeval *tv, void *userdata) { +static void timeout_callback(pa_mainloop_api *m, pa_time_event *e, const struct timeval *t, void *userdata) { pa_core *c = userdata; - struct timeval ntv; pa_assert(c); pa_assert(c->mainloop == m); @@ -73,9 +74,7 @@ static void timeout_callback(pa_mainloop_api *m, pa_time_event*e, const struct t pa_scache_unload_unused(c); - pa_gettimeofday(&ntv); - ntv.tv_sec += UNLOAD_POLL_TIME; - m->time_restart(e, &ntv); + pa_core_rttime_restart(c, e, pa_rtclock_now() + UNLOAD_POLL_TIME); } static void free_entry(pa_scache_entry *e) { @@ -256,12 +255,8 @@ int pa_scache_add_file_lazy(pa_core *c, const char *name, const char *filename, pa_proplist_sets(e->proplist, PA_PROP_MEDIA_FILENAME, filename); - if (!c->scache_auto_unload_event) { - struct timeval ntv; - pa_gettimeofday(&ntv); - ntv.tv_sec += UNLOAD_POLL_TIME; - c->scache_auto_unload_event = c->mainloop->time_new(c->mainloop, &ntv, timeout_callback, c); - } + if (!c->scache_auto_unload_event) + c->scache_auto_unload_event = pa_core_rttime_new(c, pa_rtclock_now() + UNLOAD_POLL_TIME, timeout_callback, c); if (idx) *idx = e->index; diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c index b747cd84..4550344f 100644 --- a/src/pulsecore/core-util.c +++ b/src/pulsecore/core-util.c @@ -50,6 +50,10 @@ #ifdef HAVE_SCHED_H #include <sched.h> + +#if defined(__linux__) && !defined(SCHED_RESET_ON_FORK) +#define SCHED_RESET_ON_FORK 0x40000000 +#endif #endif #ifdef HAVE_SYS_RESOURCE_H @@ -92,6 +96,10 @@ #include <xlocale.h> #endif +#ifdef HAVE_DBUS +#include "rtkit.h" +#endif + #include <pulse/xmalloc.h> #include <pulse/util.h> #include <pulse/utf8.h> @@ -552,127 +560,121 @@ char *pa_strlcpy(char *b, const char *s, size_t l) { return b; } -/* Make the current thread a realtime thread, and acquire the highest - * rtprio we can get that is less or equal the specified parameter. If - * the thread is already realtime, don't do anything. */ -int pa_make_realtime(int rtprio) { - -#ifdef _POSIX_PRIORITY_SCHEDULING +static int set_scheduler(int rtprio) { struct sched_param sp; - int r, policy; + int r; +#ifdef HAVE_DBUS + DBusError error; + DBusConnection *bus; - memset(&sp, 0, sizeof(sp)); - policy = 0; + dbus_error_init(&error); +#endif - if ((r = pthread_getschedparam(pthread_self(), &policy, &sp)) != 0) { - pa_log("pthread_getschedgetparam(): %s", pa_cstrerror(r)); - return -1; + pa_zero(sp); + sp.sched_priority = rtprio; + +#ifdef SCHED_RESET_ON_FORK + if ((r = pthread_setschedparam(pthread_self(), SCHED_RR|SCHED_RESET_ON_FORK, &sp)) == 0) { + pa_log_debug("SCHED_RR|SCHED_RESET_ON_FORK worked."); + return 0; } +#endif - if (policy == SCHED_FIFO && sp.sched_priority >= rtprio) { - pa_log_info("Thread already being scheduled with SCHED_FIFO with priority %i.", sp.sched_priority); + if ((r = pthread_setschedparam(pthread_self(), SCHED_RR, &sp)) == 0) { + pa_log_debug("SCHED_RR worked."); return 0; } - sp.sched_priority = rtprio; - if ((r = pthread_setschedparam(pthread_self(), SCHED_FIFO, &sp)) != 0) { +#ifdef HAVE_DBUS + /* Try to talk to RealtimeKit */ - while (sp.sched_priority > 1) { - sp.sched_priority --; + if (!(bus = dbus_bus_get(DBUS_BUS_SYSTEM, &error))) { + pa_log("Failed to connect to system bus: %s\n", error.message); + dbus_error_free(&error); + errno = -EIO; + return -1; + } - if ((r = pthread_setschedparam(pthread_self(), SCHED_FIFO, &sp)) == 0) { - pa_log_info("Successfully enabled SCHED_FIFO scheduling for thread, with priority %i, which is lower than the requested %i.", sp.sched_priority, rtprio); - return 0; - } - } + r = rtkit_make_realtime(bus, 0, rtprio); + dbus_connection_unref(bus); - pa_log_warn("pthread_setschedparam(): %s", pa_cstrerror(r)); - return -1; + if (r >= 0) { + pa_log_debug("RealtimeKit worked."); + return 0; } - pa_log_info("Successfully enabled SCHED_FIFO scheduling for thread, with priority %i.", sp.sched_priority); - return 0; + errno = -r; #else + errno = r; +#endif - errno = ENOTSUP; return -1; -#endif } -/* This is merely used for giving the user a hint. This is not correct - * for anything security related */ -pa_bool_t pa_can_realtime(void) { - - if (geteuid() == 0) - return TRUE; +/* Make the current thread a realtime thread, and acquire the highest + * rtprio we can get that is less or equal the specified parameter. If + * the thread is already realtime, don't do anything. */ +int pa_make_realtime(int rtprio) { -#if defined(HAVE_SYS_RESOURCE_H) && defined(RLIMIT_RTPRIO) - { - struct rlimit rl; +#ifdef _POSIX_PRIORITY_SCHEDULING + int p; - if (getrlimit(RLIMIT_RTPRIO, &rl) >= 0) - if (rl.rlim_cur > 0 || rl.rlim_cur == RLIM_INFINITY) - return TRUE; + if (set_scheduler(rtprio) >= 0) { + pa_log_info("Successfully enabled SCHED_RR scheduling for thread, with priority %i.", rtprio); + return 0; } -#endif -#if defined(HAVE_SYS_CAPABILITY_H) && defined(CAP_SYS_NICE) - { - cap_t cap; - - if ((cap = cap_get_proc())) { - cap_flag_value_t flag = CAP_CLEAR; + for (p = rtprio-1; p >= 1; p--) + if (set_scheduler(p)) { + pa_log_info("Successfully enabled SCHED_RR scheduling for thread, with priority %i, which is lower than the requested %i.", p, rtprio); + return 0; + } - if (cap_get_flag(cap, CAP_SYS_NICE, CAP_EFFECTIVE, &flag) >= 0) - if (flag == CAP_SET) { - cap_free(cap); - return TRUE; - } + pa_log_info("Failed to acquire real-time scheduling: %s", pa_cstrerror(errno)); + return -1; +#else - cap_free(cap); - } - } + errno = ENOTSUP; + return -1; #endif - - return FALSE; } -/* This is merely used for giving the user a hint. This is not correct - * for anything security related */ -pa_bool_t pa_can_high_priority(void) { - - if (geteuid() == 0) - return TRUE; +static int set_nice(int nice_level) { +#ifdef HAVE_DBUS + DBusError error; + DBusConnection *bus; + int r; -#if defined(HAVE_SYS_RESOURCE_H) && defined(RLIMIT_RTPRIO) - { - struct rlimit rl; + dbus_error_init(&error); +#endif - if (getrlimit(RLIMIT_NICE, &rl) >= 0) - if (rl.rlim_cur >= 21 || rl.rlim_cur == RLIM_INFINITY) - return TRUE; + if (setpriority(PRIO_PROCESS, 0, nice_level) >= 0) { + pa_log_debug("setpriority() worked."); + return 0; } -#endif -#if defined(HAVE_SYS_CAPABILITY_H) && defined(CAP_SYS_NICE) - { - cap_t cap; +#ifdef HAVE_DBUS + /* Try to talk to RealtimeKit */ - if ((cap = cap_get_proc())) { - cap_flag_value_t flag = CAP_CLEAR; + if (!(bus = dbus_bus_get(DBUS_BUS_SYSTEM, &error))) { + pa_log("Failed to connect to system bus: %s\n", error.message); + dbus_error_free(&error); + errno = -EIO; + return -1; + } - if (cap_get_flag(cap, CAP_SYS_NICE, CAP_EFFECTIVE, &flag) >= 0) - if (flag == CAP_SET) { - cap_free(cap); - return TRUE; - } + r = rtkit_make_high_priority(bus, 0, nice_level); + dbus_connection_unref(bus); - cap_free(cap); - } + if (r >= 0) { + pa_log_debug("RealtimeKit worked."); + return 0; } + + errno = -r; #endif - return FALSE; + return -1; } /* Raise the priority of the current process as much as possible that @@ -680,22 +682,21 @@ pa_bool_t pa_can_high_priority(void) { int pa_raise_priority(int nice_level) { #ifdef HAVE_SYS_RESOURCE_H - if (setpriority(PRIO_PROCESS, 0, nice_level) < 0) { - int n; + int n; - for (n = nice_level+1; n < 0; n++) { + if (set_nice(nice_level) >= 0) { + pa_log_info("Successfully gained nice level %i.", nice_level); + return 0; + } - if (setpriority(PRIO_PROCESS, 0, n) == 0) { - pa_log_info("Successfully acquired nice level %i, which is lower than the requested %i.", n, nice_level); - return 0; - } + for (n = nice_level+1; n < 0; n++) + if (set_nice(n) > 0) { + pa_log_info("Successfully acquired nice level %i, which is lower than the requested %i.", n, nice_level); + return 0; } - pa_log_warn("setpriority(): %s", pa_cstrerror(errno)); - return -1; - } - - pa_log_info("Successfully gained nice level %i.", nice_level); + pa_log_info("Failed to acquire high-priority scheduling: %s", pa_cstrerror(errno)); + return -1; #endif #ifdef OS_IS_WIN32 @@ -703,9 +704,10 @@ int pa_raise_priority(int nice_level) { if (!SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS)) { pa_log_warn("SetPriorityClass() failed: 0x%08X", GetLastError()); errno = EPERM; - return .-1; - } else - pa_log_info("Successfully gained high priority class."); + return -1; + } + + pa_log_info("Successfully gained high priority class."); } #endif @@ -720,8 +722,8 @@ void pa_reset_priority(void) { setpriority(PRIO_PROCESS, 0, 0); - memset(&sp, 0, sizeof(sp)); - pa_assert_se(pthread_setschedparam(pthread_self(), SCHED_OTHER, &sp) == 0); + pa_zero(sp); + pthread_setschedparam(pthread_self(), SCHED_OTHER, &sp); #endif #ifdef OS_IS_WIN32 @@ -2732,3 +2734,48 @@ void pa_disable_sigpipe(void) { } #endif } + +void pa_xfreev(void**a) { + void **p; + + if (!a) + return; + + for (p = a; *p; p++) + pa_xfree(*p); + + pa_xfree(a); +} + +char **pa_split_spaces_strv(const char *s) { + char **t, *e; + unsigned i = 0, n = 8; + const char *state = NULL; + + t = pa_xnew(char*, n); + while ((e = pa_split_spaces(s, &state))) { + t[i++] = e; + + if (i >= n) { + n *= 2; + t = pa_xrenew(char*, t, n); + } + } + + if (i <= 0) { + pa_xfree(t); + return NULL; + } + + t[i] = NULL; + return t; +} + +char* pa_maybe_prefix_path(const char *path, const char *prefix) { + pa_assert(path); + + if (pa_is_path_absolute(path)) + return pa_xstrdup(path); + + return pa_sprintf_malloc("%s" PA_PATH_SEP "%s", prefix, path); +} diff --git a/src/pulsecore/core-util.h b/src/pulsecore/core-util.h index d073b750..96a0480a 100644 --- a/src/pulsecore/core-util.h +++ b/src/pulsecore/core-util.h @@ -80,9 +80,6 @@ int pa_make_realtime(int rtprio); int pa_raise_priority(int nice_level); void pa_reset_priority(void); -pa_bool_t pa_can_realtime(void); -pa_bool_t pa_can_high_priority(void); - int pa_parse_boolean(const char *s) PA_GCC_PURE; static inline const char *pa_yes_no(pa_bool_t b) { @@ -229,4 +226,14 @@ char *pa_realpath(const char *path); void pa_disable_sigpipe(void); +void pa_xfreev(void**a); + +static inline void pa_xstrfreev(char **a) { + pa_xfreev((void**) a); +} + +char **pa_split_spaces_strv(const char *s); + +char* pa_maybe_prefix_path(const char *path, const char *prefix); + #endif diff --git a/src/pulsecore/core.c b/src/pulsecore/core.c index 06573f17..f5eb8352 100644 --- a/src/pulsecore/core.c +++ b/src/pulsecore/core.c @@ -28,6 +28,7 @@ #include <stdio.h> #include <signal.h> +#include <pulse/rtclock.h> #include <pulse/timeval.h> #include <pulse/xmalloc.h> @@ -35,6 +36,7 @@ #include <pulsecore/sink.h> #include <pulsecore/source.h> #include <pulsecore/namereg.h> +#include <pulsecore/core-rtclock.h> #include <pulsecore/core-util.h> #include <pulsecore/core-scache.h> #include <pulsecore/core-subscribe.h> @@ -214,7 +216,7 @@ static void core_free(pa_object *o) { pa_xfree(c); } -static void exit_callback(pa_mainloop_api*m, pa_time_event *e, const struct timeval *tv, void *userdata) { +static void exit_callback(pa_mainloop_api *m, pa_time_event *e, const struct timeval *t, void *userdata) { pa_core *c = userdata; pa_assert(c->exit_event == e); @@ -229,11 +231,7 @@ void pa_core_check_idle(pa_core *c) { c->exit_idle_time >= 0 && pa_idxset_size(c->clients) == 0) { - struct timeval tv; - pa_gettimeofday(&tv); - tv.tv_sec+= c->exit_idle_time; - - c->exit_event = c->mainloop->time_new(c->mainloop, &tv, exit_callback, c); + c->exit_event = pa_core_rttime_new(c, pa_rtclock_now() + c->exit_idle_time * PA_USEC_PER_SEC, exit_callback, c); } else if (c->exit_event && pa_idxset_size(c->clients) > 0) { c->mainloop->time_free(c->exit_event); @@ -261,3 +259,21 @@ void pa_core_maybe_vacuum(pa_core *c) { pa_log_debug("Hmm, no streams around, trying to vacuum."); pa_mempool_vacuum(c->mempool); } + +pa_time_event* pa_core_rttime_new(pa_core *c, pa_usec_t usec, pa_time_event_cb_t cb, void *userdata) { + struct timeval tv; + + pa_assert(c); + pa_assert(c->mainloop); + + return c->mainloop->time_new(c->mainloop, pa_timeval_rtstore(&tv, usec, TRUE), cb, userdata); +} + +void pa_core_rttime_restart(pa_core *c, pa_time_event *e, pa_usec_t usec) { + struct timeval tv; + + pa_assert(c); + pa_assert(c->mainloop); + + c->mainloop->time_restart(e, pa_timeval_rtstore(&tv, usec, TRUE)); +} diff --git a/src/pulsecore/core.h b/src/pulsecore/core.h index f93652e2..bb30854e 100644 --- a/src/pulsecore/core.h +++ b/src/pulsecore/core.h @@ -27,6 +27,16 @@ typedef struct pa_core pa_core; +/* This is a bitmask that encodes the cause why a sink/source is + * suspended. */ +typedef enum pa_suspend_cause { + PA_SUSPEND_USER = 1, /* Exposed to the user via some protocol */ + PA_SUSPEND_APPLICATION = 2, /* Used by the device reservation logic */ + PA_SUSPEND_IDLE = 4, /* Used by module-suspend-on-idle */ + PA_SUSPEND_SESSION = 8, /* Used by module-hal for mark inactive sessions */ + PA_SUSPEND_ALL = 0xFFFF /* Magic cause that can be used to resume forcibly */ +} pa_suspend_cause_t; + #include <pulsecore/idxset.h> #include <pulsecore/hashmap.h> #include <pulsecore/memblock.h> @@ -182,4 +192,8 @@ int pa_core_exit(pa_core *c, pa_bool_t force, int retval); void pa_core_maybe_vacuum(pa_core *c); +/* wrapper for c->mainloop->time_*() RT time events */ +pa_time_event* pa_core_rttime_new(pa_core *c, pa_usec_t usec, pa_time_event_cb_t cb, void *userdata); +void pa_core_rttime_restart(pa_core *c, pa_time_event *e, pa_usec_t usec); + #endif diff --git a/src/pulsecore/database-gdbm.c b/src/pulsecore/database-gdbm.c index aeaac64b..e65125d3 100644 --- a/src/pulsecore/database-gdbm.c +++ b/src/pulsecore/database-gdbm.c @@ -71,10 +71,13 @@ pa_database* pa_database_open(const char *fn, pa_bool_t for_write) { /* We include the host identifier in the file name because gdbm * files are CPU dependant, and we don't want things to go wrong * if we are on a multiarch system. */ - path = pa_sprintf_malloc("%s."CANONICAL_HOST".gdbm", fn); errno = 0; - f = gdbm_open((char*) path, 0, GDBM_NOLOCK | (for_write ? GDBM_WRCREAT : GDBM_READER), 0644, NULL); + + /* We need to set the block size explicitly here, since otherwise + * gdbm takes the native block size of the underlying file system + * which might be incredibly large. */ + f = gdbm_open((char*) path, 1024, GDBM_NOLOCK | (for_write ? GDBM_WRCREAT : GDBM_READER), 0644, NULL); if (f) pa_log_debug("Opened GDBM database '%s'", path); diff --git a/src/pulsecore/database-tdb.c b/src/pulsecore/database-tdb.c index c35fd81f..b79d2837 100644 --- a/src/pulsecore/database-tdb.c +++ b/src/pulsecore/database-tdb.c @@ -26,6 +26,9 @@ #include <fcntl.h> #include <unistd.h> #include <errno.h> + +/* Some versions of tdb lack inclusion of signal.h in the header files but use sigatomic_t */ +#include <signal.h> #include <tdb.h> #include <pulse/xmalloc.h> diff --git a/src/pulsecore/dbus-shared.c b/src/pulsecore/dbus-shared.c index 9d9445b6..20ef9b1e 100644 --- a/src/pulsecore/dbus-shared.c +++ b/src/pulsecore/dbus-shared.c @@ -70,7 +70,7 @@ pa_dbus_connection* pa_dbus_bus_get(pa_core *c, DBusBusType type, DBusError *err if ((pconn = pa_shared_get(c, prop_name[type]))) return pa_dbus_connection_ref(pconn); - if (!(conn = pa_dbus_wrap_connection_new(c->mainloop, type, error))) + if (!(conn = pa_dbus_wrap_connection_new(c->mainloop, TRUE, type, error))) return NULL; return dbus_connection_new(c, conn, prop_name[type]); diff --git a/src/pulsecore/dbus-util.c b/src/pulsecore/dbus-util.c index d8bd0e0a..e047dc31 100644 --- a/src/pulsecore/dbus-util.c +++ b/src/pulsecore/dbus-util.c @@ -26,9 +26,11 @@ #include <stdarg.h> -#include <pulse/xmalloc.h> +#include <pulse/rtclock.h> #include <pulse/timeval.h> +#include <pulse/xmalloc.h> +#include <pulsecore/core-rtclock.h> #include <pulsecore/core-util.h> #include <pulsecore/log.h> @@ -38,6 +40,12 @@ struct pa_dbus_wrap_connection { pa_mainloop_api *mainloop; DBusConnection *connection; pa_defer_event* dispatch_event; + pa_bool_t use_rtclock:1; +}; + +struct timeout_data { + pa_dbus_wrap_connection *c; + DBusTimeout *timeout; }; static void dispatch_cb(pa_mainloop_api *ea, pa_defer_event *ev, void *userdata) { @@ -118,16 +126,18 @@ static void handle_io_event(pa_mainloop_api *ea, pa_io_event *e, int fd, pa_io_e } /* pa_time_event_cb_t timer event handler */ -static void handle_time_event(pa_mainloop_api *ea, pa_time_event* e, const struct timeval *tv, void *userdata) { - DBusTimeout *timeout = userdata; +static void handle_time_event(pa_mainloop_api *ea, pa_time_event* e, const struct timeval *t, void *userdata) { + struct timeval tv; + struct timeout_data *d = userdata; - if (dbus_timeout_get_enabled(timeout)) { - struct timeval next = *tv; - dbus_timeout_handle(timeout); + pa_assert(d); + pa_assert(d->c); + + if (dbus_timeout_get_enabled(d->timeout)) { + dbus_timeout_handle(d->timeout); /* restart it for the next scheduled time */ - pa_timeval_add(&next, (pa_usec_t) dbus_timeout_get_interval(timeout) * 1000); - ea->time_restart(e, &next); + ea->time_restart(e, pa_timeval_rtstore(&tv, pa_timeval_load(t) + dbus_timeout_get_interval(d->timeout) * PA_USEC_PER_MSEC, d->c->use_rtclock)); } } @@ -179,11 +189,16 @@ static void toggle_watch(DBusWatch *watch, void *data) { c->mainloop->io_enable(ev, get_watch_flags(watch)); } +static void time_event_destroy_cb(pa_mainloop_api *a, pa_time_event *e, void *userdata) { + pa_xfree(userdata); +} + /* DBusAddTimeoutFunction callback for pa mainloop */ static dbus_bool_t add_timeout(DBusTimeout *timeout, void *data) { pa_dbus_wrap_connection *c = data; pa_time_event *ev; struct timeval tv; + struct timeout_data *d; pa_assert(timeout); pa_assert(c); @@ -191,10 +206,11 @@ static dbus_bool_t add_timeout(DBusTimeout *timeout, void *data) { if (!dbus_timeout_get_enabled(timeout)) return FALSE; - pa_gettimeofday(&tv); - pa_timeval_add(&tv, (pa_usec_t) dbus_timeout_get_interval(timeout) * 1000); - - ev = c->mainloop->time_new(c->mainloop, &tv, handle_time_event, timeout); + d = pa_xnew(struct timeout_data, 1); + d->c = c; + d->timeout = timeout; + ev = c->mainloop->time_new(c->mainloop, pa_timeval_rtstore(&tv, pa_rtclock_now() + dbus_timeout_get_interval(timeout) * PA_USEC_PER_MSEC, c->use_rtclock), handle_time_event, d); + c->mainloop->time_set_destroy(ev, time_event_destroy_cb); dbus_timeout_set_data(timeout, ev, NULL); @@ -215,23 +231,20 @@ static void remove_timeout(DBusTimeout *timeout, void *data) { /* DBusTimeoutToggledFunction callback for pa mainloop */ static void toggle_timeout(DBusTimeout *timeout, void *data) { - pa_dbus_wrap_connection *c = data; + struct timeout_data *d = data; pa_time_event *ev; + struct timeval tv; + pa_assert(d); + pa_assert(d->c); pa_assert(timeout); - pa_assert(c); pa_assert_se(ev = dbus_timeout_get_data(timeout)); if (dbus_timeout_get_enabled(timeout)) { - struct timeval tv; - - pa_gettimeofday(&tv); - pa_timeval_add(&tv, (pa_usec_t) dbus_timeout_get_interval(timeout) * 1000); - - c->mainloop->time_restart(ev, &tv); + d->c->mainloop->time_restart(ev, pa_timeval_rtstore(&tv, pa_rtclock_now() + dbus_timeout_get_interval(timeout) * PA_USEC_PER_MSEC, d->c->use_rtclock)); } else - c->mainloop->time_restart(ev, NULL); + d->c->mainloop->time_restart(ev, pa_timeval_rtstore(&tv, PA_USEC_INVALID, d->c->use_rtclock)); } static void wakeup_main(void *userdata) { @@ -244,7 +257,7 @@ static void wakeup_main(void *userdata) { c->mainloop->defer_enable(c->dispatch_event, 1); } -pa_dbus_wrap_connection* pa_dbus_wrap_connection_new(pa_mainloop_api *m, DBusBusType type, DBusError *error) { +pa_dbus_wrap_connection* pa_dbus_wrap_connection_new(pa_mainloop_api *m, pa_bool_t use_rtclock, DBusBusType type, DBusError *error) { DBusConnection *conn; pa_dbus_wrap_connection *pconn; char *id; @@ -257,6 +270,7 @@ pa_dbus_wrap_connection* pa_dbus_wrap_connection_new(pa_mainloop_api *m, DBusBus pconn = pa_xnew(pa_dbus_wrap_connection, 1); pconn->mainloop = m; pconn->connection = conn; + pconn->use_rtclock = use_rtclock; dbus_connection_set_exit_on_disconnect(conn, FALSE); dbus_connection_set_dispatch_status_function(conn, dispatch_status, pconn, NULL); @@ -276,7 +290,7 @@ pa_dbus_wrap_connection* pa_dbus_wrap_connection_new(pa_mainloop_api *m, DBusBus return pconn; } -pa_dbus_wrap_connection* pa_dbus_wrap_connection_new_from_existing(pa_mainloop_api *m, DBusConnection *conn) { +pa_dbus_wrap_connection* pa_dbus_wrap_connection_new_from_existing(pa_mainloop_api *m, pa_bool_t use_rtclock, DBusConnection *conn) { pa_dbus_wrap_connection *pconn; pa_assert(m); @@ -285,6 +299,7 @@ pa_dbus_wrap_connection* pa_dbus_wrap_connection_new_from_existing(pa_mainloop_a pconn = pa_xnew(pa_dbus_wrap_connection, 1); pconn->mainloop = m; pconn->connection = dbus_connection_ref(conn); + pconn->use_rtclock = use_rtclock; dbus_connection_set_exit_on_disconnect(conn, FALSE); dbus_connection_set_dispatch_status_function(conn, dispatch_status, pconn, NULL); diff --git a/src/pulsecore/dbus-util.h b/src/pulsecore/dbus-util.h index cd08485d..97328735 100644 --- a/src/pulsecore/dbus-util.h +++ b/src/pulsecore/dbus-util.h @@ -30,8 +30,8 @@ /* A wrap connection is not shared or refcounted, it is available in client side */ typedef struct pa_dbus_wrap_connection pa_dbus_wrap_connection; -pa_dbus_wrap_connection* pa_dbus_wrap_connection_new(pa_mainloop_api *mainloop, DBusBusType type, DBusError *error); -pa_dbus_wrap_connection* pa_dbus_wrap_connection_new_from_existing(pa_mainloop_api *mainloop, DBusConnection *conn); +pa_dbus_wrap_connection* pa_dbus_wrap_connection_new(pa_mainloop_api *mainloop, pa_bool_t use_rtclock, DBusBusType type, DBusError *error); +pa_dbus_wrap_connection* pa_dbus_wrap_connection_new_from_existing(pa_mainloop_api *mainloop, pa_bool_t use_rtclock, DBusConnection *conn); void pa_dbus_wrap_connection_free(pa_dbus_wrap_connection* conn); DBusConnection* pa_dbus_wrap_connection_get(pa_dbus_wrap_connection *conn); diff --git a/src/pulsecore/hashmap.c b/src/pulsecore/hashmap.c index e957c5ba..1fac97eb 100644 --- a/src/pulsecore/hashmap.c +++ b/src/pulsecore/hashmap.c @@ -237,6 +237,39 @@ at_end: return NULL; } +void *pa_hashmap_iterate_backwards(pa_hashmap *h, void **state, const void **key) { + struct hashmap_entry *e; + + pa_assert(h); + pa_assert(state); + + if (*state == (void*) -1) + goto at_beginning; + + if (!*state && !h->iterate_list_tail) + goto at_beginning; + + e = *state ? *state : h->iterate_list_tail; + + if (e->iterate_previous) + *state = e->iterate_previous; + else + *state = (void*) -1; + + if (key) + *key = e->key; + + return e->value; + +at_beginning: + *state = (void *) -1; + + if (key) + *key = NULL; + + return NULL; +} + void* pa_hashmap_first(pa_hashmap *h) { pa_assert(h); @@ -246,6 +279,15 @@ void* pa_hashmap_first(pa_hashmap *h) { return h->iterate_list_head->value; } +void* pa_hashmap_last(pa_hashmap *h) { + pa_assert(h); + + if (!h->iterate_list_tail) + return NULL; + + return h->iterate_list_tail->value; +} + void* pa_hashmap_steal_first(pa_hashmap *h) { void *data; diff --git a/src/pulsecore/hashmap.h b/src/pulsecore/hashmap.h index 08e18ead..ac2092a6 100644 --- a/src/pulsecore/hashmap.h +++ b/src/pulsecore/hashmap.h @@ -26,7 +26,8 @@ /* Simple Implementation of a hash table. Memory management is the * user's job. It's a good idea to have the key pointer point to a - * string in the value data. */ + * string in the value data. The insertion order is preserved when + * iterating. */ typedef struct pa_hashmap pa_hashmap; @@ -59,10 +60,24 @@ pa_bool_t pa_hashmap_isempty(pa_hashmap *h); returned. */ void *pa_hashmap_iterate(pa_hashmap *h, void **state, const void**key); +/* Same as pa_hashmap_iterate() but goes backwards */ +void *pa_hashmap_iterate_backwards(pa_hashmap *h, void **state, const void**key); + /* Remove the oldest entry in the hashmap and return it */ void *pa_hashmap_steal_first(pa_hashmap *h); /* Return the oldest entry in the hashmap */ void* pa_hashmap_first(pa_hashmap *h); +/* Return the newest entry in the hashmap */ +void* pa_hashmap_last(pa_hashmap *h); + +/* A macro to ease iteration through all entries */ +#define PA_HASHMAP_FOREACH(e, h, state) \ + for ((state) = NULL, (e) = pa_hashmap_iterate((h), &(state), NULL); (e); (e) = pa_hashmap_iterate((h), &(state), NULL)) + +/* A macro to ease iteration through all entries, backwards */ +#define PA_HASHMAP_FOREACH_BACKWARDS(e, h, state) \ + for ((state) = NULL, (e) = pa_hashmap_iterate_backwards((h), &(state), NULL); (e); (e) = pa_hashmap_iterate_backwards((h), &(state), NULL)) + #endif diff --git a/src/pulsecore/idxset.c b/src/pulsecore/idxset.c index 352ac977..408011f6 100644 --- a/src/pulsecore/idxset.c +++ b/src/pulsecore/idxset.c @@ -453,3 +453,17 @@ pa_bool_t pa_idxset_isempty(pa_idxset *s) { return s->n_entries == 0; } + +pa_idxset *pa_idxset_copy(pa_idxset *s) { + pa_idxset *copy; + struct idxset_entry *i; + + pa_assert(s); + + copy = pa_idxset_new(s->hash_func, s->compare_func); + + for (i = s->iterate_list_head; i; i = i->iterate_next) + pa_idxset_put(copy, i->data, NULL); + + return copy; +} diff --git a/src/pulsecore/idxset.h b/src/pulsecore/idxset.h index 6b9ff472..d1e68c5c 100644 --- a/src/pulsecore/idxset.h +++ b/src/pulsecore/idxset.h @@ -103,7 +103,10 @@ unsigned pa_idxset_size(pa_idxset*s); /* Return TRUE of the idxset is empty */ pa_bool_t pa_idxset_isempty(pa_idxset *s); +/* Duplicate the idxset. This will not copy the actual indexes */ +pa_idxset *pa_idxset_copy(pa_idxset *s); +/* A macro to ease iteration through all entries */ #define PA_IDXSET_FOREACH(e, s, idx) \ for ((e) = pa_idxset_first((s), &(idx)); (e); (e) = pa_idxset_next((s), &(idx))) diff --git a/src/pulsecore/log.c b/src/pulsecore/log.c index 15d192d6..8c21ee6c 100644 --- a/src/pulsecore/log.c +++ b/src/pulsecore/log.c @@ -38,6 +38,7 @@ #include <syslog.h> #endif +#include <pulse/rtclock.h> #include <pulse/utf8.h> #include <pulse/xmalloc.h> #include <pulse/util.h> @@ -45,7 +46,7 @@ #include <pulsecore/macro.h> #include <pulsecore/core-util.h> -#include <pulsecore/rtclock.h> +#include <pulsecore/core-rtclock.h> #include <pulsecore/once.h> #include <pulsecore/ratelimit.h> @@ -294,7 +295,7 @@ void pa_log_levelv_meta( static pa_usec_t start, last; pa_usec_t u, a, r; - u = pa_rtclock_usec(); + u = pa_rtclock_now(); PA_ONCE_BEGIN { start = u; diff --git a/src/pulsecore/native-common.h b/src/pulsecore/native-common.h index d4d7f3ee..f49abb09 100644 --- a/src/pulsecore/native-common.h +++ b/src/pulsecore/native-common.h @@ -165,6 +165,10 @@ enum { PA_COMMAND_PLAYBACK_BUFFER_ATTR_CHANGED, PA_COMMAND_RECORD_BUFFER_ATTR_CHANGED, + /* Supported since protocol v16 (0.9.16) */ + PA_COMMAND_SET_SINK_PORT, + PA_COMMAND_SET_SOURCE_PORT, + PA_COMMAND_MAX }; diff --git a/src/pulsecore/pdispatch.c b/src/pulsecore/pdispatch.c index d00106b4..fc8ce76f 100644 --- a/src/pulsecore/pdispatch.c +++ b/src/pulsecore/pdispatch.c @@ -27,6 +27,7 @@ #include <stdio.h> #include <stdlib.h> +#include <pulse/rtclock.h> #include <pulse/timeval.h> #include <pulse/xmalloc.h> @@ -37,6 +38,7 @@ #include <pulsecore/macro.h> #include <pulsecore/refcnt.h> #include <pulsecore/flist.h> +#include <pulsecore/core-rtclock.h> #include "pdispatch.h" @@ -204,6 +206,7 @@ struct pa_pdispatch { pa_pdispatch_drain_callback drain_callback; void *drain_userdata; const pa_creds *creds; + pa_bool_t use_rtclock:1; }; static void reply_info_free(struct reply_info *r) { @@ -220,7 +223,7 @@ static void reply_info_free(struct reply_info *r) { pa_xfree(r); } -pa_pdispatch* pa_pdispatch_new(pa_mainloop_api *mainloop, const pa_pdispatch_cb_t*table, unsigned entries) { +pa_pdispatch* pa_pdispatch_new(pa_mainloop_api *mainloop, pa_bool_t use_rtclock, const pa_pdispatch_cb_t *table, unsigned entries) { pa_pdispatch *pd; pa_assert(mainloop); @@ -235,6 +238,7 @@ pa_pdispatch* pa_pdispatch_new(pa_mainloop_api *mainloop, const pa_pdispatch_cb_ pd->drain_callback = NULL; pd->drain_userdata = NULL; pd->creds = NULL; + pd->use_rtclock = use_rtclock; return pd; } @@ -304,7 +308,7 @@ int pa_pdispatch_run(pa_pdispatch *pd, pa_packet*packet, const pa_creds *creds, if (command >= PA_COMMAND_MAX || !(p = command_names[command])) pa_snprintf((char*) (p = t), sizeof(t), "%u", command); - pa_log("[%p] Recieved opcode <%s>", pd, p); + pa_log("[%p] Received opcode <%s>", pd, p); } #endif @@ -325,7 +329,7 @@ int pa_pdispatch_run(pa_pdispatch *pd, pa_packet*packet, const pa_creds *creds, (*c)(pd, command, tag, ts, userdata); } else { - pa_log("Recieved unsupported command %u", command); + pa_log("Received unsupported command %u", command); goto finish; } @@ -342,7 +346,7 @@ finish: return ret; } -static void timeout_callback(pa_mainloop_api*m, pa_time_event*e, const struct timeval *tv, void *userdata) { +static void timeout_callback(pa_mainloop_api*m, pa_time_event*e, const struct timeval *t, void *userdata) { struct reply_info*r = userdata; pa_assert(r); @@ -371,10 +375,7 @@ void pa_pdispatch_register_reply(pa_pdispatch *pd, uint32_t tag, int timeout, pa r->free_cb = free_cb; r->tag = tag; - pa_gettimeofday(&tv); - tv.tv_sec += timeout; - - pa_assert_se(r->time_event = pd->mainloop->time_new(pd->mainloop, &tv, timeout_callback, r)); + pa_assert_se(r->time_event = pd->mainloop->time_new(pd->mainloop, pa_timeval_rtstore(&tv, pa_rtclock_now() + timeout * PA_USEC_PER_SEC, pd->use_rtclock), timeout_callback, r)); PA_LLIST_PREPEND(struct reply_info, pd->replies, r); } diff --git a/src/pulsecore/pdispatch.h b/src/pulsecore/pdispatch.h index 5c31d80e..dae475af 100644 --- a/src/pulsecore/pdispatch.h +++ b/src/pulsecore/pdispatch.h @@ -37,7 +37,7 @@ typedef struct pa_pdispatch pa_pdispatch; typedef void (*pa_pdispatch_cb_t)(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa_tagstruct *t, void *userdata); typedef void (*pa_pdispatch_drain_callback)(pa_pdispatch *pd, void *userdata); -pa_pdispatch* pa_pdispatch_new(pa_mainloop_api *m, const pa_pdispatch_cb_t*table, unsigned entries); +pa_pdispatch* pa_pdispatch_new(pa_mainloop_api *m, pa_bool_t use_rtclock, const pa_pdispatch_cb_t*table, unsigned entries); void pa_pdispatch_unref(pa_pdispatch *pd); pa_pdispatch* pa_pdispatch_ref(pa_pdispatch *pd); diff --git a/src/pulsecore/protocol-esound.c b/src/pulsecore/protocol-esound.c index 7e7126ea..f64552aa 100644 --- a/src/pulsecore/protocol-esound.c +++ b/src/pulsecore/protocol-esound.c @@ -30,6 +30,7 @@ #include <stdlib.h> #include <limits.h> +#include <pulse/rtclock.h> #include <pulse/sample.h> #include <pulse/timeval.h> #include <pulse/utf8.h> @@ -63,7 +64,7 @@ #define MAX_CONNECTIONS 64 /* Kick a client if it doesn't authenticate within this time */ -#define AUTH_TIMEOUT 5 +#define AUTH_TIMEOUT (5*PA_USEC_PER_SEC) #define DEFAULT_COOKIE_FILE ".esd_auth" @@ -947,10 +948,10 @@ static int esd_proto_standby_or_resume(connection *c, esd_proto_t request, const connection_write(c, &ok, sizeof(int32_t)); if (request == ESD_PROTO_STANDBY) - ok = pa_sink_suspend_all(c->protocol->core, TRUE) >= 0; + ok = pa_sink_suspend_all(c->protocol->core, TRUE, PA_SUSPEND_USER) >= 0; else { pa_assert(request == ESD_PROTO_RESUME); - ok = pa_sink_suspend_all(c->protocol->core, FALSE) >= 0; + ok = pa_sink_suspend_all(c->protocol->core, FALSE, PA_SUSPEND_USER) >= 0; } connection_write(c, &ok, sizeof(int32_t)); @@ -1459,11 +1460,10 @@ static pa_usec_t source_output_get_latency_cb(pa_source_output *o) { /*** entry points ***/ -static void auth_timeout(pa_mainloop_api*m, pa_time_event *e, const struct timeval *tv, void *userdata) { +static void auth_timeout(pa_mainloop_api *m, pa_time_event *e, const struct timeval *t, void *userdata) { connection *c = CONNECTION(userdata); pa_assert(m); - pa_assert(tv); connection_assert_ref(c); pa_assert(c->auth_timeout_event == e); @@ -1553,12 +1553,9 @@ void pa_esound_protocol_connect(pa_esound_protocol *p, pa_iochannel *io, pa_esou c->authorized = TRUE; } - if (!c->authorized) { - struct timeval tv; - pa_gettimeofday(&tv); - tv.tv_sec += AUTH_TIMEOUT; - c->auth_timeout_event = p->core->mainloop->time_new(p->core->mainloop, &tv, auth_timeout, c); - } else + if (!c->authorized) + c->auth_timeout_event = pa_core_rttime_new(p->core, pa_rtclock_now() + AUTH_TIMEOUT, auth_timeout, c); + else c->auth_timeout_event = NULL; c->defer_event = p->core->mainloop->defer_new(p->core->mainloop, defer_callback, c); diff --git a/src/pulsecore/protocol-native.c b/src/pulsecore/protocol-native.c index d4a9952a..cda7ef57 100644 --- a/src/pulsecore/protocol-native.c +++ b/src/pulsecore/protocol-native.c @@ -29,6 +29,7 @@ #include <stdlib.h> #include <unistd.h> +#include <pulse/rtclock.h> #include <pulse/timeval.h> #include <pulse/version.h> #include <pulse/utf8.h> @@ -61,7 +62,7 @@ #include "protocol-native.h" /* Kick a client if it doesn't authenticate within this time */ -#define AUTH_TIMEOUT 60 +#define AUTH_TIMEOUT (60 * PA_USEC_PER_SEC) /* Don't accept more connection than this */ #define MAX_CONNECTIONS 64 @@ -284,6 +285,7 @@ static void command_update_proplist(pa_pdispatch *pd, uint32_t command, uint32_t static void command_remove_proplist(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa_tagstruct *t, void *userdata); static void command_extension(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa_tagstruct *t, void *userdata); static void command_set_card_profile(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa_tagstruct *t, void *userdata); +static void command_set_sink_or_source_port(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa_tagstruct *t, void *userdata); static const pa_pdispatch_cb_t command_table[PA_COMMAND_MAX] = { [PA_COMMAND_ERROR] = NULL, @@ -380,6 +382,9 @@ static const pa_pdispatch_cb_t command_table[PA_COMMAND_MAX] = { [PA_COMMAND_SET_CARD_PROFILE] = command_set_card_profile, + [PA_COMMAND_SET_SINK_PORT] = command_set_sink_or_source_port, + [PA_COMMAND_SET_SOURCE_PORT] = command_set_sink_or_source_port, + [PA_COMMAND_EXTENSION] = command_extension }; @@ -2841,6 +2846,23 @@ static void sink_fill_tagstruct(pa_native_connection *c, pa_tagstruct *t, pa_sin pa_tagstruct_putu32(t, sink->n_volume_steps); pa_tagstruct_putu32(t, sink->card ? sink->card->index : PA_INVALID_INDEX); } + + if (c->version >= 16) { + pa_tagstruct_putu32(t, sink->ports ? pa_hashmap_size(sink->ports) : 0); + + if (sink->ports) { + void *state; + pa_device_port *p; + + PA_HASHMAP_FOREACH(p, sink->ports, state) { + pa_tagstruct_puts(t, p->name); + pa_tagstruct_puts(t, p->description); + pa_tagstruct_putu32(t, p->priority); + } + } + + pa_tagstruct_puts(t, sink->active_port ? sink->active_port->name : NULL); + } } static void source_fill_tagstruct(pa_native_connection *c, pa_tagstruct *t, pa_source *source) { @@ -2881,6 +2903,24 @@ static void source_fill_tagstruct(pa_native_connection *c, pa_tagstruct *t, pa_s pa_tagstruct_putu32(t, source->n_volume_steps); pa_tagstruct_putu32(t, source->card ? source->card->index : PA_INVALID_INDEX); } + + if (c->version >= 16) { + + pa_tagstruct_putu32(t, source->ports ? pa_hashmap_size(source->ports) : 0); + + if (source->ports) { + void *state; + pa_device_port *p; + + PA_HASHMAP_FOREACH(p, source->ports, state) { + pa_tagstruct_puts(t, p->name); + pa_tagstruct_puts(t, p->description); + pa_tagstruct_putu32(t, p->priority); + } + } + + pa_tagstruct_puts(t, source->active_port ? source->active_port->name : NULL); + } } static void client_fill_tagstruct(pa_native_connection *c, pa_tagstruct *t, pa_client *client) { @@ -3328,9 +3368,9 @@ static void command_set_volume( CHECK_VALIDITY(c->pstream, si || sink || source, tag, PA_ERR_NOENTITY); if (sink) - pa_sink_set_volume(sink, &volume, TRUE, TRUE, TRUE); + pa_sink_set_volume(sink, &volume, TRUE, TRUE, TRUE, TRUE); else if (source) - pa_source_set_volume(source, &volume); + pa_source_set_volume(source, &volume, TRUE); else if (si) pa_sink_input_set_volume(si, &volume, TRUE, TRUE); @@ -3400,9 +3440,9 @@ static void command_set_mute( CHECK_VALIDITY(c->pstream, si || sink || source, tag, PA_ERR_NOENTITY); if (sink) - pa_sink_set_mute(sink, mute); + pa_sink_set_mute(sink, mute, TRUE); else if (source) - pa_source_set_mute(source, mute); + pa_source_set_mute(source, mute, TRUE); else if (si) pa_sink_input_set_mute(si, mute, TRUE); @@ -4098,7 +4138,7 @@ static void command_suspend(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa pa_log_debug("%s all sinks", b ? "Suspending" : "Resuming"); - if (pa_sink_suspend_all(c->protocol->core, b) < 0) { + if (pa_sink_suspend_all(c->protocol->core, b, PA_SUSPEND_USER) < 0) { pa_pstream_send_error(c->pstream, tag, PA_ERR_INVALID); return; } @@ -4112,7 +4152,7 @@ static void command_suspend(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa CHECK_VALIDITY(c->pstream, sink, tag, PA_ERR_NOENTITY); - if (pa_sink_suspend(sink, b) < 0) { + if (pa_sink_suspend(sink, b, PA_SUSPEND_USER) < 0) { pa_pstream_send_error(c->pstream, tag, PA_ERR_INVALID); return; } @@ -4125,7 +4165,7 @@ static void command_suspend(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa pa_log_debug("%s all sources", b ? "Suspending" : "Resuming"); - if (pa_source_suspend_all(c->protocol->core, b) < 0) { + if (pa_source_suspend_all(c->protocol->core, b, PA_SUSPEND_USER) < 0) { pa_pstream_send_error(c->pstream, tag, PA_ERR_INVALID); return; } @@ -4140,7 +4180,7 @@ static void command_suspend(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa CHECK_VALIDITY(c->pstream, source, tag, PA_ERR_NOENTITY); - if (pa_source_suspend(source, b) < 0) { + if (pa_source_suspend(source, b, PA_SUSPEND_USER) < 0) { pa_pstream_send_error(c->pstream, tag, PA_ERR_INVALID); return; } @@ -4195,6 +4235,7 @@ static void command_set_card_profile(pa_pdispatch *pd, uint32_t command, uint32_ uint32_t idx = PA_INVALID_INDEX; const char *name = NULL, *profile = NULL; pa_card *card = NULL; + int ret; pa_native_connection_assert_ref(c); pa_assert(t); @@ -4220,14 +4261,72 @@ static void command_set_card_profile(pa_pdispatch *pd, uint32_t command, uint32_ CHECK_VALIDITY(c->pstream, card, tag, PA_ERR_NOENTITY); - if (pa_card_set_profile(card, profile, TRUE) < 0) { - pa_pstream_send_error(c->pstream, tag, PA_ERR_INVALID); + if ((ret = pa_card_set_profile(card, profile, TRUE)) < 0) { + pa_pstream_send_error(c->pstream, tag, -ret); return; } pa_pstream_send_simple_ack(c->pstream, tag); } +static void command_set_sink_or_source_port(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa_tagstruct *t, void *userdata) { + pa_native_connection *c = PA_NATIVE_CONNECTION(userdata); + uint32_t idx = PA_INVALID_INDEX; + const char *name = NULL, *port = NULL; + int ret; + + pa_native_connection_assert_ref(c); + pa_assert(t); + + if (pa_tagstruct_getu32(t, &idx) < 0 || + pa_tagstruct_gets(t, &name) < 0 || + pa_tagstruct_gets(t, &port) < 0 || + !pa_tagstruct_eof(t)) { + protocol_error(c); + return; + } + + CHECK_VALIDITY(c->pstream, c->authorized, tag, PA_ERR_ACCESS); + CHECK_VALIDITY(c->pstream, !name || pa_namereg_is_valid_name(name), tag, PA_ERR_INVALID); + CHECK_VALIDITY(c->pstream, idx != PA_INVALID_INDEX || name, tag, PA_ERR_INVALID); + CHECK_VALIDITY(c->pstream, idx == PA_INVALID_INDEX || !name, tag, PA_ERR_INVALID); + CHECK_VALIDITY(c->pstream, !name || idx == PA_INVALID_INDEX, tag, PA_ERR_INVALID); + + if (command == PA_COMMAND_SET_SINK_PORT) { + pa_sink *sink; + + if (idx != PA_INVALID_INDEX) + sink = pa_idxset_get_by_index(c->protocol->core->sinks, idx); + else + sink = pa_namereg_get(c->protocol->core, name, PA_NAMEREG_SINK); + + CHECK_VALIDITY(c->pstream, sink, tag, PA_ERR_NOENTITY); + + if ((ret = pa_sink_set_port(sink, port, TRUE)) < 0) { + pa_pstream_send_error(c->pstream, tag, -ret); + return; + } + } else { + pa_source *source; + + pa_assert(command = PA_COMMAND_SET_SOURCE_PORT); + + if (idx != PA_INVALID_INDEX) + source = pa_idxset_get_by_index(c->protocol->core->sources, idx); + else + source = pa_namereg_get(c->protocol->core, name, PA_NAMEREG_SOURCE); + + CHECK_VALIDITY(c->pstream, source, tag, PA_ERR_NOENTITY); + + if ((ret = pa_source_set_port(source, port, TRUE)) < 0) { + pa_pstream_send_error(c->pstream, tag, -ret); + return; + } + } + + pa_pstream_send_simple_ack(c->pstream, tag); +} + /*** pstream callbacks ***/ static void pstream_packet_callback(pa_pstream *p, pa_packet *packet, const pa_creds *creds, void *userdata) { @@ -4381,11 +4480,10 @@ static void client_send_event_cb(pa_client *client, const char*event, pa_proplis /*** module entry points ***/ -static void auth_timeout(pa_mainloop_api*m, pa_time_event *e, const struct timeval *tv, void *userdata) { +static void auth_timeout(pa_mainloop_api*m, pa_time_event *e, const struct timeval *t, void *userdata) { pa_native_connection *c = PA_NATIVE_CONNECTION(userdata); pa_assert(m); - pa_assert(tv); pa_native_connection_assert_ref(c); pa_assert(c->auth_timeout_event == e); @@ -4443,12 +4541,9 @@ void pa_native_protocol_connect(pa_native_protocol *p, pa_iochannel *io, pa_nati c->authorized = TRUE; } - if (!c->authorized) { - struct timeval tv; - pa_gettimeofday(&tv); - tv.tv_sec += AUTH_TIMEOUT; - c->auth_timeout_event = p->core->mainloop->time_new(p->core->mainloop, &tv, auth_timeout, c); - } else + if (!c->authorized) + c->auth_timeout_event = pa_core_rttime_new(p->core, pa_rtclock_now() + AUTH_TIMEOUT, auth_timeout, c); + else c->auth_timeout_event = NULL; c->is_local = pa_iochannel_socket_is_local(io); @@ -4467,7 +4562,7 @@ void pa_native_protocol_connect(pa_native_protocol *p, pa_iochannel *io, pa_nati pa_pstream_set_revoke_callback(c->pstream, pstream_revoke_callback, c); pa_pstream_set_release_callback(c->pstream, pstream_release_callback, c); - c->pdispatch = pa_pdispatch_new(p->core->mainloop, command_table, PA_COMMAND_MAX); + c->pdispatch = pa_pdispatch_new(p->core->mainloop, TRUE, command_table, PA_COMMAND_MAX); c->record_streams = pa_idxset_new(NULL, NULL); c->output_streams = pa_idxset_new(NULL, NULL); diff --git a/src/pulsecore/pstream.c b/src/pulsecore/pstream.c index ef1105ba..1d4ac177 100644 --- a/src/pulsecore/pstream.c +++ b/src/pulsecore/pstream.c @@ -684,7 +684,7 @@ static int do_read(pa_pstream *p) { flags = ntohl(p->read.descriptor[PA_PSTREAM_DESCRIPTOR_FLAGS]); if (!p->use_shm && (flags & PA_FLAG_SHMMASK) != 0) { - pa_log_warn("Recieved SHM frame on a socket where SHM is disabled."); + pa_log_warn("Received SHM frame on a socket where SHM is disabled."); return -1; } @@ -714,7 +714,7 @@ static int do_read(pa_pstream *p) { length = ntohl(p->read.descriptor[PA_PSTREAM_DESCRIPTOR_LENGTH]); if (length > FRAME_SIZE_MAX_ALLOW || length <= 0) { - pa_log_warn("Recieved invalid frame size: %lu", (unsigned long) length); + pa_log_warn("Received invalid frame size: %lu", (unsigned long) length); return -1; } @@ -743,7 +743,7 @@ static int do_read(pa_pstream *p) { if ((flags & PA_FLAG_SHMMASK) == PA_FLAG_SHMDATA) { if (length != sizeof(p->read.shm_info)) { - pa_log_warn("Recieved SHM memblock frame with Invalid frame length."); + pa_log_warn("Received SHM memblock frame with Invalid frame length."); return -1; } @@ -758,7 +758,7 @@ static int do_read(pa_pstream *p) { p->read.data = NULL; } else { - pa_log_warn("Recieved memblock frame with invalid flags value."); + pa_log_warn("Received memblock frame with invalid flags value."); return -1; } } diff --git a/src/pulsecore/ratelimit.c b/src/pulsecore/ratelimit.c index e913ca19..844dd77d 100644 --- a/src/pulsecore/ratelimit.c +++ b/src/pulsecore/ratelimit.c @@ -23,7 +23,8 @@ #include <config.h> #endif -#include <pulsecore/rtclock.h> +#include <pulse/rtclock.h> + #include <pulsecore/log.h> #include <pulsecore/mutex.h> @@ -38,7 +39,7 @@ pa_bool_t pa_ratelimit_test(pa_ratelimit *r) { pa_usec_t now; pa_mutex *m; - now = pa_rtclock_usec(); + now = pa_rtclock_now(); m = pa_static_mutex_get(&mutex, FALSE, FALSE); pa_mutex_lock(m); diff --git a/src/pulsecore/rtkit.c b/src/pulsecore/rtkit.c new file mode 100644 index 00000000..aecc4e32 --- /dev/null +++ b/src/pulsecore/rtkit.c @@ -0,0 +1,189 @@ +/*-*- Mode: C; c-basic-offset: 8 -*-*/ + +/*** + Copyright 2009 Lennart Poettering + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +***/ + +#include <errno.h> + +#include "rtkit.h" + +#ifdef __linux__ + +#ifndef _GNU_SOURCE +#define _GNU_SOURCE +#endif + +#include <string.h> +#include <unistd.h> +#include <sys/types.h> +#include <sys/syscall.h> + +static pid_t _gettid(void) { + return (pid_t) syscall(SYS_gettid); +} + +static int translate_error(const char *name) { + if (strcmp(name, DBUS_ERROR_NO_MEMORY) == 0) + return -ENOMEM; + if (strcmp(name, DBUS_ERROR_SERVICE_UNKNOWN) == 0 || + strcmp(name, DBUS_ERROR_NAME_HAS_NO_OWNER) == 0) + return -ENOENT; + if (strcmp(name, DBUS_ERROR_ACCESS_DENIED) == 0 || + strcmp(name, DBUS_ERROR_AUTH_FAILED) == 0) + return -EACCES; + + return -EIO; +} + +int rtkit_make_realtime(DBusConnection *connection, pid_t thread, int priority) { + DBusMessage *m = NULL, *r = NULL; + dbus_uint64_t u64; + dbus_uint32_t u32; + DBusError error; + int ret; + + dbus_error_init(&error); + + if (thread == 0) + thread = _gettid(); + + if (!(m = dbus_message_new_method_call( + RTKIT_SERVICE_NAME, + RTKIT_OBJECT_PATH, + "org.freedesktop.RealtimeKit1", + "MakeThreadRealtime"))) { + ret = -ENOMEM; + goto finish; + } + + u64 = (dbus_uint64_t) thread; + u32 = (dbus_uint32_t) priority; + + if (!dbus_message_append_args( + m, + DBUS_TYPE_UINT64, &u64, + DBUS_TYPE_UINT32, &u32, + DBUS_TYPE_INVALID)) { + ret = -ENOMEM; + goto finish; + } + + if (!(r = dbus_connection_send_with_reply_and_block(connection, m, -1, &error))) { + ret = translate_error(error.name); + goto finish; + } + + + if (dbus_set_error_from_message(&error, r)) { + ret = translate_error(error.name); + goto finish; + } + + ret = 0; + +finish: + + if (m) + dbus_message_unref(m); + + if (r) + dbus_message_unref(r); + + dbus_error_free(&error); + + return ret; +} + +int rtkit_make_high_priority(DBusConnection *connection, pid_t thread, int nice_level) { + DBusMessage *m = NULL, *r = NULL; + dbus_uint64_t u64; + dbus_int32_t s32; + DBusError error; + int ret; + + dbus_error_init(&error); + + if (thread == 0) + thread = _gettid(); + + if (!(m = dbus_message_new_method_call( + RTKIT_SERVICE_NAME, + RTKIT_OBJECT_PATH, + "org.freedesktop.RealtimeKit1", + "MakeThreadHighPriority"))) { + ret = -ENOMEM; + goto finish; + } + + u64 = (dbus_uint64_t) thread; + s32 = (dbus_int32_t) nice_level; + + if (!dbus_message_append_args( + m, + DBUS_TYPE_UINT64, &u64, + DBUS_TYPE_INT32, &s32, + DBUS_TYPE_INVALID)) { + ret = -ENOMEM; + goto finish; + } + + + + if (!(r = dbus_connection_send_with_reply_and_block(connection, m, -1, &error))) { + ret = translate_error(error.name); + goto finish; + } + + + if (dbus_set_error_from_message(&error, r)) { + ret = translate_error(error.name); + goto finish; + } + + ret = 0; + +finish: + + if (m) + dbus_message_unref(m); + + if (r) + dbus_message_unref(r); + + dbus_error_free(&error); + + return ret; +} + +#else + +int rtkit_make_realtime(DBusConnection *connection, pid_t thread, int priority) { + return -ENOTSUP; +} + +int rtkit_make_high_priority(DBusConnection *connection, pid_t thread, int nice_level) { + return -ENOTSUP; +} + +#endif diff --git a/src/pulsecore/rtkit.h b/src/pulsecore/rtkit.h new file mode 100644 index 00000000..2081b4e9 --- /dev/null +++ b/src/pulsecore/rtkit.h @@ -0,0 +1,62 @@ +/*-*- Mode: C; c-basic-offset: 8 -*-*/ + +#ifndef foortkithfoo +#define foortkithfoo + +/*** + Copyright 2009 Lennart Poettering + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +***/ + +#include <sys/types.h> +#include <dbus/dbus.h> + +#ifdef __cplusplus +extern "C" { +#endif + +/* This is the reference implementation for a client for + * RealtimeKit. You don't have to use this, but if do, just copy these + * sources into your repository */ + +#define RTKIT_SERVICE_NAME "org.freedesktop.RealtimeKit1" +#define RTKIT_OBJECT_PATH "/org/freedesktop/RealtimeKit1" + +/* This is mostly equivalent to sched_setparam(thread, SCHED_RR, { + * .sched_priority = priority }). 'thread' needs to be a kernel thread + * id as returned by gettid(), not a pthread_t! If 'thread' is 0 the + * current thread is used. The returned value is a negative errno + * style error code, or 0 on success. */ +int rtkit_make_realtime(DBusConnection *system_bus, pid_t thread, int priority); + +/* This is mostly equivalent to setpriority(PRIO_PROCESS, thread, + * nice_level). 'thread' needs to be a kernel thread id as returned by + * gettid(), not a pthread_t! If 'thread' is 0 the current thread is + * used. The returned value is a negative errno style error code, or 0 + * on success.*/ +int rtkit_make_high_priority(DBusConnection *system_bus, pid_t thread, int nice_level); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/pulsecore/rtpoll.c b/src/pulsecore/rtpoll.c index aa8ca321..5cbec321 100644 --- a/src/pulsecore/rtpoll.c +++ b/src/pulsecore/rtpoll.c @@ -30,10 +30,6 @@ #include <string.h> #include <errno.h> -#ifdef __linux__ -#include <sys/utsname.h> -#endif - #ifdef HAVE_POLL_H #include <poll.h> #else @@ -44,10 +40,9 @@ #include <pulse/timeval.h> #include <pulsecore/core-error.h> -#include <pulsecore/rtclock.h> +#include <pulsecore/core-rtclock.h> #include <pulsecore/macro.h> #include <pulsecore/llist.h> -#include <pulsecore/rtsig.h> #include <pulsecore/flist.h> #include <pulsecore/core-util.h> #include <pulsecore/winsock.h> @@ -66,20 +61,9 @@ struct pa_rtpoll { pa_bool_t scan_for_dead:1; pa_bool_t running:1; - pa_bool_t installed:1; pa_bool_t rebuild_needed:1; pa_bool_t quit:1; -#ifdef HAVE_PPOLL - pa_bool_t timer_armed:1; -#ifdef __linux__ - pa_bool_t dont_use_ppoll:1; -#endif - int rtsig; - sigset_t sigset_unblocked; - timer_t timer; -#endif - #ifdef DEBUG_TIMING pa_usec_t timestamp; pa_usec_t slept, awake; @@ -107,52 +91,20 @@ struct pa_rtpoll_item { PA_STATIC_FLIST_DECLARE(items, 0, pa_xfree); -static void signal_handler_noop(int s) { /* write(2, "signal\n", 7); */ } - pa_rtpoll *pa_rtpoll_new(void) { pa_rtpoll *p; p = pa_xnew(pa_rtpoll, 1); -#ifdef HAVE_PPOLL - -#ifdef __linux__ - /* ppoll is broken on Linux < 2.6.16 */ - p->dont_use_ppoll = FALSE; - - { - struct utsname u; - unsigned major, minor, micro; - - pa_assert_se(uname(&u) == 0); - - if (sscanf(u.release, "%u.%u.%u", &major, &minor, µ) != 3 || - (major < 2) || - (major == 2 && minor < 6) || - (major == 2 && minor == 6 && micro < 16)) - - p->dont_use_ppoll = TRUE; - } - -#endif - - p->rtsig = -1; - sigemptyset(&p->sigset_unblocked); - p->timer = (timer_t) -1; - p->timer_armed = FALSE; - -#endif - p->n_pollfd_alloc = 32; p->pollfd = pa_xnew(struct pollfd, p->n_pollfd_alloc); p->pollfd2 = pa_xnew(struct pollfd, p->n_pollfd_alloc); p->n_pollfd_used = 0; - memset(&p->next_elapse, 0, sizeof(p->next_elapse)); + pa_zero(p->next_elapse); p->timer_enabled = FALSE; p->running = FALSE; - p->installed = FALSE; p->scan_for_dead = FALSE; p->rebuild_needed = FALSE; p->quit = FALSE; @@ -160,53 +112,13 @@ pa_rtpoll *pa_rtpoll_new(void) { PA_LLIST_HEAD_INIT(pa_rtpoll_item, p->items); #ifdef DEBUG_TIMING - p->timestamp = pa_rtclock_usec(); + p->timestamp = pa_rtclock_now(); p->slept = p->awake = 0; #endif return p; } -void pa_rtpoll_install(pa_rtpoll *p) { - pa_assert(p); - pa_assert(!p->installed); - - p->installed = TRUE; - -#ifdef HAVE_PPOLL -# ifdef __linux__ - if (p->dont_use_ppoll) - return; -# endif - - if ((p->rtsig = pa_rtsig_get_for_thread()) < 0) { - pa_log_warn("Failed to reserve POSIX realtime signal."); - return; - } - - pa_log_debug("Acquired POSIX realtime signal %s", pa_sig2str(p->rtsig)); - - { - sigset_t ss; - struct sigaction sa; - - pa_assert_se(sigemptyset(&ss) == 0); - pa_assert_se(sigaddset(&ss, p->rtsig) == 0); - pa_assert_se(pthread_sigmask(SIG_BLOCK, &ss, &p->sigset_unblocked) == 0); - pa_assert_se(sigdelset(&p->sigset_unblocked, p->rtsig) == 0); - - memset(&sa, 0, sizeof(sa)); - sa.sa_handler = signal_handler_noop; - pa_assert_se(sigemptyset(&sa.sa_mask) == 0); - - pa_assert_se(sigaction(p->rtsig, &sa, NULL) == 0); - - /* We never reset the signal handler. Why should we? */ - } - -#endif -} - static void rtpoll_rebuild(pa_rtpoll *p) { struct pollfd *e, *t; @@ -250,7 +162,6 @@ static void rtpoll_rebuild(pa_rtpoll *p) { if (ra) p->pollfd2 = pa_xrealloc(p->pollfd2, p->n_pollfd_alloc * sizeof(struct pollfd)); - } static void rtpoll_item_destroy(pa_rtpoll_item *i) { @@ -279,11 +190,6 @@ void pa_rtpoll_free(pa_rtpoll *p) { pa_xfree(p->pollfd); pa_xfree(p->pollfd2); -#ifdef HAVE_PPOLL - if (p->timer != (timer_t) -1) - timer_delete(p->timer); -#endif - pa_xfree(p); } @@ -321,7 +227,6 @@ int pa_rtpoll_run(pa_rtpoll *p, pa_bool_t wait) { pa_assert(p); pa_assert(!p->running); - pa_assert(p->installed); p->running = TRUE; @@ -394,7 +299,7 @@ int pa_rtpoll_run(pa_rtpoll *p, pa_bool_t wait) { #ifdef DEBUG_TIMING { - pa_usec_t now = pa_rtclock_usec(); + pa_usec_t now = pa_rtclock_now(); p->awake = now - p->timestamp; p->timestamp = now; } @@ -402,26 +307,19 @@ int pa_rtpoll_run(pa_rtpoll *p, pa_bool_t wait) { /* OK, now let's sleep */ #ifdef HAVE_PPOLL - -#ifdef __linux__ - if (!p->dont_use_ppoll) -#endif { struct timespec ts; ts.tv_sec = timeout.tv_sec; ts.tv_nsec = timeout.tv_usec * 1000; - r = ppoll(p->pollfd, p->n_pollfd_used, (!wait || p->quit || p->timer_enabled) ? &ts : NULL, p->rtsig < 0 ? NULL : &p->sigset_unblocked); + r = ppoll(p->pollfd, p->n_pollfd_used, (!wait || p->quit || p->timer_enabled) ? &ts : NULL, NULL); } -#ifdef __linux__ - else -#endif - -#endif +#else r = poll(p->pollfd, p->n_pollfd_used, (!wait || p->quit || p->timer_enabled) ? (int) ((timeout.tv_sec*1000) + (timeout.tv_usec / 1000)) : -1); +#endif #ifdef DEBUG_TIMING { - pa_usec_t now = pa_rtclock_usec(); + pa_usec_t now = pa_rtclock_now(); p->slept = now - p->timestamp; p->timestamp = now; @@ -472,73 +370,11 @@ finish: return r < 0 ? r : !p->quit; } -static void update_timer(pa_rtpoll *p) { - pa_assert(p); - -#ifdef HAVE_PPOLL - -#ifdef __linux__ - if (p->dont_use_ppoll) - return; -#endif - - if (p->timer == (timer_t) -1) { - struct sigevent se; - - memset(&se, 0, sizeof(se)); - se.sigev_notify = SIGEV_SIGNAL; - se.sigev_signo = p->rtsig; - - if (timer_create(CLOCK_MONOTONIC, &se, &p->timer) < 0) - if (timer_create(CLOCK_REALTIME, &se, &p->timer) < 0) { - pa_log_warn("Failed to allocate POSIX timer: %s", pa_cstrerror(errno)); - p->timer = (timer_t) -1; - } - } - - if (p->timer != (timer_t) -1) { - struct itimerspec its; - struct timespec ts = { .tv_sec = 0, .tv_nsec = 0 }; - sigset_t ss; - - if (p->timer_armed) { - /* First disarm timer */ - memset(&its, 0, sizeof(its)); - pa_assert_se(timer_settime(p->timer, TIMER_ABSTIME, &its, NULL) == 0); - - /* Remove a signal that might be waiting in the signal q */ - pa_assert_se(sigemptyset(&ss) == 0); - pa_assert_se(sigaddset(&ss, p->rtsig) == 0); - sigtimedwait(&ss, NULL, &ts); - } - - /* And install the new timer */ - if (p->timer_enabled) { - memset(&its, 0, sizeof(its)); - - its.it_value.tv_sec = p->next_elapse.tv_sec; - its.it_value.tv_nsec = p->next_elapse.tv_usec*1000; - - /* Make sure that 0,0 is not understood as - * "disarming" */ - if (its.it_value.tv_sec == 0 && its.it_value.tv_nsec == 0) - its.it_value.tv_nsec = 1; - pa_assert_se(timer_settime(p->timer, TIMER_ABSTIME, &its, NULL) == 0); - } - - p->timer_armed = p->timer_enabled; - } - -#endif -} - void pa_rtpoll_set_timer_absolute(pa_rtpoll *p, pa_usec_t usec) { pa_assert(p); pa_timeval_store(&p->next_elapse, usec); p->timer_enabled = TRUE; - - update_timer(p); } void pa_rtpoll_set_timer_relative(pa_rtpoll *p, pa_usec_t usec) { @@ -550,8 +386,6 @@ void pa_rtpoll_set_timer_relative(pa_rtpoll *p, pa_usec_t usec) { pa_rtclock_get(&p->next_elapse); pa_timeval_add(&p->next_elapse, usec); p->timer_enabled = TRUE; - - update_timer(p); } void pa_rtpoll_set_timer_disabled(pa_rtpoll *p) { @@ -559,8 +393,6 @@ void pa_rtpoll_set_timer_disabled(pa_rtpoll *p) { memset(&p->next_elapse, 0, sizeof(p->next_elapse)); p->timer_enabled = FALSE; - - update_timer(p); } pa_rtpoll_item *pa_rtpoll_item_new(pa_rtpoll *p, pa_rtpoll_priority_t prio, unsigned n_fds) { diff --git a/src/pulsecore/rtpoll.h b/src/pulsecore/rtpoll.h index 08776ef0..d2d69cad 100644 --- a/src/pulsecore/rtpoll.h +++ b/src/pulsecore/rtpoll.h @@ -62,9 +62,6 @@ typedef enum pa_rtpoll_priority { pa_rtpoll *pa_rtpoll_new(void); void pa_rtpoll_free(pa_rtpoll *p); -/* Install the rtpoll in the current thread */ -void pa_rtpoll_install(pa_rtpoll *p); - /* Sleep on the rtpoll until the time event, or any of the fd events * is triggered. If "wait" is 0 we don't sleep but only update the * struct pollfd. Returns negative on error, positive if the loop diff --git a/src/pulsecore/rtsig.c b/src/pulsecore/rtsig.c deleted file mode 100644 index 4cd6aa8f..00000000 --- a/src/pulsecore/rtsig.c +++ /dev/null @@ -1,131 +0,0 @@ -/*** - This file is part of PulseAudio. - - Copyright 2004-2006 Lennart Poettering - Copyright 2006 Pierre Ossman <ossman@cendio.se> for Cendio AB - - PulseAudio is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - PulseAudio is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with PulseAudio; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - USA. -***/ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include <signal.h> - -#include <pulsecore/macro.h> -#include <pulsecore/flist.h> -#include <pulsecore/once.h> -#include <pulsecore/thread.h> -#include <pulsecore/core-util.h> - -#include "rtsig.h" - -#ifdef SIGRTMIN - -static void _free_rtsig(void *p) { - pa_rtsig_put(PA_PTR_TO_INT(p)); -} - -PA_STATIC_FLIST_DECLARE(rtsig_flist, pa_make_power_of_two((unsigned) (SIGRTMAX-SIGRTMIN+1)), NULL); -PA_STATIC_TLS_DECLARE(rtsig_tls, _free_rtsig); - -static pa_atomic_t rtsig_current = PA_ATOMIC_INIT(-1); - -static int rtsig_start = -1, rtsig_end = -1; - -int pa_rtsig_get(void) { - void *p; - int sig; - - if ((p = pa_flist_pop(PA_STATIC_FLIST_GET(rtsig_flist)))) - return PA_PTR_TO_INT(p); - - sig = pa_atomic_dec(&rtsig_current); - - pa_assert(sig <= SIGRTMAX); - pa_assert(sig <= rtsig_end); - - if (sig < rtsig_start) { - pa_atomic_inc(&rtsig_current); - return -1; - } - - return sig; -} - -int pa_rtsig_get_for_thread(void) { - int sig; - void *p; - - if ((p = PA_STATIC_TLS_GET(rtsig_tls))) - return PA_PTR_TO_INT(p); - - if ((sig = pa_rtsig_get()) < 0) - return -1; - - PA_STATIC_TLS_SET(rtsig_tls, PA_INT_TO_PTR(sig)); - return sig; -} - -void pa_rtsig_put(int sig) { - pa_assert(sig >= rtsig_start); - pa_assert(sig <= rtsig_end); - - pa_assert_se(pa_flist_push(PA_STATIC_FLIST_GET(rtsig_flist), PA_INT_TO_PTR(sig)) >= 0); -} - -void pa_rtsig_configure(int start, int end) { - int s; - sigset_t ss; - - pa_assert(pa_atomic_load(&rtsig_current) == -1); - - pa_assert(SIGRTMIN <= start); - pa_assert(start <= end); - pa_assert(end <= SIGRTMAX); - - rtsig_start = start; - rtsig_end = end; - - sigemptyset(&ss); - - for (s = rtsig_start; s <= rtsig_end; s++) - pa_assert_se(sigaddset(&ss, s) == 0); - - pa_assert(pthread_sigmask(SIG_BLOCK, &ss, NULL) == 0); - - /* We allocate starting from the end */ - pa_atomic_store(&rtsig_current, rtsig_end); -} - -#else /* SIGRTMIN */ - -int pa_rtsig_get(void) { - return -1; -} - -int pa_rtsig_get_for_thread(void) { - return -1; -} - -void pa_rtsig_put(int sig) { -} - -void pa_rtsig_configure(int start, int end) { -} - -#endif /* SIGRTMIN */ diff --git a/src/pulsecore/sample-util.c b/src/pulsecore/sample-util.c index dda38834..5b8ccf59 100644 --- a/src/pulsecore/sample-util.c +++ b/src/pulsecore/sample-util.c @@ -1182,7 +1182,7 @@ pa_memchunk* pa_silence_memchunk_get(pa_silence_cache *cache, pa_mempool *pool, case PA_SAMPLE_S24LE: case PA_SAMPLE_S24BE: case PA_SAMPLE_S24_32LE: - case PA_SAMPLE_S24_32RE: + case PA_SAMPLE_S24_32BE: case PA_SAMPLE_FLOAT32LE: case PA_SAMPLE_FLOAT32BE: cache->blocks[PA_SAMPLE_S16LE] = b = silence_memblock_new(pool, 0); diff --git a/src/pulsecore/sample-util.h b/src/pulsecore/sample-util.h index 79af9efc..6a306c11 100644 --- a/src/pulsecore/sample-util.h +++ b/src/pulsecore/sample-util.h @@ -25,6 +25,7 @@ #include <pulse/sample.h> #include <pulse/volume.h> +#include <pulse/channelmap.h> #include <pulsecore/memblock.h> #include <pulsecore/memchunk.h> @@ -85,4 +86,62 @@ void pa_memchunk_dump_to_file(pa_memchunk *c, const char *fn); void pa_memchunk_sine(pa_memchunk *c, pa_mempool *pool, unsigned rate, unsigned freq); +#define PA_CHANNEL_POSITION_MASK_LEFT \ + (PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_FRONT_LEFT) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_REAR_LEFT) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_SIDE_LEFT) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_TOP_FRONT_LEFT) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_TOP_REAR_LEFT)) \ + +#define PA_CHANNEL_POSITION_MASK_RIGHT \ + (PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_FRONT_RIGHT) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_REAR_RIGHT) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_SIDE_RIGHT) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_TOP_FRONT_RIGHT) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_TOP_REAR_RIGHT)) + +#define PA_CHANNEL_POSITION_MASK_CENTER \ + (PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_FRONT_CENTER) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_REAR_CENTER) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_TOP_CENTER) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_TOP_FRONT_CENTER) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_TOP_REAR_CENTER)) + +#define PA_CHANNEL_POSITION_MASK_FRONT \ + (PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_FRONT_LEFT) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_FRONT_RIGHT) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_FRONT_CENTER) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_TOP_FRONT_LEFT) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_TOP_FRONT_RIGHT) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_TOP_FRONT_CENTER)) + +#define PA_CHANNEL_POSITION_MASK_REAR \ + (PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_REAR_LEFT) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_REAR_RIGHT) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_REAR_CENTER) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_TOP_REAR_LEFT) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_TOP_REAR_RIGHT) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_TOP_REAR_CENTER)) + +#define PA_CHANNEL_POSITION_MASK_SIDE_OR_TOP_CENTER \ + (PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_SIDE_LEFT) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_SIDE_RIGHT) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_TOP_CENTER)) + +#define PA_CHANNEL_POSITION_MASK_TOP \ + (PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_TOP_CENTER) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_TOP_FRONT_LEFT) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_TOP_FRONT_RIGHT) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_TOP_FRONT_CENTER) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_TOP_REAR_LEFT) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_TOP_REAR_RIGHT) \ + | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_TOP_REAR_CENTER)) + +#define PA_CHANNEL_POSITION_MASK_ALL \ + ((pa_channel_position_mask_t) (PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_MAX)-1)) + #endif diff --git a/src/pulsecore/sink-input.c b/src/pulsecore/sink-input.c index 0d05b00a..a5f96351 100644 --- a/src/pulsecore/sink-input.c +++ b/src/pulsecore/sink-input.c @@ -442,7 +442,7 @@ void pa_sink_input_unlink(pa_sink_input *i) { if (i->sink->flags & PA_SINK_FLAT_VOLUME) { pa_cvolume new_volume; pa_sink_update_flat_volume(i->sink, &new_volume); - pa_sink_set_volume(i->sink, &new_volume, FALSE, FALSE, FALSE); + pa_sink_set_volume(i->sink, &new_volume, FALSE, FALSE, FALSE, FALSE); } if (i->sink->asyncmsgq) @@ -520,7 +520,7 @@ void pa_sink_input_put(pa_sink_input *i) { if (i->sink->flags & PA_SINK_FLAT_VOLUME) { pa_cvolume new_volume; pa_sink_update_flat_volume(i->sink, &new_volume); - pa_sink_set_volume(i->sink, &new_volume, FALSE, FALSE, FALSE); + pa_sink_set_volume(i->sink, &new_volume, FALSE, FALSE, FALSE, FALSE); } else pa_sink_input_set_relative_volume(i, &i->virtual_volume); @@ -900,7 +900,7 @@ void pa_sink_input_set_volume(pa_sink_input *i, const pa_cvolume *volume, pa_boo * volumes and update the flat volume of the sink */ pa_sink_update_flat_volume(i->sink, &new_volume); - pa_sink_set_volume(i->sink, &new_volume, FALSE, TRUE, FALSE); + pa_sink_set_volume(i->sink, &new_volume, FALSE, TRUE, FALSE, FALSE); } else { @@ -1159,7 +1159,7 @@ int pa_sink_input_start_move(pa_sink_input *i) { /* We might need to update the sink's volume if we are in flat * volume mode. */ pa_sink_update_flat_volume(i->sink, &new_volume); - pa_sink_set_volume(i->sink, &new_volume, FALSE, FALSE, FALSE); + pa_sink_set_volume(i->sink, &new_volume, FALSE, FALSE, FALSE, FALSE); } pa_assert_se(pa_asyncmsgq_send(i->sink->asyncmsgq, PA_MSGOBJECT(i->sink), PA_SINK_MESSAGE_START_MOVE, i, 0, NULL) == 0); @@ -1252,7 +1252,7 @@ int pa_sink_input_finish_move(pa_sink_input *i, pa_sink *dest, pa_bool_t save) { /* We might need to update the sink's volume if we are in flat volume mode. */ pa_sink_update_flat_volume(i->sink, &new_volume); - pa_sink_set_volume(i->sink, &new_volume, FALSE, FALSE, FALSE); + pa_sink_set_volume(i->sink, &new_volume, FALSE, FALSE, FALSE, FALSE); } pa_assert_se(pa_asyncmsgq_send(i->sink->asyncmsgq, PA_MSGOBJECT(i->sink), PA_SINK_MESSAGE_FINISH_MOVE, i, 0, NULL) == 0); diff --git a/src/pulsecore/sink.c b/src/pulsecore/sink.c index 28b3440c..d8f3c7d1 100644 --- a/src/pulsecore/sink.c +++ b/src/pulsecore/sink.c @@ -100,11 +100,51 @@ void pa_sink_new_data_set_muted(pa_sink_new_data *data, pa_bool_t mute) { data->muted = !!mute; } +void pa_sink_new_data_set_port(pa_sink_new_data *data, const char *port) { + pa_assert(data); + + pa_xfree(data->active_port); + data->active_port = pa_xstrdup(port); +} + void pa_sink_new_data_done(pa_sink_new_data *data) { pa_assert(data); - pa_xfree(data->name); pa_proplist_free(data->proplist); + + if (data->ports) { + pa_device_port *p; + + while ((p = pa_hashmap_steal_first(data->ports))) + pa_device_port_free(p); + + pa_hashmap_free(data->ports, NULL, NULL); + } + + pa_xfree(data->name); + pa_xfree(data->active_port); +} + +pa_device_port *pa_device_port_new(const char *name, const char *description, size_t extra) { + pa_device_port *p; + + pa_assert(name); + + p = pa_xmalloc(PA_ALIGN(sizeof(pa_device_port)) + extra); + p->name = pa_xstrdup(name); + p->description = pa_xstrdup(description); + + p->priority = 0; + + return p; +} + +void pa_device_port_free(pa_device_port *p) { + pa_assert(p); + + pa_xfree(p->name); + pa_xfree(p->description); + pa_xfree(p); } /* Called from main context */ @@ -118,6 +158,7 @@ static void reset_callbacks(pa_sink *s) { s->set_mute = NULL; s->request_rewind = NULL; s->update_requested_latency = NULL; + s->set_port = NULL; } /* Called from main context */ @@ -140,6 +181,7 @@ pa_sink* pa_sink_new( s = pa_msgobject_new(pa_sink); if (!(name = pa_namereg_register(core, data->name, PA_NAMEREG_SINK, s, data->namereg_fail))) { + pa_log_debug("Failed to register name %s.", data->name); pa_xfree(s); return NULL; } @@ -152,6 +194,8 @@ pa_sink* pa_sink_new( return NULL; } + /* FIXME, need to free s here on failure */ + pa_return_null_if_fail(!data->driver || pa_utf8_valid(data->driver)); pa_return_null_if_fail(data->name && pa_utf8_valid(data->name) && data->name[0]); @@ -177,6 +221,7 @@ pa_sink* pa_sink_new( pa_device_init_description(data->proplist); pa_device_init_icon(data->proplist, TRUE); + pa_device_init_intended_roles(data->proplist); if (pa_hook_fire(&core->hooks[PA_CORE_HOOK_SINK_FIXATE], data) < 0) { pa_xfree(s); @@ -190,6 +235,7 @@ pa_sink* pa_sink_new( s->core = core; s->state = PA_SINK_INIT; s->flags = flags; + s->suspend_cause = 0; s->name = pa_xstrdup(name); s->proplist = pa_proplist_copy(data->proplist); s->driver = pa_xstrdup(pa_path_get_filename(data->driver)); @@ -217,6 +263,30 @@ pa_sink* pa_sink_new( s->asyncmsgq = NULL; s->rtpoll = NULL; + /* As a minor optimization we just steal the list instead of + * copying it here */ + s->ports = data->ports; + data->ports = NULL; + + s->active_port = NULL; + s->save_port = FALSE; + + if (data->active_port && s->ports) + if ((s->active_port = pa_hashmap_get(s->ports, data->active_port))) + s->save_port = data->save_port; + + if (!s->active_port && s->ports) { + void *state; + pa_device_port *p; + + PA_HASHMAP_FOREACH(p, s->ports, state) + if (!s->active_port || p->priority > s->active_port->priority) + s->active_port = p; + } + + s->save_volume = data->save_volume; + s->save_muted = data->save_muted; + pa_silence_memchunk_get( &core->silence_cache, core->mempool, @@ -465,6 +535,15 @@ static void sink_free(pa_object *o) { if (s->proplist) pa_proplist_free(s->proplist); + if (s->ports) { + pa_device_port *p; + + while ((p = pa_hashmap_steal_first(s->ports))) + pa_device_port_free(p); + + pa_hashmap_free(s->ports, NULL, NULL); + } + pa_xfree(s); } @@ -483,6 +562,7 @@ void pa_sink_set_rtpoll(pa_sink *s, pa_rtpoll *p) { pa_sink_assert_ref(s); s->rtpoll = p; + if (s->monitor_source) pa_source_set_rtpoll(s->monitor_source, p); } @@ -499,26 +579,40 @@ int pa_sink_update_status(pa_sink*s) { } /* Called from main context */ -int pa_sink_suspend(pa_sink *s, pa_bool_t suspend) { +int pa_sink_suspend(pa_sink *s, pa_bool_t suspend, pa_suspend_cause_t cause) { pa_sink_assert_ref(s); pa_assert(PA_SINK_IS_LINKED(s->state)); + pa_assert(cause != 0); + + if (suspend) { + s->suspend_cause |= cause; + s->monitor_source->suspend_cause |= cause; + } else { + s->suspend_cause &= ~cause; + s->monitor_source->suspend_cause &= ~cause; + } - if (suspend) + if ((pa_sink_get_state(s) == PA_SINK_SUSPENDED) == !!s->suspend_cause) + return 0; + + pa_log_debug("Suspend cause of sink %s is 0x%04x, %s", s->name, s->suspend_cause, s->suspend_cause ? "suspending" : "resuming"); + + if (s->suspend_cause) return sink_set_state(s, PA_SINK_SUSPENDED); else return sink_set_state(s, pa_sink_used_by(s) ? PA_SINK_RUNNING : PA_SINK_IDLE); } /* Called from main context */ -pa_queue *pa_sink_move_all_start(pa_sink *s) { - pa_queue *q; +pa_queue *pa_sink_move_all_start(pa_sink *s, pa_queue *q) { pa_sink_input *i, *n; uint32_t idx; pa_sink_assert_ref(s); pa_assert(PA_SINK_IS_LINKED(s->state)); - q = pa_queue_new(); + if (!q) + q = pa_queue_new(); for (i = PA_SINK_INPUT(pa_idxset_first(s->inputs, &idx)); i; i = n) { n = PA_SINK_INPUT(pa_idxset_next(s->inputs, &idx)); @@ -958,21 +1052,21 @@ void pa_sink_render_full(pa_sink *s, size_t length, pa_memchunk *result) { n = fill_mix_info(s, &length1st, info, MAX_MIX_CHANNELS); if (n == 0) { - pa_silence_memchunk_get(&s->core->silence_cache, - s->core->mempool, - result, - &s->sample_spec, - length1st); + pa_silence_memchunk_get(&s->core->silence_cache, + s->core->mempool, + result, + &s->sample_spec, + length1st); } else if (n == 1) { - pa_cvolume volume; + pa_cvolume volume; - *result = info[0].chunk; - pa_memblock_ref(result->memblock); + *result = info[0].chunk; + pa_memblock_ref(result->memblock); - if (result->length > length) - result->length = length; + if (result->length > length) + result->length = length; - pa_sw_cvolume_multiply(&volume, &s->thread_info.soft_volume, &info[0].volume); + pa_sw_cvolume_multiply(&volume, &s->thread_info.soft_volume, &info[0].volume); if (s->thread_info.soft_muted || !pa_cvolume_is_norm(&volume)) { if (s->thread_info.soft_muted || pa_cvolume_is_muted(&volume)) { @@ -990,10 +1084,10 @@ void pa_sink_render_full(pa_sink *s, size_t length, pa_memchunk *result) { } else { void *ptr; - result->index = 0; - result->memblock = pa_memblock_new(s->core->mempool, length); + result->index = 0; + result->memblock = pa_memblock_new(s->core->mempool, length); - ptr = pa_memblock_acquire(result->memblock); + ptr = pa_memblock_acquire(result->memblock); result->length = pa_mix(info, n, (uint8_t*) ptr + result->index, length1st, @@ -1007,24 +1101,23 @@ void pa_sink_render_full(pa_sink *s, size_t length, pa_memchunk *result) { inputs_drop(s, info, n, result); if (result->length < length) { - pa_memchunk chunk; - size_t l, d; - pa_memchunk_make_writable(result, length); - result->length = length; - - l = length - result->length; - d = result->index + result->length; - while (l > 0) { - chunk = *result; - chunk.index += d; - chunk.length -= d - result->index; - - pa_sink_render_into(s, &chunk); - - d += chunk.length; - l -= chunk.length; - } - result->length = length; + pa_memchunk chunk; + size_t l, d; + pa_memchunk_make_writable(result, length); + + l = length - result->length; + d = result->index + result->length; + while (l > 0) { + chunk = *result; + chunk.index = d; + chunk.length = l; + + pa_sink_render_into(s, &chunk); + + d += chunk.length; + l -= chunk.length; + } + result->length = length; } pa_sink_unref(s); @@ -1222,7 +1315,7 @@ void pa_sink_propagate_flat_volume(pa_sink *s) { } /* Called from main thread */ -void pa_sink_set_volume(pa_sink *s, const pa_cvolume *volume, pa_bool_t propagate, pa_bool_t sendmsg, pa_bool_t become_reference) { +void pa_sink_set_volume(pa_sink *s, const pa_cvolume *volume, pa_bool_t propagate, pa_bool_t sendmsg, pa_bool_t become_reference, pa_bool_t save) { pa_bool_t virtual_volume_changed; pa_sink_assert_ref(s); @@ -1233,6 +1326,7 @@ void pa_sink_set_volume(pa_sink *s, const pa_cvolume *volume, pa_bool_t propagat virtual_volume_changed = !pa_cvolume_equal(volume, &s->virtual_volume); s->virtual_volume = *volume; + s->save_volume = (!virtual_volume_changed && s->save_volume) || save; if (become_reference) s->reference_volume = s->virtual_volume; @@ -1303,15 +1397,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) { +void pa_sink_volume_changed(pa_sink *s, const pa_cvolume *new_volume, pa_bool_t save) { pa_sink_assert_ref(s); /* 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)) + if (pa_cvolume_equal(&s->virtual_volume, new_volume)) { + s->save_volume = s->save_volume || save; return; + } s->reference_volume = s->virtual_volume = *new_volume; + s->save_volume = save; if (s->flags & PA_SINK_FLAT_VOLUME) pa_sink_propagate_flat_volume(s); @@ -1320,7 +1416,7 @@ void pa_sink_volume_changed(pa_sink *s, const pa_cvolume *new_volume) { } /* Called from main thread */ -void pa_sink_set_mute(pa_sink *s, pa_bool_t mute) { +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); @@ -1328,6 +1424,7 @@ void pa_sink_set_mute(pa_sink *s, pa_bool_t mute) { old_muted = s->muted; s->muted = mute; + s->save_muted = (old_muted == s->muted && s->save_muted) || save; if (s->set_mute) s->set_mute(s); @@ -1351,23 +1448,31 @@ 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) + if (old_muted != s->muted) { pa_subscription_post(s->core, PA_SUBSCRIPTION_EVENT_SINK|PA_SUBSCRIPTION_EVENT_CHANGE, s->index); + + /* Make sure the soft mute status stays in sync */ + pa_assert_se(pa_asyncmsgq_send(s->asyncmsgq, PA_MSGOBJECT(s), PA_SINK_MESSAGE_SET_MUTE, NULL, 0, NULL) == 0); + } } return s->muted; } /* Called from main thread */ -void pa_sink_mute_changed(pa_sink *s, pa_bool_t new_muted) { +void pa_sink_mute_changed(pa_sink *s, pa_bool_t new_muted, pa_bool_t save) { pa_sink_assert_ref(s); /* The sink implementor may call this if the volume changed to make sure everyone is notified */ - if (s->muted == new_muted) + if (s->muted == new_muted) { + s->save_muted = s->save_muted || save; return; + } s->muted = new_muted; + s->save_muted = save; + pa_subscription_post(s->core, PA_SUBSCRIPTION_EVENT_SINK|PA_SUBSCRIPTION_EVENT_CHANGE, s->index); } @@ -1465,7 +1570,7 @@ unsigned pa_sink_check_suspend(pa_sink *s) { ret = 0; - 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) { pa_sink_input_state_t st; st = pa_sink_input_get_state(i); @@ -1823,17 +1928,18 @@ int pa_sink_process_msg(pa_msgobject *o, int code, void *userdata, int64_t offse } /* Called from main thread */ -int pa_sink_suspend_all(pa_core *c, pa_bool_t suspend) { +int pa_sink_suspend_all(pa_core *c, pa_bool_t suspend, pa_suspend_cause_t cause) { pa_sink *sink; uint32_t idx; int ret = 0; pa_core_assert_ref(c); + pa_assert(cause != 0); for (sink = PA_SINK(pa_idxset_first(c->sinks, &idx)); sink; sink = PA_SINK(pa_idxset_next(c->sinks, &idx))) { int r; - if ((r = pa_sink_suspend(sink, suspend)) < 0) + if ((r = pa_sink_suspend(sink, suspend, cause)) < 0) ret = r; } @@ -2175,6 +2281,41 @@ size_t pa_sink_get_max_request(pa_sink *s) { } /* Called from main context */ +int pa_sink_set_port(pa_sink *s, const char *name, pa_bool_t save) { + pa_device_port *port; + + pa_assert(s); + + if (!s->set_port) { + pa_log_debug("set_port() operation not implemented for sink %u \"%s\"", s->index, s->name); + return -PA_ERR_NOTIMPLEMENTED; + } + + if (!s->ports) + return -PA_ERR_NOENTITY; + + if (!(port = pa_hashmap_get(s->ports, name))) + return -PA_ERR_NOENTITY; + + if (s->active_port == port) { + s->save_port = s->save_port || save; + return 0; + } + + if ((s->set_port(s, port)) < 0) + return -PA_ERR_NOENTITY; + + pa_subscription_post(s->core, PA_SUBSCRIPTION_EVENT_SINK|PA_SUBSCRIPTION_EVENT_CHANGE, s->index); + + pa_log_info("Changed port of sink %u \"%s\" to %s", s->index, s->name, port->name); + + s->active_port = port; + s->save_port = 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; @@ -2243,28 +2384,49 @@ pa_bool_t pa_device_init_icon(pa_proplist *p, pa_bool_t is_sink) { } pa_bool_t pa_device_init_description(pa_proplist *p) { - const char *s; + const char *s, *d = NULL, *k; pa_assert(p); if (pa_proplist_contains(p, PA_PROP_DEVICE_DESCRIPTION)) return TRUE; if ((s = pa_proplist_gets(p, PA_PROP_DEVICE_FORM_FACTOR))) - if (pa_streq(s, "internal")) { - pa_proplist_sets(p, PA_PROP_DEVICE_DESCRIPTION, _("Internal Audio")); - return TRUE; - } + if (pa_streq(s, "internal")) + d = _("Internal Audio"); - if ((s = pa_proplist_gets(p, PA_PROP_DEVICE_CLASS))) - if (pa_streq(s, "modem")) { - pa_proplist_sets(p, PA_PROP_DEVICE_DESCRIPTION, _("Modem")); - return TRUE; - } + if (!d) + if ((s = pa_proplist_gets(p, PA_PROP_DEVICE_CLASS))) + if (pa_streq(s, "modem")) + d = _("Modem"); + + if (!d) + d = pa_proplist_gets(p, PA_PROP_DEVICE_PRODUCT_NAME); + + if (!d) + return FALSE; + + k = pa_proplist_gets(p, PA_PROP_DEVICE_PROFILE_DESCRIPTION); - if ((s = pa_proplist_gets(p, PA_PROP_DEVICE_PRODUCT_NAME))) { - pa_proplist_sets(p, PA_PROP_DEVICE_DESCRIPTION, s); + if (d && k) + pa_proplist_setf(p, PA_PROP_DEVICE_DESCRIPTION, _("%s %s"), d, k); + else if (d) + pa_proplist_sets(p, PA_PROP_DEVICE_DESCRIPTION, d); + + return TRUE; +} + +pa_bool_t pa_device_init_intended_roles(pa_proplist *p) { + const char *s; + pa_assert(p); + + if (pa_proplist_contains(p, PA_PROP_DEVICE_INTENDED_ROLES)) return TRUE; - } + + if ((s = pa_proplist_gets(p, PA_PROP_DEVICE_FORM_FACTOR))) + if (pa_streq(s, "handset") || pa_streq(s, "hands-free")) { + pa_proplist_sets(p, PA_PROP_DEVICE_INTENDED_ROLES, "phone"); + return TRUE; + } return FALSE; } diff --git a/src/pulsecore/sink.h b/src/pulsecore/sink.h index e33b3cfc..d16fcc01 100644 --- a/src/pulsecore/sink.h +++ b/src/pulsecore/sink.h @@ -24,6 +24,7 @@ ***/ typedef struct pa_sink pa_sink; +typedef struct pa_device_port pa_device_port; #include <inttypes.h> @@ -49,13 +50,26 @@ static inline pa_bool_t PA_SINK_IS_LINKED(pa_sink_state_t x) { return x == PA_SINK_RUNNING || x == PA_SINK_IDLE || x == PA_SINK_SUSPENDED; } +struct pa_device_port { + char *name; + char *description; + + unsigned priority; + + /* .. followed by some implementation specific data */ +}; + +#define PA_DEVICE_PORT_DATA(d) ((void*) ((uint8_t*) d + PA_ALIGN(sizeof(pa_device_port)))) + struct pa_sink { pa_msgobject parent; uint32_t index; pa_core *core; + pa_sink_state_t state; pa_sink_flags_t flags; + pa_suspend_cause_t suspend_cause; char *name; char *driver; /* may be NULL */ @@ -82,6 +96,9 @@ struct pa_sink { pa_bool_t refresh_volume:1; pa_bool_t refresh_muted:1; + pa_bool_t save_port:1; + pa_bool_t save_volume:1; + pa_bool_t save_muted:1; pa_asyncmsgq *asyncmsgq; pa_rtpoll *rtpoll; @@ -90,6 +107,9 @@ struct pa_sink { pa_usec_t fixed_latency; /* for sinks with PA_SINK_DYNAMIC_LATENCY this is 0 */ + pa_hashmap *ports; + pa_device_port *active_port; + /* Called when the main loop requests a state change. Called from * main loop context. If returns -1 the state change will be * inhibited */ @@ -125,6 +145,10 @@ struct pa_sink { * thread context. */ void (*update_requested_latency)(pa_sink *s); /* dito */ + /* Called whenever the port shall be changed. Called from main + * thread. */ + int (*set_port)(pa_sink *s, pa_device_port *port); /* dito */ + /* Contains copies of the above data so that the real-time worker * thread can work without access locking */ struct { @@ -191,6 +215,9 @@ typedef struct pa_sink_new_data { pa_module *module; pa_card *card; + pa_hashmap *ports; + char *active_port; + pa_sample_spec sample_spec; pa_channel_map channel_map; pa_cvolume volume; @@ -202,6 +229,10 @@ typedef struct pa_sink_new_data { pa_bool_t muted_is_set:1; pa_bool_t namereg_fail:1; + + pa_bool_t save_port:1; + pa_bool_t save_volume:1; + pa_bool_t save_muted:1; } pa_sink_new_data; pa_sink_new_data* pa_sink_new_data_init(pa_sink_new_data *data); @@ -210,6 +241,7 @@ void pa_sink_new_data_set_sample_spec(pa_sink_new_data *data, const pa_sample_sp void pa_sink_new_data_set_channel_map(pa_sink_new_data *data, const pa_channel_map *map); void pa_sink_new_data_set_volume(pa_sink_new_data *data, const pa_cvolume *volume); void pa_sink_new_data_set_muted(pa_sink_new_data *data, pa_bool_t mute); +void pa_sink_new_data_set_port(pa_sink_new_data *data, const char *port); void pa_sink_new_data_done(pa_sink_new_data *data); /*** To be called exclusively by the sink driver, from main context */ @@ -235,11 +267,12 @@ 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); -void pa_sink_mute_changed(pa_sink *s, pa_bool_t new_muted); +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); 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); +pa_bool_t pa_device_init_intended_roles(pa_proplist *p); /**** May be called by everyone, from main context */ @@ -252,27 +285,29 @@ size_t pa_sink_get_max_rewind(pa_sink *s); size_t pa_sink_get_max_request(pa_sink *s); int pa_sink_update_status(pa_sink*s); -int pa_sink_suspend(pa_sink *s, pa_bool_t suspend); -int pa_sink_suspend_all(pa_core *c, pa_bool_t suspend); +int pa_sink_suspend(pa_sink *s, pa_bool_t suspend, pa_suspend_cause_t cause); +int pa_sink_suspend_all(pa_core *c, pa_bool_t suspend, pa_suspend_cause_t cause); void pa_sink_update_flat_volume(pa_sink *s, pa_cvolume *new_volume); void pa_sink_propagate_flat_volume(pa_sink *s); -void pa_sink_set_volume(pa_sink *sink, const pa_cvolume *volume, pa_bool_t propagate, pa_bool_t sendmsg, pa_bool_t become_reference); +void pa_sink_set_volume(pa_sink *sink, const pa_cvolume *volume, pa_bool_t propagate, pa_bool_t sendmsg, pa_bool_t become_reference, pa_bool_t save); const pa_cvolume *pa_sink_get_volume(pa_sink *sink, pa_bool_t force_refresh, pa_bool_t reference); -void pa_sink_set_mute(pa_sink *sink, pa_bool_t mute); +void pa_sink_set_mute(pa_sink *sink, pa_bool_t mute, pa_bool_t save); pa_bool_t pa_sink_get_mute(pa_sink *sink, pa_bool_t force_refresh); pa_bool_t pa_sink_update_proplist(pa_sink *s, pa_update_mode_t mode, pa_proplist *p); +int pa_sink_set_port(pa_sink *s, const char *name, pa_bool_t save); + unsigned pa_sink_linked_by(pa_sink *s); /* Number of connected streams */ unsigned pa_sink_used_by(pa_sink *s); /* Number of connected streams which are not corked */ unsigned pa_sink_check_suspend(pa_sink *s); /* Returns how many streams are active that don't allow suspensions */ #define pa_sink_get_state(s) ((s)->state) /* Moves all inputs away, and stores them in pa_queue */ -pa_queue *pa_sink_move_all_start(pa_sink *s); +pa_queue *pa_sink_move_all_start(pa_sink *s, pa_queue *q); void pa_sink_move_all_finish(pa_sink *s, pa_queue *q, pa_bool_t save); void pa_sink_move_all_fail(pa_queue *q); @@ -305,4 +340,7 @@ void pa_sink_invalidate_requested_latency(pa_sink *s); 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); + #endif diff --git a/src/pulsecore/sndfile-util.c b/src/pulsecore/sndfile-util.c index 032aefca..4f7f8bdb 100644 --- a/src/pulsecore/sndfile-util.c +++ b/src/pulsecore/sndfile-util.c @@ -113,7 +113,7 @@ int pa_sndfile_write_sample_spec(SF_INFO *sfi, pa_sample_spec *ss) { break; case PA_SAMPLE_S32LE: - case PA_SAMPLE_S32RE: + case PA_SAMPLE_S32BE: ss->format = PA_SAMPLE_S32NE; sfi->format |= SF_FORMAT_PCM_32; break; diff --git a/src/pulsecore/socket-client.c b/src/pulsecore/socket-client.c index dc23bff6..24535157 100644 --- a/src/pulsecore/socket-client.c +++ b/src/pulsecore/socket-client.c @@ -52,12 +52,14 @@ #include <asyncns.h> #endif +#include <pulse/rtclock.h> #include <pulse/timeval.h> #include <pulse/xmalloc.h> #include <pulsecore/winsock.h> #include <pulsecore/core-error.h> #include <pulsecore/socket-util.h> +#include <pulsecore/core-rtclock.h> #include <pulsecore/core-util.h> #include <pulsecore/socket-util.h> #include <pulsecore/log.h> @@ -420,12 +422,11 @@ fail: #endif -static void timeout_cb(pa_mainloop_api *m, pa_time_event *e, const struct timeval *tv, void *userdata) { +static void timeout_cb(pa_mainloop_api *m, pa_time_event *e, const struct timeval *t, void *userdata) { pa_socket_client *c = userdata; pa_assert(m); pa_assert(e); - pa_assert(tv); pa_assert(c); if (c->fd >= 0) { @@ -437,17 +438,16 @@ static void timeout_cb(pa_mainloop_api *m, pa_time_event *e, const struct timeva do_call(c); } -static void start_timeout(pa_socket_client *c) { +static void start_timeout(pa_socket_client *c, pa_bool_t use_rtclock) { struct timeval tv; + pa_assert(c); pa_assert(!c->timeout_event); - pa_gettimeofday(&tv); - pa_timeval_add(&tv, CONNECT_TIMEOUT * PA_USEC_PER_SEC); - c->timeout_event = c->mainloop->time_new(c->mainloop, &tv, timeout_cb, c); + c->timeout_event = c->mainloop->time_new(c->mainloop, pa_timeval_rtstore(&tv, pa_rtclock_now() + CONNECT_TIMEOUT * PA_USEC_PER_SEC, use_rtclock), timeout_cb, c); } -pa_socket_client* pa_socket_client_new_string(pa_mainloop_api *m, const char*name, uint16_t default_port) { +pa_socket_client* pa_socket_client_new_string(pa_mainloop_api *m, pa_bool_t use_rtclock, const char*name, uint16_t default_port) { pa_socket_client *c = NULL; pa_parsed_address a; @@ -463,7 +463,7 @@ pa_socket_client* pa_socket_client_new_string(pa_mainloop_api *m, const char*nam switch (a.type) { case PA_PARSED_ADDRESS_UNIX: if ((c = pa_socket_client_new_unix(m, a.path_or_host))) - start_timeout(c); + start_timeout(c, use_rtclock); break; case PA_PARSED_ADDRESS_TCP4: /* Fallthrough */ @@ -499,7 +499,7 @@ pa_socket_client* pa_socket_client_new_string(pa_mainloop_api *m, const char*nam c->asyncns_io_event = m->io_new(m, asyncns_fd(c->asyncns), PA_IO_EVENT_INPUT, asyncns_cb, c); c->asyncns_query = asyncns_getaddrinfo(c->asyncns, a.path_or_host, port, &hints); pa_assert(c->asyncns_query); - start_timeout(c); + start_timeout(c, use_rtclock); } #elif defined(HAVE_GETADDRINFO) { @@ -513,7 +513,7 @@ pa_socket_client* pa_socket_client_new_string(pa_mainloop_api *m, const char*nam if (res->ai_addr) { if ((c = pa_socket_client_new_sockaddr(m, res->ai_addr, res->ai_addrlen))) - start_timeout(c); + start_timeout(c, use_rtclock); } freeaddrinfo(res); @@ -546,7 +546,7 @@ pa_socket_client* pa_socket_client_new_string(pa_mainloop_api *m, const char*nam s.sin_port = htons(a.port); if ((c = pa_socket_client_new_sockaddr(m, (struct sockaddr*)&s, sizeof(s)))) - start_timeout(c); + start_timeout(c, use_rtclock); } #endif /* HAVE_LIBASYNCNS */ } diff --git a/src/pulsecore/socket-client.h b/src/pulsecore/socket-client.h index ed36400c..b896afa9 100644 --- a/src/pulsecore/socket-client.h +++ b/src/pulsecore/socket-client.h @@ -40,7 +40,7 @@ pa_socket_client* pa_socket_client_new_ipv6(pa_mainloop_api *m, uint8_t address[ #endif pa_socket_client* pa_socket_client_new_unix(pa_mainloop_api *m, const char *filename); pa_socket_client* pa_socket_client_new_sockaddr(pa_mainloop_api *m, const struct sockaddr *sa, size_t salen); -pa_socket_client* pa_socket_client_new_string(pa_mainloop_api *m, const char *a, uint16_t default_port); +pa_socket_client* pa_socket_client_new_string(pa_mainloop_api *m, pa_bool_t use_rtclock, const char *a, uint16_t default_port); pa_socket_client* pa_socket_client_ref(pa_socket_client *c); void pa_socket_client_unref(pa_socket_client *c); diff --git a/src/pulsecore/source.c b/src/pulsecore/source.c index 8aeb5606..74f38bc5 100644 --- a/src/pulsecore/source.c +++ b/src/pulsecore/source.c @@ -93,11 +93,29 @@ void pa_source_new_data_set_muted(pa_source_new_data *data, pa_bool_t mute) { data->muted = !!mute; } +void pa_source_new_data_set_port(pa_source_new_data *data, const char *port) { + pa_assert(data); + + pa_xfree(data->active_port); + data->active_port = pa_xstrdup(port); +} + void pa_source_new_data_done(pa_source_new_data *data) { pa_assert(data); - pa_xfree(data->name); pa_proplist_free(data->proplist); + + if (data->ports) { + pa_device_port *p; + + while ((p = pa_hashmap_steal_first(data->ports))) + pa_device_port_free(p); + + pa_hashmap_free(data->ports, NULL, NULL); + } + + pa_xfree(data->name); + pa_xfree(data->active_port); } /* Called from main context */ @@ -110,6 +128,7 @@ static void reset_callbacks(pa_source *s) { s->get_mute = NULL; s->set_mute = NULL; s->update_requested_latency = NULL; + s->set_port = NULL; } /* Called from main context */ @@ -130,6 +149,7 @@ pa_source* pa_source_new( s = pa_msgobject_new(pa_source); if (!(name = pa_namereg_register(core, data->name, PA_NAMEREG_SOURCE, s, data->namereg_fail))) { + pa_log_debug("Failed to register name %s.", data->name); pa_xfree(s); return NULL; } @@ -142,6 +162,8 @@ pa_source* pa_source_new( return NULL; } + /* FIXME, need to free s here on failure */ + pa_return_null_if_fail(!data->driver || pa_utf8_valid(data->driver)); pa_return_null_if_fail(data->name && pa_utf8_valid(data->name) && data->name[0]); @@ -167,6 +189,7 @@ pa_source* pa_source_new( pa_device_init_description(data->proplist); pa_device_init_icon(data->proplist, FALSE); + pa_device_init_intended_roles(data->proplist); if (pa_hook_fire(&core->hooks[PA_CORE_HOOK_SOURCE_FIXATE], data) < 0) { pa_xfree(s); @@ -180,6 +203,7 @@ pa_source* pa_source_new( s->core = core; s->state = PA_SOURCE_INIT; s->flags = flags; + s->suspend_cause = 0; s->name = pa_xstrdup(name); s->proplist = pa_proplist_copy(data->proplist); s->driver = pa_xstrdup(pa_path_get_filename(data->driver)); @@ -208,6 +232,30 @@ pa_source* pa_source_new( s->asyncmsgq = NULL; s->rtpoll = NULL; + /* As a minor optimization we just steal the list instead of + * copying it here */ + s->ports = data->ports; + data->ports = NULL; + + s->active_port = NULL; + s->save_port = FALSE; + + if (data->active_port && s->ports) + if ((s->active_port = pa_hashmap_get(s->ports, data->active_port))) + s->save_port = data->save_port; + + if (!s->active_port && s->ports) { + void *state; + pa_device_port *p; + + PA_HASHMAP_FOREACH(p, s->ports, state) + if (!s->active_port || p->priority > s->active_port->priority) + s->active_port = p; + } + + s->save_volume = data->save_volume; + s->save_muted = data->save_muted; + pa_silence_memchunk_get( &core->silence_cache, core->mempool, @@ -398,6 +446,15 @@ static void source_free(pa_object *o) { if (s->proplist) pa_proplist_free(s->proplist); + if (s->ports) { + pa_device_port *p; + + while ((p = pa_hashmap_steal_first(s->ports))) + pa_device_port_free(p); + + pa_hashmap_free(s->ports, NULL, NULL); + } + pa_xfree(s); } @@ -427,14 +484,25 @@ int pa_source_update_status(pa_source*s) { } /* Called from main context */ -int pa_source_suspend(pa_source *s, pa_bool_t suspend) { +int pa_source_suspend(pa_source *s, pa_bool_t suspend, pa_suspend_cause_t cause) { pa_source_assert_ref(s); pa_assert(PA_SOURCE_IS_LINKED(s->state)); + pa_assert(cause != 0); if (s->monitor_of) return -PA_ERR_NOTSUPPORTED; if (suspend) + s->suspend_cause |= cause; + else + s->suspend_cause &= ~cause; + + if ((pa_source_get_state(s) == PA_SOURCE_SUSPENDED) == !!s->suspend_cause) + return 0; + + pa_log_debug("Suspend cause of source %s is 0x%04x, %s", s->name, s->suspend_cause, s->suspend_cause ? "suspending" : "resuming"); + + if (suspend) return source_set_state(s, PA_SOURCE_SUSPENDED); else return source_set_state(s, pa_source_used_by(s) ? PA_SOURCE_RUNNING : PA_SOURCE_IDLE); @@ -459,15 +527,15 @@ int pa_source_sync_suspend(pa_source *s) { } /* Called from main context */ -pa_queue *pa_source_move_all_start(pa_source *s) { - pa_queue *q; +pa_queue *pa_source_move_all_start(pa_source *s, pa_queue *q) { pa_source_output *o, *n; uint32_t idx; pa_source_assert_ref(s); pa_assert(PA_SOURCE_IS_LINKED(s->state)); - q = pa_queue_new(); + if (!q) + q = pa_queue_new(); for (o = PA_SOURCE_OUTPUT(pa_idxset_first(s->outputs, &idx)); o; o = n) { n = PA_SOURCE_OUTPUT(pa_idxset_next(s->outputs, &idx)); @@ -654,7 +722,7 @@ pa_usec_t pa_source_get_latency_within_thread(pa_source *s) { } /* Called from main thread */ -void pa_source_set_volume(pa_source *s, const pa_cvolume *volume) { +void pa_source_set_volume(pa_source *s, const pa_cvolume *volume, pa_bool_t save) { pa_cvolume old_virtual_volume; pa_bool_t virtual_volume_changed; @@ -667,6 +735,7 @@ void pa_source_set_volume(pa_source *s, const pa_cvolume *volume) { old_virtual_volume = s->virtual_volume; s->virtual_volume = *volume; virtual_volume_changed = !pa_cvolume_equal(&old_virtual_volume, &s->virtual_volume); + s->save_volume = (!virtual_volume_changed && s->save_volume) || save; if (s->set_volume) { pa_cvolume_reset(&s->soft_volume, s->sample_spec.channels); @@ -712,20 +781,24 @@ const pa_cvolume *pa_source_get_volume(pa_source *s, pa_bool_t force_refresh) { } /* Called from main thread */ -void pa_source_volume_changed(pa_source *s, const pa_cvolume *new_volume) { +void pa_source_volume_changed(pa_source *s, const pa_cvolume *new_volume, pa_bool_t save) { pa_source_assert_ref(s); /* 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)) + if (pa_cvolume_equal(&s->virtual_volume, new_volume)) { + s->save_volume = s->save_volume || save; return; + } s->virtual_volume = *new_volume; + s->save_volume = save; + pa_subscription_post(s->core, PA_SUBSCRIPTION_EVENT_SOURCE|PA_SUBSCRIPTION_EVENT_CHANGE, s->index); } /* Called from main thread */ -void pa_source_set_mute(pa_source *s, pa_bool_t mute) { +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); @@ -733,6 +806,7 @@ void pa_source_set_mute(pa_source *s, pa_bool_t mute) { old_muted = s->muted; s->muted = mute; + s->save_muted = (old_muted == s->muted && s->save_muted) || save; if (s->set_mute) s->set_mute(s); @@ -756,23 +830,31 @@ 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) + if (old_muted != s->muted) { pa_subscription_post(s->core, PA_SUBSCRIPTION_EVENT_SOURCE|PA_SUBSCRIPTION_EVENT_CHANGE, s->index); + + /* Make sure the soft mute status stays in sync */ + pa_assert_se(pa_asyncmsgq_send(s->asyncmsgq, PA_MSGOBJECT(s), PA_SOURCE_MESSAGE_SET_MUTE, NULL, 0, NULL) == 0); + } } return s->muted; } /* Called from main thread */ -void pa_source_mute_changed(pa_source *s, pa_bool_t new_muted) { +void pa_source_mute_changed(pa_source *s, pa_bool_t new_muted, pa_bool_t save) { pa_source_assert_ref(s); /* The source implementor may call this if the mute state changed to make sure everyone is notified */ - if (s->muted == new_muted) + if (s->muted == new_muted) { + s->save_muted = s->save_muted || save; return; + } s->muted = new_muted; + s->save_muted = save; + pa_subscription_post(s->core, PA_SUBSCRIPTION_EVENT_SOURCE|PA_SUBSCRIPTION_EVENT_CHANGE, s->index); } @@ -849,7 +931,7 @@ unsigned pa_source_check_suspend(pa_source *s) { ret = 0; - 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) { pa_source_output_state_t st; st = pa_source_output_get_state(o); @@ -1032,12 +1114,13 @@ int pa_source_process_msg(pa_msgobject *object, int code, void *userdata, int64_ } /* Called from main thread */ -int pa_source_suspend_all(pa_core *c, pa_bool_t suspend) { +int pa_source_suspend_all(pa_core *c, pa_bool_t suspend, pa_suspend_cause_t cause) { uint32_t idx; pa_source *source; int ret = 0; pa_core_assert_ref(c); + pa_assert(cause != 0); for (source = PA_SOURCE(pa_idxset_first(c->sources, &idx)); source; source = PA_SOURCE(pa_idxset_next(c->sources, &idx))) { int r; @@ -1045,7 +1128,7 @@ int pa_source_suspend_all(pa_core *c, pa_bool_t suspend) { if (source->monitor_of) continue; - if ((r = pa_source_suspend(source, suspend)) < 0) + if ((r = pa_source_suspend(source, suspend, cause)) < 0) ret = r; } @@ -1305,3 +1388,38 @@ size_t pa_source_get_max_rewind(pa_source *s) { return r; } + +/* Called from main context */ +int pa_source_set_port(pa_source *s, const char *name, pa_bool_t save) { + pa_device_port *port; + + pa_assert(s); + + if (!s->set_port) { + pa_log_debug("set_port() operation not implemented for sink %u \"%s\"", s->index, s->name); + return -PA_ERR_NOTIMPLEMENTED; + } + + if (!s->ports) + return -PA_ERR_NOENTITY; + + if (!(port = pa_hashmap_get(s->ports, name))) + return -PA_ERR_NOENTITY; + + if (s->active_port == port) { + s->save_port = s->save_port || save; + return 0; + } + + if ((s->set_port(s, port)) < 0) + return -PA_ERR_NOENTITY; + + pa_subscription_post(s->core, PA_SUBSCRIPTION_EVENT_SOURCE|PA_SUBSCRIPTION_EVENT_CHANGE, s->index); + + pa_log_info("Changed port of source %u \"%s\" to %s", s->index, s->name, port->name); + + s->active_port = port; + s->save_port = save; + + return 0; +} diff --git a/src/pulsecore/source.h b/src/pulsecore/source.h index 2978f57b..7e9fd8b7 100644 --- a/src/pulsecore/source.h +++ b/src/pulsecore/source.h @@ -56,8 +56,10 @@ struct pa_source { uint32_t index; pa_core *core; + pa_source_state_t state; pa_source_flags_t flags; + pa_suspend_cause_t suspend_cause; char *name; char *driver; /* may be NULL */ @@ -82,6 +84,10 @@ struct pa_source { pa_bool_t refresh_volume:1; pa_bool_t refresh_muted:1; + pa_bool_t save_port:1; + pa_bool_t save_volume:1; + pa_bool_t save_muted:1; + pa_asyncmsgq *asyncmsgq; pa_rtpoll *rtpoll; @@ -89,6 +95,9 @@ struct pa_source { pa_usec_t fixed_latency; /* for sources with PA_SOURCE_DYNAMIC_LATENCY this is 0 */ + pa_hashmap *ports; + pa_device_port *active_port; + /* Called when the main loop requests a state change. Called from * main loop context. If returns -1 the state change will be * inhibited */ @@ -120,6 +129,10 @@ struct pa_source { * thread context. */ void (*update_requested_latency)(pa_source *s); /* dito */ + /* Called whenever the port shall be changed. Called from main + * thread. */ + int (*set_port)(pa_source *s, pa_device_port *port); /*dito */ + /* Contains copies of the above data so that the real-time worker * thread can work without access locking */ struct { @@ -173,6 +186,9 @@ typedef struct pa_source_new_data { pa_module *module; pa_card *card; + pa_hashmap *ports; + char *active_port; + pa_sample_spec sample_spec; pa_channel_map channel_map; pa_cvolume volume; @@ -184,6 +200,10 @@ typedef struct pa_source_new_data { pa_bool_t channel_map_is_set:1; pa_bool_t namereg_fail:1; + + pa_bool_t save_port:1; + pa_bool_t save_volume:1; + pa_bool_t save_muted:1; } pa_source_new_data; pa_source_new_data* pa_source_new_data_init(pa_source_new_data *data); @@ -192,6 +212,7 @@ void pa_source_new_data_set_sample_spec(pa_source_new_data *data, const pa_sampl void pa_source_new_data_set_channel_map(pa_source_new_data *data, const pa_channel_map *map); void pa_source_new_data_set_volume(pa_source_new_data *data, const pa_cvolume *volume); void pa_source_new_data_set_muted(pa_source_new_data *data, pa_bool_t mute); +void pa_source_new_data_set_port(pa_source_new_data *data, const char *port); void pa_source_new_data_done(pa_source_new_data *data); /*** To be called exclusively by the source driver, from main context */ @@ -216,8 +237,8 @@ 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); -void pa_source_mute_changed(pa_source *s, pa_bool_t new_muted); +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); int pa_source_sync_suspend(pa_source *s); @@ -231,23 +252,25 @@ void pa_source_get_latency_range(pa_source *s, pa_usec_t *min_latency, pa_usec_t size_t pa_source_get_max_rewind(pa_source *s); int pa_source_update_status(pa_source*s); -int pa_source_suspend(pa_source *s, pa_bool_t suspend); -int pa_source_suspend_all(pa_core *c, pa_bool_t suspend); +int pa_source_suspend(pa_source *s, pa_bool_t suspend, pa_suspend_cause_t cause); +int pa_source_suspend_all(pa_core *c, pa_bool_t suspend, pa_suspend_cause_t cause); -void pa_source_set_volume(pa_source *source, const pa_cvolume *volume); +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); +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); pa_bool_t pa_source_update_proplist(pa_source *s, pa_update_mode_t mode, pa_proplist *p); +int pa_source_set_port(pa_source *s, const char *name, pa_bool_t save); + unsigned pa_source_linked_by(pa_source *s); /* Number of connected streams */ unsigned pa_source_used_by(pa_source *s); /* Number of connected streams that are not corked */ unsigned pa_source_check_suspend(pa_source *s); /* Returns how many streams are active that don't allow suspensions */ #define pa_source_get_state(s) ((pa_source_state_t) (s)->state) /* Moves all inputs away, and stores them in pa_queue */ -pa_queue *pa_source_move_all_start(pa_source *s); +pa_queue *pa_source_move_all_start(pa_source *s, pa_queue *q); void pa_source_move_all_finish(pa_source *s, pa_queue *q, pa_bool_t save); void pa_source_move_all_fail(pa_queue *q); diff --git a/src/tests/mainloop-test.c b/src/tests/mainloop-test.c index 4ca63513..3ec6d115 100644 --- a/src/tests/mainloop-test.c +++ b/src/tests/mainloop-test.c @@ -26,10 +26,12 @@ #include <sys/time.h> #include <assert.h> +#include <pulse/rtclock.h> #include <pulse/timeval.h> #include <pulse/gccmacro.h> #include <pulsecore/core-util.h> +#include <pulsecore/core-rtclock.h> #ifdef GLIB_MAIN_LOOP @@ -99,9 +101,7 @@ int main(int argc, char *argv[]) { de = a->defer_new(a, dcb, NULL); assert(de); - pa_gettimeofday(&tv); - tv.tv_sec += 10; - te = a->time_new(a, &tv, tcb, NULL); + te = a->time_new(a, pa_timeval_rtstore(&tv, pa_rtclock_now() + 2 * PA_USEC_PER_SEC, TRUE), tcb, NULL); #if defined(GLIB_MAIN_LOOP) g_main_loop_run(glib_main_loop); diff --git a/src/tests/rtpoll-test.c b/src/tests/rtpoll-test.c index 4ac96446..1706cdfa 100644 --- a/src/tests/rtpoll-test.c +++ b/src/tests/rtpoll-test.c @@ -26,7 +26,6 @@ #include <pulsecore/log.h> #include <pulsecore/rtpoll.h> -#include <pulsecore/rtsig.h> static int before(pa_rtpoll_item *i) { pa_log("before"); @@ -47,10 +46,6 @@ int main(int argc, char *argv[]) { pa_rtpoll_item *i, *w; struct pollfd *pollfd; -#ifdef SIGRTMIN - pa_rtsig_configure(SIGRTMIN+10, SIGRTMAX); -#endif - p = pa_rtpoll_new(); i = pa_rtpoll_item_new(p, PA_RTPOLL_EARLY, 1); @@ -64,7 +59,6 @@ int main(int argc, char *argv[]) { w = pa_rtpoll_item_new(p, PA_RTPOLL_NORMAL, 0); pa_rtpoll_item_set_before_callback(w, worker); - pa_rtpoll_install(p); pa_rtpoll_set_timer_relative(p, 10000000); /* 10 s */ pa_rtpoll_run(p, 1); diff --git a/src/tests/rtstutter.c b/src/tests/rtstutter.c index f04d43af..a4b5d596 100644 --- a/src/tests/rtstutter.c +++ b/src/tests/rtstutter.c @@ -93,6 +93,8 @@ static void* work(void *p) { int main(int argc, char*argv[]) { unsigned n; + pa_log_set_level(PA_LOG_DEBUG); + srand((unsigned) time(NULL)); if (argc >= 3) { diff --git a/src/tests/thread-mainloop-test.c b/src/tests/thread-mainloop-test.c index ad89414f..4696fb01 100644 --- a/src/tests/thread-mainloop-test.c +++ b/src/tests/thread-mainloop-test.c @@ -25,14 +25,16 @@ #include <unistd.h> #include <stdio.h> +#include <pulse/rtclock.h> #include <pulse/timeval.h> #include <pulse/util.h> #include <pulse/thread-mainloop.h> #include <pulse/gccmacro.h> #include <pulsecore/macro.h> +#include <pulsecore/core-rtclock.h> -static void tcb(pa_mainloop_api*a, pa_time_event *e, const struct timeval *tv, void *userdata) { +static void tcb(pa_mainloop_api *a, pa_time_event *e, const struct timeval *tv, void *userdata) { pa_assert_se(pa_threaded_mainloop_in_thread(userdata)); fprintf(stderr, "TIME EVENT START\n"); pa_threaded_mainloop_signal(userdata, 1); @@ -53,9 +55,7 @@ int main(int argc, char *argv[]) { pa_assert_se(!pa_threaded_mainloop_in_thread(m)); - pa_gettimeofday(&tv); - tv.tv_sec += 5; - a->time_new(a, &tv, tcb, m); + a->time_new(a, pa_timeval_rtstore(&tv, pa_rtclock_now() + 5 * PA_USEC_PER_SEC, TRUE), tcb, m); fprintf(stderr, "waiting 5s (signal)\n"); pa_threaded_mainloop_wait(m); diff --git a/src/utils/pabrowse.c b/src/utils/pabrowse.c index a6487b88..a349e414 100644 --- a/src/utils/pabrowse.c +++ b/src/utils/pabrowse.c @@ -27,8 +27,9 @@ #include <assert.h> #include <signal.h> -#include <pulse/pulseaudio.h> #include <pulse/browser.h> +#include <pulse/pulseaudio.h> +#include <pulse/rtclock.h> #include <pulsecore/core-util.h> diff --git a/src/utils/pacat.c b/src/utils/pacat.c index 0b6df3d8..f00a32eb 100644 --- a/src/utils/pacat.c +++ b/src/utils/pacat.c @@ -39,6 +39,7 @@ #include <pulse/i18n.h> #include <pulse/pulseaudio.h> +#include <pulse/rtclock.h> #include <pulsecore/macro.h> #include <pulsecore/core-util.h> @@ -583,9 +584,7 @@ static void sigusr1_signal_callback(pa_mainloop_api*m, pa_signal_event *e, int s pa_operation_unref(pa_stream_update_timing_info(stream, stream_update_timing_callback, NULL)); } -static void time_event_callback(pa_mainloop_api*m, pa_time_event *e, const struct timeval *tv, void *userdata) { - struct timeval next; - +static void time_event_callback(pa_mainloop_api *m, pa_time_event *e, const struct timeval *t, void *userdata) { if (stream && pa_stream_get_state(stream) == PA_STREAM_READY) { pa_operation *o; if (!(o = pa_stream_update_timing_info(stream, stream_update_timing_callback, NULL))) @@ -594,10 +593,7 @@ static void time_event_callback(pa_mainloop_api*m, pa_time_event *e, const struc pa_operation_unref(o); } - pa_gettimeofday(&next); - pa_timeval_add(&next, TIME_EVENT_USEC); - - m->time_restart(e, &next); + pa_context_rttime_restart(context, e, pa_rtclock_now() + TIME_EVENT_USEC); } static void help(const char *argv0) { @@ -1068,13 +1064,8 @@ int main(int argc, char *argv[]) { } if (verbose) { - struct timeval tv; - - pa_gettimeofday(&tv); - pa_timeval_add(&tv, TIME_EVENT_USEC); - - if (!(time_event = mainloop_api->time_new(mainloop_api, &tv, time_event_callback, NULL))) { - pa_log(_("time_new() failed.\n")); + if (!(time_event = pa_context_rttime_new(context, pa_rtclock_now() + TIME_EVENT_USEC, time_event_callback, NULL))) { + pa_log(_("pa_context_rttime_new() failed.\n")); goto quit; } } diff --git a/src/utils/pactl.c b/src/utils/pactl.c index 53c67666..c8c3a437 100644 --- a/src/utils/pactl.c +++ b/src/utils/pactl.c @@ -49,8 +49,21 @@ static pa_context *context = NULL; static pa_mainloop_api *mainloop_api = NULL; -static char *device = NULL, *sample_name = NULL, *sink_name = NULL, *source_name = NULL, *module_name = NULL, *module_args = NULL, *card_name = NULL, *profile_name = NULL; -static uint32_t sink_input_idx = PA_INVALID_INDEX, source_output_idx = PA_INVALID_INDEX; +static char + *device = NULL, + *sample_name = NULL, + *sink_name = NULL, + *source_name = NULL, + *module_name = NULL, + *module_args = NULL, + *card_name = NULL, + *profile_name = NULL, + *port_name = NULL; + +static uint32_t + sink_input_idx = PA_INVALID_INDEX, + source_output_idx = PA_INVALID_INDEX; + static uint32_t module_index; static pa_bool_t suspend; @@ -80,7 +93,9 @@ static enum { UNLOAD_MODULE, SUSPEND_SINK, SUSPEND_SOURCE, - SET_CARD_PROFILE + SET_CARD_PROFILE, + SET_SINK_PORT, + SET_SOURCE_PORT } action = NONE; static void quit(int ret) { @@ -239,6 +254,18 @@ static void get_sink_info_callback(pa_context *c, const pa_sink_info *i, int is_ pl = pa_proplist_to_string_sep(i->proplist, "\n\t\t")); pa_xfree(pl); + + if (i->ports) { + pa_sink_port_info **p; + + printf(_("\tPorts:\n")); + for (p = i->ports; *p; p++) + printf("\t\t%s: %s (priority. %u)\n", (*p)->name, (*p)->description, (*p)->priority); + } + + if (i->active_port) + printf(_("\tActive Port: %s\n"), + i->active_port->name); } static void get_source_info_callback(pa_context *c, const pa_source_info *i, int is_last, void *userdata) { @@ -319,6 +346,18 @@ static void get_source_info_callback(pa_context *c, const pa_source_info *i, int pl = pa_proplist_to_string_sep(i->proplist, "\n\t\t")); pa_xfree(pl); + + if (i->ports) { + pa_source_port_info **p; + + printf(_("\tPorts:\n")); + for (p = i->ports; *p; p++) + printf("\t\t%s: %s (priority. %u)\n", (*p)->name, (*p)->description, (*p)->priority); + } + + if (i->active_port) + printf(_("\tActive Port: %s\n"), + i->active_port->name); } static void get_module_info_callback(pa_context *c, const pa_module_info *i, int is_last, void *userdata) { @@ -753,6 +792,14 @@ static void context_state_callback(pa_context *c, void *userdata) { pa_operation_unref(pa_context_set_card_profile_by_name(c, card_name, profile_name, simple_callback, NULL)); break; + case SET_SINK_PORT: + pa_operation_unref(pa_context_set_sink_port_by_name(c, sink_name, port_name, simple_callback, NULL)); + break; + + case SET_SOURCE_PORT: + pa_operation_unref(pa_context_set_source_port_by_name(c, source_name, port_name, simple_callback, NULL)); + break; + default: pa_assert_not_reached(); } @@ -788,12 +835,14 @@ static void help(const char *argv0) { "%s [options] unload-module ID\n" "%s [options] suspend-sink [SINK] 1|0\n" "%s [options] suspend-source [SOURCE] 1|0\n" - "%s [options] set-card-profile [CARD] [PROFILE] \n\n" + "%s [options] set-card-profile [CARD] [PROFILE] \n" + "%s [options] set-sink-port [SINK] [PORT] \n" + "%s [options] set-source-port [SOURCE] [PORT] \n\n" " -h, --help Show this help\n" " --version Show version\n\n" " -s, --server=SERVER The name of the server to connect to\n" " -n, --client-name=NAME How to call this client on the server\n"), - argv0, argv0, argv0, argv0, argv0, argv0, argv0, argv0, argv0, argv0, argv0, argv0, argv0); + argv0, argv0, argv0, argv0, argv0, argv0, argv0, argv0, argv0, argv0, argv0, argv0, argv0, argv0, argv0); } enum { @@ -802,7 +851,6 @@ enum { int main(int argc, char *argv[]) { pa_mainloop* m = NULL; - char tmp[PATH_MAX]; int ret = 1, c; char *server = NULL, *bn; @@ -882,17 +930,8 @@ int main(int argc, char *argv[]) { if (optind+2 < argc) sample_name = pa_xstrdup(argv[optind+2]); else { - char *f = strrchr(argv[optind+1], '/'); - size_t n; - if (f) - f++; - else - f = argv[optind]; - - n = strcspn(f, "."); - strncpy(tmp, f, n); - tmp[n] = 0; - sample_name = pa_xstrdup(tmp); + char *f = pa_path_get_filename(argv[optind+1]); + sample_name = pa_xstrndup(f, strcspn(f, ".")); } pa_zero(sfi); @@ -1027,6 +1066,28 @@ int main(int argc, char *argv[]) { card_name = pa_xstrdup(argv[optind+1]); profile_name = pa_xstrdup(argv[optind+2]); + } else if (pa_streq(argv[optind], "set-sink-port")) { + action = SET_SINK_PORT; + + if (argc != optind+3) { + pa_log(_("You have to specify a sink name/index and a port name\n")); + goto quit; + } + + sink_name = pa_xstrdup(argv[optind+1]); + port_name = pa_xstrdup(argv[optind+2]); + + } else if (pa_streq(argv[optind], "set-source-port")) { + action = SET_SOURCE_PORT; + + if (argc != optind+3) { + pa_log(_("You have to specify a source name/index and a port name\n")); + goto quit; + } + + source_name = pa_xstrdup(argv[optind+1]); + port_name = pa_xstrdup(argv[optind+2]); + } else if (pa_streq(argv[optind], "help")) { help(bn); ret = 0; diff --git a/src/utils/pasuspender.c b/src/utils/pasuspender.c index b4bccd56..c327ee41 100644 --- a/src/utils/pasuspender.c +++ b/src/utils/pasuspender.c @@ -235,10 +235,7 @@ int main(int argc, char *argv[]) { setlocale(LC_ALL, ""); bindtextdomain(GETTEXT_PACKAGE, PULSE_LOCALEDIR); - if (!(bn = strrchr(argv[0], '/'))) - bn = argv[0]; - else - bn++; + bn = pa_path_get_filename(argv[0]); while ((c = getopt_long(argc, argv, "s:h", long_options, NULL)) != -1) { switch (c) { |