Merge branch 'master' of ssh://rootserver/home/lennart/git/public/pulseaudio

This commit is contained in:
Lennart Poettering 2009-01-08 21:18:15 +01:00
commit c2002dcd1f
31 changed files with 13676 additions and 1766 deletions

View file

@ -18,7 +18,7 @@
ACLOCAL_AMFLAGS = -I m4 ACLOCAL_AMFLAGS = -I m4
EXTRA_DIST = bootstrap.sh LICENSE GPL LGPL doxygen/Makefile.am doxygen/Makefile.in doxygen/doxygen.conf.in README todo EXTRA_DIST = bootstrap.sh LICENSE GPL LGPL doxygen/Makefile.am doxygen/Makefile.in doxygen/doxygen.conf.in README todo
SUBDIRS=src doxygen man po libltdl SUBDIRS = libltdl src doxygen man po
MAINTAINERCLEANFILES = MAINTAINERCLEANFILES =
noinst_DATA = noinst_DATA =
@ -56,7 +56,7 @@ fedora-snapshot: dist
dist-hook: dist-hook:
if test -d .git ; then \ if test -d .git ; then \
git pull ; \ test -z $$SKIP_GIT && git pull ; \
chmod u+w ${distdir}/ChangeLog || true ; \ chmod u+w ${distdir}/ChangeLog || true ; \
( git-changelog.perl || echo "git-changelog.perl failed." ) > ${distdir}/ChangeLog 2>&1 ; \ ( git-changelog.perl || echo "git-changelog.perl failed." ) > ${distdir}/ChangeLog 2>&1 ; \
fi fi

View file

@ -95,7 +95,7 @@ if test "x$M4" = xno ; then
fi fi
dnl Compiler flags dnl Compiler flags
DESIRED_FLAGS="-Wall -W -Wextra -pedantic -pipe -Wno-long-long -Wvla -Wno-overlength-strings -Wconversion -Wundef -Wformat -Wlogical-op -Wpacked -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wdeclaration-after-statement -Wfloat-equal -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-noreturn -Wshadow -Wendif-labels -Wpointer-arith -Wcast-align -Wwrite-strings -Wno-unused-parameter -ffast-math" DESIRED_FLAGS="-Wall -W -Wextra -pedantic -pipe -Wno-long-long -Wvla -Wno-overlength-strings -Wundef -Wformat -Wlogical-op -Wpacked -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wdeclaration-after-statement -Wfloat-equal -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-noreturn -Wshadow -Wendif-labels -Wpointer-arith -Wcast-align -Wwrite-strings -Wno-unused-parameter -ffast-math"
for flag in $DESIRED_FLAGS ; do for flag in $DESIRED_FLAGS ; do
CC_CHECK_CFLAGS([$flag], [CFLAGS="$CFLAGS $flag"]) CC_CHECK_CFLAGS([$flag], [CFLAGS="$CFLAGS $flag"])
@ -411,21 +411,52 @@ AC_SUBST(pulselocaledir)
# External libraries # # External libraries #
################################### ###################################
#### pkg-config ####
# Check for pkg-config manually first, as if its not installed the
# PKG_PROG_PKG_CONFIG macro won't be defined.
AC_CHECK_PROG(have_pkg_config, pkg-config, yes, no)
if test x"$have_pkg_config" = "xno"; then
AC_MSG_ERROR(pkg-config is required to install this program)
fi
PKG_PROG_PKG_CONFIG
#### X11 (optional) #### #### X11 (optional) ####
HAVE_X11=0 AC_ARG_ENABLE([x11],
AS_HELP_STRING([--disable-x11],[Disable optional X11 support]),
[
case "${enableval}" in
yes) x11=yes ;;
no) x11=no ;;
*) AC_MSG_ERROR(bad value ${enableval} for --disable-x11) ;;
esac
],
[x11=auto])
# The macro tests the host, not the build target if test "x${x11}" != xno ; then
if test "x$os_is_win32" != "x1" ; then PKG_CHECK_MODULES(X11, [ x11 ice sm ],
AC_PATH_XTRA HAVE_X11=1,
test "x$no_x" != "xyes" && HAVE_X11=1 [
HAVE_X11=0
if test "x$x11" = xyes ; then
AC_MSG_ERROR([*** X11 not found])
fi
])
else
HAVE_X11=0
fi fi
if test "x${HAVE_X11}" = x1 ; then
AC_DEFINE([HAVE_X11], 1, [Have X11?])
fi
AC_SUBST(X11_CFLAGS)
AC_SUBST(X11_LIBS)
AC_SUBST(HAVE_X11) AC_SUBST(HAVE_X11)
AM_CONDITIONAL(HAVE_X11, test "x$HAVE_X11" = "x1") AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
if test "x$HAVE_X11" = "x1" ; then
AC_DEFINE([HAVE_X11], 1, [Have X11])
fi
#### Capabilities (optional) #### #### Capabilities (optional) ####
@ -450,18 +481,6 @@ fi
AC_CHECK_HEADERS([valgrind/memcheck.h]) AC_CHECK_HEADERS([valgrind/memcheck.h])
#### pkg-config ####
# Check for pkg-config manually first, as if its not installed the
# PKG_PROG_PKG_CONFIG macro won't be defined.
AC_CHECK_PROG(have_pkg_config, pkg-config, yes, no)
if test x"$have_pkg_config" = "xno"; then
AC_MSG_ERROR(pkg-config is required to install this program)
fi
PKG_PROG_PKG_CONFIG
#### Sound file #### #### Sound file ####
PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.10 ]) PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.10 ])

View file

@ -72,7 +72,7 @@ USA.
</option> </option>
<option> <option>
<p><opt>--dump-resampe-methods</opt></p> <p><opt>--dump-resample-methods</opt></p>
<optdesc><p>List available audio resamplers.</p></optdesc> <optdesc><p>List available audio resamplers.</p></optdesc>
</option> </option>
@ -110,7 +110,9 @@ USA.
<p><opt>--check</opt></p> <p><opt>--check</opt></p>
<optdesc><p>Return 0 as return code when the PulseAudio daemon <optdesc><p>Return 0 as return code when the PulseAudio daemon
is already running for the calling user.</p></optdesc> is already running for the calling user, or non-zero
otherwise. Produces no output on the console except for errors
to stderr.</p></optdesc>
</option> </option>

View file

@ -1,5 +1,9 @@
ca
cs
de de
el el
es
fi
fr fr
pl pl
pt_BR pt_BR

1852
po/ca.po Normal file

File diff suppressed because it is too large Load diff

2032
po/cs.po Normal file

File diff suppressed because it is too large Load diff

831
po/de.po

File diff suppressed because it is too large Load diff

303
po/el.po
View file

@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: el\n" "Project-Id-Version: el\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-10-07 21:03+0200\n" "POT-Creation-Date: 2009-01-08 19:36+0100\n"
"PO-Revision-Date: 2008-08-22 19:40+0300\n" "PO-Revision-Date: 2008-08-22 19:40+0300\n"
"Last-Translator: Dimitris Glezos <dimitris@glezos.com>\n" "Last-Translator: Dimitris Glezos <dimitris@glezos.com>\n"
"Language-Team: Greek <fedora-trans-el@redhat.com>\n" "Language-Team: Greek <fedora-trans-el@redhat.com>\n"
@ -16,12 +16,16 @@ msgstr ""
"X-Generator: KAider 0.1\n" "X-Generator: KAider 0.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../src/daemon/ltdl-bind-now.c:177 ../src/daemon/ltdl-bind-now.c:197 #: ../src/daemon/ltdl-bind-now.c:124
msgid "Failed to add bind-now-loader." msgid "Failed to find original lt_dlopen loader."
msgstr "" msgstr ""
#: ../src/daemon/ltdl-bind-now.c:184 #: ../src/daemon/ltdl-bind-now.c:129
msgid "Failed to find original dlopen loader." msgid "Failed to allocate new dl loader."
msgstr ""
#: ../src/daemon/ltdl-bind-now.c:142
msgid "Failed to add bind-now-loader."
msgstr "" msgstr ""
#: ../src/daemon/polkit.c:55 #: ../src/daemon/polkit.c:55
@ -149,212 +153,212 @@ msgstr ""
msgid "Failed to parse command line." msgid "Failed to parse command line."
msgstr "" msgstr ""
#: ../src/daemon/main.c:441 #: ../src/daemon/main.c:447
#, c-format #, c-format
msgid "We're in the group '%s', allowing high-priority scheduling." msgid "We're in the group '%s', allowing high-priority scheduling."
msgstr "" msgstr ""
#: ../src/daemon/main.c:448 #: ../src/daemon/main.c:454
#, c-format #, c-format
msgid "We're in the group '%s', allowing real-time scheduling." msgid "We're in the group '%s', allowing real-time scheduling."
msgstr "" msgstr ""
#: ../src/daemon/main.c:456 #: ../src/daemon/main.c:462
msgid "PolicyKit grants us acquire-high-priority privilege." msgid "PolicyKit grants us acquire-high-priority privilege."
msgstr "" msgstr ""
#: ../src/daemon/main.c:459 #: ../src/daemon/main.c:465
msgid "PolicyKit refuses acquire-high-priority privilege." msgid "PolicyKit refuses acquire-high-priority privilege."
msgstr "" msgstr ""
#: ../src/daemon/main.c:464 #: ../src/daemon/main.c:470
msgid "PolicyKit grants us acquire-real-time privilege." msgid "PolicyKit grants us acquire-real-time privilege."
msgstr "" msgstr ""
#: ../src/daemon/main.c:467 #: ../src/daemon/main.c:473
msgid "PolicyKit refuses acquire-real-time privilege." msgid "PolicyKit refuses acquire-real-time privilege."
msgstr "" msgstr ""
#: ../src/daemon/main.c:479 #: ../src/daemon/main.c:502
msgid "" msgid ""
"Called SUID root and real-time/high-priority scheduling was requested in the " "Called SUID root and real-time and/or high-priority scheduling was requested "
"configuration. However, we lack the necessary priviliges:\n" "in the configuration. However, we lack the necessary privileges:\n"
"We are not in group '" "We are not in group '"
msgstr "" msgstr ""
#: ../src/daemon/main.c:497 #: ../src/daemon/main.c:526
msgid "" msgid ""
"High-priority scheduling enabled in configuration but not allowed by policy." "High-priority scheduling enabled in configuration but not allowed by policy."
msgstr "" msgstr ""
#: ../src/daemon/main.c:522 #: ../src/daemon/main.c:555
msgid "Successfully increased RLIMIT_RTPRIO" msgid "Successfully increased RLIMIT_RTPRIO"
msgstr "" msgstr ""
#: ../src/daemon/main.c:525 #: ../src/daemon/main.c:558
#, c-format #, c-format
msgid "RLIMIT_RTPRIO failed: %s" msgid "RLIMIT_RTPRIO failed: %s"
msgstr "" msgstr ""
#: ../src/daemon/main.c:532 #: ../src/daemon/main.c:565
msgid "Giving up CAP_NICE" msgid "Giving up CAP_NICE"
msgstr "" msgstr ""
#: ../src/daemon/main.c:539 #: ../src/daemon/main.c:572
msgid "" msgid ""
"Real-time scheduling enabled in configuration but not allowed by policy." "Real-time scheduling enabled in configuration but not allowed by policy."
msgstr "" msgstr ""
#: ../src/daemon/main.c:597 #: ../src/daemon/main.c:633
msgid "Daemon not running" msgid "Daemon not running"
msgstr "" msgstr ""
#: ../src/daemon/main.c:599 #: ../src/daemon/main.c:635
#, c-format #, c-format
msgid "Daemon running as PID %u" msgid "Daemon running as PID %u"
msgstr "" msgstr ""
#: ../src/daemon/main.c:609 #: ../src/daemon/main.c:645
#, c-format #, c-format
msgid "Failed to kill daemon: %s" msgid "Failed to kill daemon: %s"
msgstr "" msgstr ""
#: ../src/daemon/main.c:627 #: ../src/daemon/main.c:663
msgid "" msgid ""
"This program is not intended to be run as root (unless --system is " "This program is not intended to be run as root (unless --system is "
"specified)." "specified)."
msgstr "" msgstr ""
#: ../src/daemon/main.c:629 #: ../src/daemon/main.c:665
msgid "Root priviliges required." msgid "Root privileges required."
msgstr "" msgstr ""
#: ../src/daemon/main.c:634 #: ../src/daemon/main.c:670
msgid "--start not supported for system instances." msgid "--start not supported for system instances."
msgstr "" msgstr ""
#: ../src/daemon/main.c:639 #: ../src/daemon/main.c:675
msgid "Running in system mode, but --disallow-exit not set!" msgid "Running in system mode, but --disallow-exit not set!"
msgstr "" msgstr ""
#: ../src/daemon/main.c:642 #: ../src/daemon/main.c:678
msgid "Running in system mode, but --disallow-module-loading not set!" msgid "Running in system mode, but --disallow-module-loading not set!"
msgstr "" msgstr ""
#: ../src/daemon/main.c:645 #: ../src/daemon/main.c:681
msgid "Running in system mode, forcibly disabling SHM mode!" msgid "Running in system mode, forcibly disabling SHM mode!"
msgstr "" msgstr ""
#: ../src/daemon/main.c:650 #: ../src/daemon/main.c:686
msgid "Running in system mode, forcibly disabling exit idle time!" msgid "Running in system mode, forcibly disabling exit idle time!"
msgstr "" msgstr ""
#: ../src/daemon/main.c:677 #: ../src/daemon/main.c:713
msgid "Failed to acquire stdio." msgid "Failed to acquire stdio."
msgstr "" msgstr ""
#: ../src/daemon/main.c:683 #: ../src/daemon/main.c:719
#, c-format #, c-format
msgid "pipe failed: %s" msgid "pipe failed: %s"
msgstr "" msgstr ""
#: ../src/daemon/main.c:688 #: ../src/daemon/main.c:724
#, c-format #, c-format
msgid "fork() failed: %s" msgid "fork() failed: %s"
msgstr "" msgstr ""
#: ../src/daemon/main.c:702 #: ../src/daemon/main.c:738
#, c-format #, c-format
msgid "read() failed: %s" msgid "read() failed: %s"
msgstr "" msgstr ""
#: ../src/daemon/main.c:708 #: ../src/daemon/main.c:744
msgid "Daemon startup failed." msgid "Daemon startup failed."
msgstr "" msgstr ""
#: ../src/daemon/main.c:710 #: ../src/daemon/main.c:746
msgid "Daemon startup successful." msgid "Daemon startup successful."
msgstr "" msgstr ""
#: ../src/daemon/main.c:780 #: ../src/daemon/main.c:816
#, c-format #, c-format
msgid "This is PulseAudio %s" msgid "This is PulseAudio %s"
msgstr "Αυτό είναι το PulseAudio %s" msgstr "Αυτό είναι το PulseAudio %s"
#: ../src/daemon/main.c:781 #: ../src/daemon/main.c:817
#, c-format #, c-format
msgid "Compilation host: %s" msgid "Compilation host: %s"
msgstr "" msgstr ""
#: ../src/daemon/main.c:782 #: ../src/daemon/main.c:818
#, c-format #, c-format
msgid "Compilation CFLAGS: %s" msgid "Compilation CFLAGS: %s"
msgstr "" msgstr ""
#: ../src/daemon/main.c:785 #: ../src/daemon/main.c:821
#, c-format #, c-format
msgid "Running on host: %s" msgid "Running on host: %s"
msgstr "" msgstr ""
#: ../src/daemon/main.c:788 #: ../src/daemon/main.c:824
#, c-format #, c-format
msgid "Page size is %lu bytes" msgid "Page size is %lu bytes"
msgstr "" msgstr ""
#: ../src/daemon/main.c:791 #: ../src/daemon/main.c:827
msgid "Compiled with Valgrind support: yes" msgid "Compiled with Valgrind support: yes"
msgstr "" msgstr ""
#: ../src/daemon/main.c:793 #: ../src/daemon/main.c:829
msgid "Compiled with Valgrind support: no" msgid "Compiled with Valgrind support: no"
msgstr "" msgstr ""
#: ../src/daemon/main.c:796 #: ../src/daemon/main.c:832
#, c-format #, c-format
msgid "Running in valgrind mode: %s" msgid "Running in valgrind mode: %s"
msgstr "" msgstr ""
#: ../src/daemon/main.c:799 #: ../src/daemon/main.c:835
msgid "Optimized build: yes" msgid "Optimized build: yes"
msgstr "" msgstr ""
#: ../src/daemon/main.c:801 #: ../src/daemon/main.c:837
msgid "Optimized build: no" msgid "Optimized build: no"
msgstr "" msgstr ""
#: ../src/daemon/main.c:805 #: ../src/daemon/main.c:841
msgid "Failed to get machine ID" msgid "Failed to get machine ID"
msgstr "" msgstr ""
#: ../src/daemon/main.c:808 #: ../src/daemon/main.c:844
#, c-format #, c-format
msgid "Machine ID is %s." msgid "Machine ID is %s."
msgstr "" msgstr ""
#: ../src/daemon/main.c:813 #: ../src/daemon/main.c:849
#, c-format #, c-format
msgid "Using runtime directory %s." msgid "Using runtime directory %s."
msgstr "" msgstr ""
#: ../src/daemon/main.c:818 #: ../src/daemon/main.c:854
#, c-format #, c-format
msgid "Using state directory %s." msgid "Using state directory %s."
msgstr "" msgstr ""
#: ../src/daemon/main.c:821 #: ../src/daemon/main.c:857
#, c-format #, c-format
msgid "Running in system mode: %s" msgid "Running in system mode: %s"
msgstr "" msgstr ""
#: ../src/daemon/main.c:836 #: ../src/daemon/main.c:872
msgid "pa_pid_file_create() failed." msgid "pa_pid_file_create() failed."
msgstr "" msgstr ""
#: ../src/daemon/main.c:848 #: ../src/daemon/main.c:884
msgid "Fresh high-resolution timers available! Bon appetit!" msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr "" msgstr ""
#: ../src/daemon/main.c:850 #: ../src/daemon/main.c:886
msgid "" msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!" "resolution timers enabled!"
@ -362,36 +366,36 @@ msgstr ""
"Δικέ μου, ο πυρήνας σου είναι για τα μπάζα! Η πρόταση του σεφ σήμερα είναι " "Δικέ μου, ο πυρήνας σου είναι για τα μπάζα! Η πρόταση του σεφ σήμερα είναι "
"Linux με ενεργοποιημένα τα high-resolution timers!" "Linux με ενεργοποιημένα τα high-resolution timers!"
#: ../src/daemon/main.c:860 #: ../src/daemon/main.c:896
msgid "pa_core_new() failed." msgid "pa_core_new() failed."
msgstr "" msgstr ""
#: ../src/daemon/main.c:921 #: ../src/daemon/main.c:957
msgid "Failed to initialize daemon." msgid "Failed to initialize daemon."
msgstr "" msgstr ""
#: ../src/daemon/main.c:926 #: ../src/daemon/main.c:962
msgid "Daemon startup without any loaded modules, refusing to work." msgid "Daemon startup without any loaded modules, refusing to work."
msgstr "" msgstr ""
#: ../src/daemon/main.c:931 #: ../src/daemon/main.c:967
#, c-format #, c-format
msgid "Default sink name (%s) does not exist in name register." msgid "Default sink name (%s) does not exist in name register."
msgstr "" msgstr ""
#: ../src/daemon/main.c:944 #: ../src/daemon/main.c:980
msgid "Daemon startup complete." msgid "Daemon startup complete."
msgstr "" msgstr ""
#: ../src/daemon/main.c:950 #: ../src/daemon/main.c:986
msgid "Daemon shutdown initiated." msgid "Daemon shutdown initiated."
msgstr "" msgstr ""
#: ../src/daemon/main.c:971 #: ../src/daemon/main.c:1007
msgid "Daemon terminated." msgid "Daemon terminated."
msgstr "" msgstr ""
#: ../src/daemon/cmdline.c:117 #: ../src/daemon/cmdline.c:123
#, c-format #, c-format
msgid "" msgid ""
"%s [options]\n" "%s [options]\n"
@ -407,7 +411,8 @@ msgid ""
" --start Start the daemon if it is not " " --start Start the daemon if it is not "
"running\n" "running\n"
" -k --kill Kill a running daemon\n" " -k --kill Kill a running daemon\n"
" --check Check for a running daemon\n" " --check Check for a running daemon (only "
"returns exit code)\n"
"\n" "\n"
"OPTIONS:\n" "OPTIONS:\n"
" --system[=BOOL] Run as system-wide instance\n" " --system[=BOOL] Run as system-wide instance\n"
@ -437,6 +442,10 @@ msgid ""
" --log-level[=LEVEL] Increase or set verbosity level\n" " --log-level[=LEVEL] Increase or set verbosity level\n"
" -v Increase the verbosity level\n" " -v Increase the verbosity level\n"
" --log-target={auto,syslog,stderr} Specify the log target\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 " " -p, --dl-search-path=PATH Set the search path for dynamic "
"shared\n" "shared\n"
" objects (plugins)\n" " objects (plugins)\n"
@ -460,58 +469,66 @@ msgid ""
" -n Don't load default script file\n" " -n Don't load default script file\n"
msgstr "" msgstr ""
#: ../src/daemon/cmdline.c:245 #: ../src/daemon/cmdline.c:254
msgid "--daemonize expects boolean argument" msgid "--daemonize expects boolean argument"
msgstr "" msgstr ""
#: ../src/daemon/cmdline.c:252 #: ../src/daemon/cmdline.c:261
msgid "--fail expects boolean argument" msgid "--fail expects boolean argument"
msgstr "" msgstr ""
#: ../src/daemon/cmdline.c:262 #: ../src/daemon/cmdline.c:271
msgid "" msgid ""
"--log-level expects log level argument (either numeric in range 0..4 or one " "--log-level expects log level argument (either numeric in range 0..4 or one "
"of debug, info, notice, warn, error)." "of debug, info, notice, warn, error)."
msgstr "" msgstr ""
#: ../src/daemon/cmdline.c:274 #: ../src/daemon/cmdline.c:283
msgid "--high-priority expects boolean argument" msgid "--high-priority expects boolean argument"
msgstr "" msgstr ""
#: ../src/daemon/cmdline.c:281 #: ../src/daemon/cmdline.c:290
msgid "--realtime expects boolean argument" msgid "--realtime expects boolean argument"
msgstr "" msgstr ""
#: ../src/daemon/cmdline.c:288 #: ../src/daemon/cmdline.c:297
msgid "--disallow-module-loading expects boolean argument" msgid "--disallow-module-loading expects boolean argument"
msgstr "" msgstr ""
#: ../src/daemon/cmdline.c:295 #: ../src/daemon/cmdline.c:304
msgid "--disallow-exit boolean argument" msgid "--disallow-exit boolean argument"
msgstr "" msgstr ""
#: ../src/daemon/cmdline.c:302 #: ../src/daemon/cmdline.c:311
msgid "--use-pid-file expects boolean argument" msgid "--use-pid-file expects boolean argument"
msgstr "" msgstr ""
#: ../src/daemon/cmdline.c:319 #: ../src/daemon/cmdline.c:328
msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'."
msgstr "" msgstr ""
#: ../src/daemon/cmdline.c:338 #: ../src/daemon/cmdline.c:335
msgid "--log-time boolean argument"
msgstr ""
#: ../src/daemon/cmdline.c:342
msgid "--log-meta boolean argument"
msgstr ""
#: ../src/daemon/cmdline.c:365
#, c-format #, c-format
msgid "Invalid resample method '%s'." msgid "Invalid resample method '%s'."
msgstr "" msgstr ""
#: ../src/daemon/cmdline.c:345 #: ../src/daemon/cmdline.c:372
msgid "--system expects boolean argument" msgid "--system expects boolean argument"
msgstr "" msgstr ""
#: ../src/daemon/cmdline.c:352 #: ../src/daemon/cmdline.c:379
msgid "--no-cpu-limit expects boolean argument" msgid "--no-cpu-limit expects boolean argument"
msgstr "" msgstr ""
#: ../src/daemon/cmdline.c:359 #: ../src/daemon/cmdline.c:386
msgid "--disable-shm expects boolean argument" msgid "--disable-shm expects boolean argument"
msgstr "" msgstr ""
@ -555,73 +572,73 @@ msgstr ""
msgid "Path: %s\n" msgid "Path: %s\n"
msgstr "" msgstr ""
#: ../src/daemon/daemon-conf.c:205 #: ../src/daemon/daemon-conf.c:208
#, c-format #, c-format
msgid "[%s:%u] Invalid log target '%s'." msgid "[%s:%u] Invalid log target '%s'."
msgstr "" msgstr ""
#: ../src/daemon/daemon-conf.c:221 #: ../src/daemon/daemon-conf.c:224
#, c-format #, c-format
msgid "[%s:%u] Invalid log level '%s'." msgid "[%s:%u] Invalid log level '%s'."
msgstr "" msgstr ""
#: ../src/daemon/daemon-conf.c:237 #: ../src/daemon/daemon-conf.c:240
#, c-format #, c-format
msgid "[%s:%u] Invalid resample method '%s'." msgid "[%s:%u] Invalid resample method '%s'."
msgstr "" msgstr ""
#: ../src/daemon/daemon-conf.c:260 #: ../src/daemon/daemon-conf.c:263
#, c-format #, c-format
msgid "[%s:%u] Invalid rlimit '%s'." msgid "[%s:%u] Invalid rlimit '%s'."
msgstr "" msgstr ""
#: ../src/daemon/daemon-conf.c:267 #: ../src/daemon/daemon-conf.c:270
#, c-format #, c-format
msgid "[%s:%u] rlimit not supported on this platform." msgid "[%s:%u] rlimit not supported on this platform."
msgstr "" msgstr ""
#: ../src/daemon/daemon-conf.c:283 #: ../src/daemon/daemon-conf.c:286
#, c-format #, c-format
msgid "[%s:%u] Invalid sample format '%s'." msgid "[%s:%u] Invalid sample format '%s'."
msgstr "" msgstr ""
#: ../src/daemon/daemon-conf.c:301 #: ../src/daemon/daemon-conf.c:304
#, c-format #, c-format
msgid "[%s:%u] Invalid sample rate '%s'." msgid "[%s:%u] Invalid sample rate '%s'."
msgstr "" msgstr ""
#: ../src/daemon/daemon-conf.c:319 #: ../src/daemon/daemon-conf.c:322
#, c-format #, c-format
msgid "[%s:%u] Invalid sample channels '%s'." msgid "[%s:%u] Invalid sample channels '%s'."
msgstr "" msgstr ""
#: ../src/daemon/daemon-conf.c:337 #: ../src/daemon/daemon-conf.c:340
#, c-format #, c-format
msgid "[%s:%u] Invalid number of fragments '%s'." msgid "[%s:%u] Invalid number of fragments '%s'."
msgstr "" msgstr ""
#: ../src/daemon/daemon-conf.c:355 #: ../src/daemon/daemon-conf.c:358
#, c-format #, c-format
msgid "[%s:%u] Invalid fragment size '%s'." msgid "[%s:%u] Invalid fragment size '%s'."
msgstr "" msgstr ""
#: ../src/daemon/daemon-conf.c:373 #: ../src/daemon/daemon-conf.c:376
#, c-format #, c-format
msgid "[%s:%u] Invalid nice level '%s'." msgid "[%s:%u] Invalid nice level '%s'."
msgstr "" msgstr ""
#: ../src/daemon/daemon-conf.c:570 #: ../src/daemon/daemon-conf.c:554
#, c-format #, c-format
msgid "Failed to open configuration file: %s" msgid "Failed to open configuration file: %s"
msgstr "" msgstr ""
#: ../src/daemon/daemon-conf.c:644 #: ../src/daemon/daemon-conf.c:628
#, c-format #, c-format
msgid "### Read from configuration file: %s ###\n" msgid "### Read from configuration file: %s ###\n"
msgstr "" msgstr ""
#: ../src/daemon/caps.c:63 #: ../src/daemon/caps.c:63
msgid "Dropping root priviliges." msgid "Dropping root privileges."
msgstr "" msgstr ""
#: ../src/daemon/caps.c:103 #: ../src/daemon/caps.c:103
@ -957,177 +974,177 @@ msgstr ""
msgid "Received message for unknown extension '%s'" msgid "Received message for unknown extension '%s'"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:93 #: ../src/utils/pacat.c:94
#, c-format #, c-format
msgid "pa_stream_write() failed: %s\n" msgid "pa_stream_write() failed: %s\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:132 #: ../src/utils/pacat.c:133
#, c-format #, c-format
msgid "pa_stream_peek() failed: %s\n" msgid "pa_stream_peek() failed: %s\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:141 #: ../src/utils/pacat.c:142
#, c-format #, c-format
msgid "Buffer overrun, dropping incoming data\n" msgid "Buffer overrun, dropping incoming data\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:143 #: ../src/utils/pacat.c:144
#, c-format #, c-format
msgid "pa_stream_drop() failed: %s\n" msgid "pa_stream_drop() failed: %s\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:169 #: ../src/utils/pacat.c:170
#, c-format #, c-format
msgid "Stream successfully created.\n" msgid "Stream successfully created.\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:172 #: ../src/utils/pacat.c:173
#, c-format #, c-format
msgid "pa_stream_get_buffer_attr() failed: %s\n" msgid "pa_stream_get_buffer_attr() failed: %s\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:176 #: ../src/utils/pacat.c:177
#, c-format #, c-format
msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:179 #: ../src/utils/pacat.c:180
#, c-format #, c-format
msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgid "Buffer metrics: maxlength=%u, fragsize=%u\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:183 #: ../src/utils/pacat.c:184
#, c-format #, c-format
msgid "Using sample spec '%s', channel map '%s'.\n" msgid "Using sample spec '%s', channel map '%s'.\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:187 #: ../src/utils/pacat.c:188
#, c-format #, c-format
msgid "Connected to device %s (%u, %ssuspended).\n" msgid "Connected to device %s (%u, %ssuspended).\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:197 #: ../src/utils/pacat.c:198
#, c-format #, c-format
msgid "Stream error: %s\n" msgid "Stream error: %s\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:207 #: ../src/utils/pacat.c:208
#, c-format #, c-format
msgid "Stream device suspended.%s \n" msgid "Stream device suspended.%s \n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:209 #: ../src/utils/pacat.c:210
#, c-format #, c-format
msgid "Stream device resumed.%s \n" msgid "Stream device resumed.%s \n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:217 #: ../src/utils/pacat.c:218
#, c-format #, c-format
msgid "Stream underrun.%s \n" msgid "Stream underrun.%s \n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:224 #: ../src/utils/pacat.c:225
#, c-format #, c-format
msgid "Stream overrun.%s \n" msgid "Stream overrun.%s \n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:231 #: ../src/utils/pacat.c:232
#, c-format #, c-format
msgid "Stream started.%s \n" msgid "Stream started.%s \n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:238 #: ../src/utils/pacat.c:239
#, c-format #, c-format
msgid "Stream moved to device %s (%u, %ssuspended).%s \n" msgid "Stream moved to device %s (%u, %ssuspended).%s \n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:238 #: ../src/utils/pacat.c:239
msgid "not " msgid "not "
msgstr "" msgstr ""
#: ../src/utils/pacat.c:259 #: ../src/utils/pacat.c:260
#, c-format #, c-format
msgid "Connection established.%s \n" msgid "Connection established.%s \n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:262 #: ../src/utils/pacat.c:263
#, c-format #, c-format
msgid "pa_stream_new() failed: %s\n" msgid "pa_stream_new() failed: %s\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:287 #: ../src/utils/pacat.c:288
#, c-format #, c-format
msgid "pa_stream_connect_playback() failed: %s\n" msgid "pa_stream_connect_playback() failed: %s\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:293 #: ../src/utils/pacat.c:294
#, c-format #, c-format
msgid "pa_stream_connect_record() failed: %s\n" msgid "pa_stream_connect_record() failed: %s\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:307 ../src/utils/pasuspender.c:159 #: ../src/utils/pacat.c:308 ../src/utils/pasuspender.c:159
#: ../src/utils/pactl.c:666 ../src/utils/paplay.c:183 #: ../src/utils/pactl.c:666 ../src/utils/paplay.c:183
#, c-format #, c-format
msgid "Connection failure: %s\n" msgid "Connection failure: %s\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:328 ../src/utils/paplay.c:75 #: ../src/utils/pacat.c:329 ../src/utils/paplay.c:75
#, c-format #, c-format
msgid "Failed to drain stream: %s\n" msgid "Failed to drain stream: %s\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:333 ../src/utils/paplay.c:80 #: ../src/utils/pacat.c:334 ../src/utils/paplay.c:80
#, c-format #, c-format
msgid "Playback stream drained.\n" msgid "Playback stream drained.\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:343 ../src/utils/paplay.c:92 #: ../src/utils/pacat.c:344 ../src/utils/paplay.c:92
#, c-format #, c-format
msgid "Draining connection to server.\n" msgid "Draining connection to server.\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:369 #: ../src/utils/pacat.c:370
#, c-format #, c-format
msgid "Got EOF.\n" msgid "Got EOF.\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:375 #: ../src/utils/pacat.c:376
#, c-format #, c-format
msgid "pa_stream_drain(): %s\n" msgid "pa_stream_drain(): %s\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:385 #: ../src/utils/pacat.c:386
#, c-format #, c-format
msgid "read() failed: %s\n" msgid "read() failed: %s\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:417 #: ../src/utils/pacat.c:418
#, c-format #, c-format
msgid "write() failed: %s\n" msgid "write() failed: %s\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:438 #: ../src/utils/pacat.c:439
#, c-format #, c-format
msgid "Got signal, exiting.\n" msgid "Got signal, exiting.\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:452 #: ../src/utils/pacat.c:453
#, c-format #, c-format
msgid "Failed to get latency: %s\n" msgid "Failed to get latency: %s\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:457 #: ../src/utils/pacat.c:458
#, c-format #, c-format
msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgid "Time: %0.3f sec; Latency: %0.0f usec. \r"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:477 #: ../src/utils/pacat.c:478
#, c-format #, c-format
msgid "pa_stream_update_timing_info() failed: %s\n" msgid "pa_stream_update_timing_info() failed: %s\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:490 #: ../src/utils/pacat.c:491
#, c-format #, c-format
msgid "" msgid ""
"%s [options]\n" "%s [options]\n"
@ -1180,7 +1197,7 @@ msgid ""
"per request in bytes.\n" "per request in bytes.\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:591 #: ../src/utils/pacat.c:592
#, c-format #, c-format
msgid "" msgid ""
"pacat %s\n" "pacat %s\n"
@ -1188,87 +1205,87 @@ msgid ""
"Linked with libpulse %s\n" "Linked with libpulse %s\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:647 #: ../src/utils/pacat.c:649
#, c-format #, c-format
msgid "Invalid channel map '%s'\n" msgid "Invalid channel map '%s'\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:676 #: ../src/utils/pacat.c:678
#, c-format #, c-format
msgid "Invalid latency specification '%s'\n" msgid "Invalid latency specification '%s'\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:683 #: ../src/utils/pacat.c:685
#, c-format #, c-format
msgid "Invalid process time specification '%s'\n" msgid "Invalid process time specification '%s'\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:694 #: ../src/utils/pacat.c:696
#, c-format #, c-format
msgid "Invalid sample specification\n" msgid "Invalid sample specification\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:699 #: ../src/utils/pacat.c:701
#, c-format #, c-format
msgid "Channel map doesn't match sample specification\n" msgid "Channel map doesn't match sample specification\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:706 #: ../src/utils/pacat.c:708
#, c-format #, c-format
msgid "Opening a %s stream with sample specification '%s'.\n" msgid "Opening a %s stream with sample specification '%s'.\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:706 #: ../src/utils/pacat.c:708
msgid "recording" msgid "recording"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:706 #: ../src/utils/pacat.c:708
msgid "playback" msgid "playback"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:714 #: ../src/utils/pacat.c:716
#, c-format #, c-format
msgid "open(): %s\n" msgid "open(): %s\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:719 #: ../src/utils/pacat.c:721
#, c-format #, c-format
msgid "dup2(): %s\n" msgid "dup2(): %s\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:729 #: ../src/utils/pacat.c:731
#, c-format #, c-format
msgid "Too many arguments.\n" msgid "Too many arguments.\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:742 ../src/utils/pasuspender.c:280 #: ../src/utils/pacat.c:744 ../src/utils/pasuspender.c:280
#: ../src/utils/pactl.c:909 ../src/utils/paplay.c:381 #: ../src/utils/pactl.c:909 ../src/utils/paplay.c:381
#, c-format #, c-format
msgid "pa_mainloop_new() failed.\n" msgid "pa_mainloop_new() failed.\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:763 #: ../src/utils/pacat.c:765
#, c-format #, c-format
msgid "io_new() failed.\n" msgid "io_new() failed.\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:769 ../src/utils/pasuspender.c:293 #: ../src/utils/pacat.c:771 ../src/utils/pasuspender.c:293
#: ../src/utils/pactl.c:923 ../src/utils/paplay.c:396 #: ../src/utils/pactl.c:923 ../src/utils/paplay.c:396
#, c-format #, c-format
msgid "pa_context_new() failed.\n" msgid "pa_context_new() failed.\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:777 #: ../src/utils/pacat.c:779
#, c-format #, c-format
msgid "pa_context_connect() failed: %s" msgid "pa_context_connect() failed: %s"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:788 #: ../src/utils/pacat.c:790
#, c-format #, c-format
msgid "time_new() failed.\n" msgid "time_new() failed.\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:795 ../src/utils/pasuspender.c:301 #: ../src/utils/pacat.c:797 ../src/utils/pasuspender.c:301
#: ../src/utils/pactl.c:931 ../src/utils/paplay.c:407 #: ../src/utils/pactl.c:931 ../src/utils/paplay.c:407
#, c-format #, c-format
msgid "pa_mainloop_run() failed.\n" msgid "pa_mainloop_run() failed.\n"

1838
po/es.po Normal file

File diff suppressed because it is too large Load diff

1931
po/fi.po Normal file

File diff suppressed because it is too large Load diff

353
po/fr.po
View file

@ -1,31 +1,38 @@
# French translation of pulseaudio. # French translation of pulseaudio.
# Copyright (C) 2006-2008 Lennart Poettering # Copyright (C) 2006-2008 Lennart Poettering
# This file is distributed under the same license as the pulseaudio package. # This file is distributed under the same license as the pulseaudio package.
#
# Robert-André Mauchin <zebob.m@pengzone.org>, 2008. # Robert-André Mauchin <zebob.m@pengzone.org>, 2008.
# Michaël Ughetto <telimektar esraonline com>, 2008. # Michaël Ughetto <telimektar esraonline com>, 2008.
# Pablo Martin-Gomez <pablo.martin-gomez@laposte.net>, 2008.
#
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: pulseaudio trunk\n" "Project-Id-Version: pulseaudio trunk\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-10-07 21:03+0200\n" "POT-Creation-Date: 2009-01-08 19:36+0100\n"
"PO-Revision-Date: 2008-09-06 10:49+0200\n" "PO-Revision-Date: 2008-10-18 20:34+0200\n"
"Last-Translator: Robert-André Mauchin <zebob.m@pengzone.org>\n" "Last-Translator: Pablo Martin-Gomez <pablo.martin-gomez@laposte.net>\n"
"Language-Team: Fedora French <fedora-trans-fr@redhat.com>\n" "Language-Team: Français <fedora-trans-fr@redhat.com>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n>1;\n" "Plural-Forms: nplurals=2; plural=n>1;\n"
#: ../src/daemon/ltdl-bind-now.c:177 ../src/daemon/ltdl-bind-now.c:197 #: ../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."
#: ../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."
#: ../src/daemon/ltdl-bind-now.c:142
msgid "Failed to add bind-now-loader." msgid "Failed to add bind-now-loader."
msgstr "Échec lors de l'ajout du chargeur bind-now." msgstr "Échec lors de l'ajout du chargeur bind-now."
#: ../src/daemon/ltdl-bind-now.c:184
msgid "Failed to find original dlopen loader."
msgstr "Échec lors de la recherche du chargeur dlopen original."
#: ../src/daemon/polkit.c:55 #: ../src/daemon/polkit.c:55
#, c-format #, c-format
msgid "Cannot connect to system bus: %s" msgid "Cannot connect to system bus: %s"
@ -152,39 +159,40 @@ msgstr "setrlimit(%s, (%u, %u)) a échoué : %s"
msgid "Failed to parse command line." msgid "Failed to parse command line."
msgstr "Échec lors de l'analyse de la ligne de commande" msgstr "Échec lors de l'analyse de la ligne de commande"
#: ../src/daemon/main.c:441 #: ../src/daemon/main.c:447
#, c-format #, c-format
msgid "We're in the group '%s', allowing high-priority scheduling." msgid "We're in the group '%s', allowing high-priority scheduling."
msgstr "" msgstr ""
"Nous sommes dans le groupe « %s », permettant une planification à haute " "Nous sommes dans le groupe « %s », permettant une planification à haute "
"priorité." "priorité."
#: ../src/daemon/main.c:448 #: ../src/daemon/main.c:454
#, c-format #, c-format
msgid "We're in the group '%s', allowing real-time scheduling." msgid "We're in the group '%s', allowing real-time scheduling."
msgstr "" msgstr ""
"Nous sommes dans le groupe « %s », permettant une planification en temps réel." "Nous sommes dans le groupe « %s », permettant une planification en temps réel."
#: ../src/daemon/main.c:456 #: ../src/daemon/main.c:462
msgid "PolicyKit grants us acquire-high-priority privilege." msgid "PolicyKit grants us acquire-high-priority privilege."
msgstr "PolicyKit a accordé l'acquisition des permissions de haute priorité." msgstr "PolicyKit a accordé l'acquisition des permissions de haute priorité."
#: ../src/daemon/main.c:459 #: ../src/daemon/main.c:465
msgid "PolicyKit refuses acquire-high-priority privilege." msgid "PolicyKit refuses acquire-high-priority privilege."
msgstr "PolicyKit a refusé l'acquisition des permissions de haute priorité." msgstr "PolicyKit a refusé l'acquisition des permissions de haute priorité."
#: ../src/daemon/main.c:464 #: ../src/daemon/main.c:470
msgid "PolicyKit grants us acquire-real-time privilege." msgid "PolicyKit grants us acquire-real-time privilege."
msgstr "PolicyKit a accordé l'acquisition des permissions de temps réel." msgstr "PolicyKit a accordé l'acquisition des permissions de temps réel."
#: ../src/daemon/main.c:467 #: ../src/daemon/main.c:473
msgid "PolicyKit refuses acquire-real-time privilege." msgid "PolicyKit refuses acquire-real-time privilege."
msgstr "PolicyKit a refusé l'acquisition des permissions de temps réel." msgstr "PolicyKit a refusé l'acquisition des permissions de temps réel."
#: ../src/daemon/main.c:479 #: ../src/daemon/main.c:502
#, fuzzy
msgid "" msgid ""
"Called SUID root and real-time/high-priority scheduling was requested in the " "Called SUID root and real-time and/or high-priority scheduling was requested "
"configuration. However, we lack the necessary priviliges:\n" "in the configuration. However, we lack the necessary privileges:\n"
"We are not in group '" "We are not in group '"
msgstr "" msgstr ""
"Le SUID root a été appelé et la planification à haute priorité/en temps réel " "Le SUID root a été appelé et la planification à haute priorité/en temps réel "
@ -192,48 +200,48 @@ msgstr ""
"nécessaires :\n" "nécessaires :\n"
"nous ne somme pas dans le groupe " "nous ne somme pas dans le groupe "
#: ../src/daemon/main.c:497 #: ../src/daemon/main.c:526
msgid "" msgid ""
"High-priority scheduling enabled in configuration but not allowed by policy." "High-priority scheduling enabled in configuration but not allowed by policy."
msgstr "" msgstr ""
"La planification à haute priorité est activée dans la configuration mais " "La planification à haute priorité est activée dans la configuration mais "
"n'est pas permise par la politique." "n'est pas permise par la politique."
#: ../src/daemon/main.c:522 #: ../src/daemon/main.c:555
msgid "Successfully increased RLIMIT_RTPRIO" msgid "Successfully increased RLIMIT_RTPRIO"
msgstr "Augmentation de RLIMIT_RTPRIO réussie" msgstr "Augmentation de RLIMIT_RTPRIO réussie"
#: ../src/daemon/main.c:525 #: ../src/daemon/main.c:558
#, c-format #, c-format
msgid "RLIMIT_RTPRIO failed: %s" msgid "RLIMIT_RTPRIO failed: %s"
msgstr "RLIMIT_RTPRIO a échoué : %s" msgstr "RLIMIT_RTPRIO a échoué : %s"
#: ../src/daemon/main.c:532 #: ../src/daemon/main.c:565
msgid "Giving up CAP_NICE" msgid "Giving up CAP_NICE"
msgstr "Abandon de CAP_NICE" msgstr "Abandon de CAP_NICE"
#: ../src/daemon/main.c:539 #: ../src/daemon/main.c:572
msgid "" msgid ""
"Real-time scheduling enabled in configuration but not allowed by policy." "Real-time scheduling enabled in configuration but not allowed by policy."
msgstr "" msgstr ""
"La planification en temps réel est activée mais n'est pas permise par la " "La planification en temps réel est activée mais n'est pas permise par la "
"politique." "politique."
#: ../src/daemon/main.c:597 #: ../src/daemon/main.c:633
msgid "Daemon not running" msgid "Daemon not running"
msgstr "Lé démon n'est pas lancé" msgstr "Lé démon n'est pas lancé"
#: ../src/daemon/main.c:599 #: ../src/daemon/main.c:635
#, c-format #, c-format
msgid "Daemon running as PID %u" msgid "Daemon running as PID %u"
msgstr "Le démon est lancé avec le PID %u" msgstr "Le démon est lancé avec le PID %u"
#: ../src/daemon/main.c:609 #: ../src/daemon/main.c:645
#, c-format #, c-format
msgid "Failed to kill daemon: %s" msgid "Failed to kill daemon: %s"
msgstr "Impossible de tuer le démon : %s" msgstr "Impossible de tuer le démon : %s"
#: ../src/daemon/main.c:627 #: ../src/daemon/main.c:663
msgid "" msgid ""
"This program is not intended to be run as root (unless --system is " "This program is not intended to be run as root (unless --system is "
"specified)." "specified)."
@ -241,142 +249,143 @@ msgstr ""
"Le programme n'est pas conçu pour être lancé en tant que root (sauf si --" "Le programme n'est pas conçu pour être lancé en tant que root (sauf si --"
"system est renseigné)." "system est renseigné)."
#: ../src/daemon/main.c:629 #: ../src/daemon/main.c:665
msgid "Root priviliges required." #, fuzzy
msgid "Root privileges required."
msgstr "Les permissions root sont nécessaires." msgstr "Les permissions root sont nécessaires."
#: ../src/daemon/main.c:634 #: ../src/daemon/main.c:670
msgid "--start not supported for system instances." msgid "--start not supported for system instances."
msgstr "--start n'est pas pris en charge pour les instances système." msgstr "--start n'est pas pris en charge pour les instances système."
#: ../src/daemon/main.c:639 #: ../src/daemon/main.c:675
msgid "Running in system mode, but --disallow-exit not set!" msgid "Running in system mode, but --disallow-exit not set!"
msgstr "" msgstr ""
"Le démon s'exécute en mode système, mais --disallow-exit n'est pas défini." "Le démon s'exécute en mode système, mais --disallow-exit n'est pas défini."
#: ../src/daemon/main.c:642 #: ../src/daemon/main.c:678
msgid "Running in system mode, but --disallow-module-loading not set!" msgid "Running in system mode, but --disallow-module-loading not set!"
msgstr "" msgstr ""
"Le démon s'exécute en mode système, mais --disallow-module-loading n'est pas " "Le démon s'exécute en mode système, mais --disallow-module-loading n'est pas "
"défini." "défini."
#: ../src/daemon/main.c:645 #: ../src/daemon/main.c:681
msgid "Running in system mode, forcibly disabling SHM mode!" 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." msgstr "Le démon s'exécute en mode système, désactivation forcée du mode SHM."
#: ../src/daemon/main.c:650 #: ../src/daemon/main.c:686
msgid "Running in system mode, forcibly disabling exit idle time!" msgid "Running in system mode, forcibly disabling exit idle time!"
msgstr "" msgstr ""
"Le démon s'exécute en mode système, désactivation forcée de la fermeture " "Le démon s'exécute en mode système, désactivation forcée de la fermeture "
"après délai d'inactivité." "après délai d'inactivité."
#: ../src/daemon/main.c:677 #: ../src/daemon/main.c:713
msgid "Failed to acquire stdio." msgid "Failed to acquire stdio."
msgstr "Échec lors de l'acquisition de stdio." msgstr "Échec lors de l'acquisition de stdio."
#: ../src/daemon/main.c:683 #: ../src/daemon/main.c:719
#, c-format #, c-format
msgid "pipe failed: %s" msgid "pipe failed: %s"
msgstr "Échec du tube : %s" msgstr "Échec du tube : %s"
#: ../src/daemon/main.c:688 #: ../src/daemon/main.c:724
#, c-format #, c-format
msgid "fork() failed: %s" msgid "fork() failed: %s"
msgstr "Échec de fork() : %s" msgstr "Échec de fork() : %s"
#: ../src/daemon/main.c:702 #: ../src/daemon/main.c:738
#, c-format #, c-format
msgid "read() failed: %s" msgid "read() failed: %s"
msgstr "Échec de read() : %s" msgstr "Échec de read() : %s"
#: ../src/daemon/main.c:708 #: ../src/daemon/main.c:744
msgid "Daemon startup failed." msgid "Daemon startup failed."
msgstr "Échec lors du démarrage du démon." msgstr "Échec lors du démarrage du démon."
#: ../src/daemon/main.c:710 #: ../src/daemon/main.c:746
msgid "Daemon startup successful." msgid "Daemon startup successful."
msgstr "Démarrage du démon réussi." msgstr "Démarrage du démon réussi."
#: ../src/daemon/main.c:780 #: ../src/daemon/main.c:816
#, c-format #, c-format
msgid "This is PulseAudio %s" msgid "This is PulseAudio %s"
msgstr "Pulseaudio %s" msgstr "Pulseaudio %s"
#: ../src/daemon/main.c:781 #: ../src/daemon/main.c:817
#, fuzzy, c-format #, c-format
msgid "Compilation host: %s" msgid "Compilation host: %s"
msgstr "CFLAGS de compilation : %s" msgstr "Hôte de compilation : %s"
#: ../src/daemon/main.c:782 #: ../src/daemon/main.c:818
#, c-format #, c-format
msgid "Compilation CFLAGS: %s" msgid "Compilation CFLAGS: %s"
msgstr "CFLAGS de compilation : %s" msgstr "CFLAGS de compilation : %s"
#: ../src/daemon/main.c:785 #: ../src/daemon/main.c:821
#, fuzzy, c-format #, c-format
msgid "Running on host: %s" msgid "Running on host: %s"
msgstr "Exécution en mode système : %s" msgstr "Exécution sur l'hôte : %s"
#: ../src/daemon/main.c:788 #: ../src/daemon/main.c:824
#, c-format #, c-format
msgid "Page size is %lu bytes" msgid "Page size is %lu bytes"
msgstr "La taille de la page est de %lu octets" msgstr "La taille de la page est de %lu octets"
#: ../src/daemon/main.c:791 #: ../src/daemon/main.c:827
msgid "Compiled with Valgrind support: yes" msgid "Compiled with Valgrind support: yes"
msgstr "Compilé avec la prise en charge Valgrind : oui" msgstr "Compilé avec la prise en charge Valgrind : oui"
#: ../src/daemon/main.c:793 #: ../src/daemon/main.c:829
msgid "Compiled with Valgrind support: no" msgid "Compiled with Valgrind support: no"
msgstr "Compilé avec la prise en charge Valgrind : non" msgstr "Compilé avec la prise en charge Valgrind : non"
#: ../src/daemon/main.c:796 #: ../src/daemon/main.c:832
#, fuzzy, c-format #, c-format
msgid "Running in valgrind mode: %s" msgid "Running in valgrind mode: %s"
msgstr "Exécution en mode système : %s" msgstr "Exécution en mode valgrind : %s"
#: ../src/daemon/main.c:799 #: ../src/daemon/main.c:835
msgid "Optimized build: yes" msgid "Optimized build: yes"
msgstr "Construction optimisée : oui" msgstr "Construction optimisée : oui"
#: ../src/daemon/main.c:801 #: ../src/daemon/main.c:837
msgid "Optimized build: no" msgid "Optimized build: no"
msgstr "Construction optimisée : non" msgstr "Construction optimisée : non"
#: ../src/daemon/main.c:805 #: ../src/daemon/main.c:841
msgid "Failed to get machine ID" msgid "Failed to get machine ID"
msgstr "Échec lors de l'obtention de l'ID de la machine" msgstr "Échec lors de l'obtention de l'ID de la machine"
#: ../src/daemon/main.c:808 #: ../src/daemon/main.c:844
#, c-format #, c-format
msgid "Machine ID is %s." msgid "Machine ID is %s."
msgstr "L'ID de la machine est %s." msgstr "L'ID de la machine est %s."
#: ../src/daemon/main.c:813 #: ../src/daemon/main.c:849
#, c-format #, c-format
msgid "Using runtime directory %s." msgid "Using runtime directory %s."
msgstr "Utilisation du répertoire d'exécution %s." msgstr "Utilisation du répertoire d'exécution %s."
#: ../src/daemon/main.c:818 #: ../src/daemon/main.c:854
#, c-format #, c-format
msgid "Using state directory %s." msgid "Using state directory %s."
msgstr "Utilisation du répertoire d'état %s." msgstr "Utilisation du répertoire d'état %s."
#: ../src/daemon/main.c:821 #: ../src/daemon/main.c:857
#, c-format #, c-format
msgid "Running in system mode: %s" msgid "Running in system mode: %s"
msgstr "Exécution en mode système : %s" msgstr "Exécution en mode système : %s"
#: ../src/daemon/main.c:836 #: ../src/daemon/main.c:872
msgid "pa_pid_file_create() failed." msgid "pa_pid_file_create() failed."
msgstr "Échec de pa_pid_file_create()." msgstr "Échec de pa_pid_file_create()."
#: ../src/daemon/main.c:848 #: ../src/daemon/main.c:884
msgid "Fresh high-resolution timers available! Bon appetit!" msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr "" msgstr ""
"De nouvelles horloges à haute résolution sont disponibles ! Bon appétit !" "De nouvelles horloges à haute résolution sont disponibles ! Bon appétit !"
#: ../src/daemon/main.c:850 #: ../src/daemon/main.c:886
msgid "" msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!" "resolution timers enabled!"
@ -384,39 +393,39 @@ msgstr ""
"Eh mec, ton noyau il pue ! La recommandation d'aujourd'hui du patron est " "Eh mec, ton noyau il pue ! La recommandation d'aujourd'hui du patron est "
"d'activer les horloges à haute résolution sur ton Linux." "d'activer les horloges à haute résolution sur ton Linux."
#: ../src/daemon/main.c:860 #: ../src/daemon/main.c:896
msgid "pa_core_new() failed." msgid "pa_core_new() failed."
msgstr "Échec de pa_core_new()." msgstr "Échec de pa_core_new()."
#: ../src/daemon/main.c:921 #: ../src/daemon/main.c:957
msgid "Failed to initialize daemon." msgid "Failed to initialize daemon."
msgstr "Échec lors de l'initialisation du démon" msgstr "Échec lors de l'initialisation du démon"
#: ../src/daemon/main.c:926 #: ../src/daemon/main.c:962
msgid "Daemon startup without any loaded modules, refusing to work." msgid "Daemon startup without any loaded modules, refusing to work."
msgstr "Démarrage du démon sans aucun module chargé : refus de fonctionner." msgstr "Démarrage du démon sans aucun module chargé : refus de fonctionner."
#: ../src/daemon/main.c:931 #: ../src/daemon/main.c:967
#, c-format #, c-format
msgid "Default sink name (%s) does not exist in name register." msgid "Default sink name (%s) does not exist in name register."
msgstr "" msgstr ""
"Le nom de la destination par défaut (%s) n'existe pas dans le registre des " "Le nom de la destination par défaut (%s) n'existe pas dans le registre des "
"noms." "noms."
#: ../src/daemon/main.c:944 #: ../src/daemon/main.c:980
msgid "Daemon startup complete." msgid "Daemon startup complete."
msgstr "Démarrage du démon effectué." msgstr "Démarrage du démon effectué."
#: ../src/daemon/main.c:950 #: ../src/daemon/main.c:986
msgid "Daemon shutdown initiated." msgid "Daemon shutdown initiated."
msgstr "Fermeture du démon initiée." msgstr "Fermeture du démon initiée."
#: ../src/daemon/main.c:971 #: ../src/daemon/main.c:1007
msgid "Daemon terminated." msgid "Daemon terminated."
msgstr "Démon terminé." msgstr "Démon terminé."
#: ../src/daemon/cmdline.c:117 #: ../src/daemon/cmdline.c:123
#, c-format #, fuzzy, c-format
msgid "" msgid ""
"%s [options]\n" "%s [options]\n"
"\n" "\n"
@ -431,7 +440,8 @@ msgid ""
" --start Start the daemon if it is not " " --start Start the daemon if it is not "
"running\n" "running\n"
" -k --kill Kill a running daemon\n" " -k --kill Kill a running daemon\n"
" --check Check for a running daemon\n" " --check Check for a running daemon (only "
"returns exit code)\n"
"\n" "\n"
"OPTIONS:\n" "OPTIONS:\n"
" --system[=BOOL] Run as system-wide instance\n" " --system[=BOOL] Run as system-wide instance\n"
@ -461,6 +471,10 @@ msgid ""
" --log-level[=LEVEL] Increase or set verbosity level\n" " --log-level[=LEVEL] Increase or set verbosity level\n"
" -v Increase the verbosity level\n" " -v Increase the verbosity level\n"
" --log-target={auto,syslog,stderr} Specify the log target\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 " " -p, --dl-search-path=PATH Set the search path for dynamic "
"shared\n" "shared\n"
" objects (plugins)\n" " objects (plugins)\n"
@ -565,15 +579,15 @@ msgstr ""
" -n Ne pas charger les fichiers de " " -n Ne pas charger les fichiers de "
"scripts par défaut\n" "scripts par défaut\n"
#: ../src/daemon/cmdline.c:245 #: ../src/daemon/cmdline.c:254
msgid "--daemonize expects boolean argument" msgid "--daemonize expects boolean argument"
msgstr "--daemonize requiert un paramètre booléen" msgstr "--daemonize requiert un paramètre booléen"
#: ../src/daemon/cmdline.c:252 #: ../src/daemon/cmdline.c:261
msgid "--fail expects boolean argument" msgid "--fail expects boolean argument"
msgstr "--fail requiert un paramètre booléen" msgstr "--fail requiert un paramètre booléen"
#: ../src/daemon/cmdline.c:262 #: ../src/daemon/cmdline.c:271
msgid "" msgid ""
"--log-level expects log level argument (either numeric in range 0..4 or one " "--log-level expects log level argument (either numeric in range 0..4 or one "
"of debug, info, notice, warn, error)." "of debug, info, notice, warn, error)."
@ -581,44 +595,54 @@ msgstr ""
"--log-level requiert un paramètre de niveau de journal (soit numérique entre " "--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)." "0 et 4, soit de débogage : info, notice, warn , error)."
#: ../src/daemon/cmdline.c:274 #: ../src/daemon/cmdline.c:283
msgid "--high-priority expects boolean argument" msgid "--high-priority expects boolean argument"
msgstr "--high-priority requiert un paramètre booléen" msgstr "--high-priority requiert un paramètre booléen"
#: ../src/daemon/cmdline.c:281 #: ../src/daemon/cmdline.c:290
msgid "--realtime expects boolean argument" msgid "--realtime expects boolean argument"
msgstr "--realtime requiert un paramètre booléen" msgstr "--realtime requiert un paramètre booléen"
#: ../src/daemon/cmdline.c:288 #: ../src/daemon/cmdline.c:297
msgid "--disallow-module-loading expects boolean argument" msgid "--disallow-module-loading expects boolean argument"
msgstr "--disallow-module-loading requiert un paramètre booléen" msgstr "--disallow-module-loading requiert un paramètre booléen"
#: ../src/daemon/cmdline.c:295 #: ../src/daemon/cmdline.c:304
msgid "--disallow-exit boolean argument" msgid "--disallow-exit boolean argument"
msgstr "--disallow-exit requiert un paramètre booléen" msgstr "--disallow-exit requiert un paramètre booléen"
#: ../src/daemon/cmdline.c:302 #: ../src/daemon/cmdline.c:311
msgid "--use-pid-file expects boolean argument" msgid "--use-pid-file expects boolean argument"
msgstr "--use-pid-file requiert un paramètre booléen" msgstr "--use-pid-file requiert un paramètre booléen"
#: ../src/daemon/cmdline.c:319 #: ../src/daemon/cmdline.c:328
msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'."
msgstr "Cible du journal invalide : utilisez « syslog », « stderr » ou « auto »." msgstr "Cible du journal invalide : utilisez « syslog », « stderr » ou « auto »."
#: ../src/daemon/cmdline.c:338 #: ../src/daemon/cmdline.c:335
#, fuzzy
msgid "--log-time boolean argument"
msgstr "--disallow-exit requiert un paramètre booléen"
#: ../src/daemon/cmdline.c:342
#, fuzzy
msgid "--log-meta boolean argument"
msgstr "--disallow-exit requiert un paramètre booléen"
#: ../src/daemon/cmdline.c:365
#, c-format #, c-format
msgid "Invalid resample method '%s'." msgid "Invalid resample method '%s'."
msgstr "Méthode de rééchantillonnage invalide « %s »." msgstr "Méthode de rééchantillonnage invalide « %s »."
#: ../src/daemon/cmdline.c:345 #: ../src/daemon/cmdline.c:372
msgid "--system expects boolean argument" msgid "--system expects boolean argument"
msgstr "--system requiert un paramètre booléen" msgstr "--system requiert un paramètre booléen"
#: ../src/daemon/cmdline.c:352 #: ../src/daemon/cmdline.c:379
msgid "--no-cpu-limit expects boolean argument" msgid "--no-cpu-limit expects boolean argument"
msgstr "--no-cpu-limit requiert un paramètre booléen" msgstr "--no-cpu-limit requiert un paramètre booléen"
#: ../src/daemon/cmdline.c:359 #: ../src/daemon/cmdline.c:386
msgid "--disable-shm expects boolean argument" msgid "--disable-shm expects boolean argument"
msgstr "--disable-shm requiert un paramètre booléen" msgstr "--disable-shm requiert un paramètre booléen"
@ -663,73 +687,74 @@ msgid "Path: %s\n"
msgstr "Chemin : %s\n" msgstr "Chemin : %s\n"
# dans les lignes suivantes [%s = nom de fichier: %u = ligne dans celui-ci] # dans les lignes suivantes [%s = nom de fichier: %u = ligne dans celui-ci]
#: ../src/daemon/daemon-conf.c:205 #: ../src/daemon/daemon-conf.c:208
#, c-format #, c-format
msgid "[%s:%u] Invalid log target '%s'." msgid "[%s:%u] Invalid log target '%s'."
msgstr "[%s:%u] Cible du journal « %s » invalide." msgstr "[%s:%u] Cible du journal « %s » invalide."
#: ../src/daemon/daemon-conf.c:221 #: ../src/daemon/daemon-conf.c:224
#, c-format #, c-format
msgid "[%s:%u] Invalid log level '%s'." msgid "[%s:%u] Invalid log level '%s'."
msgstr "[%s:%u] Niveau du journal « %s » invalide." msgstr "[%s:%u] Niveau du journal « %s » invalide."
#: ../src/daemon/daemon-conf.c:237 #: ../src/daemon/daemon-conf.c:240
#, c-format #, c-format
msgid "[%s:%u] Invalid resample method '%s'." msgid "[%s:%u] Invalid resample method '%s'."
msgstr "[%s:%u] Méthode de rééchantillonnage « %s » invalide." msgstr "[%s:%u] Méthode de rééchantillonnage « %s » invalide."
#: ../src/daemon/daemon-conf.c:260 #: ../src/daemon/daemon-conf.c:263
#, c-format #, c-format
msgid "[%s:%u] Invalid rlimit '%s'." msgid "[%s:%u] Invalid rlimit '%s'."
msgstr "[%s:%u] rlimit « %s » invalide." msgstr "[%s:%u] rlimit « %s » invalide."
#: ../src/daemon/daemon-conf.c:267 #: ../src/daemon/daemon-conf.c:270
#, c-format #, c-format
msgid "[%s:%u] rlimit not supported on this platform." msgid "[%s:%u] rlimit not supported on this platform."
msgstr "[%s:%u] rlimit n'est pas pris en charge sur cette plateforme." msgstr "[%s:%u] rlimit n'est pas pris en charge sur cette plateforme."
#: ../src/daemon/daemon-conf.c:283 #: ../src/daemon/daemon-conf.c:286
#, c-format #, c-format
msgid "[%s:%u] Invalid sample format '%s'." msgid "[%s:%u] Invalid sample format '%s'."
msgstr "[%s:%u] Format d'échantillon « %s » invalide." msgstr "[%s:%u] Format d'échantillon « %s » invalide."
#: ../src/daemon/daemon-conf.c:301 #: ../src/daemon/daemon-conf.c:304
#, c-format #, c-format
msgid "[%s:%u] Invalid sample rate '%s'." msgid "[%s:%u] Invalid sample rate '%s'."
msgstr "[%s:%u] Taux d'échantillonnage « %s » invalide." msgstr "[%s:%u] Taux d'échantillonnage « %s » invalide."
#: ../src/daemon/daemon-conf.c:319 #: ../src/daemon/daemon-conf.c:322
#, c-format #, c-format
msgid "[%s:%u] Invalid sample channels '%s'." msgid "[%s:%u] Invalid sample channels '%s'."
msgstr "[%s:%u] Canaux d'échantillonnage « %s » invalide." msgstr "[%s:%u] Canaux d'échantillonnage « %s » invalide."
#: ../src/daemon/daemon-conf.c:337 #: ../src/daemon/daemon-conf.c:340
#, c-format #, c-format
msgid "[%s:%u] Invalid number of fragments '%s'." msgid "[%s:%u] Invalid number of fragments '%s'."
msgstr "[%s:%u] Nombre de fragments « %s » invalide." msgstr "[%s:%u] Nombre de fragments « %s » invalide."
#: ../src/daemon/daemon-conf.c:355 #: ../src/daemon/daemon-conf.c:358
#, c-format #, c-format
msgid "[%s:%u] Invalid fragment size '%s'." msgid "[%s:%u] Invalid fragment size '%s'."
msgstr "[%s:%u] Taille du fragment « %s » invalide." msgstr "[%s:%u] Taille du fragment « %s » invalide."
#: ../src/daemon/daemon-conf.c:373 #: ../src/daemon/daemon-conf.c:376
#, c-format #, c-format
msgid "[%s:%u] Invalid nice level '%s'." msgid "[%s:%u] Invalid nice level '%s'."
msgstr "[%s:%u] Niveau de priorité (nice) « %s » invalide." msgstr "[%s:%u] Niveau de priorité (nice) « %s » invalide."
#: ../src/daemon/daemon-conf.c:570 #: ../src/daemon/daemon-conf.c:554
#, c-format #, c-format
msgid "Failed to open configuration file: %s" msgid "Failed to open configuration file: %s"
msgstr "Échec lors de l'ouverture du fichier de configuration : %s" msgstr "Échec lors de l'ouverture du fichier de configuration : %s"
#: ../src/daemon/daemon-conf.c:644 #: ../src/daemon/daemon-conf.c:628
#, c-format #, c-format
msgid "### Read from configuration file: %s ###\n" msgid "### Read from configuration file: %s ###\n"
msgstr "### Lecture à partir du fichier de configuration : %s ###\n" msgstr "### Lecture à partir du fichier de configuration : %s ###\n"
#: ../src/daemon/caps.c:63 #: ../src/daemon/caps.c:63
msgid "Dropping root priviliges." #, fuzzy
msgid "Dropping root privileges."
msgstr "Abandon des permissions root." msgstr "Abandon des permissions root."
#: ../src/daemon/caps.c:103 #: ../src/daemon/caps.c:103
@ -942,9 +967,8 @@ msgstr "Arrière droit haut"
#: ../src/pulse/channelmap.c:472 ../src/pulse/sample.c:144 #: ../src/pulse/channelmap.c:472 ../src/pulse/sample.c:144
#: ../src/pulse/volume.c:163 ../src/pulse/volume.c:194 #: ../src/pulse/volume.c:163 ../src/pulse/volume.c:194
#, fuzzy
msgid "(invalid)" msgid "(invalid)"
msgstr "Invalide" msgstr "(invalide)"
#: ../src/pulse/error.c:43 #: ../src/pulse/error.c:43
msgid "OK" msgid "OK"
@ -1066,175 +1090,175 @@ msgstr "waitpid() : %s"
msgid "Received message for unknown extension '%s'" msgid "Received message for unknown extension '%s'"
msgstr "Message reçu pour une extension inconnue « %s »" msgstr "Message reçu pour une extension inconnue « %s »"
#: ../src/utils/pacat.c:93 #: ../src/utils/pacat.c:94
#, c-format #, c-format
msgid "pa_stream_write() failed: %s\n" msgid "pa_stream_write() failed: %s\n"
msgstr "Échec de pa_stream_write() : %s\n" msgstr "Échec de pa_stream_write() : %s\n"
#: ../src/utils/pacat.c:132 #: ../src/utils/pacat.c:133
#, c-format #, c-format
msgid "pa_stream_peek() failed: %s\n" msgid "pa_stream_peek() failed: %s\n"
msgstr "Échec de pa_stream_peek() : %s\n" msgstr "Échec de pa_stream_peek() : %s\n"
#: ../src/utils/pacat.c:141 #: ../src/utils/pacat.c:142
#, c-format #, c-format
msgid "Buffer overrun, dropping incoming data\n" msgid "Buffer overrun, dropping incoming data\n"
msgstr "Saturation du tampon, abandon des données entrantes\n" msgstr "Saturation du tampon, abandon des données entrantes\n"
#: ../src/utils/pacat.c:143 #: ../src/utils/pacat.c:144
#, c-format #, c-format
msgid "pa_stream_drop() failed: %s\n" msgid "pa_stream_drop() failed: %s\n"
msgstr "Échec de pa_stream_drop() : %s\n" msgstr "Échec de pa_stream_drop() : %s\n"
#: ../src/utils/pacat.c:169 #: ../src/utils/pacat.c:170
#, c-format #, c-format
msgid "Stream successfully created.\n" msgid "Stream successfully created.\n"
msgstr "Création du flux réussie.\n" msgstr "Création du flux réussie.\n"
#: ../src/utils/pacat.c:172 #: ../src/utils/pacat.c:173
#, c-format #, c-format
msgid "pa_stream_get_buffer_attr() failed: %s\n" msgid "pa_stream_get_buffer_attr() failed: %s\n"
msgstr "Échec de pa_stream_get_buffer_attr() : %s\n" msgstr "Échec de pa_stream_get_buffer_attr() : %s\n"
#: ../src/utils/pacat.c:176 #: ../src/utils/pacat.c:177
#, c-format #, c-format
msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n"
msgstr "Mesures du tampon : 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:180
#, c-format #, c-format
msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgid "Buffer metrics: maxlength=%u, fragsize=%u\n"
msgstr "Mesures du tampon : maxlength=%u, fragsize=%u\n" msgstr "Mesures du tampon : maxlength=%u, fragsize=%u\n"
#: ../src/utils/pacat.c:183 #: ../src/utils/pacat.c:184
#, c-format #, c-format
msgid "Using sample spec '%s', channel map '%s'.\n" msgid "Using sample spec '%s', channel map '%s'.\n"
msgstr "" msgstr ""
"Utilisation de la spécification d'échantillon « %s », plan des canaux « %s ».\n" "Utilisation de la spécification d'échantillon « %s », plan des canaux « %s ».\n"
# l'espace manquant entre %s et suspended est voulu # l'espace manquant entre %s et suspended est voulu
#: ../src/utils/pacat.c:187 #: ../src/utils/pacat.c:188
#, c-format #, c-format
msgid "Connected to device %s (%u, %ssuspended).\n" msgid "Connected to device %s (%u, %ssuspended).\n"
msgstr "Connecté au périphérique %s (%u, %ssuspendu).\n" msgstr "Connecté au périphérique %s (%u, %ssuspendu).\n"
#: ../src/utils/pacat.c:197 #: ../src/utils/pacat.c:198
#, c-format #, c-format
msgid "Stream error: %s\n" msgid "Stream error: %s\n"
msgstr "Erreur du flux : %s\n" msgstr "Erreur du flux : %s\n"
#: ../src/utils/pacat.c:207 #: ../src/utils/pacat.c:208
#, c-format #, c-format
msgid "Stream device suspended.%s \n" msgid "Stream device suspended.%s \n"
msgstr "Périphérique de flux suspendu %s \n" msgstr "Périphérique de flux suspendu %s \n"
#: ../src/utils/pacat.c:209 #: ../src/utils/pacat.c:210
#, c-format #, c-format
msgid "Stream device resumed.%s \n" msgid "Stream device resumed.%s \n"
msgstr "Périphérique de flux repris %s \n" msgstr "Périphérique de flux repris %s \n"
#: ../src/utils/pacat.c:217 #: ../src/utils/pacat.c:218
#, c-format #, c-format
msgid "Stream underrun.%s \n" msgid "Stream underrun.%s \n"
msgstr "Flux vide %s \n" msgstr "Flux vide %s \n"
#: ../src/utils/pacat.c:224 #: ../src/utils/pacat.c:225
#, c-format #, c-format
msgid "Stream overrun.%s \n" msgid "Stream overrun.%s \n"
msgstr "Flux saturé %s \n" msgstr "Flux saturé %s \n"
#: ../src/utils/pacat.c:231 #: ../src/utils/pacat.c:232
#, c-format #, c-format
msgid "Stream started.%s \n" msgid "Stream started.%s \n"
msgstr "Flux démarré %s \n" msgstr "Flux démarré %s \n"
#: ../src/utils/pacat.c:238 #: ../src/utils/pacat.c:239
#, c-format #, c-format
msgid "Stream moved to device %s (%u, %ssuspended).%s \n" msgid "Stream moved to device %s (%u, %ssuspended).%s \n"
msgstr "Flux déplacé vers le périphérique %s (%u, %ssuspendu).%s \n" msgstr "Flux déplacé vers le périphérique %s (%u, %ssuspendu).%s \n"
# suspendu ou non suspendu # suspendu ou non suspendu
#: ../src/utils/pacat.c:238 #: ../src/utils/pacat.c:239
msgid "not " msgid "not "
msgstr "non " msgstr "non "
#: ../src/utils/pacat.c:259 #: ../src/utils/pacat.c:260
#, c-format #, c-format
msgid "Connection established.%s \n" msgid "Connection established.%s \n"
msgstr "Connection établie.%s \n" msgstr "Connection établie.%s \n"
#: ../src/utils/pacat.c:262 #: ../src/utils/pacat.c:263
#, c-format #, c-format
msgid "pa_stream_new() failed: %s\n" msgid "pa_stream_new() failed: %s\n"
msgstr "Échec de pa_stream_new() : %s\n" msgstr "Échec de pa_stream_new() : %s\n"
#: ../src/utils/pacat.c:287 #: ../src/utils/pacat.c:288
#, c-format #, c-format
msgid "pa_stream_connect_playback() failed: %s\n" msgid "pa_stream_connect_playback() failed: %s\n"
msgstr "Échec de pa_stream_connect_playback() : %s\n" msgstr "Échec de pa_stream_connect_playback() : %s\n"
#: ../src/utils/pacat.c:293 #: ../src/utils/pacat.c:294
#, c-format #, c-format
msgid "pa_stream_connect_record() failed: %s\n" msgid "pa_stream_connect_record() failed: %s\n"
msgstr "Échec de pa_stream_connect_record() : %s\n" msgstr "Échec de pa_stream_connect_record() : %s\n"
#: ../src/utils/pacat.c:307 ../src/utils/pasuspender.c:159 #: ../src/utils/pacat.c:308 ../src/utils/pasuspender.c:159
#: ../src/utils/pactl.c:666 ../src/utils/paplay.c:183 #: ../src/utils/pactl.c:666 ../src/utils/paplay.c:183
#, c-format #, c-format
msgid "Connection failure: %s\n" msgid "Connection failure: %s\n"
msgstr "Échec lors de la connexion : %s\n" msgstr "Échec lors de la connexion : %s\n"
#: ../src/utils/pacat.c:328 ../src/utils/paplay.c:75 #: ../src/utils/pacat.c:329 ../src/utils/paplay.c:75
#, c-format #, c-format
msgid "Failed to drain stream: %s\n" msgid "Failed to drain stream: %s\n"
msgstr "Échec lors du vidage du flux : %s\n" msgstr "Échec lors du vidage du flux : %s\n"
#: ../src/utils/pacat.c:333 ../src/utils/paplay.c:80 #: ../src/utils/pacat.c:334 ../src/utils/paplay.c:80
#, c-format #, c-format
msgid "Playback stream drained.\n" msgid "Playback stream drained.\n"
msgstr "Flux de lecture vidé.\n" msgstr "Flux de lecture vidé.\n"
#: ../src/utils/pacat.c:343 ../src/utils/paplay.c:92 #: ../src/utils/pacat.c:344 ../src/utils/paplay.c:92
#, c-format #, c-format
msgid "Draining connection to server.\n" msgid "Draining connection to server.\n"
msgstr "Vidage de la connexion au serveur.\n" msgstr "Vidage de la connexion au serveur.\n"
#: ../src/utils/pacat.c:369 #: ../src/utils/pacat.c:370
#, c-format #, c-format
msgid "Got EOF.\n" msgid "Got EOF.\n"
msgstr "EOF obtenu.\n" msgstr "EOF obtenu.\n"
#: ../src/utils/pacat.c:375 #: ../src/utils/pacat.c:376
#, c-format #, c-format
msgid "pa_stream_drain(): %s\n" msgid "pa_stream_drain(): %s\n"
msgstr "pa_stream_drain() : %s\n" msgstr "pa_stream_drain() : %s\n"
#: ../src/utils/pacat.c:385 #: ../src/utils/pacat.c:386
#, c-format #, c-format
msgid "read() failed: %s\n" msgid "read() failed: %s\n"
msgstr "Échec de read() : %s\n" msgstr "Échec de read() : %s\n"
#: ../src/utils/pacat.c:417 #: ../src/utils/pacat.c:418
#, c-format #, c-format
msgid "write() failed: %s\n" msgid "write() failed: %s\n"
msgstr "Échec de write() : %s\n" msgstr "Échec de write() : %s\n"
#: ../src/utils/pacat.c:438 #: ../src/utils/pacat.c:439
#, c-format #, c-format
msgid "Got signal, exiting.\n" msgid "Got signal, exiting.\n"
msgstr "Signal obtenu, fermeture.\n" msgstr "Signal obtenu, fermeture.\n"
#: ../src/utils/pacat.c:452 #: ../src/utils/pacat.c:453
#, c-format #, c-format
msgid "Failed to get latency: %s\n" msgid "Failed to get latency: %s\n"
msgstr "Échec lors de l'obtention de la latence : %s\n" msgstr "Échec lors de l'obtention de la latence : %s\n"
#: ../src/utils/pacat.c:457 #: ../src/utils/pacat.c:458
#, c-format #, c-format
msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgid "Time: %0.3f sec; Latency: %0.0f usec. \r"
msgstr "Durée : %0.3f s ; Latency : %0.0f µs. \r" msgstr "Durée : %0.3f s ; Latency : %0.0f µs. \r"
#: ../src/utils/pacat.c:477 #: ../src/utils/pacat.c:478
#, c-format #, c-format
msgid "pa_stream_update_timing_info() failed: %s\n" msgid "pa_stream_update_timing_info() failed: %s\n"
msgstr "Échec de pa_stream_update_timing_info() : %s\n" msgstr "Échec de pa_stream_update_timing_info() : %s\n"
@ -1242,8 +1266,8 @@ msgstr "Échec de pa_stream_update_timing_info() : %s\n"
# downmix = par ex. convertir 5 canaux en 2 canaux # downmix = par ex. convertir 5 canaux en 2 canaux
# upmixer = par ex. convertir 2 canaux en 5 canaux # upmixer = par ex. convertir 2 canaux en 5 canaux
# https://bugzilla.redhat.com/show_bug.cgi?id=460798 # https://bugzilla.redhat.com/show_bug.cgi?id=460798
#: ../src/utils/pacat.c:490 #: ../src/utils/pacat.c:491
#, fuzzy, c-format #, c-format
msgid "" msgid ""
"%s [options]\n" "%s [options]\n"
"\n" "\n"
@ -1301,14 +1325,15 @@ msgstr ""
"\n" "\n"
" -r, --record Crée une connexion pour " " -r, --record Crée une connexion pour "
"l'enregistrement\n" "l'enregistrement\n"
" -p, --playback Crée une connexion pour la lecture\n" " -p, --playback Crée une connexion pour la "
"relecture\n"
"\n" "\n"
" -v, --verbose Active le mode verbeux\n" " -v, --verbose Active le mode verbeux\n"
"\n" "\n"
" -s, --server=SERVEUR Le nom du serveur auquel se " " -s, --server=SERVEUR Le nom du serveur auquel se "
"connecter\n" "connecter\n"
" -d, --device=PÉRIPHÉRIQUE Le nom de la destination/source à " " -d, --device=PÉRIPHÉRIQUE Le nom de la destination/source à "
"laquelle de connecter\n" "laquelle se connecter\n"
" -n, --client-name=NOM Définit le nom de ce client sur le " " -n, --client-name=NOM Définit le nom de ce client sur le "
"serveur\n" "serveur\n"
" --stream-name=NOM Définit le nom de ce flux sur le " " --stream-name=NOM Définit le nom de ce flux sur le "
@ -1345,7 +1370,7 @@ msgstr ""
" --process-time=OCTETS Demande le temps de traitement " " --process-time=OCTETS Demande le temps de traitement "
"indiqué par requête en octets.\n" "indiqué par requête en octets.\n"
#: ../src/utils/pacat.c:591 #: ../src/utils/pacat.c:592
#, c-format #, c-format
msgid "" msgid ""
"pacat %s\n" "pacat %s\n"
@ -1356,88 +1381,88 @@ msgstr ""
"Compilé avec libpulse %s\n" "Compilé avec libpulse %s\n"
"Lié avec libpulse %s\n" "Lié avec libpulse %s\n"
#: ../src/utils/pacat.c:647 #: ../src/utils/pacat.c:649
#, c-format #, c-format
msgid "Invalid channel map '%s'\n" msgid "Invalid channel map '%s'\n"
msgstr "Plan des canaux invalide « %s »\n" msgstr "Plan des canaux invalide « %s »\n"
#: ../src/utils/pacat.c:676 #: ../src/utils/pacat.c:678
#, c-format #, c-format
msgid "Invalid latency specification '%s'\n" msgid "Invalid latency specification '%s'\n"
msgstr "Spécification de latence invalide « %s »\n" msgstr "Spécification de latence invalide « %s »\n"
#: ../src/utils/pacat.c:683 #: ../src/utils/pacat.c:685
#, c-format #, c-format
msgid "Invalid process time specification '%s'\n" msgid "Invalid process time specification '%s'\n"
msgstr "Spécification de temps de traitement invalide « %s »\n" msgstr "Spécification de temps de traitement invalide « %s »\n"
#: ../src/utils/pacat.c:694 #: ../src/utils/pacat.c:696
#, c-format #, c-format
msgid "Invalid sample specification\n" msgid "Invalid sample specification\n"
msgstr "Spécification d'échantillon invalide\n" msgstr "Spécification d'échantillon invalide\n"
#: ../src/utils/pacat.c:699 #: ../src/utils/pacat.c:701
#, c-format #, c-format
msgid "Channel map doesn't match sample specification\n" msgid "Channel map doesn't match sample specification\n"
msgstr "" msgstr ""
"Le plan des canaux ne correspond pas à la spécification d'échantillon\n" "Le plan des canaux ne correspond pas à la spécification d'échantillon\n"
#: ../src/utils/pacat.c:706 #: ../src/utils/pacat.c:708
#, c-format #, c-format
msgid "Opening a %s stream with sample specification '%s'.\n" msgid "Opening a %s stream with sample specification '%s'.\n"
msgstr "Ouverture d'un flux %s avec une spécification d'échantillon « %s ».\n" msgstr "Ouverture d'un flux %s avec une spécification d'échantillon « %s ».\n"
#: ../src/utils/pacat.c:706 #: ../src/utils/pacat.c:708
msgid "recording" msgid "recording"
msgstr "enregistrement" msgstr "enregistrement"
#: ../src/utils/pacat.c:706 #: ../src/utils/pacat.c:708
msgid "playback" msgid "playback"
msgstr "lecture" msgstr "lecture"
#: ../src/utils/pacat.c:714 #: ../src/utils/pacat.c:716
#, c-format #, c-format
msgid "open(): %s\n" msgid "open(): %s\n"
msgstr "open() : %s\n" msgstr "open() : %s\n"
#: ../src/utils/pacat.c:719 #: ../src/utils/pacat.c:721
#, c-format #, c-format
msgid "dup2(): %s\n" msgid "dup2(): %s\n"
msgstr "dup2() : %s\n" msgstr "dup2() : %s\n"
#: ../src/utils/pacat.c:729 #: ../src/utils/pacat.c:731
#, c-format #, c-format
msgid "Too many arguments.\n" msgid "Too many arguments.\n"
msgstr "Trop de paramètres.\n" msgstr "Trop de paramètres.\n"
#: ../src/utils/pacat.c:742 ../src/utils/pasuspender.c:280 #: ../src/utils/pacat.c:744 ../src/utils/pasuspender.c:280
#: ../src/utils/pactl.c:909 ../src/utils/paplay.c:381 #: ../src/utils/pactl.c:909 ../src/utils/paplay.c:381
#, c-format #, c-format
msgid "pa_mainloop_new() failed.\n" msgid "pa_mainloop_new() failed.\n"
msgstr "Échec de pa_mainloop_new().\n" msgstr "Échec de pa_mainloop_new().\n"
#: ../src/utils/pacat.c:763 #: ../src/utils/pacat.c:765
#, c-format #, c-format
msgid "io_new() failed.\n" msgid "io_new() failed.\n"
msgstr "Échec de io_new().\n" msgstr "Échec de io_new().\n"
#: ../src/utils/pacat.c:769 ../src/utils/pasuspender.c:293 #: ../src/utils/pacat.c:771 ../src/utils/pasuspender.c:293
#: ../src/utils/pactl.c:923 ../src/utils/paplay.c:396 #: ../src/utils/pactl.c:923 ../src/utils/paplay.c:396
#, c-format #, c-format
msgid "pa_context_new() failed.\n" msgid "pa_context_new() failed.\n"
msgstr "Échec de pa_context_new().\n" msgstr "Échec de pa_context_new().\n"
#: ../src/utils/pacat.c:777 #: ../src/utils/pacat.c:779
#, fuzzy, c-format #, c-format
msgid "pa_context_connect() failed: %s" msgid "pa_context_connect() failed: %s"
msgstr "Échec de pa_context_new().\n" msgstr "Échec de pa_context_connect() : %s"
#: ../src/utils/pacat.c:788 #: ../src/utils/pacat.c:790
#, c-format #, c-format
msgid "time_new() failed.\n" msgid "time_new() failed.\n"
msgstr "Échec de time_new().\n" msgstr "Échec de time_new().\n"
#: ../src/utils/pacat.c:795 ../src/utils/pasuspender.c:301 #: ../src/utils/pacat.c:797 ../src/utils/pasuspender.c:301
#: ../src/utils/pactl.c:931 ../src/utils/paplay.c:407 #: ../src/utils/pactl.c:931 ../src/utils/paplay.c:407
#, c-format #, c-format
msgid "pa_mainloop_run() failed.\n" msgid "pa_mainloop_run() failed.\n"
@ -1757,7 +1782,7 @@ msgid "Failed to get sample information: %s\n"
msgstr "Échec lors de l'obtention des informations de l'échantillon : %s\n" msgstr "Échec lors de l'obtention des informations de l'échantillon : %s\n"
# Lazy ? # Lazy ?
# load-sample-lazy = Create a new entry in the sample cache, but don't load # 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 # the sample immediately. The sample is loaded only when it is first used
#: ../src/utils/pactl.c:455 #: ../src/utils/pactl.c:455
#, c-format #, c-format
@ -2155,7 +2180,7 @@ msgstr "Utilisation de la spécification de l'échantillon « %s »\n"
#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 #: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207
msgid "Cannot access autospawn lock." msgid "Cannot access autospawn lock."
msgstr "" msgstr "Impossible d'accèder au verrou autonome."
#~ msgid "" #~ msgid ""
#~ "' and PolicyKit refuse to grant us priviliges. Dropping SUID again.\n" #~ "' and PolicyKit refuse to grant us priviliges. Dropping SUID again.\n"

1833
po/pa.po Normal file

File diff suppressed because it is too large Load diff

416
po/pl.po
View file

@ -5,23 +5,27 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: pl\n" "Project-Id-Version: pl\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-10-07 21:03+0200\n" "POT-Creation-Date: 2009-01-08 19:36+0100\n"
"PO-Revision-Date: 2008-09-10 22:41+0200\n" "PO-Revision-Date: 2008-12-30 22:55+0100\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n" "Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <pl@li.org>\n" "Language-Team: Polish <pl@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: ../src/daemon/ltdl-bind-now.c:177 ../src/daemon/ltdl-bind-now.c:197 #: ../src/daemon/ltdl-bind-now.c:124
msgid "Failed to find original lt_dlopen loader."
msgstr ""
"Znalezienie oryginalnego programu wczytującego lt_dlopen nie powiodło się."
#: ../src/daemon/ltdl-bind-now.c:129
msgid "Failed to allocate new dl loader."
msgstr "Przydzielenie nowego programu wczytującego dl nie powiodło się."
#: ../src/daemon/ltdl-bind-now.c:142
msgid "Failed to add bind-now-loader." msgid "Failed to add bind-now-loader."
msgstr "Dodanie bind-now-loader nie powiodło się." msgstr "Dodanie bind-now-loader nie powiodło się."
#: ../src/daemon/ltdl-bind-now.c:184
msgid "Failed to find original dlopen loader."
msgstr ""
"Znalezienie oryginalnego programu wczytującego dlopen nie powiodło się."
#: ../src/daemon/polkit.c:55 #: ../src/daemon/polkit.c:55
#, c-format #, c-format
msgid "Cannot connect to system bus: %s" msgid "Cannot connect to system bus: %s"
@ -147,87 +151,87 @@ msgstr "setrlimit(%s, (%u, %u)) nie powiodło się: %s"
msgid "Failed to parse command line." msgid "Failed to parse command line."
msgstr "Analiza wiersza poleceń nie powiodła się." msgstr "Analiza wiersza poleceń nie powiodła się."
#: ../src/daemon/main.c:441 #: ../src/daemon/main.c:447
#, c-format #, c-format
msgid "We're in the group '%s', allowing high-priority scheduling." msgid "We're in the group '%s', allowing high-priority scheduling."
msgstr "" msgstr ""
"Jesteśmy w grupie \"%s\", co umożliwia szeregowanie o wysokim priorytecie." "Jesteśmy w grupie \"%s\", co umożliwia szeregowanie o wysokim priorytecie."
#: ../src/daemon/main.c:448 #: ../src/daemon/main.c:454
#, c-format #, c-format
msgid "We're in the group '%s', allowing real-time scheduling." msgid "We're in the group '%s', allowing real-time scheduling."
msgstr "" msgstr ""
"Jesteśmy w grupie \"%s\", co umożliwia szeregowanie w czasie rzeczywistym." "Jesteśmy w grupie \"%s\", co umożliwia szeregowanie w czasie rzeczywistym."
#: ../src/daemon/main.c:456 #: ../src/daemon/main.c:462
msgid "PolicyKit grants us acquire-high-priority privilege." msgid "PolicyKit grants us acquire-high-priority privilege."
msgstr "PolicyKit nadał uprawnienie \"acquire-high-priority\"." msgstr "PolicyKit nadał uprawnienie \"acquire-high-priority\"."
#: ../src/daemon/main.c:459 #: ../src/daemon/main.c:465
msgid "PolicyKit refuses acquire-high-priority privilege." msgid "PolicyKit refuses acquire-high-priority privilege."
msgstr "PolicyKit odmówił nadania uprawnienia \"acquire-high-priority\"." msgstr "PolicyKit odmówił nadania uprawnienia \"acquire-high-priority\"."
#: ../src/daemon/main.c:464 #: ../src/daemon/main.c:470
msgid "PolicyKit grants us acquire-real-time privilege." msgid "PolicyKit grants us acquire-real-time privilege."
msgstr "PolicyKit nadał uprawnienie \"acquire-real-time\"." msgstr "PolicyKit nadał uprawnienie \"acquire-real-time\"."
#: ../src/daemon/main.c:467 #: ../src/daemon/main.c:473
msgid "PolicyKit refuses acquire-real-time privilege." msgid "PolicyKit refuses acquire-real-time privilege."
msgstr "PolicyKit odmówił nadania uprawnienia \"acquire-real-time\"." msgstr "PolicyKit odmówił nadania uprawnienia \"acquire-real-time\"."
#: ../src/daemon/main.c:479 #: ../src/daemon/main.c:502
msgid "" msgid ""
"Called SUID root and real-time/high-priority scheduling was requested in the " "Called SUID root and real-time and/or high-priority scheduling was requested "
"configuration. However, we lack the necessary priviliges:\n" "in the configuration. However, we lack the necessary privileges:\n"
"We are not in group '" "We are not in group '"
msgstr "" msgstr ""
"Wywołane SUID roota i szeregowanie w czasie rzeczywistym/o wysokim " "Wywołane SUID roota i szeregowanie w czasie rzeczywistym i/lub o wysokim "
"priorytecie zostało zażądane w konfiguracji. Mimo to brak niezbędnych " "priorytecie zostało zażądane w konfiguracji. Mimo to brak niezbędnych "
"uprawnień:\n" "uprawnień:\n"
"Nie jesteśmy w grupie \"" "Nie jesteśmy w grupie \""
#: ../src/daemon/main.c:497 #: ../src/daemon/main.c:526
msgid "" msgid ""
"High-priority scheduling enabled in configuration but not allowed by policy." "High-priority scheduling enabled in configuration but not allowed by policy."
msgstr "" msgstr ""
"Szeregowanie o wysokim priorytecie jest włączone w konfiguracji, ale nie " "Szeregowanie o wysokim priorytecie jest włączone w konfiguracji, ale nie "
"jest zezwolone przez politykę." "jest zezwolone przez politykę."
#: ../src/daemon/main.c:522 #: ../src/daemon/main.c:555
msgid "Successfully increased RLIMIT_RTPRIO" msgid "Successfully increased RLIMIT_RTPRIO"
msgstr "Pomyślnie zwiększono RLIMIT_RTPRIO" msgstr "Pomyślnie zwiększono RLIMIT_RTPRIO"
#: ../src/daemon/main.c:525 #: ../src/daemon/main.c:558
#, c-format #, c-format
msgid "RLIMIT_RTPRIO failed: %s" msgid "RLIMIT_RTPRIO failed: %s"
msgstr "RLIMIT_RTPRIO nie powiodło się: %s" msgstr "RLIMIT_RTPRIO nie powiodło się: %s"
#: ../src/daemon/main.c:532 #: ../src/daemon/main.c:565
msgid "Giving up CAP_NICE" msgid "Giving up CAP_NICE"
msgstr "Oddawanie CAP_NICE" msgstr "Oddawanie CAP_NICE"
#: ../src/daemon/main.c:539 #: ../src/daemon/main.c:572
msgid "" msgid ""
"Real-time scheduling enabled in configuration but not allowed by policy." "Real-time scheduling enabled in configuration but not allowed by policy."
msgstr "" msgstr ""
"Szeregowanie w czasie rzeczywistym jest włączone w konfiguracji, ale nie " "Szeregowanie w czasie rzeczywistym jest włączone w konfiguracji, ale nie "
"jest zezwolone przez politykę." "jest zezwolone przez politykę."
#: ../src/daemon/main.c:597 #: ../src/daemon/main.c:633
msgid "Daemon not running" msgid "Daemon not running"
msgstr "Demon nie jest uruchomiony" msgstr "Demon nie jest uruchomiony"
#: ../src/daemon/main.c:599 #: ../src/daemon/main.c:635
#, c-format #, c-format
msgid "Daemon running as PID %u" msgid "Daemon running as PID %u"
msgstr "Demon jest uruchomiony jako PID %u" msgstr "Demon jest uruchomiony jako PID %u"
#: ../src/daemon/main.c:609 #: ../src/daemon/main.c:645
#, c-format #, c-format
msgid "Failed to kill daemon: %s" msgid "Failed to kill daemon: %s"
msgstr "Zniszczenie demona nie powiodło się: %s" msgstr "Zniszczenie demona nie powiodło się: %s"
#: ../src/daemon/main.c:627 #: ../src/daemon/main.c:663
msgid "" msgid ""
"This program is not intended to be run as root (unless --system is " "This program is not intended to be run as root (unless --system is "
"specified)." "specified)."
@ -235,141 +239,141 @@ msgstr ""
"Ten program nie powinien być uruchomiany jako root (chyba, że podano --" "Ten program nie powinien być uruchomiany jako root (chyba, że podano --"
"system)" "system)"
#: ../src/daemon/main.c:629 #: ../src/daemon/main.c:665
msgid "Root priviliges required." msgid "Root privileges required."
msgstr "Wymagane są uprawnienia roota." msgstr "Wymagane są uprawnienia roota."
#: ../src/daemon/main.c:634 #: ../src/daemon/main.c:670
msgid "--start not supported for system instances." msgid "--start not supported for system instances."
msgstr "--start nie jest obsługiwane przy uruchamianiu systemowym." msgstr "--start nie jest obsługiwane przy uruchamianiu systemowym."
#: ../src/daemon/main.c:639 #: ../src/daemon/main.c:675
msgid "Running in system mode, but --disallow-exit not set!" msgid "Running in system mode, but --disallow-exit not set!"
msgstr "" msgstr ""
"Uruchamianie w trybie systemowym, ale --disallow-exit nie jest ustawione!" "Uruchamianie w trybie systemowym, ale --disallow-exit nie jest ustawione!"
#: ../src/daemon/main.c:642 #: ../src/daemon/main.c:678
msgid "Running in system mode, but --disallow-module-loading not set!" msgid "Running in system mode, but --disallow-module-loading not set!"
msgstr "" msgstr ""
"Uruchamianie w trybie systemowym, ale --disallow-module-loading nie jest " "Uruchamianie w trybie systemowym, ale --disallow-module-loading nie jest "
"ustawione!" "ustawione!"
#: ../src/daemon/main.c:645 #: ../src/daemon/main.c:681
msgid "Running in system mode, forcibly disabling SHM mode!" msgid "Running in system mode, forcibly disabling SHM mode!"
msgstr "Uruchamianie w trybie systemowym, wymuszanie wyłączenia trybu SHM!" msgstr "Uruchamianie w trybie systemowym, wymuszanie wyłączenia trybu SHM!"
#: ../src/daemon/main.c:650 #: ../src/daemon/main.c:686
msgid "Running in system mode, forcibly disabling exit idle time!" msgid "Running in system mode, forcibly disabling exit idle time!"
msgstr "" msgstr ""
"Uruchamianie w trybie systemowym, wymuszanie wyłączenia czasu oczekiwania na " "Uruchamianie w trybie systemowym, wymuszanie wyłączenia czasu oczekiwania na "
"zakończenie!" "zakończenie!"
#: ../src/daemon/main.c:677 #: ../src/daemon/main.c:713
msgid "Failed to acquire stdio." msgid "Failed to acquire stdio."
msgstr "Uzyskanie standardowego wejścia/wyjścia nie powiodło się" msgstr "Uzyskanie standardowego wejścia/wyjścia nie powiodło się"
#: ../src/daemon/main.c:683 #: ../src/daemon/main.c:719
#, c-format #, c-format
msgid "pipe failed: %s" msgid "pipe failed: %s"
msgstr "potok nie powiódł się: %s" msgstr "potok nie powiódł się: %s"
#: ../src/daemon/main.c:688 #: ../src/daemon/main.c:724
#, c-format #, c-format
msgid "fork() failed: %s" msgid "fork() failed: %s"
msgstr "fork() nie powiodło się: %s" msgstr "fork() nie powiodło się: %s"
#: ../src/daemon/main.c:702 #: ../src/daemon/main.c:738
#, c-format #, c-format
msgid "read() failed: %s" msgid "read() failed: %s"
msgstr "read() nie powiodło się: %s" msgstr "read() nie powiodło się: %s"
#: ../src/daemon/main.c:708 #: ../src/daemon/main.c:744
msgid "Daemon startup failed." msgid "Daemon startup failed."
msgstr "Uruchomienie demona nie powiodło się." msgstr "Uruchomienie demona nie powiodło się."
#: ../src/daemon/main.c:710 #: ../src/daemon/main.c:746
msgid "Daemon startup successful." msgid "Daemon startup successful."
msgstr "Pomyślnie uruchomiono demona." msgstr "Pomyślnie uruchomiono demona."
#: ../src/daemon/main.c:780 #: ../src/daemon/main.c:816
#, c-format #, c-format
msgid "This is PulseAudio %s" msgid "This is PulseAudio %s"
msgstr "To jest PulseAudio %s" msgstr "To jest PulseAudio %s"
#: ../src/daemon/main.c:781 #: ../src/daemon/main.c:817
#, c-format #, c-format
msgid "Compilation host: %s" msgid "Compilation host: %s"
msgstr "Komputer kompilacji: %s" msgstr "Komputer kompilacji: %s"
#: ../src/daemon/main.c:782 #: ../src/daemon/main.c:818
#, c-format #, c-format
msgid "Compilation CFLAGS: %s" msgid "Compilation CFLAGS: %s"
msgstr "CFLAGS kompilacji: %s" msgstr "CFLAGS kompilacji: %s"
#: ../src/daemon/main.c:785 #: ../src/daemon/main.c:821
#, c-format #, c-format
msgid "Running on host: %s" msgid "Running on host: %s"
msgstr "Uruchamianie na komputerze: %s" msgstr "Uruchamianie na komputerze: %s"
#: ../src/daemon/main.c:788 #: ../src/daemon/main.c:824
#, c-format #, c-format
msgid "Page size is %lu bytes" msgid "Page size is %lu bytes"
msgstr "Rozmiar strony to %lu bajtów" msgstr "Rozmiar strony to %lu bajtów"
#: ../src/daemon/main.c:791 #: ../src/daemon/main.c:827
msgid "Compiled with Valgrind support: yes" msgid "Compiled with Valgrind support: yes"
msgstr "Skompilowano z obsługą Valgrind: tak" msgstr "Skompilowano z obsługą Valgrind: tak"
#: ../src/daemon/main.c:793 #: ../src/daemon/main.c:829
msgid "Compiled with Valgrind support: no" msgid "Compiled with Valgrind support: no"
msgstr "Skompilowano z obsługą Valgrind: nie" msgstr "Skompilowano z obsługą Valgrind: nie"
#: ../src/daemon/main.c:796 #: ../src/daemon/main.c:832
#, fuzzy, c-format #, c-format
msgid "Running in valgrind mode: %s" msgid "Running in valgrind mode: %s"
msgstr "Uruchamianie w trybie systemowym: %s" msgstr "Uruchamianie w trybie Valgrind: %s"
#: ../src/daemon/main.c:799 #: ../src/daemon/main.c:835
msgid "Optimized build: yes" msgid "Optimized build: yes"
msgstr "Budowanie optymalizowane: tak" msgstr "Budowanie optymalizowane: tak"
#: ../src/daemon/main.c:801 #: ../src/daemon/main.c:837
msgid "Optimized build: no" msgid "Optimized build: no"
msgstr "Budowanie optymalizowane: nie" msgstr "Budowanie optymalizowane: nie"
#: ../src/daemon/main.c:805 #: ../src/daemon/main.c:841
msgid "Failed to get machine ID" msgid "Failed to get machine ID"
msgstr "Uzyskanie identyfikatora komputera nie powiodło się" msgstr "Uzyskanie identyfikatora komputera nie powiodło się"
#: ../src/daemon/main.c:808 #: ../src/daemon/main.c:844
#, c-format #, c-format
msgid "Machine ID is %s." msgid "Machine ID is %s."
msgstr "Identyfikator komputera to %s." msgstr "Identyfikator komputera to %s."
#: ../src/daemon/main.c:813 #: ../src/daemon/main.c:849
#, c-format #, c-format
msgid "Using runtime directory %s." msgid "Using runtime directory %s."
msgstr "Używanie folderu wykonywania %s." msgstr "Używanie folderu wykonywania %s."
#: ../src/daemon/main.c:818 #: ../src/daemon/main.c:854
#, c-format #, c-format
msgid "Using state directory %s." msgid "Using state directory %s."
msgstr "Używanie folderu stanu %s." msgstr "Używanie folderu stanu %s."
#: ../src/daemon/main.c:821 #: ../src/daemon/main.c:857
#, c-format #, c-format
msgid "Running in system mode: %s" msgid "Running in system mode: %s"
msgstr "Uruchamianie w trybie systemowym: %s" msgstr "Uruchamianie w trybie systemowym: %s"
#: ../src/daemon/main.c:836 #: ../src/daemon/main.c:872
msgid "pa_pid_file_create() failed." msgid "pa_pid_file_create() failed."
msgstr "pa_pid_file_create() nie powiodło się." msgstr "pa_pid_file_create() nie powiodło się."
#: ../src/daemon/main.c:848 #: ../src/daemon/main.c:884
msgid "Fresh high-resolution timers available! Bon appetit!" msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr "Świeże zegary o wysokiej rozdzielczości! Smacznego!" msgstr "Świeże zegary o wysokiej rozdzielczości! Smacznego!"
#: ../src/daemon/main.c:850 #: ../src/daemon/main.c:886
msgid "" msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!" "resolution timers enabled!"
@ -377,37 +381,37 @@ msgstr ""
"Koleś, twoje jądro śmierdzi! Szef kuchni poleca dzisiaj Linuksa w włączonymi " "Koleś, twoje jądro śmierdzi! Szef kuchni poleca dzisiaj Linuksa w włączonymi "
"zegarami o wysokiej rozdzielczości!" "zegarami o wysokiej rozdzielczości!"
#: ../src/daemon/main.c:860 #: ../src/daemon/main.c:896
msgid "pa_core_new() failed." msgid "pa_core_new() failed."
msgstr "pa_core_new() nie powiodło się." msgstr "pa_core_new() nie powiodło się."
#: ../src/daemon/main.c:921 #: ../src/daemon/main.c:957
msgid "Failed to initialize daemon." msgid "Failed to initialize daemon."
msgstr "Zainicjowanie demona nie powiodło się." msgstr "Zainicjowanie demona nie powiodło się."
#: ../src/daemon/main.c:926 #: ../src/daemon/main.c:962
msgid "Daemon startup without any loaded modules, refusing to work." msgid "Daemon startup without any loaded modules, refusing to work."
msgstr "Uruchamianie demona bez żadnych wczytanych modułów, odmawianie pracy." msgstr "Uruchamianie demona bez żadnych wczytanych modułów, odmawianie pracy."
#: ../src/daemon/main.c:931 #: ../src/daemon/main.c:967
#, c-format #, c-format
msgid "Default sink name (%s) does not exist in name register." msgid "Default sink name (%s) does not exist in name register."
msgstr "Domyślna nazwa odpływu (%s) nie istnieje w rejestrze nazw." msgstr "Domyślna nazwa odpływu (%s) nie istnieje w rejestrze nazw."
#: ../src/daemon/main.c:944 #: ../src/daemon/main.c:980
msgid "Daemon startup complete." msgid "Daemon startup complete."
msgstr "Zakończono uruchamianie demona." msgstr "Zakończono uruchamianie demona."
#: ../src/daemon/main.c:950 #: ../src/daemon/main.c:986
msgid "Daemon shutdown initiated." msgid "Daemon shutdown initiated."
msgstr "Zainicjowano wyłączenie demona." msgstr "Zainicjowano wyłączenie demona."
#: ../src/daemon/main.c:971 #: ../src/daemon/main.c:1007
msgid "Daemon terminated." msgid "Daemon terminated."
msgstr "Demon został zniszczony." msgstr "Demon został zniszczony."
#: ../src/daemon/cmdline.c:117 #: ../src/daemon/cmdline.c:123
#, c-format #, fuzzy, c-format
msgid "" msgid ""
"%s [options]\n" "%s [options]\n"
"\n" "\n"
@ -422,7 +426,8 @@ msgid ""
" --start Start the daemon if it is not " " --start Start the daemon if it is not "
"running\n" "running\n"
" -k --kill Kill a running daemon\n" " -k --kill Kill a running daemon\n"
" --check Check for a running daemon\n" " --check Check for a running daemon (only "
"returns exit code)\n"
"\n" "\n"
"OPTIONS:\n" "OPTIONS:\n"
" --system[=BOOL] Run as system-wide instance\n" " --system[=BOOL] Run as system-wide instance\n"
@ -452,6 +457,10 @@ msgid ""
" --log-level[=LEVEL] Increase or set verbosity level\n" " --log-level[=LEVEL] Increase or set verbosity level\n"
" -v Increase the verbosity level\n" " -v Increase the verbosity level\n"
" --log-target={auto,syslog,stderr} Specify the log target\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 " " -p, --dl-search-path=PATH Set the search path for dynamic "
"shared\n" "shared\n"
" objects (plugins)\n" " objects (plugins)\n"
@ -482,81 +491,83 @@ msgstr ""
" --dump-conf Zrzuca domyślną konfigurację\n" " --dump-conf Zrzuca domyślną konfigurację\n"
" --dump-modules Zrzuca listę dostępnych modułów\n" " --dump-modules Zrzuca listę dostępnych modułów\n"
" --dump-resample-methods Zrzuca dostępne metody resamplingu\n" " --dump-resample-methods Zrzuca dostępne metody resamplingu\n"
" --cleanup-shm Czyści stare fragmenty pamięci " " --cleanup-shm Czyści stare fragmenty pamięci\n"
"współdzielonej\n" " współdzielonej\n"
" --start Uruchamia demona, jeśli nie jest " " --start Uruchamia demona, jeśli nie jest\n"
"uruchomiony\n" " uruchomiony\n"
" -k --kill Niszczy uruchomionego demona\n" " -k --kill Niszczy uruchomionego demona\n"
" --check Sprawdza, czy demon jest " " --check Sprawdza, czy demon jest\n"
"uruchomiony\n" " uruchomiony\n"
"\n" "\n"
"OPCJE:\n" "OPCJE:\n"
" --system[=ZMIENNALOGICZNA] Uruchamia w trybie systemowym\n" " --system[=ZMIENNALOGICZNA] Uruchamia w trybie systemowym\n"
" -D, --daemonize[=ZMIENNALOGICZNA] Tworzy demona po uruchomieniu\n" " -D, --daemonize[=ZMIENNALOGICZNA] Tworzy demona po uruchomieniu\n"
" --fail[=ZMIENNALOGICZNA] Wyłącza, kiedy uruchomienie nie " " --fail[=ZMIENNALOGICZNA] Wyłącza, kiedy uruchomienie nie\n"
"powiedzie się\n" " powiedzie się\n"
" --high-priority[=ZMIENNALOGICZNA] Próbuje ustawić wysoki poziom nice\n" " --high-priority[=ZMIENNALOGICZNA] Próbuje ustawić wysoki poziom nice\n"
" (dostępne tylko jako root, na SUID " " (dostępne tylko jako root, na SUID\n"
"lub\n" " lub z podniesionym RLIMIT_NICE)\n"
" z podniesionym RLIMIT_NICE)\n" " --realtime[=ZMIENNALOGICZNA] Próbuje ustawić szeregowanie w\n"
" --realtime[=ZMIENNALOGICZNA] Próbuje ustawić szeregowanie w " " czasie rzeczywistym\n"
"czasie rzeczywistym\n" " (dostępne tylko jako root, na SUID\n"
" (dostępne tylko jako root, na SUID " " lub z podniesionym RLIMIT_RTPRIO)\n"
"lub\n" " --disallow-module-loading[=ZMIENNALOGICZNA] Nie zezwala\n"
" z podniesionym RLIMIT_RTPRIO)\n" " użytkownikowi modułu na żądanie\n"
" --disallow-module-loading[=ZMIENNALOGICZNA] Nie zezwala użytkownikowi " " wczytania/usunięcia modułu po\n"
"modułu na\n" " uruchomieniu\n"
" żądanie wczytania/usunięcia modułu " " --disallow-exit[=ZMIENNALOGICZNA] Nie zezwala użytkownikowi na\n"
"po uruchomieniu\n" " żądanie wyłączenia\n"
" --disallow-exit[=ZMIENNALOGICZNA] Nie zezwala użytkownikowi na żądanie " " --exit-idle-time=SEKUNDY Niszczy demona, kiedy jest zajęty i\n"
"wyłączenia\n" " upłynął podany czas\n"
" --exit-idle-time=SEKUNDY Niszczy demona, kiedy jest zajęty i " " --module-idle-time=SEKUNDY Usuwa automatycznie wczytane\n"
"upłynął\n" " moduły, kiedy jest zajęty i upłynął\n"
" ten czas\n" " podany czas\n"
" --module-idle-time=SEKUNDY Usuwa automatycznie wczytane moduły, " " --scache-idle-time=SEKUNDY Usuwa automatycznie wczytane\n"
"kiedy jest\n" " próbki, kiedy jest zajęty i upłynął\n"
" zajęty i upłynął ten czas\n" " podany czas\n"
" --scache-idle-time=SEKUNDY Usuwa automatycznie wczytane próbki, " " --log-level[=POZIOM] Zwiększa lub ustawia poziom\n"
"kiedy jest\n" " wyświetlanych informacji\n"
" zajęty i upłynął ten czas\n" " -v Zwiększa poziom wyświetlanych\n"
" --log-level[=POZIOM] Zwiększa lub ustaw poziom " " informacji\n"
"wyświetlanych informacji\n"
" -v Zwiększa poziom wyświetlanych "
"informacji\n"
" --log-target={auto,syslog,stderr} Określa dziennik docelowy\n" " --log-target={auto,syslog,stderr} Określa dziennik docelowy\n"
" -p, --dl-search-path=ŚCIEŻKA Ustawia ścieżkę wyszukiwania dla " " --log-meta[=ZMIENNALOGICZNA] Dołącza położenie kodu do\n"
"dynamicznie\n" " komunikatów dziennika\n"
" współdzielonych obiektów (wtyczek)\n" " --log-time[=ZMIENNALOGICZNA] Dołącza czas w komunikatach\n"
" dziennika\n"
" --log-backtrace=RAMKI Dołącza błąd w komunikatach\n"
" dziennika\n"
" -p, --dl-search-path=ŚCIEŻKA Ustawia ścieżkę wyszukiwania dla\n"
" dynamicznie współdzielonych\n"
" obiektów (wtyczek)\n"
" --resample-method=METODA Używa podanej metody resamplingu\n" " --resample-method=METODA Używa podanej metody resamplingu\n"
" (zobacz --dump-resample-methods,\n" " (zobacz --dump-resample-methods,\n"
" aby poznać możliwe wartości)\n" " aby poznać możliwe wartości)\n"
" --use-pid-file[=ZMIENNALOGICZNA] Tworzy plik PID\n" " --use-pid-file[=ZMIENNALOGICZNA] Tworzy plik PID\n"
" --no-cpu-limit[=ZMIENNALOGICZNA] Nie instaluje ograniczenia zasobów\n" " --no-cpu-limit[=ZMIENNALOGICZNA] Nie instaluje ograniczenia zasobów\n"
" procesora na obsługujących je " " procesora na obsługujących je\n"
"platformach.\n" " platformach.\n"
" --disable-shm[=ZMIENNALOGICZNA] Wyłącza obsługę pamięci " " --disable-shm[=ZMIENNALOGICZNA] Wyłącza obsługę pamięci\n"
"współdzielonej.\n" " współdzielonej.\n"
"\n" "\n"
"SKRYPT STARTOWY:\n" "SKRYPT STARTOWY:\n"
" -L, --load=\"PARAMETRY MODUŁU\" Wczytuje podany moduł wtyczki z\n" " -L, --load=\"PARAMETRY MODUŁU\" Wczytuje podany moduł wtyczki z\n"
" podanym parametrem\n" " podanym parametrem\n"
" -F, --file=NAZWAPLIKU Wykonuje podany skrypt\n" " -F, --file=NAZWAPLIKU Wykonuje podany skrypt\n"
" -C Otwiera wiersz poleceń na " " -C Otwiera wiersz poleceń na\n"
"uruchomionym TTY\n" " uruchomionym TTY po uruchomieniu\n"
" po uruchomieniu\n"
"\n" "\n"
" -n Nie wczytuje domyślnego pliku " " -n Nie wczytuje domyślnego pliku\n"
"skryptu\n" " skryptu\n"
#: ../src/daemon/cmdline.c:245 #: ../src/daemon/cmdline.c:254
msgid "--daemonize expects boolean argument" msgid "--daemonize expects boolean argument"
msgstr "--daemonize oczekuje parametru w postaci zmiennej logicznej" msgstr "--daemonize oczekuje parametru w postaci zmiennej logicznej"
#: ../src/daemon/cmdline.c:252 #: ../src/daemon/cmdline.c:261
msgid "--fail expects boolean argument" msgid "--fail expects boolean argument"
msgstr "--fail oczekuje parametru w postaci zmiennej logicznej" msgstr "--fail oczekuje parametru w postaci zmiennej logicznej"
#: ../src/daemon/cmdline.c:262 #: ../src/daemon/cmdline.c:271
msgid "" msgid ""
"--log-level expects log level argument (either numeric in range 0..4 or one " "--log-level expects log level argument (either numeric in range 0..4 or one "
"of debug, info, notice, warn, error)." "of debug, info, notice, warn, error)."
@ -564,46 +575,54 @@ msgstr ""
"--log-level oczekuje parametru poziomu dziennika (numeryczny w zakresie 0..4 " "--log-level oczekuje parametru poziomu dziennika (numeryczny w zakresie 0..4 "
"lub jeden z debug, info, notice, warn, error)." "lub jeden z debug, info, notice, warn, error)."
#: ../src/daemon/cmdline.c:274 #: ../src/daemon/cmdline.c:283
msgid "--high-priority expects boolean argument" msgid "--high-priority expects boolean argument"
msgstr "--high-priority oczekuje parametru zmiennej logicznej" msgstr "--high-priority oczekuje parametru zmiennej logicznej"
#: ../src/daemon/cmdline.c:281 #: ../src/daemon/cmdline.c:290
msgid "--realtime expects boolean argument" msgid "--realtime expects boolean argument"
msgstr "-realtime oczekuje parametru zmiennej logicznej" msgstr "-realtime oczekuje parametru zmiennej logicznej"
#: ../src/daemon/cmdline.c:288 #: ../src/daemon/cmdline.c:297
msgid "--disallow-module-loading expects boolean argument" msgid "--disallow-module-loading expects boolean argument"
msgstr "--disallow-module-loading oczekuje parametru zmiennej logicznej" msgstr "--disallow-module-loading oczekuje parametru zmiennej logicznej"
#: ../src/daemon/cmdline.c:295 #: ../src/daemon/cmdline.c:304
msgid "--disallow-exit boolean argument" msgid "--disallow-exit boolean argument"
msgstr "--disallow-exit zmienna logiczna" msgstr "--disallow-exit zmienna logiczna"
#: ../src/daemon/cmdline.c:302 #: ../src/daemon/cmdline.c:311
msgid "--use-pid-file expects boolean argument" msgid "--use-pid-file expects boolean argument"
msgstr "--use-pid-file oczekuje parametru zmiennej logicznej" msgstr "--use-pid-file oczekuje parametru zmiennej logicznej"
#: ../src/daemon/cmdline.c:319 #: ../src/daemon/cmdline.c:328
msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'."
msgstr "" msgstr ""
"Nieprawidłowy dziennik docelowy: należy użyć \"syslog\", \"stderr\" lub " "Nieprawidłowy dziennik docelowy: należy użyć \"syslog\", \"stderr\" lub "
"\"auto\"." "\"auto\"."
#: ../src/daemon/cmdline.c:338 #: ../src/daemon/cmdline.c:335
msgid "--log-time boolean argument"
msgstr "--log-time parametr zmiennej logicznej"
#: ../src/daemon/cmdline.c:342
msgid "--log-meta boolean argument"
msgstr "--log-meta parametr zmiennej logicznej"
#: ../src/daemon/cmdline.c:365
#, c-format #, c-format
msgid "Invalid resample method '%s'." msgid "Invalid resample method '%s'."
msgstr "Nieprawidłowa metoda resamplingu \"%s\"." msgstr "Nieprawidłowa metoda resamplingu \"%s\"."
#: ../src/daemon/cmdline.c:345 #: ../src/daemon/cmdline.c:372
msgid "--system expects boolean argument" msgid "--system expects boolean argument"
msgstr "--system oczekuje parametru zmiennej logicznej" msgstr "--system oczekuje parametru zmiennej logicznej"
#: ../src/daemon/cmdline.c:352 #: ../src/daemon/cmdline.c:379
msgid "--no-cpu-limit expects boolean argument" msgid "--no-cpu-limit expects boolean argument"
msgstr "--no-cpu-limit oczekuje parametru zmiennej logicznej" msgstr "--no-cpu-limit oczekuje parametru zmiennej logicznej"
#: ../src/daemon/cmdline.c:359 #: ../src/daemon/cmdline.c:386
msgid "--disable-shm expects boolean argument" msgid "--disable-shm expects boolean argument"
msgstr "--disable-shm oczekuje parametru zmiennej logicznej" msgstr "--disable-shm oczekuje parametru zmiennej logicznej"
@ -647,73 +666,73 @@ msgstr "Wczytanie jednorazowe: %s\n"
msgid "Path: %s\n" msgid "Path: %s\n"
msgstr "Ścieżka: %s\n" msgstr "Ścieżka: %s\n"
#: ../src/daemon/daemon-conf.c:205 #: ../src/daemon/daemon-conf.c:208
#, c-format #, c-format
msgid "[%s:%u] Invalid log target '%s'." msgid "[%s:%u] Invalid log target '%s'."
msgstr "[%s:%u] Nieprawidłowy dziennik docelowy \"%s\"." msgstr "[%s:%u] Nieprawidłowy dziennik docelowy \"%s\"."
#: ../src/daemon/daemon-conf.c:221 #: ../src/daemon/daemon-conf.c:224
#, c-format #, c-format
msgid "[%s:%u] Invalid log level '%s'." msgid "[%s:%u] Invalid log level '%s'."
msgstr "[%s:%u] Nieprawidłowy poziom dziennika \"%s\"." msgstr "[%s:%u] Nieprawidłowy poziom dziennika \"%s\"."
#: ../src/daemon/daemon-conf.c:237 #: ../src/daemon/daemon-conf.c:240
#, c-format #, c-format
msgid "[%s:%u] Invalid resample method '%s'." msgid "[%s:%u] Invalid resample method '%s'."
msgstr "[%s:%u] Nieprawidłowa metoda resamplingu \"%s\"." msgstr "[%s:%u] Nieprawidłowa metoda resamplingu \"%s\"."
#: ../src/daemon/daemon-conf.c:260 #: ../src/daemon/daemon-conf.c:263
#, c-format #, c-format
msgid "[%s:%u] Invalid rlimit '%s'." msgid "[%s:%u] Invalid rlimit '%s'."
msgstr "[%s:%u] Nieprawidłowy rlimit \"%s\"." msgstr "[%s:%u] Nieprawidłowy rlimit \"%s\"."
#: ../src/daemon/daemon-conf.c:267 #: ../src/daemon/daemon-conf.c:270
#, c-format #, c-format
msgid "[%s:%u] rlimit not supported on this platform." msgid "[%s:%u] rlimit not supported on this platform."
msgstr "[%s:%u] rlimit nie jest obsługiwany na tej platformie." msgstr "[%s:%u] rlimit nie jest obsługiwany na tej platformie."
#: ../src/daemon/daemon-conf.c:283 #: ../src/daemon/daemon-conf.c:286
#, c-format #, c-format
msgid "[%s:%u] Invalid sample format '%s'." msgid "[%s:%u] Invalid sample format '%s'."
msgstr "[%s:%u] Nieprawidłowy format próbki \"%s\"." msgstr "[%s:%u] Nieprawidłowy format próbki \"%s\"."
#: ../src/daemon/daemon-conf.c:301 #: ../src/daemon/daemon-conf.c:304
#, c-format #, c-format
msgid "[%s:%u] Invalid sample rate '%s'." msgid "[%s:%u] Invalid sample rate '%s'."
msgstr "[%s:%u] Nieprawidłowa częstotliwość próbki \"%s\"." msgstr "[%s:%u] Nieprawidłowa częstotliwość próbki \"%s\"."
#: ../src/daemon/daemon-conf.c:319 #: ../src/daemon/daemon-conf.c:322
#, c-format #, c-format
msgid "[%s:%u] Invalid sample channels '%s'." msgid "[%s:%u] Invalid sample channels '%s'."
msgstr "[%s:%u] Nieprawidłowe kanały próbki \"%s\"." msgstr "[%s:%u] Nieprawidłowe kanały próbki \"%s\"."
#: ../src/daemon/daemon-conf.c:337 #: ../src/daemon/daemon-conf.c:340
#, c-format #, c-format
msgid "[%s:%u] Invalid number of fragments '%s'." msgid "[%s:%u] Invalid number of fragments '%s'."
msgstr "[%s:%u] Nieprawidłowa liczba fragmentów \"%s\"." msgstr "[%s:%u] Nieprawidłowa liczba fragmentów \"%s\"."
#: ../src/daemon/daemon-conf.c:355 #: ../src/daemon/daemon-conf.c:358
#, c-format #, c-format
msgid "[%s:%u] Invalid fragment size '%s'." msgid "[%s:%u] Invalid fragment size '%s'."
msgstr "[%s:%u] Nieprawidłowy rozmiar fragmentu \"%s\"." msgstr "[%s:%u] Nieprawidłowy rozmiar fragmentu \"%s\"."
#: ../src/daemon/daemon-conf.c:373 #: ../src/daemon/daemon-conf.c:376
#, c-format #, c-format
msgid "[%s:%u] Invalid nice level '%s'." msgid "[%s:%u] Invalid nice level '%s'."
msgstr "[%s:%u] Nieprawidłowy poziom nice \"%s\"." msgstr "[%s:%u] Nieprawidłowy poziom nice \"%s\"."
#: ../src/daemon/daemon-conf.c:570 #: ../src/daemon/daemon-conf.c:554
#, c-format #, c-format
msgid "Failed to open configuration file: %s" msgid "Failed to open configuration file: %s"
msgstr "Otwarcie pliku konfiguracji nie powiodło się: %s" msgstr "Otwarcie pliku konfiguracji nie powiodło się: %s"
#: ../src/daemon/daemon-conf.c:644 #: ../src/daemon/daemon-conf.c:628
#, c-format #, c-format
msgid "### Read from configuration file: %s ###\n" msgid "### Read from configuration file: %s ###\n"
msgstr "### Odczytano z pliku konfiguracji: %s ###\n" msgstr "### Odczytano z pliku konfiguracji: %s ###\n"
#: ../src/daemon/caps.c:63 #: ../src/daemon/caps.c:63
msgid "Dropping root priviliges." msgid "Dropping root privileges."
msgstr "Porzucanie uprawnień roota." msgstr "Porzucanie uprawnień roota."
#: ../src/daemon/caps.c:103 #: ../src/daemon/caps.c:103
@ -926,9 +945,8 @@ msgstr "Górny tylny prawy"
#: ../src/pulse/channelmap.c:472 ../src/pulse/sample.c:144 #: ../src/pulse/channelmap.c:472 ../src/pulse/sample.c:144
#: ../src/pulse/volume.c:163 ../src/pulse/volume.c:194 #: ../src/pulse/volume.c:163 ../src/pulse/volume.c:194
#, fuzzy
msgid "(invalid)" msgid "(invalid)"
msgstr "Nieprawidłowe" msgstr "(nieprawidłowe)"
#: ../src/pulse/error.c:43 #: ../src/pulse/error.c:43
msgid "OK" msgid "OK"
@ -1050,177 +1068,177 @@ msgstr "waitpid(): %s"
msgid "Received message for unknown extension '%s'" msgid "Received message for unknown extension '%s'"
msgstr "Otrzymano komunikat z nieznanego powodu \"%s\"" msgstr "Otrzymano komunikat z nieznanego powodu \"%s\""
#: ../src/utils/pacat.c:93 #: ../src/utils/pacat.c:94
#, c-format #, c-format
msgid "pa_stream_write() failed: %s\n" msgid "pa_stream_write() failed: %s\n"
msgstr "pa_stream_write() nie powiodło się: %s\n" msgstr "pa_stream_write() nie powiodło się: %s\n"
#: ../src/utils/pacat.c:132 #: ../src/utils/pacat.c:133
#, c-format #, c-format
msgid "pa_stream_peek() failed: %s\n" msgid "pa_stream_peek() failed: %s\n"
msgstr "pa_stream_peek() nie powiodło się: %s\n" msgstr "pa_stream_peek() nie powiodło się: %s\n"
#: ../src/utils/pacat.c:141 #: ../src/utils/pacat.c:142
#, c-format #, c-format
msgid "Buffer overrun, dropping incoming data\n" msgid "Buffer overrun, dropping incoming data\n"
msgstr "Przepełniono bufor, porzucanie danych przychodzących\n" msgstr "Przepełniono bufor, porzucanie danych przychodzących\n"
#: ../src/utils/pacat.c:143 #: ../src/utils/pacat.c:144
#, c-format #, c-format
msgid "pa_stream_drop() failed: %s\n" msgid "pa_stream_drop() failed: %s\n"
msgstr "pa_stream_drop() nie powiodło się: %s\n" msgstr "pa_stream_drop() nie powiodło się: %s\n"
#: ../src/utils/pacat.c:169 #: ../src/utils/pacat.c:170
#, c-format #, c-format
msgid "Stream successfully created.\n" msgid "Stream successfully created.\n"
msgstr "Pomyślnie utworzono strumień.\n" msgstr "Pomyślnie utworzono strumień.\n"
#: ../src/utils/pacat.c:172 #: ../src/utils/pacat.c:173
#, c-format #, c-format
msgid "pa_stream_get_buffer_attr() failed: %s\n" msgid "pa_stream_get_buffer_attr() failed: %s\n"
msgstr "pa_stream_get_buffer_attr() nie powiodło się: %s\n" msgstr "pa_stream_get_buffer_attr() nie powiodło się: %s\n"
#: ../src/utils/pacat.c:176 #: ../src/utils/pacat.c:177
#, c-format #, c-format
msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n"
msgstr "Metryka bufora: 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:180
#, c-format #, c-format
msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgid "Buffer metrics: maxlength=%u, fragsize=%u\n"
msgstr "Metryka bufora: maxlength=%u, fragsize=%u\n" msgstr "Metryka bufora: maxlength=%u, fragsize=%u\n"
#: ../src/utils/pacat.c:183 #: ../src/utils/pacat.c:184
#, c-format #, c-format
msgid "Using sample spec '%s', channel map '%s'.\n" msgid "Using sample spec '%s', channel map '%s'.\n"
msgstr "Używanie przykładowej specyfikacji \"%s\", mapa kanałów \"%s\".\n" msgstr "Używanie przykładowej specyfikacji \"%s\", mapa kanałów \"%s\".\n"
#: ../src/utils/pacat.c:187 #: ../src/utils/pacat.c:188
#, c-format #, c-format
msgid "Connected to device %s (%u, %ssuspended).\n" msgid "Connected to device %s (%u, %ssuspended).\n"
msgstr "Połączono się z urządzeniem %s (%u, %swstrzymane).\n" msgstr "Połączono się z urządzeniem %s (%u, %swstrzymane).\n"
#: ../src/utils/pacat.c:197 #: ../src/utils/pacat.c:198
#, c-format #, c-format
msgid "Stream error: %s\n" msgid "Stream error: %s\n"
msgstr "Błąd strumienia: %s\n" msgstr "Błąd strumienia: %s\n"
#: ../src/utils/pacat.c:207 #: ../src/utils/pacat.c:208
#, c-format #, c-format
msgid "Stream device suspended.%s \n" msgid "Stream device suspended.%s \n"
msgstr "Wstrzymano urządzenie strumienia.%s \n" msgstr "Wstrzymano urządzenie strumienia.%s \n"
#: ../src/utils/pacat.c:209 #: ../src/utils/pacat.c:210
#, c-format #, c-format
msgid "Stream device resumed.%s \n" msgid "Stream device resumed.%s \n"
msgstr "Wznowiono urządzenie strumienia.%s \n" msgstr "Wznowiono urządzenie strumienia.%s \n"
#: ../src/utils/pacat.c:217 #: ../src/utils/pacat.c:218
#, c-format #, c-format
msgid "Stream underrun.%s \n" msgid "Stream underrun.%s \n"
msgstr "Niedopełniono strumień.%s \n" msgstr "Niedopełniono strumień.%s \n"
#: ../src/utils/pacat.c:224 #: ../src/utils/pacat.c:225
#, c-format #, c-format
msgid "Stream overrun.%s \n" msgid "Stream overrun.%s \n"
msgstr "Przepełniono strumień.%s \n" msgstr "Przepełniono strumień.%s \n"
#: ../src/utils/pacat.c:231 #: ../src/utils/pacat.c:232
#, c-format #, c-format
msgid "Stream started.%s \n" msgid "Stream started.%s \n"
msgstr "Utworzono strumień.%s \n" msgstr "Utworzono strumień.%s \n"
#: ../src/utils/pacat.c:238 #: ../src/utils/pacat.c:239
#, c-format #, c-format
msgid "Stream moved to device %s (%u, %ssuspended).%s \n" msgid "Stream moved to device %s (%u, %ssuspended).%s \n"
msgstr "Strumień został przeniesiony do urządzenia %s (%u, %swstrzymane).%s \n" msgstr "Strumień został przeniesiony do urządzenia %s (%u, %swstrzymane).%s \n"
#: ../src/utils/pacat.c:238 #: ../src/utils/pacat.c:239
msgid "not " msgid "not "
msgstr "nie " msgstr "nie "
#: ../src/utils/pacat.c:259 #: ../src/utils/pacat.c:260
#, c-format #, c-format
msgid "Connection established.%s \n" msgid "Connection established.%s \n"
msgstr "Ustanowiono połączenie.%s \n" msgstr "Ustanowiono połączenie.%s \n"
#: ../src/utils/pacat.c:262 #: ../src/utils/pacat.c:263
#, c-format #, c-format
msgid "pa_stream_new() failed: %s\n" msgid "pa_stream_new() failed: %s\n"
msgstr "pa_stream_new() nie powiodło się: %s\n" msgstr "pa_stream_new() nie powiodło się: %s\n"
#: ../src/utils/pacat.c:287 #: ../src/utils/pacat.c:288
#, c-format #, c-format
msgid "pa_stream_connect_playback() failed: %s\n" msgid "pa_stream_connect_playback() failed: %s\n"
msgstr "pa_stream_connect_playback() nie powiodło się: %s\n" msgstr "pa_stream_connect_playback() nie powiodło się: %s\n"
#: ../src/utils/pacat.c:293 #: ../src/utils/pacat.c:294
#, c-format #, c-format
msgid "pa_stream_connect_record() failed: %s\n" msgid "pa_stream_connect_record() failed: %s\n"
msgstr "pa_stream_connect_record() nie powiodło się: %s\n" msgstr "pa_stream_connect_record() nie powiodło się: %s\n"
#: ../src/utils/pacat.c:307 ../src/utils/pasuspender.c:159 #: ../src/utils/pacat.c:308 ../src/utils/pasuspender.c:159
#: ../src/utils/pactl.c:666 ../src/utils/paplay.c:183 #: ../src/utils/pactl.c:666 ../src/utils/paplay.c:183
#, c-format #, c-format
msgid "Connection failure: %s\n" msgid "Connection failure: %s\n"
msgstr "Połączenie nie powiodło się: %s\n" msgstr "Połączenie nie powiodło się: %s\n"
#: ../src/utils/pacat.c:328 ../src/utils/paplay.c:75 #: ../src/utils/pacat.c:329 ../src/utils/paplay.c:75
#, c-format #, c-format
msgid "Failed to drain stream: %s\n" msgid "Failed to drain stream: %s\n"
msgstr "Opróżnienie strumienia nie powiodło się: %s\n" msgstr "Opróżnienie strumienia nie powiodło się: %s\n"
#: ../src/utils/pacat.c:333 ../src/utils/paplay.c:80 #: ../src/utils/pacat.c:334 ../src/utils/paplay.c:80
#, c-format #, c-format
msgid "Playback stream drained.\n" msgid "Playback stream drained.\n"
msgstr "Opróżniono strumień odtwarzania.\n" msgstr "Opróżniono strumień odtwarzania.\n"
#: ../src/utils/pacat.c:343 ../src/utils/paplay.c:92 #: ../src/utils/pacat.c:344 ../src/utils/paplay.c:92
#, c-format #, c-format
msgid "Draining connection to server.\n" msgid "Draining connection to server.\n"
msgstr "Opróżnianie połączenia z serwerem.\n" msgstr "Opróżnianie połączenia z serwerem.\n"
#: ../src/utils/pacat.c:369 #: ../src/utils/pacat.c:370
#, c-format #, c-format
msgid "Got EOF.\n" msgid "Got EOF.\n"
msgstr "Otrzymano EOF.\n" msgstr "Otrzymano EOF.\n"
#: ../src/utils/pacat.c:375 #: ../src/utils/pacat.c:376
#, c-format #, c-format
msgid "pa_stream_drain(): %s\n" msgid "pa_stream_drain(): %s\n"
msgstr "pa_stream_drain(): %s\n" msgstr "pa_stream_drain(): %s\n"
#: ../src/utils/pacat.c:385 #: ../src/utils/pacat.c:386
#, c-format #, c-format
msgid "read() failed: %s\n" msgid "read() failed: %s\n"
msgstr "read() nie powiodło się: %s\n" msgstr "read() nie powiodło się: %s\n"
#: ../src/utils/pacat.c:417 #: ../src/utils/pacat.c:418
#, c-format #, c-format
msgid "write() failed: %s\n" msgid "write() failed: %s\n"
msgstr "write() nie powiodło się: %s\n" msgstr "write() nie powiodło się: %s\n"
#: ../src/utils/pacat.c:438 #: ../src/utils/pacat.c:439
#, c-format #, c-format
msgid "Got signal, exiting.\n" msgid "Got signal, exiting.\n"
msgstr "Otrzymano sygnał, wyłączanie.\n" msgstr "Otrzymano sygnał, wyłączanie.\n"
#: ../src/utils/pacat.c:452 #: ../src/utils/pacat.c:453
#, c-format #, c-format
msgid "Failed to get latency: %s\n" msgid "Failed to get latency: %s\n"
msgstr "Uzyskanie opóźnienia nie powiodło się: %s\n" msgstr "Uzyskanie opóźnienia nie powiodło się: %s\n"
#: ../src/utils/pacat.c:457 #: ../src/utils/pacat.c:458
#, c-format #, c-format
msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgid "Time: %0.3f sec; Latency: %0.0f usec. \r"
msgstr "Czas: %0.3f sekundy; opóźnienie: %0.0f usekundy. \r" msgstr "Czas: %0.3f sekundy; opóźnienie: %0.0f usekundy. \r"
#: ../src/utils/pacat.c:477 #: ../src/utils/pacat.c:478
#, c-format #, c-format
msgid "pa_stream_update_timing_info() failed: %s\n" msgid "pa_stream_update_timing_info() failed: %s\n"
msgstr "pa_stream_update_timing_info() nie powiodło się: %s\n" msgstr "pa_stream_update_timing_info() nie powiodło się: %s\n"
#: ../src/utils/pacat.c:490 #: ../src/utils/pacat.c:491
#, c-format #, c-format
msgid "" msgid ""
"%s [options]\n" "%s [options]\n"
@ -1320,7 +1338,7 @@ msgstr ""
" --process-time=BAJTY Żąda określonego czasu procesu na " " --process-time=BAJTY Żąda określonego czasu procesu na "
"żądanie w bajtach.\n" "żądanie w bajtach.\n"
#: ../src/utils/pacat.c:591 #: ../src/utils/pacat.c:592
#, c-format #, c-format
msgid "" msgid ""
"pacat %s\n" "pacat %s\n"
@ -1331,87 +1349,87 @@ msgstr ""
"Skompilowane za pomocą libpulse %s\n" "Skompilowane za pomocą libpulse %s\n"
"Skonsolidowane za pomocą libpulse %s\n" "Skonsolidowane za pomocą libpulse %s\n"
#: ../src/utils/pacat.c:647 #: ../src/utils/pacat.c:649
#, c-format #, c-format
msgid "Invalid channel map '%s'\n" msgid "Invalid channel map '%s'\n"
msgstr "Nieprawidłowa mapa kanałów \"%s\"\n" msgstr "Nieprawidłowa mapa kanałów \"%s\"\n"
#: ../src/utils/pacat.c:676 #: ../src/utils/pacat.c:678
#, c-format #, c-format
msgid "Invalid latency specification '%s'\n" msgid "Invalid latency specification '%s'\n"
msgstr "Nieprawidłowe określenie opóźnienia \"%s\"\n" msgstr "Nieprawidłowe określenie opóźnienia \"%s\"\n"
#: ../src/utils/pacat.c:683 #: ../src/utils/pacat.c:685
#, c-format #, c-format
msgid "Invalid process time specification '%s'\n" msgid "Invalid process time specification '%s'\n"
msgstr "Nieprawidłowe określenie czasu procesu \"%s\"\n" msgstr "Nieprawidłowe określenie czasu procesu \"%s\"\n"
#: ../src/utils/pacat.c:694 #: ../src/utils/pacat.c:696
#, c-format #, c-format
msgid "Invalid sample specification\n" msgid "Invalid sample specification\n"
msgstr "Nieprawidłowe określenie próbki\n" msgstr "Nieprawidłowe określenie próbki\n"
#: ../src/utils/pacat.c:699 #: ../src/utils/pacat.c:701
#, c-format #, c-format
msgid "Channel map doesn't match sample specification\n" msgid "Channel map doesn't match sample specification\n"
msgstr "Mapa kanałów nie zgadza się z określeniem próbki\n" msgstr "Mapa kanałów nie zgadza się z określeniem próbki\n"
#: ../src/utils/pacat.c:706 #: ../src/utils/pacat.c:708
#, c-format #, c-format
msgid "Opening a %s stream with sample specification '%s'.\n" msgid "Opening a %s stream with sample specification '%s'.\n"
msgstr "Otwieranie strumienia %s za pomocą określenie próbki \"%s\".\n" msgstr "Otwieranie strumienia %s za pomocą określenie próbki \"%s\".\n"
#: ../src/utils/pacat.c:706 #: ../src/utils/pacat.c:708
msgid "recording" msgid "recording"
msgstr "nagrywanie" msgstr "nagrywanie"
#: ../src/utils/pacat.c:706 #: ../src/utils/pacat.c:708
msgid "playback" msgid "playback"
msgstr "odtwarzanie" msgstr "odtwarzanie"
#: ../src/utils/pacat.c:714 #: ../src/utils/pacat.c:716
#, c-format #, c-format
msgid "open(): %s\n" msgid "open(): %s\n"
msgstr "open(): %s\n" msgstr "open(): %s\n"
#: ../src/utils/pacat.c:719 #: ../src/utils/pacat.c:721
#, c-format #, c-format
msgid "dup2(): %s\n" msgid "dup2(): %s\n"
msgstr "dup2(): %s\n" msgstr "dup2(): %s\n"
#: ../src/utils/pacat.c:729 #: ../src/utils/pacat.c:731
#, c-format #, c-format
msgid "Too many arguments.\n" msgid "Too many arguments.\n"
msgstr "Za dużo parametrów.\n" msgstr "Za dużo parametrów.\n"
#: ../src/utils/pacat.c:742 ../src/utils/pasuspender.c:280 #: ../src/utils/pacat.c:744 ../src/utils/pasuspender.c:280
#: ../src/utils/pactl.c:909 ../src/utils/paplay.c:381 #: ../src/utils/pactl.c:909 ../src/utils/paplay.c:381
#, c-format #, c-format
msgid "pa_mainloop_new() failed.\n" msgid "pa_mainloop_new() failed.\n"
msgstr "pa_mainloop_new() nie powiodło się.\n" msgstr "pa_mainloop_new() nie powiodło się.\n"
#: ../src/utils/pacat.c:763 #: ../src/utils/pacat.c:765
#, c-format #, c-format
msgid "io_new() failed.\n" msgid "io_new() failed.\n"
msgstr "io_new() nie powiodło się.\n" msgstr "io_new() nie powiodło się.\n"
#: ../src/utils/pacat.c:769 ../src/utils/pasuspender.c:293 #: ../src/utils/pacat.c:771 ../src/utils/pasuspender.c:293
#: ../src/utils/pactl.c:923 ../src/utils/paplay.c:396 #: ../src/utils/pactl.c:923 ../src/utils/paplay.c:396
#, c-format #, c-format
msgid "pa_context_new() failed.\n" msgid "pa_context_new() failed.\n"
msgstr "pa_context_new() nie powiodło się.\n" msgstr "pa_context_new() nie powiodło się.\n"
#: ../src/utils/pacat.c:777 #: ../src/utils/pacat.c:779
#, c-format #, c-format
msgid "pa_context_connect() failed: %s" msgid "pa_context_connect() failed: %s"
msgstr "pa_context_connect() nie powiodło się: %s" msgstr "pa_context_connect() nie powiodło się: %s"
#: ../src/utils/pacat.c:788 #: ../src/utils/pacat.c:790
#, c-format #, c-format
msgid "time_new() failed.\n" msgid "time_new() failed.\n"
msgstr "time_new() nie powiodło się.\n" msgstr "time_new() nie powiodło się.\n"
#: ../src/utils/pacat.c:795 ../src/utils/pasuspender.c:301 #: ../src/utils/pacat.c:797 ../src/utils/pasuspender.c:301
#: ../src/utils/pactl.c:931 ../src/utils/paplay.c:407 #: ../src/utils/pactl.c:931 ../src/utils/paplay.c:407
#, c-format #, c-format
msgid "pa_mainloop_run() failed.\n" msgid "pa_mainloop_run() failed.\n"

View file

@ -7,9 +7,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: pulseaudio\n" "Project-Id-Version: pulseaudio\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-10-07 21:03+0200\n" "POT-Creation-Date: 2009-01-08 19:36+0100\n"
"PO-Revision-Date: 2008-09-21 17:05-0300\n" "PO-Revision-Date: 2008-11-21 01:21-0300\n"
"Last-Translator: Herli Menezes <herlimenezes@gmail.com>\n" "Last-Translator: Henrique (LonelySpooky) Junior <lspooky@fedoraproject.org>\n"
"Language-Team: Brazilian-Portuguese <fedora-trans-pt_br@redhat.com>\n" "Language-Team: Brazilian-Portuguese <fedora-trans-pt_br@redhat.com>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
@ -18,14 +18,20 @@ msgstr ""
"X-Poedit-Language: Brazilian Portuguese\n" "X-Poedit-Language: Brazilian Portuguese\n"
"X-Poedit-Country: Brazil\n" "X-Poedit-Country: Brazil\n"
#: ../src/daemon/ltdl-bind-now.c:177 ../src/daemon/ltdl-bind-now.c:197 #: ../src/daemon/ltdl-bind-now.c:124
#, fuzzy
msgid "Failed to find original lt_dlopen loader."
msgstr "Falha em encontrar o carregador original dlopen"
#: ../src/daemon/ltdl-bind-now.c:129
#, fuzzy
msgid "Failed to allocate new dl loader."
msgstr "Falha em encontrar o carregador original dlopen"
#: ../src/daemon/ltdl-bind-now.c:142
msgid "Failed to add bind-now-loader." msgid "Failed to add bind-now-loader."
msgstr "Falha em adicionar o bind-now-loader." msgstr "Falha em adicionar o bind-now-loader."
#: ../src/daemon/ltdl-bind-now.c:184
msgid "Failed to find original dlopen loader."
msgstr "Falha em encontrar o carregador original dlopen"
#: ../src/daemon/polkit.c:55 #: ../src/daemon/polkit.c:55
#, c-format #, c-format
msgid "Cannot connect to system bus: %s" msgid "Cannot connect to system bus: %s"
@ -151,36 +157,37 @@ msgstr "setrlimit(%s, (%u, %u)) falhou: %s"
msgid "Failed to parse command line." msgid "Failed to parse command line."
msgstr "Falha em interpretar a linha de comando." msgstr "Falha em interpretar a linha de comando."
#: ../src/daemon/main.c:441 #: ../src/daemon/main.c:447
#, c-format #, c-format
msgid "We're in the group '%s', allowing high-priority scheduling." msgid "We're in the group '%s', allowing high-priority scheduling."
msgstr "Estamos no grupo '%s', permitindo escalonamento de alta prioridade." msgstr "Estamos no grupo '%s', permitindo escalonamento de alta prioridade."
#: ../src/daemon/main.c:448 #: ../src/daemon/main.c:454
#, c-format #, c-format
msgid "We're in the group '%s', allowing real-time scheduling." msgid "We're in the group '%s', allowing real-time scheduling."
msgstr "Estamos no grupo '%s', permitindo escalonamento em tempo real." msgstr "Estamos no grupo '%s', permitindo escalonamento em tempo real."
#: ../src/daemon/main.c:456 #: ../src/daemon/main.c:462
msgid "PolicyKit grants us acquire-high-priority privilege." msgid "PolicyKit grants us acquire-high-priority privilege."
msgstr "O PolicyKit assegura-nos a aquisição de privilégio de alta prioridade." msgstr "O PolicyKit assegura-nos a aquisição de privilégio de alta prioridade."
#: ../src/daemon/main.c:459 #: ../src/daemon/main.c:465
msgid "PolicyKit refuses acquire-high-priority privilege." msgid "PolicyKit refuses acquire-high-priority privilege."
msgstr "O PolicyKit recusa a aquisição de privilégios de alta prioridade." msgstr "O PolicyKit recusa a aquisição de privilégios de alta prioridade."
#: ../src/daemon/main.c:464 #: ../src/daemon/main.c:470
msgid "PolicyKit grants us acquire-real-time privilege." msgid "PolicyKit grants us acquire-real-time privilege."
msgstr "O PolicyKit assegura-nos a aquisição de privilégios de tempo-real." msgstr "O PolicyKit assegura-nos a aquisição de privilégios de tempo-real."
#: ../src/daemon/main.c:467 #: ../src/daemon/main.c:473
msgid "PolicyKit refuses acquire-real-time privilege." msgid "PolicyKit refuses acquire-real-time privilege."
msgstr "O PolicyKit recusa a aquisição de privilégios de tempo real." msgstr "O PolicyKit recusa a aquisição de privilégios de tempo real."
#: ../src/daemon/main.c:479 #: ../src/daemon/main.c:502
#, fuzzy
msgid "" msgid ""
"Called SUID root and real-time/high-priority scheduling was requested in the " "Called SUID root and real-time and/or high-priority scheduling was requested "
"configuration. However, we lack the necessary priviliges:\n" "in the configuration. However, we lack the necessary privileges:\n"
"We are not in group '" "We are not in group '"
msgstr "" msgstr ""
"A chamada de SUID root e tempo real/alta prioridade no escalonamento foi " "A chamada de SUID root e tempo real/alta prioridade no escalonamento foi "
@ -188,48 +195,48 @@ msgstr ""
"necessários:\n" "necessários:\n"
"Não estamos no grupo'" "Não estamos no grupo'"
#: ../src/daemon/main.c:497 #: ../src/daemon/main.c:526
msgid "" msgid ""
"High-priority scheduling enabled in configuration but not allowed by policy." "High-priority scheduling enabled in configuration but not allowed by policy."
msgstr "" msgstr ""
"O escalonamento de alta prioridade foi habilitado para esta configuração, " "O escalonamento de alta prioridade foi habilitado para esta configuração, "
"mas não é permitida pela política." "mas não é permitida pela política."
#: ../src/daemon/main.c:522 #: ../src/daemon/main.c:555
msgid "Successfully increased RLIMIT_RTPRIO" msgid "Successfully increased RLIMIT_RTPRIO"
msgstr "RLIMIT_RTPRIO aumentado com sucesso" msgstr "RLIMIT_RTPRIO aumentado com sucesso"
#: ../src/daemon/main.c:525 #: ../src/daemon/main.c:558
#, c-format #, c-format
msgid "RLIMIT_RTPRIO failed: %s" msgid "RLIMIT_RTPRIO failed: %s"
msgstr "RLIMIT_RTPRIO falhou: %s" msgstr "RLIMIT_RTPRIO falhou: %s"
#: ../src/daemon/main.c:532 #: ../src/daemon/main.c:565
msgid "Giving up CAP_NICE" msgid "Giving up CAP_NICE"
msgstr "Abandonando CAP_NICE" msgstr "Abandonando CAP_NICE"
#: ../src/daemon/main.c:539 #: ../src/daemon/main.c:572
msgid "" msgid ""
"Real-time scheduling enabled in configuration but not allowed by policy." "Real-time scheduling enabled in configuration but not allowed by policy."
msgstr "" msgstr ""
"O escalonamento de tempo real foi habilitado pela configuração, mas não é " "O escalonamento de tempo real foi habilitado pela configuração, mas não é "
"permitido pela política." "permitido pela política."
#: ../src/daemon/main.c:597 #: ../src/daemon/main.c:633
msgid "Daemon not running" msgid "Daemon not running"
msgstr "O daemon não está em execução" msgstr "O daemon não está em execução"
#: ../src/daemon/main.c:599 #: ../src/daemon/main.c:635
#, c-format #, c-format
msgid "Daemon running as PID %u" msgid "Daemon running as PID %u"
msgstr "Daemon executando como PID %u" msgstr "Daemon executando como PID %u"
#: ../src/daemon/main.c:609 #: ../src/daemon/main.c:645
#, c-format #, c-format
msgid "Failed to kill daemon: %s" msgid "Failed to kill daemon: %s"
msgstr "Falha em encerrar o daemon: %s" msgstr "Falha em encerrar o daemon: %s"
#: ../src/daemon/main.c:627 #: ../src/daemon/main.c:663
msgid "" msgid ""
"This program is not intended to be run as root (unless --system is " "This program is not intended to be run as root (unless --system is "
"specified)." "specified)."
@ -237,138 +244,139 @@ msgstr ""
"Este programa não é para ser executado como root (a não ser que --system " "Este programa não é para ser executado como root (a não ser que --system "
"seja especificado)." "seja especificado)."
#: ../src/daemon/main.c:629 #: ../src/daemon/main.c:665
msgid "Root priviliges required." #, fuzzy
msgid "Root privileges required."
msgstr "Privilégios de rot são requeridos." msgstr "Privilégios de rot são requeridos."
#: ../src/daemon/main.c:634 #: ../src/daemon/main.c:670
msgid "--start not supported for system instances." msgid "--start not supported for system instances."
msgstr "--start não tem suporte para instâncias de sistemas." msgstr "--start não tem suporte para instâncias de sistemas."
#: ../src/daemon/main.c:639 #: ../src/daemon/main.c:675
msgid "Running in system mode, but --disallow-exit not set!" msgid "Running in system mode, but --disallow-exit not set!"
msgstr "Executando em no modo system, mas --disallow-exit não foi configurado!" msgstr "Executando em no modo system, mas --disallow-exit não foi configurado!"
#: ../src/daemon/main.c:642 #: ../src/daemon/main.c:678
msgid "Running in system mode, but --disallow-module-loading not set!" msgid "Running in system mode, but --disallow-module-loading not set!"
msgstr "" msgstr ""
"Executando no modo system, mas --disallow-module-loading não foi configurado!" "Executando no modo system, mas --disallow-module-loading não foi configurado!"
#: ../src/daemon/main.c:645 #: ../src/daemon/main.c:681
msgid "Running in system mode, forcibly disabling SHM mode!" msgid "Running in system mode, forcibly disabling SHM mode!"
msgstr "Executando no modo system, desabilitando forçadamente o modo SHM!" msgstr "Executando no modo system, desabilitando forçadamente o modo SHM!"
#: ../src/daemon/main.c:650 #: ../src/daemon/main.c:686
msgid "Running in system mode, forcibly disabling exit idle time!" msgid "Running in system mode, forcibly disabling exit idle time!"
msgstr "" msgstr ""
"Executando no modo system, desabilitando forçadamente o exit idle time!" "Executando no modo system, desabilitando forçadamente o exit idle time!"
#: ../src/daemon/main.c:677 #: ../src/daemon/main.c:713
msgid "Failed to acquire stdio." msgid "Failed to acquire stdio."
msgstr "Falha em adquirir o stdio." msgstr "Falha em adquirir o stdio."
#: ../src/daemon/main.c:683 #: ../src/daemon/main.c:719
#, c-format #, c-format
msgid "pipe failed: %s" msgid "pipe failed: %s"
msgstr "O pipe falhou: %s" msgstr "O pipe falhou: %s"
#: ../src/daemon/main.c:688 #: ../src/daemon/main.c:724
#, c-format #, c-format
msgid "fork() failed: %s" msgid "fork() failed: %s"
msgstr "O fork() falhou: %s" msgstr "O fork() falhou: %s"
#: ../src/daemon/main.c:702 #: ../src/daemon/main.c:738
#, c-format #, c-format
msgid "read() failed: %s" msgid "read() failed: %s"
msgstr "A operação read() falhou: %s" msgstr "A operação read() falhou: %s"
#: ../src/daemon/main.c:708 #: ../src/daemon/main.c:744
msgid "Daemon startup failed." msgid "Daemon startup failed."
msgstr "Falha na partida do daemon." msgstr "Falha na partida do daemon."
#: ../src/daemon/main.c:710 #: ../src/daemon/main.c:746
msgid "Daemon startup successful." msgid "Daemon startup successful."
msgstr "Os daemons foram iniciados com sucesso." msgstr "Os daemons foram iniciados com sucesso."
#: ../src/daemon/main.c:780 #: ../src/daemon/main.c:816
#, c-format #, c-format
msgid "This is PulseAudio %s" msgid "This is PulseAudio %s"
msgstr "Este é o PulseAudio %s" msgstr "Este é o PulseAudio %s"
#: ../src/daemon/main.c:781 #: ../src/daemon/main.c:817
#, c-format #, c-format
msgid "Compilation host: %s" msgid "Compilation host: %s"
msgstr "Host de compilação: %s" msgstr "Host de compilação: %s"
#: ../src/daemon/main.c:782 #: ../src/daemon/main.c:818
#, c-format #, c-format
msgid "Compilation CFLAGS: %s" msgid "Compilation CFLAGS: %s"
msgstr "Compilação CFLAGS: %s" msgstr "Compilação CFLAGS: %s"
#: ../src/daemon/main.c:785 #: ../src/daemon/main.c:821
#, c-format #, c-format
msgid "Running on host: %s" msgid "Running on host: %s"
msgstr "Executando no host: %s" msgstr "Executando no host: %s"
#: ../src/daemon/main.c:788 #: ../src/daemon/main.c:824
#, c-format #, c-format
msgid "Page size is %lu bytes" msgid "Page size is %lu bytes"
msgstr "O tamanho da página é %lu bytes" msgstr "O tamanho da página é %lu bytes"
#: ../src/daemon/main.c:791 #: ../src/daemon/main.c:827
msgid "Compiled with Valgrind support: yes" msgid "Compiled with Valgrind support: yes"
msgstr "Compilado com suporte do Valgrind: sim" msgstr "Compilado com suporte do Valgrind: sim"
#: ../src/daemon/main.c:793 #: ../src/daemon/main.c:829
msgid "Compiled with Valgrind support: no" msgid "Compiled with Valgrind support: no"
msgstr "Compilado com suporte do Valgrind: não" msgstr "Compilado com suporte do Valgrind: não"
#: ../src/daemon/main.c:796 #: ../src/daemon/main.c:832
#, fuzzy, c-format #, c-format
msgid "Running in valgrind mode: %s" msgid "Running in valgrind mode: %s"
msgstr "Executando em modo do sistema: %s" msgstr "Executando em modo valgrind: %s"
#: ../src/daemon/main.c:799 #: ../src/daemon/main.c:835
msgid "Optimized build: yes" msgid "Optimized build: yes"
msgstr "Build otimizado: sim" msgstr "Build otimizado: sim"
#: ../src/daemon/main.c:801 #: ../src/daemon/main.c:837
msgid "Optimized build: no" msgid "Optimized build: no"
msgstr "Build otimizado: não" msgstr "Build otimizado: não"
#: ../src/daemon/main.c:805 #: ../src/daemon/main.c:841
msgid "Failed to get machine ID" msgid "Failed to get machine ID"
msgstr "Falha em obter o ID da máquina" msgstr "Falha em obter o ID da máquina"
#: ../src/daemon/main.c:808 #: ../src/daemon/main.c:844
#, c-format #, c-format
msgid "Machine ID is %s." msgid "Machine ID is %s."
msgstr "A ID da máquina é %s." msgstr "A ID da máquina é %s."
#: ../src/daemon/main.c:813 #: ../src/daemon/main.c:849
#, c-format #, c-format
msgid "Using runtime directory %s." msgid "Using runtime directory %s."
msgstr "Usando o diretório de runtime %s." msgstr "Usando o diretório de runtime %s."
#: ../src/daemon/main.c:818 #: ../src/daemon/main.c:854
#, c-format #, c-format
msgid "Using state directory %s." msgid "Using state directory %s."
msgstr "Usando o diretório de estado %s." msgstr "Usando o diretório de estado %s."
#: ../src/daemon/main.c:821 #: ../src/daemon/main.c:857
#, c-format #, c-format
msgid "Running in system mode: %s" msgid "Running in system mode: %s"
msgstr "Executando em modo do sistema: %s" msgstr "Executando em modo do sistema: %s"
#: ../src/daemon/main.c:836 #: ../src/daemon/main.c:872
msgid "pa_pid_file_create() failed." msgid "pa_pid_file_create() failed."
msgstr "pa_pid_file_create() falhou." msgstr "pa_pid_file_create() falhou."
#: ../src/daemon/main.c:848 #: ../src/daemon/main.c:884
msgid "Fresh high-resolution timers available! Bon appetit!" msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr "Timers de alta resolução frequinhos disponíveis! Bon appetit!" msgstr "Timers de alta resolução frequinhos disponíveis! Bon appetit!"
#: ../src/daemon/main.c:850 #: ../src/daemon/main.c:886
msgid "" msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!" "resolution timers enabled!"
@ -376,38 +384,38 @@ msgstr ""
"Cara, teu kernel fede! A recomendação do chef hoje é Linux com timers de " "Cara, teu kernel fede! A recomendação do chef hoje é Linux com timers de "
"alta resolução habilitados!" "alta resolução habilitados!"
#: ../src/daemon/main.c:860 #: ../src/daemon/main.c:896
msgid "pa_core_new() failed." msgid "pa_core_new() failed."
msgstr "pa_core_new() falhou." msgstr "pa_core_new() falhou."
#: ../src/daemon/main.c:921 #: ../src/daemon/main.c:957
msgid "Failed to initialize daemon." msgid "Failed to initialize daemon."
msgstr "Falha em iniciar o daemon." msgstr "Falha em iniciar o daemon."
#: ../src/daemon/main.c:926 #: ../src/daemon/main.c:962
msgid "Daemon startup without any loaded modules, refusing to work." msgid "Daemon startup without any loaded modules, refusing to work."
msgstr "" msgstr ""
"O Daemon iniciou sem qualquer módulo carregado, recusando-se a trabalhar." "O Daemon iniciou sem qualquer módulo carregado, recusando-se a trabalhar."
#: ../src/daemon/main.c:931 #: ../src/daemon/main.c:967
#, c-format #, c-format
msgid "Default sink name (%s) does not exist in name register." msgid "Default sink name (%s) does not exist in name register."
msgstr "O nome padrão do destino (%s) não existe no registro de nomes." msgstr "O nome padrão do destino (%s) não existe no registro de nomes."
#: ../src/daemon/main.c:944 #: ../src/daemon/main.c:980
msgid "Daemon startup complete." msgid "Daemon startup complete."
msgstr "A partida dos Daemon está completa." msgstr "A partida dos Daemon está completa."
#: ../src/daemon/main.c:950 #: ../src/daemon/main.c:986
msgid "Daemon shutdown initiated." msgid "Daemon shutdown initiated."
msgstr "O encerramento do Daemon foi iniciado." msgstr "O encerramento do Daemon foi iniciado."
#: ../src/daemon/main.c:971 #: ../src/daemon/main.c:1007
msgid "Daemon terminated." msgid "Daemon terminated."
msgstr "Daemon terminado." msgstr "Daemon terminado."
#: ../src/daemon/cmdline.c:117 #: ../src/daemon/cmdline.c:123
#, c-format #, fuzzy, c-format
msgid "" msgid ""
"%s [options]\n" "%s [options]\n"
"\n" "\n"
@ -422,7 +430,8 @@ msgid ""
" --start Start the daemon if it is not " " --start Start the daemon if it is not "
"running\n" "running\n"
" -k --kill Kill a running daemon\n" " -k --kill Kill a running daemon\n"
" --check Check for a running daemon\n" " --check Check for a running daemon (only "
"returns exit code)\n"
"\n" "\n"
"OPTIONS:\n" "OPTIONS:\n"
" --system[=BOOL] Run as system-wide instance\n" " --system[=BOOL] Run as system-wide instance\n"
@ -452,6 +461,10 @@ msgid ""
" --log-level[=LEVEL] Increase or set verbosity level\n" " --log-level[=LEVEL] Increase or set verbosity level\n"
" -v Increase the verbosity level\n" " -v Increase the verbosity level\n"
" --log-target={auto,syslog,stderr} Specify the log target\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 " " -p, --dl-search-path=PATH Set the search path for dynamic "
"shared\n" "shared\n"
" objects (plugins)\n" " objects (plugins)\n"
@ -549,15 +562,15 @@ msgstr ""
" -n Não carrega o arquivo de script " " -n Não carrega o arquivo de script "
"padrão\n" "padrão\n"
#: ../src/daemon/cmdline.c:245 #: ../src/daemon/cmdline.c:254
msgid "--daemonize expects boolean argument" msgid "--daemonize expects boolean argument"
msgstr "--daemonize espera argumento booleano" msgstr "--daemonize espera argumento booleano"
#: ../src/daemon/cmdline.c:252 #: ../src/daemon/cmdline.c:261
msgid "--fail expects boolean argument" msgid "--fail expects boolean argument"
msgstr "--fail espera argumento booleano" msgstr "--fail espera argumento booleano"
#: ../src/daemon/cmdline.c:262 #: ../src/daemon/cmdline.c:271
msgid "" msgid ""
"--log-level expects log level argument (either numeric in range 0..4 or one " "--log-level expects log level argument (either numeric in range 0..4 or one "
"of debug, info, notice, warn, error)." "of debug, info, notice, warn, error)."
@ -565,44 +578,54 @@ msgstr ""
"--log-level espera um argumento em nível de log (seja numérico na faixa de " "--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)." "0..4 seja algum entre debug, info, notice, warn, error)."
#: ../src/daemon/cmdline.c:274 #: ../src/daemon/cmdline.c:283
msgid "--high-priority expects boolean argument" msgid "--high-priority expects boolean argument"
msgstr "--high-priority espera um argumento booleano" msgstr "--high-priority espera um argumento booleano"
#: ../src/daemon/cmdline.c:281 #: ../src/daemon/cmdline.c:290
msgid "--realtime expects boolean argument" msgid "--realtime expects boolean argument"
msgstr "--realtime espera um argumento booleano" msgstr "--realtime espera um argumento booleano"
#: ../src/daemon/cmdline.c:288 #: ../src/daemon/cmdline.c:297
msgid "--disallow-module-loading expects boolean argument" msgid "--disallow-module-loading expects boolean argument"
msgstr "--disallow-module-loading espera um argumento booleano" msgstr "--disallow-module-loading espera um argumento booleano"
#: ../src/daemon/cmdline.c:295 #: ../src/daemon/cmdline.c:304
msgid "--disallow-exit boolean argument" msgid "--disallow-exit boolean argument"
msgstr "--disallow-exit argumento booleano" msgstr "--disallow-exit argumento booleano"
#: ../src/daemon/cmdline.c:302 #: ../src/daemon/cmdline.c:311
msgid "--use-pid-file expects boolean argument" msgid "--use-pid-file expects boolean argument"
msgstr "--use-pid-file espera argumento booleano" msgstr "--use-pid-file espera argumento booleano"
#: ../src/daemon/cmdline.c:319 #: ../src/daemon/cmdline.c:328
msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'."
msgstr "Log target inválido: use 'syslog', 'stderr' ou 'auto'." msgstr "Log target inválido: use 'syslog', 'stderr' ou 'auto'."
#: ../src/daemon/cmdline.c:338 #: ../src/daemon/cmdline.c:335
#, fuzzy
msgid "--log-time boolean argument"
msgstr "--disallow-exit argumento booleano"
#: ../src/daemon/cmdline.c:342
#, fuzzy
msgid "--log-meta boolean argument"
msgstr "--disallow-exit argumento booleano"
#: ../src/daemon/cmdline.c:365
#, c-format #, c-format
msgid "Invalid resample method '%s'." msgid "Invalid resample method '%s'."
msgstr "Método de reamostragem inválido '%s'." msgstr "Método de reamostragem inválido '%s'."
#: ../src/daemon/cmdline.c:345 #: ../src/daemon/cmdline.c:372
msgid "--system expects boolean argument" msgid "--system expects boolean argument"
msgstr "--system espera argumento booleano" msgstr "--system espera argumento booleano"
#: ../src/daemon/cmdline.c:352 #: ../src/daemon/cmdline.c:379
msgid "--no-cpu-limit expects boolean argument" msgid "--no-cpu-limit expects boolean argument"
msgstr "--no-cpu-limit espera argumento booleano" msgstr "--no-cpu-limit espera argumento booleano"
#: ../src/daemon/cmdline.c:359 #: ../src/daemon/cmdline.c:386
msgid "--disable-shm expects boolean argument" msgid "--disable-shm expects boolean argument"
msgstr "--disable-shm espera argumento booleano" msgstr "--disable-shm espera argumento booleano"
@ -646,73 +669,74 @@ msgstr "Carrega uma vez: %s\n"
msgid "Path: %s\n" msgid "Path: %s\n"
msgstr "Caminho: %s\n" msgstr "Caminho: %s\n"
#: ../src/daemon/daemon-conf.c:205 #: ../src/daemon/daemon-conf.c:208
#, c-format #, c-format
msgid "[%s:%u] Invalid log target '%s'." msgid "[%s:%u] Invalid log target '%s'."
msgstr "[%s:%u] Alvo do log inválido '%s'." msgstr "[%s:%u] Alvo do log inválido '%s'."
#: ../src/daemon/daemon-conf.c:221 #: ../src/daemon/daemon-conf.c:224
#, c-format #, c-format
msgid "[%s:%u] Invalid log level '%s'." msgid "[%s:%u] Invalid log level '%s'."
msgstr "[%s:%u] Nível de log inválido '%s'." msgstr "[%s:%u] Nível de log inválido '%s'."
#: ../src/daemon/daemon-conf.c:237 #: ../src/daemon/daemon-conf.c:240
#, c-format #, c-format
msgid "[%s:%u] Invalid resample method '%s'." msgid "[%s:%u] Invalid resample method '%s'."
msgstr "[%s:%u] Método de reamostragem inválido '%s'." msgstr "[%s:%u] Método de reamostragem inválido '%s'."
#: ../src/daemon/daemon-conf.c:260 #: ../src/daemon/daemon-conf.c:263
#, c-format #, c-format
msgid "[%s:%u] Invalid rlimit '%s'." msgid "[%s:%u] Invalid rlimit '%s'."
msgstr "[%s:%u] rlimit inválido '%s'." msgstr "[%s:%u] rlimit inválido '%s'."
#: ../src/daemon/daemon-conf.c:267 #: ../src/daemon/daemon-conf.c:270
#, c-format #, c-format
msgid "[%s:%u] rlimit not supported on this platform." msgid "[%s:%u] rlimit not supported on this platform."
msgstr "[%s:%u] rlimit não tem suporte nessa plataforma." msgstr "[%s:%u] rlimit não tem suporte nessa plataforma."
#: ../src/daemon/daemon-conf.c:283 #: ../src/daemon/daemon-conf.c:286
#, c-format #, c-format
msgid "[%s:%u] Invalid sample format '%s'." msgid "[%s:%u] Invalid sample format '%s'."
msgstr "[%s:%u] Formato de amostragem inválido '%s'." msgstr "[%s:%u] Formato de amostragem inválido '%s'."
#: ../src/daemon/daemon-conf.c:301 #: ../src/daemon/daemon-conf.c:304
#, c-format #, c-format
msgid "[%s:%u] Invalid sample rate '%s'." msgid "[%s:%u] Invalid sample rate '%s'."
msgstr "[%s:%u] Taxa de amostragem inválida '%s'." msgstr "[%s:%u] Taxa de amostragem inválida '%s'."
#: ../src/daemon/daemon-conf.c:319 #: ../src/daemon/daemon-conf.c:322
#, c-format #, c-format
msgid "[%s:%u] Invalid sample channels '%s'." msgid "[%s:%u] Invalid sample channels '%s'."
msgstr "[%s:%u] Canais de amostragem inválidos'%s'." msgstr "[%s:%u] Canais de amostragem inválidos'%s'."
#: ../src/daemon/daemon-conf.c:337 #: ../src/daemon/daemon-conf.c:340
#, c-format #, c-format
msgid "[%s:%u] Invalid number of fragments '%s'." msgid "[%s:%u] Invalid number of fragments '%s'."
msgstr "[%s:%u] Números de fragmentos inválidos '%s'." msgstr "[%s:%u] Números de fragmentos inválidos '%s'."
#: ../src/daemon/daemon-conf.c:355 #: ../src/daemon/daemon-conf.c:358
#, c-format #, c-format
msgid "[%s:%u] Invalid fragment size '%s'." msgid "[%s:%u] Invalid fragment size '%s'."
msgstr "[%s:%u] Tamanho de fragmentos inválido '%s'." msgstr "[%s:%u] Tamanho de fragmentos inválido '%s'."
#: ../src/daemon/daemon-conf.c:373 #: ../src/daemon/daemon-conf.c:376
#, c-format #, c-format
msgid "[%s:%u] Invalid nice level '%s'." msgid "[%s:%u] Invalid nice level '%s'."
msgstr "[%s:%u] Número de nice inválido'%s'." msgstr "[%s:%u] Número de nice inválido'%s'."
#: ../src/daemon/daemon-conf.c:570 #: ../src/daemon/daemon-conf.c:554
#, c-format #, c-format
msgid "Failed to open configuration file: %s" msgid "Failed to open configuration file: %s"
msgstr "Falha em abrir o arquivo de configuração: %s" msgstr "Falha em abrir o arquivo de configuração: %s"
#: ../src/daemon/daemon-conf.c:644 #: ../src/daemon/daemon-conf.c:628
#, c-format #, c-format
msgid "### Read from configuration file: %s ###\n" msgid "### Read from configuration file: %s ###\n"
msgstr "### Lido do arquivo de configuração: %s ###\n" msgstr "### Lido do arquivo de configuração: %s ###\n"
#: ../src/daemon/caps.c:63 #: ../src/daemon/caps.c:63
msgid "Dropping root priviliges." #, fuzzy
msgid "Dropping root privileges."
msgstr "Descartando os privilégios de root." msgstr "Descartando os privilégios de root."
#: ../src/daemon/caps.c:103 #: ../src/daemon/caps.c:103
@ -925,9 +949,8 @@ msgstr "Posterior Superior Direito"
#: ../src/pulse/channelmap.c:472 ../src/pulse/sample.c:144 #: ../src/pulse/channelmap.c:472 ../src/pulse/sample.c:144
#: ../src/pulse/volume.c:163 ../src/pulse/volume.c:194 #: ../src/pulse/volume.c:163 ../src/pulse/volume.c:194
#, fuzzy
msgid "(invalid)" msgid "(invalid)"
msgstr "Inválido" msgstr "(Inválido)"
#: ../src/pulse/error.c:43 #: ../src/pulse/error.c:43
msgid "OK" msgid "OK"
@ -1049,177 +1072,177 @@ msgstr "waitpid(): %s"
msgid "Received message for unknown extension '%s'" msgid "Received message for unknown extension '%s'"
msgstr "Foi recebida uma mensagem para uma extensão desconhecida '%s'" msgstr "Foi recebida uma mensagem para uma extensão desconhecida '%s'"
#: ../src/utils/pacat.c:93 #: ../src/utils/pacat.c:94
#, c-format #, c-format
msgid "pa_stream_write() failed: %s\n" msgid "pa_stream_write() failed: %s\n"
msgstr "pa_stream_write() falhou: %s\n" msgstr "pa_stream_write() falhou: %s\n"
#: ../src/utils/pacat.c:132 #: ../src/utils/pacat.c:133
#, c-format #, c-format
msgid "pa_stream_peek() failed: %s\n" msgid "pa_stream_peek() failed: %s\n"
msgstr "pa_stream_peek() falhou: %s\n" msgstr "pa_stream_peek() falhou: %s\n"
#: ../src/utils/pacat.c:141 #: ../src/utils/pacat.c:142
#, c-format #, c-format
msgid "Buffer overrun, dropping incoming data\n" msgid "Buffer overrun, dropping incoming data\n"
msgstr "Houve estouro de buffer, os dados que chegaram foram descartados\n" msgstr "Houve estouro de buffer, os dados que chegaram foram descartados\n"
#: ../src/utils/pacat.c:143 #: ../src/utils/pacat.c:144
#, c-format #, c-format
msgid "pa_stream_drop() failed: %s\n" msgid "pa_stream_drop() failed: %s\n"
msgstr "pa_stream_drop() falhou: %s\n" msgstr "pa_stream_drop() falhou: %s\n"
#: ../src/utils/pacat.c:169 #: ../src/utils/pacat.c:170
#, c-format #, c-format
msgid "Stream successfully created.\n" msgid "Stream successfully created.\n"
msgstr "O fluxo (stream) foi criado com sucesso.\n" msgstr "O fluxo (stream) foi criado com sucesso.\n"
#: ../src/utils/pacat.c:172 #: ../src/utils/pacat.c:173
#, c-format #, c-format
msgid "pa_stream_get_buffer_attr() failed: %s\n" msgid "pa_stream_get_buffer_attr() failed: %s\n"
msgstr "pa_stream_get_buffer_attr() falhou: %s\n" msgstr "pa_stream_get_buffer_attr() falhou: %s\n"
#: ../src/utils/pacat.c:176 #: ../src/utils/pacat.c:177
#, c-format #, c-format
msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n"
msgstr "Metrica do buffer: 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:180
#, c-format #, c-format
msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgid "Buffer metrics: maxlength=%u, fragsize=%u\n"
msgstr "Métrica do buffer: maxlength=%u, fragsize=%u\n" msgstr "Métrica do buffer: maxlength=%u, fragsize=%u\n"
#: ../src/utils/pacat.c:183 #: ../src/utils/pacat.c:184
#, c-format #, c-format
msgid "Using sample spec '%s', channel map '%s'.\n" msgid "Using sample spec '%s', channel map '%s'.\n"
msgstr "Usando a espeficifação de amostragem '%s', mapa do canal '%s'.\n" msgstr "Usando a espeficifação de amostragem '%s', mapa do canal '%s'.\n"
#: ../src/utils/pacat.c:187 #: ../src/utils/pacat.c:188
#, c-format #, c-format
msgid "Connected to device %s (%u, %ssuspended).\n" msgid "Connected to device %s (%u, %ssuspended).\n"
msgstr "Conectado ao dispositivo %s (%u, %ssuspended).\n" msgstr "Conectado ao dispositivo %s (%u, %ssuspended).\n"
#: ../src/utils/pacat.c:197 #: ../src/utils/pacat.c:198
#, c-format #, c-format
msgid "Stream error: %s\n" msgid "Stream error: %s\n"
msgstr "Erro de fluxo: %s\n" msgstr "Erro de fluxo: %s\n"
#: ../src/utils/pacat.c:207 #: ../src/utils/pacat.c:208
#, c-format #, c-format
msgid "Stream device suspended.%s \n" msgid "Stream device suspended.%s \n"
msgstr "Dispositivo de fluxo suspenso.%s \n" msgstr "Dispositivo de fluxo suspenso.%s \n"
#: ../src/utils/pacat.c:209 #: ../src/utils/pacat.c:210
#, c-format #, c-format
msgid "Stream device resumed.%s \n" msgid "Stream device resumed.%s \n"
msgstr "Dispositivo de fluxo prosseguiu.%s \n" msgstr "Dispositivo de fluxo prosseguiu.%s \n"
#: ../src/utils/pacat.c:217 #: ../src/utils/pacat.c:218
#, c-format #, c-format
msgid "Stream underrun.%s \n" msgid "Stream underrun.%s \n"
msgstr "Extravazamento do fluxo. %s\n" msgstr "Extravazamento do fluxo. %s\n"
#: ../src/utils/pacat.c:224 #: ../src/utils/pacat.c:225
#, c-format #, c-format
msgid "Stream overrun.%s \n" msgid "Stream overrun.%s \n"
msgstr "O fluxo extravazou.%s \n" msgstr "O fluxo extravazou.%s \n"
#: ../src/utils/pacat.c:231 #: ../src/utils/pacat.c:232
#, c-format #, c-format
msgid "Stream started.%s \n" msgid "Stream started.%s \n"
msgstr "O fluxo iniciou: %s\n" msgstr "O fluxo iniciou: %s\n"
#: ../src/utils/pacat.c:238 #: ../src/utils/pacat.c:239
#, c-format #, c-format
msgid "Stream moved to device %s (%u, %ssuspended).%s \n" msgid "Stream moved to device %s (%u, %ssuspended).%s \n"
msgstr "O fluxo foi movido para o dispositivo %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:239
msgid "not " msgid "not "
msgstr "não" msgstr "não"
#: ../src/utils/pacat.c:259 #: ../src/utils/pacat.c:260
#, c-format #, c-format
msgid "Connection established.%s \n" msgid "Connection established.%s \n"
msgstr "Conexão estabelecida.%s \n" msgstr "Conexão estabelecida.%s \n"
#: ../src/utils/pacat.c:262 #: ../src/utils/pacat.c:263
#, c-format #, c-format
msgid "pa_stream_new() failed: %s\n" msgid "pa_stream_new() failed: %s\n"
msgstr "pa_stream_new() falhou: %s\n" msgstr "pa_stream_new() falhou: %s\n"
#: ../src/utils/pacat.c:287 #: ../src/utils/pacat.c:288
#, c-format #, c-format
msgid "pa_stream_connect_playback() failed: %s\n" msgid "pa_stream_connect_playback() failed: %s\n"
msgstr "pa_stream_connect_playback() falhou: %s\n" msgstr "pa_stream_connect_playback() falhou: %s\n"
#: ../src/utils/pacat.c:293 #: ../src/utils/pacat.c:294
#, c-format #, c-format
msgid "pa_stream_connect_record() failed: %s\n" msgid "pa_stream_connect_record() failed: %s\n"
msgstr "pa_stream_connect_record() falhou: %s\n" msgstr "pa_stream_connect_record() falhou: %s\n"
#: ../src/utils/pacat.c:307 ../src/utils/pasuspender.c:159 #: ../src/utils/pacat.c:308 ../src/utils/pasuspender.c:159
#: ../src/utils/pactl.c:666 ../src/utils/paplay.c:183 #: ../src/utils/pactl.c:666 ../src/utils/paplay.c:183
#, c-format #, c-format
msgid "Connection failure: %s\n" msgid "Connection failure: %s\n"
msgstr "Falha na conexão: %s\n" msgstr "Falha na conexão: %s\n"
#: ../src/utils/pacat.c:328 ../src/utils/paplay.c:75 #: ../src/utils/pacat.c:329 ../src/utils/paplay.c:75
#, c-format #, c-format
msgid "Failed to drain stream: %s\n" msgid "Failed to drain stream: %s\n"
msgstr "Falha em drenar o fluxo: %s\n" msgstr "Falha em drenar o fluxo: %s\n"
#: ../src/utils/pacat.c:333 ../src/utils/paplay.c:80 #: ../src/utils/pacat.c:334 ../src/utils/paplay.c:80
#, c-format #, c-format
msgid "Playback stream drained.\n" msgid "Playback stream drained.\n"
msgstr "Drenado o fluxo de playback.\n" msgstr "Drenado o fluxo de playback.\n"
#: ../src/utils/pacat.c:343 ../src/utils/paplay.c:92 #: ../src/utils/pacat.c:344 ../src/utils/paplay.c:92
#, c-format #, c-format
msgid "Draining connection to server.\n" msgid "Draining connection to server.\n"
msgstr "Drenando a conexão par ao servidor.\n" msgstr "Drenando a conexão par ao servidor.\n"
#: ../src/utils/pacat.c:369 #: ../src/utils/pacat.c:370
#, c-format #, c-format
msgid "Got EOF.\n" msgid "Got EOF.\n"
msgstr "Atingiu EOF.\n" msgstr "Atingiu EOF.\n"
#: ../src/utils/pacat.c:375 #: ../src/utils/pacat.c:376
#, c-format #, c-format
msgid "pa_stream_drain(): %s\n" msgid "pa_stream_drain(): %s\n"
msgstr "pa_stream_drain(): %s\n" msgstr "pa_stream_drain(): %s\n"
#: ../src/utils/pacat.c:385 #: ../src/utils/pacat.c:386
#, c-format #, c-format
msgid "read() failed: %s\n" msgid "read() failed: %s\n"
msgstr "read() falhou: %s\n" msgstr "read() falhou: %s\n"
#: ../src/utils/pacat.c:417 #: ../src/utils/pacat.c:418
#, c-format #, c-format
msgid "write() failed: %s\n" msgid "write() failed: %s\n"
msgstr "write() falhou: %s\n" msgstr "write() falhou: %s\n"
#: ../src/utils/pacat.c:438 #: ../src/utils/pacat.c:439
#, c-format #, c-format
msgid "Got signal, exiting.\n" msgid "Got signal, exiting.\n"
msgstr "Sinal recebido, saindo (exiting).\n" msgstr "Sinal recebido, saindo (exiting).\n"
#: ../src/utils/pacat.c:452 #: ../src/utils/pacat.c:453
#, c-format #, c-format
msgid "Failed to get latency: %s\n" msgid "Failed to get latency: %s\n"
msgstr "Falhou em obter a latência: %s\n" msgstr "Falhou em obter a latência: %s\n"
#: ../src/utils/pacat.c:457 #: ../src/utils/pacat.c:458
#, c-format #, c-format
msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgid "Time: %0.3f sec; Latency: %0.0f usec. \r"
msgstr "Tempo: %0.3f s; Latência: %0.0f us. \r" msgstr "Tempo: %0.3f s; Latência: %0.0f us. \r"
#: ../src/utils/pacat.c:477 #: ../src/utils/pacat.c:478
#, c-format #, c-format
msgid "pa_stream_update_timing_info() failed: %s\n" msgid "pa_stream_update_timing_info() failed: %s\n"
msgstr "Falha em pa_stream_update_timing_info(): %s\n" msgstr "Falha em pa_stream_update_timing_info(): %s\n"
#: ../src/utils/pacat.c:490 #: ../src/utils/pacat.c:491
#, c-format #, c-format
msgid "" msgid ""
"%s [options]\n" "%s [options]\n"
@ -1316,7 +1339,7 @@ msgstr ""
" --process-time=BYTES Request the specified process time " " --process-time=BYTES Request the specified process time "
"per request in bytes.\n" "per request in bytes.\n"
#: ../src/utils/pacat.c:591 #: ../src/utils/pacat.c:592
#, c-format #, c-format
msgid "" msgid ""
"pacat %s\n" "pacat %s\n"
@ -1327,87 +1350,87 @@ msgstr ""
"Compilado com libpulse %s\n" "Compilado com libpulse %s\n"
"Linkado com libpulse %s\n" "Linkado com libpulse %s\n"
#: ../src/utils/pacat.c:647 #: ../src/utils/pacat.c:649
#, c-format #, c-format
msgid "Invalid channel map '%s'\n" msgid "Invalid channel map '%s'\n"
msgstr "Mapa de canal inválido '%s'\n" msgstr "Mapa de canal inválido '%s'\n"
#: ../src/utils/pacat.c:676 #: ../src/utils/pacat.c:678
#, c-format #, c-format
msgid "Invalid latency specification '%s'\n" msgid "Invalid latency specification '%s'\n"
msgstr "Especificação de latência inválida '%s'\n" msgstr "Especificação de latência inválida '%s'\n"
#: ../src/utils/pacat.c:683 #: ../src/utils/pacat.c:685
#, c-format #, c-format
msgid "Invalid process time specification '%s'\n" msgid "Invalid process time specification '%s'\n"
msgstr "Especificação do tempo do processo inválida '%s'\n" msgstr "Especificação do tempo do processo inválida '%s'\n"
#: ../src/utils/pacat.c:694 #: ../src/utils/pacat.c:696
#, c-format #, c-format
msgid "Invalid sample specification\n" msgid "Invalid sample specification\n"
msgstr "Especificação de amostragem inválida\n" msgstr "Especificação de amostragem inválida\n"
#: ../src/utils/pacat.c:699 #: ../src/utils/pacat.c:701
#, c-format #, c-format
msgid "Channel map doesn't match sample specification\n" msgid "Channel map doesn't match sample specification\n"
msgstr "O mapeamento do canal não casa com a especificação da amostragem\n" msgstr "O mapeamento do canal não casa com a especificação da amostragem\n"
#: ../src/utils/pacat.c:706 #: ../src/utils/pacat.c:708
#, c-format #, c-format
msgid "Opening a %s stream with sample specification '%s'.\n" msgid "Opening a %s stream with sample specification '%s'.\n"
msgstr "Abrindo um %s fluxo com a especificação de amostragem '%s'.\n" msgstr "Abrindo um %s fluxo com a especificação de amostragem '%s'.\n"
#: ../src/utils/pacat.c:706 #: ../src/utils/pacat.c:708
msgid "recording" msgid "recording"
msgstr "gravando" msgstr "gravando"
#: ../src/utils/pacat.c:706 #: ../src/utils/pacat.c:708
msgid "playback" msgid "playback"
msgstr "playback" msgstr "playback"
#: ../src/utils/pacat.c:714 #: ../src/utils/pacat.c:716
#, c-format #, c-format
msgid "open(): %s\n" msgid "open(): %s\n"
msgstr "open(): %s\n" msgstr "open(): %s\n"
#: ../src/utils/pacat.c:719 #: ../src/utils/pacat.c:721
#, c-format #, c-format
msgid "dup2(): %s\n" msgid "dup2(): %s\n"
msgstr "dup2(): %s\n" msgstr "dup2(): %s\n"
#: ../src/utils/pacat.c:729 #: ../src/utils/pacat.c:731
#, c-format #, c-format
msgid "Too many arguments.\n" msgid "Too many arguments.\n"
msgstr "Argumentos em excesso.\n" msgstr "Argumentos em excesso.\n"
#: ../src/utils/pacat.c:742 ../src/utils/pasuspender.c:280 #: ../src/utils/pacat.c:744 ../src/utils/pasuspender.c:280
#: ../src/utils/pactl.c:909 ../src/utils/paplay.c:381 #: ../src/utils/pactl.c:909 ../src/utils/paplay.c:381
#, c-format #, c-format
msgid "pa_mainloop_new() failed.\n" msgid "pa_mainloop_new() failed.\n"
msgstr "pa_mainloop_new() falhou.\n" msgstr "pa_mainloop_new() falhou.\n"
#: ../src/utils/pacat.c:763 #: ../src/utils/pacat.c:765
#, c-format #, c-format
msgid "io_new() failed.\n" msgid "io_new() failed.\n"
msgstr "io_new() falhou.\n" msgstr "io_new() falhou.\n"
#: ../src/utils/pacat.c:769 ../src/utils/pasuspender.c:293 #: ../src/utils/pacat.c:771 ../src/utils/pasuspender.c:293
#: ../src/utils/pactl.c:923 ../src/utils/paplay.c:396 #: ../src/utils/pactl.c:923 ../src/utils/paplay.c:396
#, c-format #, c-format
msgid "pa_context_new() failed.\n" msgid "pa_context_new() failed.\n"
msgstr "pa_context_new() falhou.\n" msgstr "pa_context_new() falhou.\n"
#: ../src/utils/pacat.c:777 #: ../src/utils/pacat.c:779
#, c-format #, c-format
msgid "pa_context_connect() failed: %s" msgid "pa_context_connect() failed: %s"
msgstr "pa_context_new() falhou: %s" msgstr "pa_context_new() falhou: %s"
#: ../src/utils/pacat.c:788 #: ../src/utils/pacat.c:790
#, c-format #, c-format
msgid "time_new() failed.\n" msgid "time_new() failed.\n"
msgstr "time_new() falhou.\n" msgstr "time_new() falhou.\n"
#: ../src/utils/pacat.c:795 ../src/utils/pasuspender.c:301 #: ../src/utils/pacat.c:797 ../src/utils/pasuspender.c:301
#: ../src/utils/pactl.c:931 ../src/utils/paplay.c:407 #: ../src/utils/pactl.c:931 ../src/utils/paplay.c:407
#, c-format #, c-format
msgid "pa_mainloop_run() failed.\n" msgid "pa_mainloop_run() failed.\n"

308
po/sv.po
View file

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: pulseaudio\n" "Project-Id-Version: pulseaudio\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-10-07 21:03+0200\n" "POT-Creation-Date: 2009-01-08 19:36+0100\n"
"PO-Revision-Date: 2008-09-05 18:24+0100\n" "PO-Revision-Date: 2008-09-05 18:24+0100\n"
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n" "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@ -15,12 +15,17 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: ../src/daemon/ltdl-bind-now.c:177 ../src/daemon/ltdl-bind-now.c:197 #: ../src/daemon/ltdl-bind-now.c:124
msgid "Failed to add bind-now-loader." msgid "Failed to find original lt_dlopen loader."
msgstr "" msgstr ""
#: ../src/daemon/ltdl-bind-now.c:184 #: ../src/daemon/ltdl-bind-now.c:129
msgid "Failed to find original dlopen loader." #, fuzzy
msgid "Failed to allocate new dl loader."
msgstr "Misslyckades med att öppna ljudfil.\n"
#: ../src/daemon/ltdl-bind-now.c:142
msgid "Failed to add bind-now-loader."
msgstr "" msgstr ""
#: ../src/daemon/polkit.c:55 #: ../src/daemon/polkit.c:55
@ -148,77 +153,77 @@ msgstr "setrlimit(%s, (%u, %u)) misslyckades: %s"
msgid "Failed to parse command line." msgid "Failed to parse command line."
msgstr "" msgstr ""
#: ../src/daemon/main.c:441 #: ../src/daemon/main.c:447
#, c-format #, c-format
msgid "We're in the group '%s', allowing high-priority scheduling." msgid "We're in the group '%s', allowing high-priority scheduling."
msgstr "" msgstr ""
#: ../src/daemon/main.c:448 #: ../src/daemon/main.c:454
#, c-format #, c-format
msgid "We're in the group '%s', allowing real-time scheduling." msgid "We're in the group '%s', allowing real-time scheduling."
msgstr "" msgstr ""
#: ../src/daemon/main.c:456 #: ../src/daemon/main.c:462
msgid "PolicyKit grants us acquire-high-priority privilege." msgid "PolicyKit grants us acquire-high-priority privilege."
msgstr "" msgstr ""
#: ../src/daemon/main.c:459 #: ../src/daemon/main.c:465
msgid "PolicyKit refuses acquire-high-priority privilege." msgid "PolicyKit refuses acquire-high-priority privilege."
msgstr "" msgstr ""
#: ../src/daemon/main.c:464 #: ../src/daemon/main.c:470
msgid "PolicyKit grants us acquire-real-time privilege." msgid "PolicyKit grants us acquire-real-time privilege."
msgstr "" msgstr ""
#: ../src/daemon/main.c:467 #: ../src/daemon/main.c:473
msgid "PolicyKit refuses acquire-real-time privilege." msgid "PolicyKit refuses acquire-real-time privilege."
msgstr "" msgstr ""
#: ../src/daemon/main.c:479 #: ../src/daemon/main.c:502
msgid "" msgid ""
"Called SUID root and real-time/high-priority scheduling was requested in the " "Called SUID root and real-time and/or high-priority scheduling was requested "
"configuration. However, we lack the necessary priviliges:\n" "in the configuration. However, we lack the necessary privileges:\n"
"We are not in group '" "We are not in group '"
msgstr "" msgstr ""
#: ../src/daemon/main.c:497 #: ../src/daemon/main.c:526
msgid "" msgid ""
"High-priority scheduling enabled in configuration but not allowed by policy." "High-priority scheduling enabled in configuration but not allowed by policy."
msgstr "" msgstr ""
#: ../src/daemon/main.c:522 #: ../src/daemon/main.c:555
msgid "Successfully increased RLIMIT_RTPRIO" msgid "Successfully increased RLIMIT_RTPRIO"
msgstr "" msgstr ""
#: ../src/daemon/main.c:525 #: ../src/daemon/main.c:558
#, c-format #, c-format
msgid "RLIMIT_RTPRIO failed: %s" msgid "RLIMIT_RTPRIO failed: %s"
msgstr "RLIMIT_RTPRIO misslyckades: %s" msgstr "RLIMIT_RTPRIO misslyckades: %s"
#: ../src/daemon/main.c:532 #: ../src/daemon/main.c:565
msgid "Giving up CAP_NICE" msgid "Giving up CAP_NICE"
msgstr "" msgstr ""
#: ../src/daemon/main.c:539 #: ../src/daemon/main.c:572
msgid "" msgid ""
"Real-time scheduling enabled in configuration but not allowed by policy." "Real-time scheduling enabled in configuration but not allowed by policy."
msgstr "" msgstr ""
#: ../src/daemon/main.c:597 #: ../src/daemon/main.c:633
msgid "Daemon not running" msgid "Daemon not running"
msgstr "" msgstr ""
#: ../src/daemon/main.c:599 #: ../src/daemon/main.c:635
#, c-format #, c-format
msgid "Daemon running as PID %u" msgid "Daemon running as PID %u"
msgstr "" msgstr ""
#: ../src/daemon/main.c:609 #: ../src/daemon/main.c:645
#, c-format #, c-format
msgid "Failed to kill daemon: %s" msgid "Failed to kill daemon: %s"
msgstr "" msgstr ""
#: ../src/daemon/main.c:627 #: ../src/daemon/main.c:663
msgid "" msgid ""
"This program is not intended to be run as root (unless --system is " "This program is not intended to be run as root (unless --system is "
"specified)." "specified)."
@ -226,171 +231,172 @@ msgstr ""
"Detta program är inte tänkt att köras som root (såvida inte --system har " "Detta program är inte tänkt att köras som root (såvida inte --system har "
"angivits)." "angivits)."
#: ../src/daemon/main.c:629 #: ../src/daemon/main.c:665
msgid "Root priviliges required." #, fuzzy
msgid "Root privileges required."
msgstr "Root-behörighet krävs." msgstr "Root-behörighet krävs."
#: ../src/daemon/main.c:634 #: ../src/daemon/main.c:670
msgid "--start not supported for system instances." msgid "--start not supported for system instances."
msgstr "--start stöds inte för systeminstanser." msgstr "--start stöds inte för systeminstanser."
#: ../src/daemon/main.c:639 #: ../src/daemon/main.c:675
msgid "Running in system mode, but --disallow-exit not set!" msgid "Running in system mode, but --disallow-exit not set!"
msgstr "" msgstr ""
#: ../src/daemon/main.c:642 #: ../src/daemon/main.c:678
msgid "Running in system mode, but --disallow-module-loading not set!" msgid "Running in system mode, but --disallow-module-loading not set!"
msgstr "" msgstr ""
#: ../src/daemon/main.c:645 #: ../src/daemon/main.c:681
msgid "Running in system mode, forcibly disabling SHM mode!" msgid "Running in system mode, forcibly disabling SHM mode!"
msgstr "" msgstr ""
#: ../src/daemon/main.c:650 #: ../src/daemon/main.c:686
msgid "Running in system mode, forcibly disabling exit idle time!" msgid "Running in system mode, forcibly disabling exit idle time!"
msgstr "" msgstr ""
#: ../src/daemon/main.c:677 #: ../src/daemon/main.c:713
msgid "Failed to acquire stdio." msgid "Failed to acquire stdio."
msgstr "" msgstr ""
#: ../src/daemon/main.c:683 #: ../src/daemon/main.c:719
#, c-format #, c-format
msgid "pipe failed: %s" msgid "pipe failed: %s"
msgstr "pipe misslyckades: %s" msgstr "pipe misslyckades: %s"
#: ../src/daemon/main.c:688 #: ../src/daemon/main.c:724
#, c-format #, c-format
msgid "fork() failed: %s" msgid "fork() failed: %s"
msgstr "fork() misslyckades: %s" msgstr "fork() misslyckades: %s"
#: ../src/daemon/main.c:702 #: ../src/daemon/main.c:738
#, c-format #, c-format
msgid "read() failed: %s" msgid "read() failed: %s"
msgstr "read() misslyckades: %s" msgstr "read() misslyckades: %s"
#: ../src/daemon/main.c:708 #: ../src/daemon/main.c:744
msgid "Daemon startup failed." msgid "Daemon startup failed."
msgstr "" msgstr ""
#: ../src/daemon/main.c:710 #: ../src/daemon/main.c:746
msgid "Daemon startup successful." msgid "Daemon startup successful."
msgstr "" msgstr ""
#: ../src/daemon/main.c:780 #: ../src/daemon/main.c:816
#, c-format #, c-format
msgid "This is PulseAudio %s" msgid "This is PulseAudio %s"
msgstr "Detta är PulseAudio %s" msgstr "Detta är PulseAudio %s"
#: ../src/daemon/main.c:781 #: ../src/daemon/main.c:817
#, c-format #, c-format
msgid "Compilation host: %s" msgid "Compilation host: %s"
msgstr "" msgstr ""
#: ../src/daemon/main.c:782 #: ../src/daemon/main.c:818
#, c-format #, c-format
msgid "Compilation CFLAGS: %s" msgid "Compilation CFLAGS: %s"
msgstr "" msgstr ""
#: ../src/daemon/main.c:785 #: ../src/daemon/main.c:821
#, c-format #, c-format
msgid "Running on host: %s" msgid "Running on host: %s"
msgstr "" msgstr ""
#: ../src/daemon/main.c:788 #: ../src/daemon/main.c:824
#, c-format #, c-format
msgid "Page size is %lu bytes" msgid "Page size is %lu bytes"
msgstr "" msgstr ""
#: ../src/daemon/main.c:791 #: ../src/daemon/main.c:827
msgid "Compiled with Valgrind support: yes" msgid "Compiled with Valgrind support: yes"
msgstr "" msgstr ""
#: ../src/daemon/main.c:793 #: ../src/daemon/main.c:829
msgid "Compiled with Valgrind support: no" msgid "Compiled with Valgrind support: no"
msgstr "" msgstr ""
#: ../src/daemon/main.c:796 #: ../src/daemon/main.c:832
#, c-format #, c-format
msgid "Running in valgrind mode: %s" msgid "Running in valgrind mode: %s"
msgstr "" msgstr ""
#: ../src/daemon/main.c:799 #: ../src/daemon/main.c:835
msgid "Optimized build: yes" msgid "Optimized build: yes"
msgstr "" msgstr ""
#: ../src/daemon/main.c:801 #: ../src/daemon/main.c:837
msgid "Optimized build: no" msgid "Optimized build: no"
msgstr "" msgstr ""
#: ../src/daemon/main.c:805 #: ../src/daemon/main.c:841
msgid "Failed to get machine ID" msgid "Failed to get machine ID"
msgstr "" msgstr ""
#: ../src/daemon/main.c:808 #: ../src/daemon/main.c:844
#, c-format #, c-format
msgid "Machine ID is %s." msgid "Machine ID is %s."
msgstr "" msgstr ""
#: ../src/daemon/main.c:813 #: ../src/daemon/main.c:849
#, c-format #, c-format
msgid "Using runtime directory %s." msgid "Using runtime directory %s."
msgstr "" msgstr ""
#: ../src/daemon/main.c:818 #: ../src/daemon/main.c:854
#, c-format #, c-format
msgid "Using state directory %s." msgid "Using state directory %s."
msgstr "" msgstr ""
#: ../src/daemon/main.c:821 #: ../src/daemon/main.c:857
#, c-format #, c-format
msgid "Running in system mode: %s" msgid "Running in system mode: %s"
msgstr "" msgstr ""
#: ../src/daemon/main.c:836 #: ../src/daemon/main.c:872
msgid "pa_pid_file_create() failed." msgid "pa_pid_file_create() failed."
msgstr "pa_pid_file_create() misslyckades." msgstr "pa_pid_file_create() misslyckades."
#: ../src/daemon/main.c:848 #: ../src/daemon/main.c:884
msgid "Fresh high-resolution timers available! Bon appetit!" msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr "" msgstr ""
#: ../src/daemon/main.c:850 #: ../src/daemon/main.c:886
msgid "" msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!" "resolution timers enabled!"
msgstr "" msgstr ""
#: ../src/daemon/main.c:860 #: ../src/daemon/main.c:896
msgid "pa_core_new() failed." msgid "pa_core_new() failed."
msgstr "pa_core_new() misslyckades." msgstr "pa_core_new() misslyckades."
#: ../src/daemon/main.c:921 #: ../src/daemon/main.c:957
msgid "Failed to initialize daemon." msgid "Failed to initialize daemon."
msgstr "" msgstr ""
#: ../src/daemon/main.c:926 #: ../src/daemon/main.c:962
msgid "Daemon startup without any loaded modules, refusing to work." msgid "Daemon startup without any loaded modules, refusing to work."
msgstr "" msgstr ""
#: ../src/daemon/main.c:931 #: ../src/daemon/main.c:967
#, c-format #, c-format
msgid "Default sink name (%s) does not exist in name register." msgid "Default sink name (%s) does not exist in name register."
msgstr "" msgstr ""
#: ../src/daemon/main.c:944 #: ../src/daemon/main.c:980
msgid "Daemon startup complete." msgid "Daemon startup complete."
msgstr "" msgstr ""
#: ../src/daemon/main.c:950 #: ../src/daemon/main.c:986
msgid "Daemon shutdown initiated." msgid "Daemon shutdown initiated."
msgstr "" msgstr ""
#: ../src/daemon/main.c:971 #: ../src/daemon/main.c:1007
msgid "Daemon terminated." msgid "Daemon terminated."
msgstr "" msgstr ""
#: ../src/daemon/cmdline.c:117 #: ../src/daemon/cmdline.c:123
#, c-format #, c-format
msgid "" msgid ""
"%s [options]\n" "%s [options]\n"
@ -406,7 +412,8 @@ msgid ""
" --start Start the daemon if it is not " " --start Start the daemon if it is not "
"running\n" "running\n"
" -k --kill Kill a running daemon\n" " -k --kill Kill a running daemon\n"
" --check Check for a running daemon\n" " --check Check for a running daemon (only "
"returns exit code)\n"
"\n" "\n"
"OPTIONS:\n" "OPTIONS:\n"
" --system[=BOOL] Run as system-wide instance\n" " --system[=BOOL] Run as system-wide instance\n"
@ -436,6 +443,10 @@ msgid ""
" --log-level[=LEVEL] Increase or set verbosity level\n" " --log-level[=LEVEL] Increase or set verbosity level\n"
" -v Increase the verbosity level\n" " -v Increase the verbosity level\n"
" --log-target={auto,syslog,stderr} Specify the log target\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 " " -p, --dl-search-path=PATH Set the search path for dynamic "
"shared\n" "shared\n"
" objects (plugins)\n" " objects (plugins)\n"
@ -459,58 +470,68 @@ msgid ""
" -n Don't load default script file\n" " -n Don't load default script file\n"
msgstr "" msgstr ""
#: ../src/daemon/cmdline.c:245 #: ../src/daemon/cmdline.c:254
msgid "--daemonize expects boolean argument" msgid "--daemonize expects boolean argument"
msgstr "--daemonize förväntar sig ett booleskt argument" msgstr "--daemonize förväntar sig ett booleskt argument"
#: ../src/daemon/cmdline.c:252 #: ../src/daemon/cmdline.c:261
msgid "--fail expects boolean argument" msgid "--fail expects boolean argument"
msgstr "--fail förväntar sig ett booleskt argument" msgstr "--fail förväntar sig ett booleskt argument"
#: ../src/daemon/cmdline.c:262 #: ../src/daemon/cmdline.c:271
msgid "" msgid ""
"--log-level expects log level argument (either numeric in range 0..4 or one " "--log-level expects log level argument (either numeric in range 0..4 or one "
"of debug, info, notice, warn, error)." "of debug, info, notice, warn, error)."
msgstr "" msgstr ""
#: ../src/daemon/cmdline.c:274 #: ../src/daemon/cmdline.c:283
msgid "--high-priority expects boolean argument" msgid "--high-priority expects boolean argument"
msgstr "--high-priority förväntar sig ett booleskt argument" msgstr "--high-priority förväntar sig ett booleskt argument"
#: ../src/daemon/cmdline.c:281 #: ../src/daemon/cmdline.c:290
msgid "--realtime expects boolean argument" msgid "--realtime expects boolean argument"
msgstr "--realtime förväntar sig ett booleskt argument" msgstr "--realtime förväntar sig ett booleskt argument"
#: ../src/daemon/cmdline.c:288 #: ../src/daemon/cmdline.c:297
msgid "--disallow-module-loading expects boolean argument" msgid "--disallow-module-loading expects boolean argument"
msgstr "--disallow-module-loading förväntar sig ett booleskt argument" msgstr "--disallow-module-loading förväntar sig ett booleskt argument"
#: ../src/daemon/cmdline.c:295 #: ../src/daemon/cmdline.c:304
msgid "--disallow-exit boolean argument" msgid "--disallow-exit boolean argument"
msgstr "--disallow-exit booleskt argument" msgstr "--disallow-exit booleskt argument"
#: ../src/daemon/cmdline.c:302 #: ../src/daemon/cmdline.c:311
msgid "--use-pid-file expects boolean argument" msgid "--use-pid-file expects boolean argument"
msgstr "--use-pid-file förväntar sig ett booleskt argument" msgstr "--use-pid-file förväntar sig ett booleskt argument"
#: ../src/daemon/cmdline.c:319 #: ../src/daemon/cmdline.c:328
msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'."
msgstr "" msgstr ""
#: ../src/daemon/cmdline.c:338 #: ../src/daemon/cmdline.c:335
#, fuzzy
msgid "--log-time boolean argument"
msgstr "--disallow-exit booleskt argument"
#: ../src/daemon/cmdline.c:342
#, fuzzy
msgid "--log-meta boolean argument"
msgstr "--disallow-exit booleskt argument"
#: ../src/daemon/cmdline.c:365
#, c-format #, c-format
msgid "Invalid resample method '%s'." msgid "Invalid resample method '%s'."
msgstr "" msgstr ""
#: ../src/daemon/cmdline.c:345 #: ../src/daemon/cmdline.c:372
msgid "--system expects boolean argument" msgid "--system expects boolean argument"
msgstr "--system förväntar sig ett booleskt argument" msgstr "--system förväntar sig ett booleskt argument"
#: ../src/daemon/cmdline.c:352 #: ../src/daemon/cmdline.c:379
msgid "--no-cpu-limit expects boolean argument" msgid "--no-cpu-limit expects boolean argument"
msgstr "--no-cpu-limit förväntar sig ett booleskt argument" msgstr "--no-cpu-limit förväntar sig ett booleskt argument"
#: ../src/daemon/cmdline.c:359 #: ../src/daemon/cmdline.c:386
msgid "--disable-shm expects boolean argument" msgid "--disable-shm expects boolean argument"
msgstr "--disable-shm förväntar sig ett booleskt argument" msgstr "--disable-shm förväntar sig ett booleskt argument"
@ -554,73 +575,74 @@ msgstr ""
msgid "Path: %s\n" msgid "Path: %s\n"
msgstr "Sökväg: %s\n" msgstr "Sökväg: %s\n"
#: ../src/daemon/daemon-conf.c:205 #: ../src/daemon/daemon-conf.c:208
#, c-format #, c-format
msgid "[%s:%u] Invalid log target '%s'." msgid "[%s:%u] Invalid log target '%s'."
msgstr "" msgstr ""
#: ../src/daemon/daemon-conf.c:221 #: ../src/daemon/daemon-conf.c:224
#, c-format #, c-format
msgid "[%s:%u] Invalid log level '%s'." msgid "[%s:%u] Invalid log level '%s'."
msgstr "" msgstr ""
#: ../src/daemon/daemon-conf.c:237 #: ../src/daemon/daemon-conf.c:240
#, c-format #, c-format
msgid "[%s:%u] Invalid resample method '%s'." msgid "[%s:%u] Invalid resample method '%s'."
msgstr "" msgstr ""
#: ../src/daemon/daemon-conf.c:260 #: ../src/daemon/daemon-conf.c:263
#, c-format #, c-format
msgid "[%s:%u] Invalid rlimit '%s'." msgid "[%s:%u] Invalid rlimit '%s'."
msgstr "" msgstr ""
#: ../src/daemon/daemon-conf.c:267 #: ../src/daemon/daemon-conf.c:270
#, c-format #, c-format
msgid "[%s:%u] rlimit not supported on this platform." msgid "[%s:%u] rlimit not supported on this platform."
msgstr "" msgstr ""
#: ../src/daemon/daemon-conf.c:283 #: ../src/daemon/daemon-conf.c:286
#, c-format #, c-format
msgid "[%s:%u] Invalid sample format '%s'." msgid "[%s:%u] Invalid sample format '%s'."
msgstr "" msgstr ""
#: ../src/daemon/daemon-conf.c:301 #: ../src/daemon/daemon-conf.c:304
#, c-format #, c-format
msgid "[%s:%u] Invalid sample rate '%s'." msgid "[%s:%u] Invalid sample rate '%s'."
msgstr "" msgstr ""
#: ../src/daemon/daemon-conf.c:319 #: ../src/daemon/daemon-conf.c:322
#, c-format #, c-format
msgid "[%s:%u] Invalid sample channels '%s'." msgid "[%s:%u] Invalid sample channels '%s'."
msgstr "" msgstr ""
#: ../src/daemon/daemon-conf.c:337 #: ../src/daemon/daemon-conf.c:340
#, c-format #, c-format
msgid "[%s:%u] Invalid number of fragments '%s'." msgid "[%s:%u] Invalid number of fragments '%s'."
msgstr "" msgstr ""
#: ../src/daemon/daemon-conf.c:355 #: ../src/daemon/daemon-conf.c:358
#, c-format #, c-format
msgid "[%s:%u] Invalid fragment size '%s'." msgid "[%s:%u] Invalid fragment size '%s'."
msgstr "" msgstr ""
#: ../src/daemon/daemon-conf.c:373 #: ../src/daemon/daemon-conf.c:376
#, c-format #, c-format
msgid "[%s:%u] Invalid nice level '%s'." msgid "[%s:%u] Invalid nice level '%s'."
msgstr "" msgstr ""
#: ../src/daemon/daemon-conf.c:570 #: ../src/daemon/daemon-conf.c:554
#, c-format #, c-format
msgid "Failed to open configuration file: %s" msgid "Failed to open configuration file: %s"
msgstr "Misslyckades med att öppna konfigurationsfil: %s" msgstr "Misslyckades med att öppna konfigurationsfil: %s"
#: ../src/daemon/daemon-conf.c:644 #: ../src/daemon/daemon-conf.c:628
#, c-format #, c-format
msgid "### Read from configuration file: %s ###\n" msgid "### Read from configuration file: %s ###\n"
msgstr "" msgstr ""
#: ../src/daemon/caps.c:63 #: ../src/daemon/caps.c:63
msgid "Dropping root priviliges." #, fuzzy
msgid "Dropping root privileges."
msgstr "Släpper root-behörighet." msgstr "Släpper root-behörighet."
#: ../src/daemon/caps.c:103 #: ../src/daemon/caps.c:103
@ -957,177 +979,177 @@ msgstr "waitpid(): %s"
msgid "Received message for unknown extension '%s'" msgid "Received message for unknown extension '%s'"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:93 #: ../src/utils/pacat.c:94
#, c-format #, c-format
msgid "pa_stream_write() failed: %s\n" msgid "pa_stream_write() failed: %s\n"
msgstr "pa_stream_write() misslyckades: %s\n" msgstr "pa_stream_write() misslyckades: %s\n"
#: ../src/utils/pacat.c:132 #: ../src/utils/pacat.c:133
#, c-format #, c-format
msgid "pa_stream_peek() failed: %s\n" msgid "pa_stream_peek() failed: %s\n"
msgstr "pa_stream_peek() misslyckades: %s\n" msgstr "pa_stream_peek() misslyckades: %s\n"
#: ../src/utils/pacat.c:141 #: ../src/utils/pacat.c:142
#, c-format #, c-format
msgid "Buffer overrun, dropping incoming data\n" msgid "Buffer overrun, dropping incoming data\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:143 #: ../src/utils/pacat.c:144
#, c-format #, c-format
msgid "pa_stream_drop() failed: %s\n" msgid "pa_stream_drop() failed: %s\n"
msgstr "pa_stream_drop() misslyckades: %s\n" msgstr "pa_stream_drop() misslyckades: %s\n"
#: ../src/utils/pacat.c:169 #: ../src/utils/pacat.c:170
#, c-format #, c-format
msgid "Stream successfully created.\n" msgid "Stream successfully created.\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:172 #: ../src/utils/pacat.c:173
#, c-format #, c-format
msgid "pa_stream_get_buffer_attr() failed: %s\n" msgid "pa_stream_get_buffer_attr() failed: %s\n"
msgstr "pa_stream_get_buffer_attr() misslyckades: %s\n" msgstr "pa_stream_get_buffer_attr() misslyckades: %s\n"
#: ../src/utils/pacat.c:176 #: ../src/utils/pacat.c:177
#, c-format #, c-format
msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:179 #: ../src/utils/pacat.c:180
#, c-format #, c-format
msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" msgid "Buffer metrics: maxlength=%u, fragsize=%u\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:183 #: ../src/utils/pacat.c:184
#, c-format #, c-format
msgid "Using sample spec '%s', channel map '%s'.\n" msgid "Using sample spec '%s', channel map '%s'.\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:187 #: ../src/utils/pacat.c:188
#, c-format #, c-format
msgid "Connected to device %s (%u, %ssuspended).\n" msgid "Connected to device %s (%u, %ssuspended).\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:197 #: ../src/utils/pacat.c:198
#, c-format #, c-format
msgid "Stream error: %s\n" msgid "Stream error: %s\n"
msgstr "Strömfel: %s\n" msgstr "Strömfel: %s\n"
#: ../src/utils/pacat.c:207 #: ../src/utils/pacat.c:208
#, c-format #, c-format
msgid "Stream device suspended.%s \n" msgid "Stream device suspended.%s \n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:209 #: ../src/utils/pacat.c:210
#, c-format #, c-format
msgid "Stream device resumed.%s \n" msgid "Stream device resumed.%s \n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:217 #: ../src/utils/pacat.c:218
#, c-format #, c-format
msgid "Stream underrun.%s \n" msgid "Stream underrun.%s \n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:224 #: ../src/utils/pacat.c:225
#, c-format #, c-format
msgid "Stream overrun.%s \n" msgid "Stream overrun.%s \n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:231 #: ../src/utils/pacat.c:232
#, c-format #, c-format
msgid "Stream started.%s \n" msgid "Stream started.%s \n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:238 #: ../src/utils/pacat.c:239
#, c-format #, c-format
msgid "Stream moved to device %s (%u, %ssuspended).%s \n" msgid "Stream moved to device %s (%u, %ssuspended).%s \n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:238 #: ../src/utils/pacat.c:239
msgid "not " msgid "not "
msgstr "inte " msgstr "inte "
#: ../src/utils/pacat.c:259 #: ../src/utils/pacat.c:260
#, c-format #, c-format
msgid "Connection established.%s \n" msgid "Connection established.%s \n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:262 #: ../src/utils/pacat.c:263
#, c-format #, c-format
msgid "pa_stream_new() failed: %s\n" msgid "pa_stream_new() failed: %s\n"
msgstr "pa_stream_new() misslyckades: %s\n" msgstr "pa_stream_new() misslyckades: %s\n"
#: ../src/utils/pacat.c:287 #: ../src/utils/pacat.c:288
#, c-format #, c-format
msgid "pa_stream_connect_playback() failed: %s\n" msgid "pa_stream_connect_playback() failed: %s\n"
msgstr "pa_stream_connect_playback() misslyckades: %s\n" msgstr "pa_stream_connect_playback() misslyckades: %s\n"
#: ../src/utils/pacat.c:293 #: ../src/utils/pacat.c:294
#, c-format #, c-format
msgid "pa_stream_connect_record() failed: %s\n" msgid "pa_stream_connect_record() failed: %s\n"
msgstr "pa_stream_connect_record() misslyckades: %s\n" msgstr "pa_stream_connect_record() misslyckades: %s\n"
#: ../src/utils/pacat.c:307 ../src/utils/pasuspender.c:159 #: ../src/utils/pacat.c:308 ../src/utils/pasuspender.c:159
#: ../src/utils/pactl.c:666 ../src/utils/paplay.c:183 #: ../src/utils/pactl.c:666 ../src/utils/paplay.c:183
#, c-format #, c-format
msgid "Connection failure: %s\n" msgid "Connection failure: %s\n"
msgstr "Anslutningsfel: %s\n" msgstr "Anslutningsfel: %s\n"
#: ../src/utils/pacat.c:328 ../src/utils/paplay.c:75 #: ../src/utils/pacat.c:329 ../src/utils/paplay.c:75
#, c-format #, c-format
msgid "Failed to drain stream: %s\n" msgid "Failed to drain stream: %s\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:333 ../src/utils/paplay.c:80 #: ../src/utils/pacat.c:334 ../src/utils/paplay.c:80
#, c-format #, c-format
msgid "Playback stream drained.\n" msgid "Playback stream drained.\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:343 ../src/utils/paplay.c:92 #: ../src/utils/pacat.c:344 ../src/utils/paplay.c:92
#, c-format #, c-format
msgid "Draining connection to server.\n" msgid "Draining connection to server.\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:369 #: ../src/utils/pacat.c:370
#, c-format #, c-format
msgid "Got EOF.\n" msgid "Got EOF.\n"
msgstr "Fick filslut.\n" msgstr "Fick filslut.\n"
#: ../src/utils/pacat.c:375 #: ../src/utils/pacat.c:376
#, c-format #, c-format
msgid "pa_stream_drain(): %s\n" msgid "pa_stream_drain(): %s\n"
msgstr "pa_stream_drain(): %s\n" msgstr "pa_stream_drain(): %s\n"
#: ../src/utils/pacat.c:385 #: ../src/utils/pacat.c:386
#, c-format #, c-format
msgid "read() failed: %s\n" msgid "read() failed: %s\n"
msgstr "read() misslyckades: %s\n" msgstr "read() misslyckades: %s\n"
#: ../src/utils/pacat.c:417 #: ../src/utils/pacat.c:418
#, c-format #, c-format
msgid "write() failed: %s\n" msgid "write() failed: %s\n"
msgstr "write() misslyckades: %s\n" msgstr "write() misslyckades: %s\n"
#: ../src/utils/pacat.c:438 #: ../src/utils/pacat.c:439
#, c-format #, c-format
msgid "Got signal, exiting.\n" msgid "Got signal, exiting.\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:452 #: ../src/utils/pacat.c:453
#, c-format #, c-format
msgid "Failed to get latency: %s\n" msgid "Failed to get latency: %s\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:457 #: ../src/utils/pacat.c:458
#, c-format #, c-format
msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgid "Time: %0.3f sec; Latency: %0.0f usec. \r"
msgstr "Tid: %0.3f sec; Latens: %0.0f ms \r" msgstr "Tid: %0.3f sec; Latens: %0.0f ms \r"
#: ../src/utils/pacat.c:477 #: ../src/utils/pacat.c:478
#, c-format #, c-format
msgid "pa_stream_update_timing_info() failed: %s\n" msgid "pa_stream_update_timing_info() failed: %s\n"
msgstr "pa_stream_update_timing_info() misslyckades: %s\n" msgstr "pa_stream_update_timing_info() misslyckades: %s\n"
#: ../src/utils/pacat.c:490 #: ../src/utils/pacat.c:491
#, c-format #, c-format
msgid "" msgid ""
"%s [options]\n" "%s [options]\n"
@ -1180,7 +1202,7 @@ msgid ""
"per request in bytes.\n" "per request in bytes.\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:591 #: ../src/utils/pacat.c:592
#, c-format #, c-format
msgid "" msgid ""
"pacat %s\n" "pacat %s\n"
@ -1188,87 +1210,87 @@ msgid ""
"Linked with libpulse %s\n" "Linked with libpulse %s\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:647 #: ../src/utils/pacat.c:649
#, c-format #, c-format
msgid "Invalid channel map '%s'\n" msgid "Invalid channel map '%s'\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:676 #: ../src/utils/pacat.c:678
#, c-format #, c-format
msgid "Invalid latency specification '%s'\n" msgid "Invalid latency specification '%s'\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:683 #: ../src/utils/pacat.c:685
#, c-format #, c-format
msgid "Invalid process time specification '%s'\n" msgid "Invalid process time specification '%s'\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:694 #: ../src/utils/pacat.c:696
#, c-format #, c-format
msgid "Invalid sample specification\n" msgid "Invalid sample specification\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:699 #: ../src/utils/pacat.c:701
#, c-format #, c-format
msgid "Channel map doesn't match sample specification\n" msgid "Channel map doesn't match sample specification\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:706 #: ../src/utils/pacat.c:708
#, c-format #, c-format
msgid "Opening a %s stream with sample specification '%s'.\n" msgid "Opening a %s stream with sample specification '%s'.\n"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:706 #: ../src/utils/pacat.c:708
msgid "recording" msgid "recording"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:706 #: ../src/utils/pacat.c:708
msgid "playback" msgid "playback"
msgstr "" msgstr ""
#: ../src/utils/pacat.c:714 #: ../src/utils/pacat.c:716
#, c-format #, c-format
msgid "open(): %s\n" msgid "open(): %s\n"
msgstr "open(): %s\n" msgstr "open(): %s\n"
#: ../src/utils/pacat.c:719 #: ../src/utils/pacat.c:721
#, c-format #, c-format
msgid "dup2(): %s\n" msgid "dup2(): %s\n"
msgstr "dup2(): %s\n" msgstr "dup2(): %s\n"
#: ../src/utils/pacat.c:729 #: ../src/utils/pacat.c:731
#, c-format #, c-format
msgid "Too many arguments.\n" msgid "Too many arguments.\n"
msgstr "För många argument.\n" msgstr "För många argument.\n"
#: ../src/utils/pacat.c:742 ../src/utils/pasuspender.c:280 #: ../src/utils/pacat.c:744 ../src/utils/pasuspender.c:280
#: ../src/utils/pactl.c:909 ../src/utils/paplay.c:381 #: ../src/utils/pactl.c:909 ../src/utils/paplay.c:381
#, c-format #, c-format
msgid "pa_mainloop_new() failed.\n" msgid "pa_mainloop_new() failed.\n"
msgstr "pa_mainloop_new() misslyckades.\n" msgstr "pa_mainloop_new() misslyckades.\n"
#: ../src/utils/pacat.c:763 #: ../src/utils/pacat.c:765
#, c-format #, c-format
msgid "io_new() failed.\n" msgid "io_new() failed.\n"
msgstr "io_new() misslyckades.\n" msgstr "io_new() misslyckades.\n"
#: ../src/utils/pacat.c:769 ../src/utils/pasuspender.c:293 #: ../src/utils/pacat.c:771 ../src/utils/pasuspender.c:293
#: ../src/utils/pactl.c:923 ../src/utils/paplay.c:396 #: ../src/utils/pactl.c:923 ../src/utils/paplay.c:396
#, c-format #, c-format
msgid "pa_context_new() failed.\n" msgid "pa_context_new() failed.\n"
msgstr "pa_context_new() misslyckades.\n" msgstr "pa_context_new() misslyckades.\n"
#: ../src/utils/pacat.c:777 #: ../src/utils/pacat.c:779
#, fuzzy, c-format #, fuzzy, c-format
msgid "pa_context_connect() failed: %s" msgid "pa_context_connect() failed: %s"
msgstr "pa_context_new() misslyckades.\n" msgstr "pa_context_new() misslyckades.\n"
#: ../src/utils/pacat.c:788 #: ../src/utils/pacat.c:790
#, c-format #, c-format
msgid "time_new() failed.\n" msgid "time_new() failed.\n"
msgstr "time_new() misslyckades.\n" msgstr "time_new() misslyckades.\n"
#: ../src/utils/pacat.c:795 ../src/utils/pasuspender.c:301 #: ../src/utils/pacat.c:797 ../src/utils/pasuspender.c:301
#: ../src/utils/pactl.c:931 ../src/utils/paplay.c:407 #: ../src/utils/pactl.c:931 ../src/utils/paplay.c:407
#, c-format #, c-format
msgid "pa_mainloop_run() failed.\n" msgid "pa_mainloop_run() failed.\n"

1835
po/zh_CN.po Normal file

File diff suppressed because it is too large Load diff

View file

@ -47,11 +47,11 @@ endif
AM_CFLAGS = \ AM_CFLAGS = \
-I$(top_srcdir)/src \ -I$(top_srcdir)/src \
-I$(top_builddir)/src/modules \ -I$(top_srcdir)/src/modules \
-I$(top_builddir)/src/modules/rtp \ -I$(top_srcdir)/src/modules/rtp \
-I$(top_builddir)/src/modules/gconf \ -I$(top_srcdir)/src/modules/gconf \
-I$(top_builddir)/src/modules/bluetooth \ -I$(top_srcdir)/src/modules/bluetooth \
-I$(top_builddir)/src/modules/raop \ -I$(top_srcdir)/src/modules/raop \
$(PTHREAD_CFLAGS) -D_POSIX_PTHREAD_SEMANTICS \ $(PTHREAD_CFLAGS) -D_POSIX_PTHREAD_SEMANTICS \
$(LTDLINCL) \ $(LTDLINCL) \
$(LIBSAMPLERATE_CFLAGS) \ $(LIBSAMPLERATE_CFLAGS) \
@ -80,6 +80,8 @@ AM_LDFLAGS+=-Wl,--export-all-symbols
WINSOCK_LIBS=-lwsock32 -lws2_32 -lwininet WINSOCK_LIBS=-lwsock32 -lws2_32 -lwininet
endif endif
MODULE_LDFLAGS = -module -disable-static -avoid-version
################################### ###################################
# Extra files # # Extra files #
################################### ###################################
@ -204,8 +206,8 @@ pacmd_LDADD = $(AM_LDADD) libpulse.la libpulsecommon-@PA_MAJORMINORMICRO@.la
pacmd_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS) pacmd_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
pax11publish_SOURCES = utils/pax11publish.c pax11publish_SOURCES = utils/pax11publish.c
pax11publish_CFLAGS = $(AM_CFLAGS) $(X_CFLAGS) pax11publish_CFLAGS = $(AM_CFLAGS) $(X11_CFLAGS)
pax11publish_LDADD = $(AM_LDADD) libpulse.la libpulsecommon-@PA_MAJORMINORMICRO@.la $(X_PRE_LIBS) -lX11 $(X_LIBS) $(X_EXTRA_LIBS) pax11publish_LDADD = $(AM_LDADD) libpulse.la libpulsecommon-@PA_MAJORMINORMICRO@.la $(X11_LIBS)
pax11publish_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS) pax11publish_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
pabrowse_SOURCES = utils/pabrowse.c pabrowse_SOURCES = utils/pabrowse.c
@ -217,6 +219,35 @@ pabrowse_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
# Test programs # # Test programs #
################################### ###################################
# missing: mcalign-test flist-test pacat-simple parec-simple sync-playback rtstutter stripnul interpol-test thread-test
TESTS = \
mainloop-test \
strlist-test \
close-test \
voltest \
memblockq-test \
channelmap-test \
thread-mainloop-test \
utf8-test \
get-binary-name-test \
ipacl-test \
hook-list-test \
memblock-test \
asyncq-test \
asyncmsgq-test \
queue-test \
rtpoll-test \
sig2str-test \
resampler-test \
smoother-test \
mix-test \
remix-test \
envelope-test \
proplist-test \
lock-autospawn-test \
prioq-test
noinst_PROGRAMS = \ noinst_PROGRAMS = \
mainloop-test \ mainloop-test \
mcalign-test \ mcalign-test \
@ -254,12 +285,17 @@ noinst_PROGRAMS = \
prioq-test prioq-test
if HAVE_SIGXCPU if HAVE_SIGXCPU
#TESTS += \
# cpulimit-test \
# cpulimit-test2
noinst_PROGRAMS += \ noinst_PROGRAMS += \
cpulimit-test \ cpulimit-test \
cpulimit-test2 cpulimit-test2
endif endif
if HAVE_GLIB20 if HAVE_GLIB20
TESTS += \
mainloop-test-glib
noinst_PROGRAMS += \ noinst_PROGRAMS += \
mainloop-test-glib mainloop-test-glib
endif endif
@ -459,6 +495,7 @@ lib_LTLIBRARIES = \
libpulsecommon_@PA_MAJORMINORMICRO@_la_SOURCES = \ libpulsecommon_@PA_MAJORMINORMICRO@_la_SOURCES = \
pulse/client-conf.c pulse/client-conf.h \ pulse/client-conf.c pulse/client-conf.h \
pulse/i18n.c pulse/i18n.h \ pulse/i18n.c pulse/i18n.h \
pulsecore/atomic.h \
pulsecore/authkey.c pulsecore/authkey.h \ pulsecore/authkey.c pulsecore/authkey.h \
pulsecore/conf-parser.c pulsecore/conf-parser.h \ pulsecore/conf-parser.c pulsecore/conf-parser.h \
pulsecore/core-error.c pulsecore/core-error.h \ pulsecore/core-error.c pulsecore/core-error.h \
@ -496,6 +533,7 @@ libpulsecommon_@PA_MAJORMINORMICRO@_la_SOURCES = \
pulsecore/pstream.c pulsecore/pstream.h \ pulsecore/pstream.c pulsecore/pstream.h \
pulsecore/queue.c pulsecore/queue.h \ pulsecore/queue.c pulsecore/queue.h \
pulsecore/random.c pulsecore/random.h \ pulsecore/random.c pulsecore/random.h \
pulsecore/refcnt.h \
pulsecore/rtclock.c pulsecore/rtclock.h \ pulsecore/rtclock.c pulsecore/rtclock.h \
pulsecore/shm.c pulsecore/shm.h \ pulsecore/shm.c pulsecore/shm.h \
pulsecore/socket-client.c pulsecore/socket-client.h \ pulsecore/socket-client.c pulsecore/socket-client.h \
@ -531,8 +569,8 @@ endif
if HAVE_X11 if HAVE_X11
libpulsecommon_@PA_MAJORMINORMICRO@_la_SOURCES += pulsecore/x11prop.c pulsecore/x11prop.h libpulsecommon_@PA_MAJORMINORMICRO@_la_SOURCES += pulsecore/x11prop.c pulsecore/x11prop.h
libpulsecommon_@PA_MAJORMINORMICRO@_la_CFLAGS += $(X_CFLAGS) libpulsecommon_@PA_MAJORMINORMICRO@_la_CFLAGS += $(X11_CFLAGS)
libpulsecommon_@PA_MAJORMINORMICRO@_la_LDFLAGS += $(X_PRE_LIBS) -lX11 $(X_LIBS) $(X_EXTRA_LIBS) libpulsecommon_@PA_MAJORMINORMICRO@_la_LDFLAGS += $(X11_LIBS)
endif endif
if HAVE_LIBASYNCNS if HAVE_LIBASYNCNS
@ -630,8 +668,8 @@ libpulse_la_LIBADD = $(AM_LIBADD) $(WINSOCK_LIBS) $(LTLIBICONV) libpulsecommon-@
if HAVE_X11 if HAVE_X11
libpulse_la_SOURCES += pulse/client-conf-x11.c pulse/client-conf-x11.h libpulse_la_SOURCES += pulse/client-conf-x11.c pulse/client-conf-x11.h
libpulse_la_CFLAGS += $(X_CFLAGS) libpulse_la_CFLAGS += $(X11_CFLAGS)
libpulse_la_LDFLAGS += $(X_PRE_LIBS) -lX11 $(X_LIBS) $(X_EXTRA_LIBS) libpulse_la_LDFLAGS += $(X11_LIBS)
endif endif
libpulse_simple_la_SOURCES = pulse/simple.c pulse/simple.h libpulse_simple_la_SOURCES = pulse/simple.c pulse/simple.h
@ -661,7 +699,7 @@ endif
libpulsedsp_la_SOURCES = utils/padsp.c libpulsedsp_la_SOURCES = utils/padsp.c
libpulsedsp_la_CFLAGS = $(AM_CFLAGS) libpulsedsp_la_CFLAGS = $(AM_CFLAGS)
libpulsedsp_la_LIBADD = $(AM_LIBADD) libpulse.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulsedsp_la_LIBADD = $(AM_LIBADD) libpulse.la libpulsecommon-@PA_MAJORMINORMICRO@.la
libpulsedsp_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version libpulsedsp_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version -disable-static
################################### ###################################
# Daemon core library # # Daemon core library #
@ -721,8 +759,8 @@ libpulsecore_@PA_MAJORMINORMICRO@_la_LIBADD = $(AM_LIBADD) $(LIBLTDL) $(LIBSAMPL
if HAVE_X11 if HAVE_X11
libpulsecore_@PA_MAJORMINORMICRO@_la_SOURCES += pulsecore/x11wrap.c pulsecore/x11wrap.h libpulsecore_@PA_MAJORMINORMICRO@_la_SOURCES += pulsecore/x11wrap.c pulsecore/x11wrap.h
libpulsecore_@PA_MAJORMINORMICRO@_la_CFLAGS += $(X_CFLAGS) libpulsecore_@PA_MAJORMINORMICRO@_la_CFLAGS += $(X11_CFLAGS)
libpulsecore_@PA_MAJORMINORMICRO@_la_LDFLAGS += $(X_PRE_LIBS) -lX11 $(X_LIBS) $(X_EXTRA_LIBS) libpulsecore_@PA_MAJORMINORMICRO@_la_LDFLAGS += $(X11_LIBS)
endif endif
################################### ###################################
@ -1039,108 +1077,108 @@ $(SYMDEF_FILES): modules/module-defs.h.m4
# Flat volume # Flat volume
module_flat_volume_la_SOURCES = modules/module-flat-volume.c module_flat_volume_la_SOURCES = modules/module-flat-volume.c
module_flat_volume_la_LDFLAGS = -module -avoid-version module_flat_volume_la_LDFLAGS = $(MODULE_LDFLAGS)
module_flat_volume_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_flat_volume_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
# Simple protocol # Simple protocol
module_simple_protocol_tcp_la_SOURCES = modules/module-protocol-stub.c module_simple_protocol_tcp_la_SOURCES = modules/module-protocol-stub.c
module_simple_protocol_tcp_la_CFLAGS = -DUSE_TCP_SOCKETS -DUSE_PROTOCOL_SIMPLE $(AM_CFLAGS) module_simple_protocol_tcp_la_CFLAGS = -DUSE_TCP_SOCKETS -DUSE_PROTOCOL_SIMPLE $(AM_CFLAGS)
module_simple_protocol_tcp_la_LDFLAGS = -module -avoid-version module_simple_protocol_tcp_la_LDFLAGS = $(MODULE_LDFLAGS)
module_simple_protocol_tcp_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libprotocol-simple.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_simple_protocol_tcp_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libprotocol-simple.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_simple_protocol_unix_la_SOURCES = modules/module-protocol-stub.c module_simple_protocol_unix_la_SOURCES = modules/module-protocol-stub.c
module_simple_protocol_unix_la_CFLAGS = -DUSE_UNIX_SOCKETS -DUSE_PROTOCOL_SIMPLE $(AM_CFLAGS) module_simple_protocol_unix_la_CFLAGS = -DUSE_UNIX_SOCKETS -DUSE_PROTOCOL_SIMPLE $(AM_CFLAGS)
module_simple_protocol_unix_la_LDFLAGS = -module -avoid-version module_simple_protocol_unix_la_LDFLAGS = $(MODULE_LDFLAGS)
module_simple_protocol_unix_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libprotocol-simple.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_simple_protocol_unix_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libprotocol-simple.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
# CLI protocol # CLI protocol
module_cli_la_SOURCES = modules/module-cli.c module_cli_la_SOURCES = modules/module-cli.c
module_cli_la_LDFLAGS = -module -avoid-version module_cli_la_LDFLAGS = $(MODULE_LDFLAGS)
module_cli_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libcli.la module_cli_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libcli.la
module_cli_protocol_tcp_la_SOURCES = modules/module-protocol-stub.c module_cli_protocol_tcp_la_SOURCES = modules/module-protocol-stub.c
module_cli_protocol_tcp_la_CFLAGS = -DUSE_TCP_SOCKETS -DUSE_PROTOCOL_CLI $(AM_CFLAGS) module_cli_protocol_tcp_la_CFLAGS = -DUSE_TCP_SOCKETS -DUSE_PROTOCOL_CLI $(AM_CFLAGS)
module_cli_protocol_tcp_la_LDFLAGS = -module -avoid-version module_cli_protocol_tcp_la_LDFLAGS = $(MODULE_LDFLAGS)
module_cli_protocol_tcp_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libprotocol-cli.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_cli_protocol_tcp_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libprotocol-cli.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_cli_protocol_unix_la_SOURCES = modules/module-protocol-stub.c module_cli_protocol_unix_la_SOURCES = modules/module-protocol-stub.c
module_cli_protocol_unix_la_CFLAGS = -DUSE_UNIX_SOCKETS -DUSE_PROTOCOL_CLI $(AM_CFLAGS) module_cli_protocol_unix_la_CFLAGS = -DUSE_UNIX_SOCKETS -DUSE_PROTOCOL_CLI $(AM_CFLAGS)
module_cli_protocol_unix_la_LDFLAGS = -module -avoid-version module_cli_protocol_unix_la_LDFLAGS = $(MODULE_LDFLAGS)
module_cli_protocol_unix_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libprotocol-cli.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_cli_protocol_unix_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libprotocol-cli.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
# HTTP protocol # HTTP protocol
module_http_protocol_tcp_la_SOURCES = modules/module-protocol-stub.c module_http_protocol_tcp_la_SOURCES = modules/module-protocol-stub.c
module_http_protocol_tcp_la_CFLAGS = -DUSE_TCP_SOCKETS -DUSE_PROTOCOL_HTTP $(AM_CFLAGS) module_http_protocol_tcp_la_CFLAGS = -DUSE_TCP_SOCKETS -DUSE_PROTOCOL_HTTP $(AM_CFLAGS)
module_http_protocol_tcp_la_LDFLAGS = -module -avoid-version module_http_protocol_tcp_la_LDFLAGS = $(MODULE_LDFLAGS)
module_http_protocol_tcp_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libprotocol-http.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_http_protocol_tcp_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libprotocol-http.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_http_protocol_unix_la_SOURCES = modules/module-protocol-stub.c module_http_protocol_unix_la_SOURCES = modules/module-protocol-stub.c
module_http_protocol_unix_la_CFLAGS = -DUSE_UNIX_SOCKETS -DUSE_PROTOCOL_HTTP $(AM_CFLAGS) module_http_protocol_unix_la_CFLAGS = -DUSE_UNIX_SOCKETS -DUSE_PROTOCOL_HTTP $(AM_CFLAGS)
module_http_protocol_unix_la_LDFLAGS = -module -avoid-version module_http_protocol_unix_la_LDFLAGS = $(MODULE_LDFLAGS)
module_http_protocol_unix_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libprotocol-http.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_http_protocol_unix_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libprotocol-http.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
# Native protocol # Native protocol
module_native_protocol_tcp_la_SOURCES = modules/module-protocol-stub.c module_native_protocol_tcp_la_SOURCES = modules/module-protocol-stub.c
module_native_protocol_tcp_la_CFLAGS = -DUSE_TCP_SOCKETS -DUSE_PROTOCOL_NATIVE $(AM_CFLAGS) module_native_protocol_tcp_la_CFLAGS = -DUSE_TCP_SOCKETS -DUSE_PROTOCOL_NATIVE $(AM_CFLAGS)
module_native_protocol_tcp_la_LDFLAGS = -module -avoid-version module_native_protocol_tcp_la_LDFLAGS = $(MODULE_LDFLAGS)
module_native_protocol_tcp_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libprotocol-native.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_native_protocol_tcp_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libprotocol-native.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_native_protocol_unix_la_SOURCES = modules/module-protocol-stub.c module_native_protocol_unix_la_SOURCES = modules/module-protocol-stub.c
module_native_protocol_unix_la_CFLAGS = -DUSE_UNIX_SOCKETS -DUSE_PROTOCOL_NATIVE $(AM_CFLAGS) module_native_protocol_unix_la_CFLAGS = -DUSE_UNIX_SOCKETS -DUSE_PROTOCOL_NATIVE $(AM_CFLAGS)
module_native_protocol_unix_la_LDFLAGS = -module -avoid-version module_native_protocol_unix_la_LDFLAGS = $(MODULE_LDFLAGS)
module_native_protocol_unix_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libprotocol-native.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_native_protocol_unix_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libprotocol-native.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_native_protocol_fd_la_SOURCES = modules/module-native-protocol-fd.c module_native_protocol_fd_la_SOURCES = modules/module-native-protocol-fd.c
module_native_protocol_fd_la_CFLAGS = $(AM_CFLAGS) module_native_protocol_fd_la_CFLAGS = $(AM_CFLAGS)
module_native_protocol_fd_la_LDFLAGS = -module -avoid-version module_native_protocol_fd_la_LDFLAGS = $(MODULE_LDFLAGS)
module_native_protocol_fd_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libprotocol-native.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_native_protocol_fd_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libprotocol-native.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
# EsounD protocol # EsounD protocol
module_esound_protocol_tcp_la_SOURCES = modules/module-protocol-stub.c module_esound_protocol_tcp_la_SOURCES = modules/module-protocol-stub.c
module_esound_protocol_tcp_la_CFLAGS = -DUSE_TCP_SOCKETS -DUSE_PROTOCOL_ESOUND $(AM_CFLAGS) module_esound_protocol_tcp_la_CFLAGS = -DUSE_TCP_SOCKETS -DUSE_PROTOCOL_ESOUND $(AM_CFLAGS)
module_esound_protocol_tcp_la_LDFLAGS = -module -avoid-version module_esound_protocol_tcp_la_LDFLAGS = $(MODULE_LDFLAGS)
module_esound_protocol_tcp_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libprotocol-esound.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_esound_protocol_tcp_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libprotocol-esound.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_esound_protocol_unix_la_SOURCES = modules/module-protocol-stub.c module_esound_protocol_unix_la_SOURCES = modules/module-protocol-stub.c
module_esound_protocol_unix_la_CFLAGS = -DUSE_UNIX_SOCKETS -DUSE_PROTOCOL_ESOUND $(AM_CFLAGS) module_esound_protocol_unix_la_CFLAGS = -DUSE_UNIX_SOCKETS -DUSE_PROTOCOL_ESOUND $(AM_CFLAGS)
module_esound_protocol_unix_la_LDFLAGS = -module -avoid-version module_esound_protocol_unix_la_LDFLAGS = $(MODULE_LDFLAGS)
module_esound_protocol_unix_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libprotocol-esound.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_esound_protocol_unix_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libprotocol-esound.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_esound_compat_spawnfd_la_SOURCES = modules/module-esound-compat-spawnfd.c module_esound_compat_spawnfd_la_SOURCES = modules/module-esound-compat-spawnfd.c
module_esound_compat_spawnfd_la_LDFLAGS = -module -avoid-version module_esound_compat_spawnfd_la_LDFLAGS = $(MODULE_LDFLAGS)
module_esound_compat_spawnfd_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_esound_compat_spawnfd_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_esound_compat_spawnpid_la_SOURCES = modules/module-esound-compat-spawnpid.c module_esound_compat_spawnpid_la_SOURCES = modules/module-esound-compat-spawnpid.c
module_esound_compat_spawnpid_la_LDFLAGS = -module -avoid-version module_esound_compat_spawnpid_la_LDFLAGS = $(MODULE_LDFLAGS)
module_esound_compat_spawnpid_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_esound_compat_spawnpid_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_esound_sink_la_SOURCES = modules/module-esound-sink.c module_esound_sink_la_SOURCES = modules/module-esound-sink.c
module_esound_sink_la_LDFLAGS = -module -avoid-version module_esound_sink_la_LDFLAGS = $(MODULE_LDFLAGS)
module_esound_sink_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_esound_sink_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
# Pipes # Pipes
module_pipe_sink_la_SOURCES = modules/module-pipe-sink.c module_pipe_sink_la_SOURCES = modules/module-pipe-sink.c
module_pipe_sink_la_LDFLAGS = -module -avoid-version module_pipe_sink_la_LDFLAGS = $(MODULE_LDFLAGS)
module_pipe_sink_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_pipe_sink_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_pipe_source_la_SOURCES = modules/module-pipe-source.c module_pipe_source_la_SOURCES = modules/module-pipe-source.c
module_pipe_source_la_LDFLAGS = -module -avoid-version module_pipe_source_la_LDFLAGS = $(MODULE_LDFLAGS)
module_pipe_source_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_pipe_source_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
# Fake sources/sinks # Fake sources/sinks
module_sine_la_SOURCES = modules/module-sine.c module_sine_la_SOURCES = modules/module-sine.c
module_sine_la_LDFLAGS = -module -avoid-version module_sine_la_LDFLAGS = $(MODULE_LDFLAGS)
module_sine_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_sine_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_null_sink_la_SOURCES = modules/module-null-sink.c module_null_sink_la_SOURCES = modules/module-null-sink.c
module_null_sink_la_LDFLAGS = -module -avoid-version module_null_sink_la_LDFLAGS = $(MODULE_LDFLAGS)
module_null_sink_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_null_sink_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_sine_source_la_SOURCES = modules/module-sine-source.c module_sine_source_la_SOURCES = modules/module-sine-source.c
@ -1150,47 +1188,47 @@ module_sine_source_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la
# Couplings # Couplings
module_combine_la_SOURCES = modules/module-combine.c module_combine_la_SOURCES = modules/module-combine.c
module_combine_la_LDFLAGS = -module -avoid-version module_combine_la_LDFLAGS = $(MODULE_LDFLAGS)
module_combine_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_combine_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_remap_sink_la_SOURCES = modules/module-remap-sink.c module_remap_sink_la_SOURCES = modules/module-remap-sink.c
module_remap_sink_la_LDFLAGS = -module -avoid-version module_remap_sink_la_LDFLAGS = $(MODULE_LDFLAGS)
module_remap_sink_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_remap_sink_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_ladspa_sink_la_SOURCES = modules/module-ladspa-sink.c modules/ladspa.h module_ladspa_sink_la_SOURCES = modules/module-ladspa-sink.c modules/ladspa.h
module_ladspa_sink_la_CFLAGS = -DLADSPA_PATH=\"$(libdir)/ladspa:/usr/local/lib/ladspa:/usr/lib/ladspa:/usr/local/lib64/ladspa:/usr/lib64/ladspa\" $(AM_CFLAGS) module_ladspa_sink_la_CFLAGS = -DLADSPA_PATH=\"$(libdir)/ladspa:/usr/local/lib/ladspa:/usr/lib/ladspa:/usr/local/lib64/ladspa:/usr/lib64/ladspa\" $(AM_CFLAGS)
module_ladspa_sink_la_LDFLAGS = -module -avoid-version module_ladspa_sink_la_LDFLAGS = $(MODULE_LDFLAGS)
module_ladspa_sink_la_LIBADD = $(AM_LIBADD) $(LIBLTDL) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_ladspa_sink_la_LIBADD = $(AM_LIBADD) $(LIBLTDL) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_match_la_SOURCES = modules/module-match.c module_match_la_SOURCES = modules/module-match.c
module_match_la_LDFLAGS = -module -avoid-version module_match_la_LDFLAGS = $(MODULE_LDFLAGS)
module_match_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_match_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_tunnel_sink_la_SOURCES = modules/module-tunnel.c module_tunnel_sink_la_SOURCES = modules/module-tunnel.c
module_tunnel_sink_la_CFLAGS = -DTUNNEL_SINK=1 $(AM_CFLAGS) module_tunnel_sink_la_CFLAGS = -DTUNNEL_SINK=1 $(AM_CFLAGS)
module_tunnel_sink_la_LDFLAGS = -module -avoid-version module_tunnel_sink_la_LDFLAGS = $(MODULE_LDFLAGS)
module_tunnel_sink_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_tunnel_sink_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_tunnel_source_la_SOURCES = modules/module-tunnel.c module_tunnel_source_la_SOURCES = modules/module-tunnel.c
module_tunnel_source_la_LDFLAGS = -module -avoid-version module_tunnel_source_la_LDFLAGS = $(MODULE_LDFLAGS)
module_tunnel_source_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_tunnel_source_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
# X11 # X11
module_x11_bell_la_SOURCES = modules/module-x11-bell.c module_x11_bell_la_SOURCES = modules/module-x11-bell.c
module_x11_bell_la_CFLAGS = $(AM_CFLAGS) $(X_CFLAGS) module_x11_bell_la_CFLAGS = $(AM_CFLAGS) $(X11_CFLAGS)
module_x11_bell_la_LDFLAGS = -module -avoid-version module_x11_bell_la_LDFLAGS = $(MODULE_LDFLAGS)
module_x11_bell_la_LIBADD = $(AM_LIBADD) $(X_PRE_LIBS) -lX11 $(X_LIBS) $(X_EXTRA_LIBS) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_x11_bell_la_LIBADD = $(AM_LIBADD) $(X11_LIBS) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_x11_publish_la_SOURCES = modules/module-x11-publish.c module_x11_publish_la_SOURCES = modules/module-x11-publish.c
module_x11_publish_la_CFLAGS = $(AM_CFLAGS) $(X_CFLAGS) module_x11_publish_la_CFLAGS = $(AM_CFLAGS) $(X11_CFLAGS)
module_x11_publish_la_LDFLAGS = -module -avoid-version module_x11_publish_la_LDFLAGS = $(MODULE_LDFLAGS)
module_x11_publish_la_LIBADD = $(AM_LIBADD) $(X_PRE_LIBS) -lX11 $(X_LIBS) $(X_EXTRA_LIBS) libprotocol-native.la libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_x11_publish_la_LIBADD = $(AM_LIBADD) $(X11_LIBS) libprotocol-native.la libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_x11_xsmp_la_SOURCES = modules/module-x11-xsmp.c module_x11_xsmp_la_SOURCES = modules/module-x11-xsmp.c
module_x11_xsmp_la_CFLAGS = $(AM_CFLAGS) $(X_CFLAGS) module_x11_xsmp_la_CFLAGS = $(AM_CFLAGS) $(X11_CFLAGS)
module_x11_xsmp_la_LDFLAGS = -module -avoid-version module_x11_xsmp_la_LDFLAGS = $(MODULE_LDFLAGS)
module_x11_xsmp_la_LIBADD = $(AM_LIBADD) $(X_PRE_LIBS) -lX11 $(X_LIBS) $(X_EXTRA_LIBS) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_x11_xsmp_la_LIBADD = $(AM_LIBADD) $(X11_LIBS) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
# OSS # OSS
@ -1199,7 +1237,7 @@ liboss_util_la_LDFLAGS = -avoid-version
liboss_util_la_LIBADD = libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la liboss_util_la_LIBADD = libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_oss_la_SOURCES = modules/module-oss.c module_oss_la_SOURCES = modules/module-oss.c
module_oss_la_LDFLAGS = -module -avoid-version module_oss_la_LDFLAGS = $(MODULE_LDFLAGS)
module_oss_la_LIBADD = $(AM_LIBADD) liboss-util.la libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_oss_la_LIBADD = $(AM_LIBADD) liboss-util.la libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
# ALSA # ALSA
@ -1210,128 +1248,128 @@ libalsa_util_la_LIBADD = $(AM_LIBADD) $(ASOUNDLIB_LIBS) libpulsecore-@PA_MAJORMI
libalsa_util_la_CFLAGS = $(AM_CFLAGS) $(ASOUNDLIB_CFLAGS) libalsa_util_la_CFLAGS = $(AM_CFLAGS) $(ASOUNDLIB_CFLAGS)
module_alsa_sink_la_SOURCES = modules/module-alsa-sink.c module_alsa_sink_la_SOURCES = modules/module-alsa-sink.c
module_alsa_sink_la_LDFLAGS = -module -avoid-version module_alsa_sink_la_LDFLAGS = $(MODULE_LDFLAGS)
module_alsa_sink_la_LIBADD = $(AM_LIBADD) $(ASOUNDLIB_LIBS) libalsa-util.la libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_alsa_sink_la_LIBADD = $(AM_LIBADD) $(ASOUNDLIB_LIBS) libalsa-util.la libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_alsa_sink_la_CFLAGS = $(AM_CFLAGS) $(ASOUNDLIB_CFLAGS) module_alsa_sink_la_CFLAGS = $(AM_CFLAGS) $(ASOUNDLIB_CFLAGS)
module_alsa_source_la_SOURCES = modules/module-alsa-source.c module_alsa_source_la_SOURCES = modules/module-alsa-source.c
module_alsa_source_la_LDFLAGS = -module -avoid-version module_alsa_source_la_LDFLAGS = $(MODULE_LDFLAGS)
module_alsa_source_la_LIBADD = $(AM_LIBADD) $(ASOUNDLIB_LIBS) libalsa-util.la libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_alsa_source_la_LIBADD = $(AM_LIBADD) $(ASOUNDLIB_LIBS) libalsa-util.la libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_alsa_source_la_CFLAGS = $(AM_CFLAGS) $(ASOUNDLIB_CFLAGS) module_alsa_source_la_CFLAGS = $(AM_CFLAGS) $(ASOUNDLIB_CFLAGS)
# Solaris # Solaris
module_solaris_la_SOURCES = modules/module-solaris.c module_solaris_la_SOURCES = modules/module-solaris.c
module_solaris_la_LDFLAGS = -module -avoid-version module_solaris_la_LDFLAGS = $(MODULE_LDFLAGS)
module_solaris_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_solaris_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
# Avahi # Avahi
module_zeroconf_publish_la_SOURCES = modules/module-zeroconf-publish.c module_zeroconf_publish_la_SOURCES = modules/module-zeroconf-publish.c
module_zeroconf_publish_la_LDFLAGS = -module -avoid-version module_zeroconf_publish_la_LDFLAGS = $(MODULE_LDFLAGS)
module_zeroconf_publish_la_LIBADD = $(AM_LIBADD) $(AVAHI_LIBS) libavahi-wrap.la libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_zeroconf_publish_la_LIBADD = $(AM_LIBADD) $(AVAHI_LIBS) libavahi-wrap.la libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_zeroconf_publish_la_CFLAGS = $(AM_CFLAGS) $(AVAHI_CFLAGS) module_zeroconf_publish_la_CFLAGS = $(AM_CFLAGS) $(AVAHI_CFLAGS)
module_zeroconf_discover_la_SOURCES = modules/module-zeroconf-discover.c module_zeroconf_discover_la_SOURCES = modules/module-zeroconf-discover.c
module_zeroconf_discover_la_LDFLAGS = -module -avoid-version module_zeroconf_discover_la_LDFLAGS = $(MODULE_LDFLAGS)
module_zeroconf_discover_la_LIBADD = $(AM_LIBADD) $(AVAHI_LIBS) libavahi-wrap.la libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_zeroconf_discover_la_LIBADD = $(AM_LIBADD) $(AVAHI_LIBS) libavahi-wrap.la libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_zeroconf_discover_la_CFLAGS = $(AM_CFLAGS) $(AVAHI_CFLAGS) module_zeroconf_discover_la_CFLAGS = $(AM_CFLAGS) $(AVAHI_CFLAGS)
# LIRC # LIRC
module_lirc_la_SOURCES = modules/module-lirc.c module_lirc_la_SOURCES = modules/module-lirc.c
module_lirc_la_LDFLAGS = -module -avoid-version module_lirc_la_LDFLAGS = $(MODULE_LDFLAGS)
module_lirc_la_LIBADD = $(AM_LIBADD) $(LIRC_LIBS) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_lirc_la_LIBADD = $(AM_LIBADD) $(LIRC_LIBS) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_lirc_la_CFLAGS = $(AM_CFLAGS) $(LIRC_CFLAGS) module_lirc_la_CFLAGS = $(AM_CFLAGS) $(LIRC_CFLAGS)
# Linux evdev # Linux evdev
module_mmkbd_evdev_la_SOURCES = modules/module-mmkbd-evdev.c module_mmkbd_evdev_la_SOURCES = modules/module-mmkbd-evdev.c
module_mmkbd_evdev_la_LDFLAGS = -module -avoid-version module_mmkbd_evdev_la_LDFLAGS = $(MODULE_LDFLAGS)
module_mmkbd_evdev_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_mmkbd_evdev_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_mmkbd_evdev_la_CFLAGS = $(AM_CFLAGS) module_mmkbd_evdev_la_CFLAGS = $(AM_CFLAGS)
# Windows waveout # Windows waveout
#module_waveout_la_SOURCES = modules/module-waveout.c #module_waveout_la_SOURCES = modules/module-waveout.c
#module_waveout_la_LDFLAGS = -module -avoid-version #module_waveout_la_LDFLAGS = $(MODULE_LDFLAGS)
#module_waveout_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la -lwinmm libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la #module_waveout_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la -lwinmm libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
#module_waveout_la_CFLAGS = $(AM_CFLAGS) #module_waveout_la_CFLAGS = $(AM_CFLAGS)
# Hardware autodetection module # Hardware autodetection module
module_detect_la_SOURCES = modules/module-detect.c module_detect_la_SOURCES = modules/module-detect.c
module_detect_la_LDFLAGS = -module -avoid-version module_detect_la_LDFLAGS = $(MODULE_LDFLAGS)
module_detect_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_detect_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_detect_la_CFLAGS = $(AM_CFLAGS) module_detect_la_CFLAGS = $(AM_CFLAGS)
# Volume restore module # Volume restore module
module_volume_restore_la_SOURCES = modules/module-volume-restore.c module_volume_restore_la_SOURCES = modules/module-volume-restore.c
module_volume_restore_la_LDFLAGS = -module -avoid-version module_volume_restore_la_LDFLAGS = $(MODULE_LDFLAGS)
module_volume_restore_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_volume_restore_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_volume_restore_la_CFLAGS = $(AM_CFLAGS) module_volume_restore_la_CFLAGS = $(AM_CFLAGS)
# Position event sounds in space # Position event sounds in space
module_position_event_sounds_la_SOURCES = modules/module-position-event-sounds.c module_position_event_sounds_la_SOURCES = modules/module-position-event-sounds.c
module_position_event_sounds_la_LDFLAGS = -module -avoid-version module_position_event_sounds_la_LDFLAGS = $(MODULE_LDFLAGS)
module_position_event_sounds_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_position_event_sounds_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_position_event_sounds_CFLAGS = $(AM_CFLAGS) module_position_event_sounds_CFLAGS = $(AM_CFLAGS)
# Device volume/muted restore module # Device volume/muted restore module
module_device_restore_la_SOURCES = modules/module-device-restore.c module_device_restore_la_SOURCES = modules/module-device-restore.c
module_device_restore_la_LDFLAGS = -module -avoid-version module_device_restore_la_LDFLAGS = $(MODULE_LDFLAGS)
module_device_restore_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la -lgdbm libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_device_restore_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la -lgdbm libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_device_restore_la_CFLAGS = $(AM_CFLAGS) module_device_restore_la_CFLAGS = $(AM_CFLAGS)
# Stream volume/muted/device restore module # Stream volume/muted/device restore module
module_stream_restore_la_SOURCES = modules/module-stream-restore.c module_stream_restore_la_SOURCES = modules/module-stream-restore.c
module_stream_restore_la_LDFLAGS = -module -avoid-version module_stream_restore_la_LDFLAGS = $(MODULE_LDFLAGS)
module_stream_restore_la_LIBADD = $(AM_LIBADD) libprotocol-native.la libpulsecore-@PA_MAJORMINORMICRO@.la -lgdbm libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_stream_restore_la_LIBADD = $(AM_LIBADD) libprotocol-native.la libpulsecore-@PA_MAJORMINORMICRO@.la -lgdbm libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_stream_restore_la_CFLAGS = $(AM_CFLAGS) module_stream_restore_la_CFLAGS = $(AM_CFLAGS)
# Default sink/source restore module # Default sink/source restore module
module_default_device_restore_la_SOURCES = modules/module-default-device-restore.c module_default_device_restore_la_SOURCES = modules/module-default-device-restore.c
module_default_device_restore_la_LDFLAGS = -module -avoid-version module_default_device_restore_la_LDFLAGS = $(MODULE_LDFLAGS)
module_default_device_restore_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_default_device_restore_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_default_device_restore_la_CFLAGS = $(AM_CFLAGS) module_default_device_restore_la_CFLAGS = $(AM_CFLAGS)
# Always Sink module # Always Sink module
module_always_sink_la_SOURCES = modules/module-always-sink.c module_always_sink_la_SOURCES = modules/module-always-sink.c
module_always_sink_la_LDFLAGS = -module -avoid-version module_always_sink_la_LDFLAGS = $(MODULE_LDFLAGS)
module_always_sink_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_always_sink_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_always_sink_la_CFLAGS = $(AM_CFLAGS) module_always_sink_la_CFLAGS = $(AM_CFLAGS)
# Rescue streams module # Rescue streams module
module_rescue_streams_la_SOURCES = modules/module-rescue-streams.c module_rescue_streams_la_SOURCES = modules/module-rescue-streams.c
module_rescue_streams_la_LDFLAGS = -module -avoid-version 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_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_rescue_streams_la_CFLAGS = $(AM_CFLAGS) module_rescue_streams_la_CFLAGS = $(AM_CFLAGS)
# Suspend-on-idle module # Suspend-on-idle module
module_suspend_on_idle_la_SOURCES = modules/module-suspend-on-idle.c module_suspend_on_idle_la_SOURCES = modules/module-suspend-on-idle.c
module_suspend_on_idle_la_LDFLAGS = -module -avoid-version module_suspend_on_idle_la_LDFLAGS = $(MODULE_LDFLAGS)
module_suspend_on_idle_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_suspend_on_idle_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_suspend_on_idle_la_CFLAGS = $(AM_CFLAGS) module_suspend_on_idle_la_CFLAGS = $(AM_CFLAGS)
# RTP modules # RTP modules
module_rtp_send_la_SOURCES = modules/rtp/module-rtp-send.c module_rtp_send_la_SOURCES = modules/rtp/module-rtp-send.c
module_rtp_send_la_LDFLAGS = -module -avoid-version module_rtp_send_la_LDFLAGS = $(MODULE_LDFLAGS)
module_rtp_send_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la librtp.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_rtp_send_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la librtp.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_rtp_send_la_CFLAGS = $(AM_CFLAGS) module_rtp_send_la_CFLAGS = $(AM_CFLAGS)
module_rtp_recv_la_SOURCES = modules/rtp/module-rtp-recv.c module_rtp_recv_la_SOURCES = modules/rtp/module-rtp-recv.c
module_rtp_recv_la_LDFLAGS = -module -avoid-version module_rtp_recv_la_LDFLAGS = $(MODULE_LDFLAGS)
module_rtp_recv_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la librtp.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_rtp_recv_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la librtp.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_rtp_recv_la_CFLAGS = $(AM_CFLAGS) module_rtp_recv_la_CFLAGS = $(AM_CFLAGS)
# JACK # JACK
module_jack_sink_la_SOURCES = modules/module-jack-sink.c module_jack_sink_la_SOURCES = modules/module-jack-sink.c
module_jack_sink_la_LDFLAGS = -module -avoid-version module_jack_sink_la_LDFLAGS = $(MODULE_LDFLAGS)
module_jack_sink_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la $(JACK_LIBS) libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_jack_sink_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la $(JACK_LIBS) libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_jack_sink_la_CFLAGS = $(AM_CFLAGS) $(JACK_CFLAGS) module_jack_sink_la_CFLAGS = $(AM_CFLAGS) $(JACK_CFLAGS)
module_jack_source_la_SOURCES = modules/module-jack-source.c module_jack_source_la_SOURCES = modules/module-jack-source.c
module_jack_source_la_LDFLAGS = -module -avoid-version module_jack_source_la_LDFLAGS = $(MODULE_LDFLAGS)
module_jack_source_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la $(JACK_LIBS) libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_jack_source_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la $(JACK_LIBS) libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_jack_source_la_CFLAGS = $(AM_CFLAGS) $(JACK_CFLAGS) module_jack_source_la_CFLAGS = $(AM_CFLAGS) $(JACK_CFLAGS)
@ -1342,18 +1380,18 @@ libdbus_util_la_LIBADD = $(AM_LIBADD) $(DBUS_LIBS) libpulsecore-@PA_MAJORMINORMI
libdbus_util_la_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS) libdbus_util_la_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS)
module_hal_detect_la_SOURCES = modules/module-hal-detect.c module_hal_detect_la_SOURCES = modules/module-hal-detect.c
module_hal_detect_la_LDFLAGS = -module -avoid-version module_hal_detect_la_LDFLAGS = $(MODULE_LDFLAGS)
module_hal_detect_la_LIBADD = $(AM_LIBADD) $(HAL_LIBS) libpulsecore-@PA_MAJORMINORMICRO@.la libdbus-util.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_hal_detect_la_LIBADD = $(AM_LIBADD) $(HAL_LIBS) libpulsecore-@PA_MAJORMINORMICRO@.la libdbus-util.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_hal_detect_la_CFLAGS = $(AM_CFLAGS) $(HAL_CFLAGS) module_hal_detect_la_CFLAGS = $(AM_CFLAGS) $(HAL_CFLAGS)
module_console_kit_la_SOURCES = modules/module-console-kit.c module_console_kit_la_SOURCES = modules/module-console-kit.c
module_console_kit_la_LDFLAGS = -module -avoid-version module_console_kit_la_LDFLAGS = $(MODULE_LDFLAGS)
module_console_kit_la_LIBADD = $(AM_LIBADD) $(DBUS_LIBS) libpulsecore-@PA_MAJORMINORMICRO@.la libdbus-util.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_console_kit_la_LIBADD = $(AM_LIBADD) $(DBUS_LIBS) libpulsecore-@PA_MAJORMINORMICRO@.la libdbus-util.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_console_kit_la_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS) module_console_kit_la_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS)
# GConf support # GConf support
module_gconf_la_SOURCES = modules/gconf/module-gconf.c module_gconf_la_SOURCES = modules/gconf/module-gconf.c
module_gconf_la_LDFLAGS = -module -avoid-version module_gconf_la_LDFLAGS = $(MODULE_LDFLAGS)
module_gconf_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_gconf_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_gconf_la_CFLAGS = $(AM_CFLAGS) -DPA_GCONF_HELPER=\"$(pulselibexecdir)/gconf-helper\" module_gconf_la_CFLAGS = $(AM_CFLAGS) -DPA_GCONF_HELPER=\"$(pulselibexecdir)/gconf-helper\"
@ -1364,7 +1402,7 @@ gconf_helper_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
# Bluetooth proximity # Bluetooth proximity
module_bluetooth_proximity_la_SOURCES = modules/bluetooth/module-bluetooth-proximity.c module_bluetooth_proximity_la_SOURCES = modules/bluetooth/module-bluetooth-proximity.c
module_bluetooth_proximity_la_LDFLAGS = -module -avoid-version module_bluetooth_proximity_la_LDFLAGS = $(MODULE_LDFLAGS)
module_bluetooth_proximity_la_LIBADD = $(AM_LIBADD) $(DBUS_LIBS) libpulsecore-@PA_MAJORMINORMICRO@.la libdbus-util.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_bluetooth_proximity_la_LIBADD = $(AM_LIBADD) $(DBUS_LIBS) libpulsecore-@PA_MAJORMINORMICRO@.la libdbus-util.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_bluetooth_proximity_la_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS) -DPA_BT_PROXIMITY_HELPER=\"$(pulselibexecdir)/proximity-helper\" module_bluetooth_proximity_la_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS) -DPA_BT_PROXIMITY_HELPER=\"$(pulselibexecdir)/proximity-helper\"
@ -1375,7 +1413,7 @@ proximity_helper_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
# Bluetooth sink / source # Bluetooth sink / source
module_bluetooth_discover_la_SOURCES = modules/bluetooth/module-bluetooth-discover.c module_bluetooth_discover_la_SOURCES = modules/bluetooth/module-bluetooth-discover.c
module_bluetooth_discover_la_LDFLAGS = -module -avoid-version module_bluetooth_discover_la_LDFLAGS = $(MODULE_LDFLAGS)
module_bluetooth_discover_la_LIBADD = $(AM_LIBADD) $(DBUS_LIBS) libpulsecore-@PA_MAJORMINORMICRO@.la libdbus-util.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_bluetooth_discover_la_LIBADD = $(AM_LIBADD) $(DBUS_LIBS) libpulsecore-@PA_MAJORMINORMICRO@.la libdbus-util.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_bluetooth_discover_la_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS) module_bluetooth_discover_la_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS)
@ -1383,24 +1421,25 @@ libbluetooth_sbc_la_SOURCES = modules/bluetooth/sbc.c modules/bluetooth/sbc.h mo
libbluetooth_sbc_la_LDFLAGS = -avoid-version libbluetooth_sbc_la_LDFLAGS = -avoid-version
libbluetooth_sbc_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la libbluetooth_sbc_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
libbluetooth_sbc_la_CFLAGS = $(AM_CFLAGS) libbluetooth_sbc_la_CFLAGS = $(AM_CFLAGS)
SBC_FILES = $(subst modules/bluetooth/,,$(libbluetooth_sbc_la_SOURCES))
libbluetooth_ipc_la_SOURCES = modules/bluetooth/ipc.c modules/bluetooth/ipc.h libbluetooth_ipc_la_SOURCES = modules/bluetooth/ipc.c modules/bluetooth/ipc.h
libbluetooth_ipc_la_LDFLAGS = -avoid-version libbluetooth_ipc_la_LDFLAGS = -avoid-version
libbluetooth_ipc_la_LIBADD = $(AM_LIBADD)libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la libbluetooth_ipc_la_LIBADD = $(AM_LIBADD)libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
libbluetooth_ipc_la_CFLAGS = $(AM_CFLAGS) libbluetooth_ipc_la_CFLAGS = $(AM_CFLAGS) -w
module_bluetooth_device_la_SOURCES = modules/bluetooth/module-bluetooth-device.c modules/bluetooth/rtp.h module_bluetooth_device_la_SOURCES = modules/bluetooth/module-bluetooth-device.c modules/bluetooth/rtp.h
module_bluetooth_device_la_LDFLAGS = -module -avoid-version module_bluetooth_device_la_LDFLAGS = $(MODULE_LDFLAGS)
module_bluetooth_device_la_LIBADD = $(AM_LIBADD) $(DBUS_LIBS) libpulsecore-@PA_MAJORMINORMICRO@.la libdbus-util.la libbluetooth-ipc.la libbluetooth-sbc.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_bluetooth_device_la_LIBADD = $(AM_LIBADD) $(DBUS_LIBS) libpulsecore-@PA_MAJORMINORMICRO@.la libdbus-util.la libbluetooth-ipc.la libbluetooth-sbc.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_bluetooth_device_la_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS) module_bluetooth_device_la_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS) -w
# Apple Airtunes/RAOP # Apple Airtunes/RAOP
module_raop_sink_la_SOURCES = modules/module-raop-sink.c module_raop_sink_la_SOURCES = modules/module-raop-sink.c
module_raop_sink_la_LDFLAGS = -module -avoid-version 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_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/module-raop-discover.c
module_raop_discover_la_LDFLAGS = -module -avoid-version 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_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) module_raop_discover_la_CFLAGS = $(AM_CFLAGS) $(AVAHI_CFLAGS)
@ -1454,17 +1493,25 @@ install-exec-hook:
chmod u+s $(DESTDIR)$(bindir)/pulseaudio chmod u+s $(DESTDIR)$(bindir)/pulseaudio
-chmod u+s $(DESTDIR)$(pulselibexecdir)/proximity-helper -chmod u+s $(DESTDIR)$(pulselibexecdir)/proximity-helper
ln -sf pacat $(DESTDIR)$(bindir)/parec ln -sf pacat $(DESTDIR)$(bindir)/parec
rm -f $(DESTDIR)$(modlibexecdir)/*.a
rm -f $(DESTDIR)$(libdir)/libpulsedsp.a
rm -f $(DESTDIR)$(libdir)/libpulsedsp.la rm -f $(DESTDIR)$(libdir)/libpulsedsp.la
rm -f $(DESTDIR)$(modlibexecdir)/*.la rm -f $(DESTDIR)$(modlibexecdir)/*.la
uninstall-hook:
rm -f $(DESTDIR)$(bindir)/parec
rm -f $(DESTDIR)$(libdir)/libpulsedsp.*
rm -f $(DESTDIR)$(modlibexecdir)/*.so
massif: pulseaudio massif: pulseaudio
libtool --mode=execute valgrind --tool=massif --depth=6 --alloc-fn=pa_xmalloc --alloc-fn=pa_xmalloc0 --alloc-fn=pa_xrealloc --alloc-fn=dbus_realloc --alloc-fn=pa_xnew0_internal --alloc-fn=pa_xnew_internal ./pulseaudio libtool --mode=execute valgrind --tool=massif --depth=6 --alloc-fn=pa_xmalloc --alloc-fn=pa_xmalloc0 --alloc-fn=pa_xrealloc --alloc-fn=dbus_realloc --alloc-fn=pa_xnew0_internal --alloc-fn=pa_xnew_internal ./pulseaudio
update-ffmpeg: update-ffmpeg:
wget -O pulsecore/ffmpeg/resample2.c http://svn.mplayerhq.hu/ffmpeg/trunk/libavcodec/resample2.c?view=co wget -O pulsecore/ffmpeg/resample2.c http://svn.mplayerhq.hu/ffmpeg/trunk/libavcodec/resample2.c?view=co
update-sbc:
for i in $(SBC_FILES); do \
wget -O modules/bluetooth/$$i http://git.kernel.org/\?p=bluetooth/bluez.git\;a=blob_plain\;f=sbc/$$i ; \
done
# Automatically generate linker version script. We use the same one for all public .sos # Automatically generate linker version script. We use the same one for all public .sos
update-map-file: update-map-file:
( echo "PULSE_0 {" ; \ ( echo "PULSE_0 {" ; \
@ -1474,4 +1521,6 @@ update-map-file:
echo "*;" ; \ echo "*;" ; \
echo "};" ) > $(srcdir)/map-file echo "};" ) > $(srcdir)/map-file
.PHONY: utils/padsp update-all: update-ffmpeg update-sbc update-map-file
.PHONY: utils/padsp massif update-all update-ffmpeg update-sbc update-map-file

View file

@ -130,7 +130,7 @@ void pa_cmdline_help(const char *argv0) {
" --cleanup-shm Cleanup stale shared memory segments\n" " --cleanup-shm Cleanup stale shared memory segments\n"
" --start Start the daemon if it is not running\n" " --start Start the daemon if it is not running\n"
" -k --kill Kill a running daemon\n" " -k --kill Kill a running daemon\n"
" --check Check for a running daemon\n\n" " --check Check for a running daemon (only returns exit code)\n\n"
"OPTIONS:\n" "OPTIONS:\n"
" --system[=BOOL] Run as system-wide instance\n" " --system[=BOOL] Run as system-wide instance\n"

View file

@ -167,7 +167,7 @@ static void callback(pa_mainloop_api*m, pa_io_event*e, int fd, pa_io_event_flags
pa_assert(e == io_event); pa_assert(e == io_event);
pa_assert(fd == the_pipe[0]); pa_assert(fd == the_pipe[0]);
pa_log("Recevied request to terminate due to CPU overload."); pa_log("Received request to terminate due to CPU overload.");
pa_read(the_pipe[0], &c, sizeof(c), NULL); pa_read(the_pipe[0], &c, sizeof(c), NULL);
m->quit(m, 1); /* Quit the main loop */ m->quit(m, 1); /* Quit the main loop */

View file

@ -760,8 +760,32 @@ int pa_alsa_prepare_mixer(snd_mixer_t *mixer, const char *dev) {
return 0; return 0;
} }
snd_mixer_elem_t *pa_alsa_find_elem(snd_mixer_t *mixer, const char *name, const char *fallback) { static pa_bool_t elem_has_volume(snd_mixer_elem_t *elem, pa_bool_t playback) {
snd_mixer_elem_t *elem; 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_t *sid = NULL;
snd_mixer_selem_id_alloca(&sid); snd_mixer_selem_id_alloca(&sid);
@ -771,17 +795,57 @@ snd_mixer_elem_t *pa_alsa_find_elem(snd_mixer_t *mixer, const char *name, const
snd_mixer_selem_id_set_name(sid, name); snd_mixer_selem_id_set_name(sid, name);
if (!(elem = snd_mixer_find_selem(mixer, sid))) { if ((elem = snd_mixer_find_selem(mixer, sid))) {
pa_log_info("Cannot find mixer control \"%s\".", snd_mixer_selem_id_get_name(sid));
if (fallback) { if (elem_has_volume(elem, playback) &&
snd_mixer_selem_id_set_name(sid, fallback); elem_has_switch(elem, playback))
goto success;
if (!(elem = snd_mixer_find_selem(mixer, sid))) if (!elem_has_volume(elem, playback) &&
pa_log_warn("Cannot find fallback mixer control \"%s\".", snd_mixer_selem_id_get_name(sid)); !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);
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_warn("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) if (elem)
pa_log_info("Using mixer control \"%s\".", snd_mixer_selem_id_get_name(sid)); pa_log_info("Using mixer control \"%s\".", snd_mixer_selem_id_get_name(sid));

View file

@ -52,7 +52,7 @@ int pa_alsa_set_hw_params(
int pa_alsa_set_sw_params(snd_pcm_t *pcm, snd_pcm_uframes_t avail_min); int pa_alsa_set_sw_params(snd_pcm_t *pcm, snd_pcm_uframes_t avail_min);
int pa_alsa_prepare_mixer(snd_mixer_t *mixer, const char *dev); 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); snd_mixer_elem_t *pa_alsa_find_elem(snd_mixer_t *mixer, const char *name, const char *fallback, pa_bool_t playback);
snd_pcm_t *pa_alsa_open_by_device_id( snd_pcm_t *pa_alsa_open_by_device_id(
const char *dev_id, const char *dev_id,

View file

@ -22,22 +22,26 @@
#include "ipc.h" #include "ipc.h"
/* This table contains the string representation for messages */ #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
static const char *strmsg[] = {
"BT_GETCAPABILITIES_REQ", /* This table contains the string representation for messages types */
"BT_GETCAPABILITIES_RSP", static const char *strtypes[] = {
"BT_SETCONFIGURATION_REQ", "BT_REQUEST",
"BT_SETCONFIGURATION_RSP", "BT_RESPONSE",
"BT_STREAMSTART_REQ", "BT_INDICATION",
"BT_STREAMSTART_RSP", "BT_ERROR",
"BT_STREAMSTOP_REQ", };
"BT_STREAMSTOP_RSP",
"BT_STREAMSUSPEND_IND", /* This table contains the string representation for messages names */
"BT_STREAMRESUME_IND", static const char *strnames[] = {
"BT_CONTROL_REQ", "BT_GET_CAPABILITIES",
"BT_CONTROL_RSP", "BT_SET_CONFIGURATION",
"BT_CONTROL_IND", "BT_NEW_STREAM",
"BT_STREAMFD_IND", "BT_START_STREAM",
"BT_STOP_STREAM",
"BT_SUSPEND_STREAM",
"BT_RESUME_STREAM",
"BT_CONTROL",
}; };
int bt_audio_service_open(void) int bt_audio_service_open(void)
@ -88,7 +92,7 @@ int bt_audio_service_get_data_fd(int sk)
msgh.msg_control = &cmsg_b; msgh.msg_control = &cmsg_b;
msgh.msg_controllen = CMSG_LEN(sizeof(int)); msgh.msg_controllen = CMSG_LEN(sizeof(int));
ret = (int) recvmsg(sk, &msgh, 0); ret = recvmsg(sk, &msgh, 0);
if (ret < 0) { if (ret < 0) {
err = errno; err = errno;
fprintf(stderr, "%s: Unable to receive fd: %s (%d)\n", fprintf(stderr, "%s: Unable to receive fd: %s (%d)\n",
@ -109,10 +113,18 @@ int bt_audio_service_get_data_fd(int sk)
return -1; return -1;
} }
const char *bt_audio_strmsg(int type) const char *bt_audio_strtype(uint8_t type)
{ {
if (type < 0 || (size_t) type > (sizeof(strmsg) / sizeof(strmsg[0]))) if (type >= ARRAY_SIZE(strtypes))
return NULL; return NULL;
return strmsg[type]; return strtypes[type];
}
const char *bt_audio_strname(uint8_t name)
{
if (name >= ARRAY_SIZE(strnames))
return NULL;
return strnames[name];
} }

View file

@ -23,36 +23,36 @@
/* /*
Message sequence chart of streaming sequence for A2DP transport Message sequence chart of streaming sequence for A2DP transport
Audio daemon User Audio daemon User
on snd_pcm_open on snd_pcm_open
<--BT_GETCAPABILITIES_REQ <--BT_GET_CAPABILITIES_REQ
BT_GETCAPABILITIES_RSP--> BT_GET_CAPABILITIES_RSP-->
on snd_pcm_hw_params on snd_pcm_hw_params
<--BT_SETCONFIGURATION_REQ <--BT_SETCONFIGURATION_REQ
BT_SETCONFIGURATION_RSP--> BT_SET_CONFIGURATION_RSP-->
on snd_pcm_prepare on snd_pcm_prepare
<--BT_STREAMSTART_REQ <--BT_START_STREAM_REQ
<Moves to streaming state> <Moves to streaming state>
BT_STREAMSTART_RSP--> BT_START_STREAM_RSP-->
BT_STREAMFD_IND --> BT_NEW_STREAM_IND -->
< streams data > < streams data >
.......... ..........
on snd_pcm_drop/snd_pcm_drain on snd_pcm_drop/snd_pcm_drain
<--BT_STREAMSTOP_REQ <--BT_STOP_STREAM_REQ
<Moves to open state> <Moves to open state>
BT_STREAMSTOP_RSP--> BT_STOP_STREAM_RSP-->
on IPC close or appl crash on IPC close or appl crash
<Moves to idle> <Moves to idle>
*/ */
@ -71,43 +71,36 @@ extern "C" {
#include <sys/un.h> #include <sys/un.h>
#include <errno.h> #include <errno.h>
#define BT_AUDIO_IPC_PACKET_SIZE 128 #define BT_SUGGESTED_BUFFER_SIZE 128
#define BT_IPC_SOCKET_NAME "\0/org/bluez/audio" #define BT_IPC_SOCKET_NAME "\0/org/bluez/audio"
/* Generic message header definition, except for RSP messages */ /* Generic message header definition, except for RESPONSE messages */
typedef struct { typedef struct {
uint8_t msg_type; uint8_t type;
uint8_t name;
uint16_t length;
} __attribute__ ((packed)) bt_audio_msg_header_t; } __attribute__ ((packed)) bt_audio_msg_header_t;
/* Generic message header definition, for all RSP messages */
typedef struct { typedef struct {
bt_audio_msg_header_t msg_h; bt_audio_msg_header_t h;
uint8_t posix_errno; uint8_t posix_errno;
} __attribute__ ((packed)) bt_audio_rsp_msg_header_t; } __attribute__ ((packed)) bt_audio_error_t;
/* Messages list */ /* Message types */
#define BT_GETCAPABILITIES_REQ 0 #define BT_REQUEST 0
#define BT_GETCAPABILITIES_RSP 1 #define BT_RESPONSE 1
#define BT_INDICATION 2
#define BT_ERROR 3
#define BT_SETCONFIGURATION_REQ 2 /* Messages names */
#define BT_SETCONFIGURATION_RSP 3 #define BT_GET_CAPABILITIES 0
#define BT_SET_CONFIGURATION 1
#define BT_STREAMSTART_REQ 4 #define BT_NEW_STREAM 2
#define BT_STREAMSTART_RSP 5 #define BT_START_STREAM 3
#define BT_STOP_STREAM 4
#define BT_STREAMSTOP_REQ 6 #define BT_SUSPEND_STREAM 5
#define BT_STREAMSTOP_RSP 7 #define BT_RESUME_STREAM 6
#define BT_CONTROL 7
#define BT_STREAMSUSPEND_IND 8
#define BT_STREAMRESUME_IND 9
#define BT_CONTROL_REQ 10
#define BT_CONTROL_RSP 11
#define BT_CONTROL_IND 12
#define BT_STREAMFD_IND 13
/* BT_GETCAPABILITIES_REQ */
#define BT_CAPABILITIES_TRANSPORT_A2DP 0 #define BT_CAPABILITIES_TRANSPORT_A2DP 0
#define BT_CAPABILITIES_TRANSPORT_SCO 1 #define BT_CAPABILITIES_TRANSPORT_SCO 1
@ -119,19 +112,22 @@ typedef struct {
#define BT_FLAG_AUTOCONNECT 1 #define BT_FLAG_AUTOCONNECT 1
struct bt_getcapabilities_req { struct bt_get_capabilities_req {
bt_audio_msg_header_t h; bt_audio_msg_header_t h;
char device[18]; /* Address of the remote Device */ char device[18]; /* Address of the remote Device */
uint8_t transport; /* Requested transport */ uint8_t transport; /* Requested transport */
uint8_t flags; /* Requested flags */ uint8_t flags; /* Requested flags */
} __attribute__ ((packed)); } __attribute__ ((packed));
/* BT_GETCAPABILITIES_RSP */
/** /**
* SBC Codec parameters as per A2DP profile 1.0 § 4.3 * SBC Codec parameters as per A2DP profile 1.0 § 4.3
*/ */
#define BT_A2DP_CODEC_SBC 0x00
#define BT_A2DP_CODEC_MPEG12 0x01
#define BT_A2DP_CODEC_MPEG24 0x02
#define BT_A2DP_CODEC_ATRAC 0x03
#define BT_SBC_SAMPLING_FREQ_16000 (1 << 3) #define BT_SBC_SAMPLING_FREQ_16000 (1 << 3)
#define BT_SBC_SAMPLING_FREQ_32000 (1 << 2) #define BT_SBC_SAMPLING_FREQ_32000 (1 << 2)
#define BT_SBC_SAMPLING_FREQ_44100 (1 << 1) #define BT_SBC_SAMPLING_FREQ_44100 (1 << 1)
@ -164,7 +160,19 @@ struct bt_getcapabilities_req {
#define BT_MPEG_LAYER_2 (1 << 1) #define BT_MPEG_LAYER_2 (1 << 1)
#define BT_MPEG_LAYER_3 1 #define BT_MPEG_LAYER_3 1
#define BT_HFP_CODEC_PCM 0x00
#define BT_PCM_FLAG_NREC 1
typedef struct { typedef struct {
uint8_t transport;
uint8_t type;
uint8_t length;
uint8_t data[0];
} __attribute__ ((packed)) codec_capabilities_t;
typedef struct {
codec_capabilities_t capability;
uint8_t channel_mode; uint8_t channel_mode;
uint8_t frequency; uint8_t frequency;
uint8_t allocation_method; uint8_t allocation_method;
@ -175,6 +183,7 @@ typedef struct {
} __attribute__ ((packed)) sbc_capabilities_t; } __attribute__ ((packed)) sbc_capabilities_t;
typedef struct { typedef struct {
codec_capabilities_t capability;
uint8_t channel_mode; uint8_t channel_mode;
uint8_t crc; uint8_t crc;
uint8_t layer; uint8_t layer;
@ -183,74 +192,64 @@ typedef struct {
uint16_t bitrate; uint16_t bitrate;
} __attribute__ ((packed)) mpeg_capabilities_t; } __attribute__ ((packed)) mpeg_capabilities_t;
struct bt_getcapabilities_rsp { typedef struct {
bt_audio_rsp_msg_header_t rsp_h; codec_capabilities_t capability;
uint8_t transport; /* Granted transport */ uint8_t flags;
sbc_capabilities_t sbc_capabilities; /* A2DP only */ uint16_t sampling_rate;
mpeg_capabilities_t mpeg_capabilities; /* A2DP only */ } __attribute__ ((packed)) pcm_capabilities_t;
uint16_t sampling_rate; /* SCO only */
} __attribute__ ((packed));
/* BT_SETCONFIGURATION_REQ */
struct bt_setconfiguration_req { struct bt_get_capabilities_rsp {
bt_audio_msg_header_t h; bt_audio_msg_header_t h;
char device[18]; /* Address of the remote Device */ uint8_t data[0]; /* First codec_capabilities_t */
uint8_t transport; /* Requested transport */
uint8_t access_mode; /* Requested access mode */
sbc_capabilities_t sbc_capabilities; /* A2DP only - only one of this field
and next one must be filled */
mpeg_capabilities_t mpeg_capabilities; /* A2DP only */
} __attribute__ ((packed)); } __attribute__ ((packed));
/* BT_SETCONFIGURATION_RSP */ struct bt_set_configuration_req {
struct bt_setconfiguration_rsp { bt_audio_msg_header_t h;
bt_audio_rsp_msg_header_t rsp_h; char device[18]; /* Address of the remote Device */
uint8_t transport; /* Granted transport */ uint8_t access_mode; /* Requested access mode */
uint8_t access_mode; /* Granted access mode */ codec_capabilities_t codec; /* Requested codec */
uint16_t link_mtu; /* Max length that transport supports */ } __attribute__ ((packed));
struct bt_set_configuration_rsp {
bt_audio_msg_header_t h;
uint8_t transport; /* Granted transport */
uint8_t access_mode; /* Granted access mode */
uint16_t link_mtu; /* Max length that transport supports */
} __attribute__ ((packed)); } __attribute__ ((packed));
/* BT_STREAMSTART_REQ */
#define BT_STREAM_ACCESS_READ 0 #define BT_STREAM_ACCESS_READ 0
#define BT_STREAM_ACCESS_WRITE 1 #define BT_STREAM_ACCESS_WRITE 1
#define BT_STREAM_ACCESS_READWRITE 2 #define BT_STREAM_ACCESS_READWRITE 2
struct bt_streamstart_req { struct bt_start_stream_req {
bt_audio_msg_header_t h; bt_audio_msg_header_t h;
} __attribute__ ((packed)); } __attribute__ ((packed));
/* BT_STREAMSTART_RSP */ struct bt_start_stream_rsp {
struct bt_streamstart_rsp { bt_audio_msg_header_t h;
bt_audio_rsp_msg_header_t rsp_h;
} __attribute__ ((packed)); } __attribute__ ((packed));
/* BT_STREAMFD_IND */
/* This message is followed by one byte of data containing the stream data fd /* This message is followed by one byte of data containing the stream data fd
as ancilliary data */ as ancilliary data */
struct bt_streamfd_ind { struct bt_new_stream_ind {
bt_audio_msg_header_t h; bt_audio_msg_header_t h;
} __attribute__ ((packed)); } __attribute__ ((packed));
/* BT_STREAMSTOP_REQ */ struct bt_stop_stream_req {
struct bt_streamstop_req {
bt_audio_msg_header_t h; bt_audio_msg_header_t h;
} __attribute__ ((packed)); } __attribute__ ((packed));
/* BT_STREAMSTOP_RSP */ struct bt_stop_stream_rsp {
struct bt_streamstop_rsp {
bt_audio_rsp_msg_header_t rsp_h;
} __attribute__ ((packed));
/* BT_STREAMSUSPEND_IND */
struct bt_streamsuspend_ind {
bt_audio_msg_header_t h; bt_audio_msg_header_t h;
} __attribute__ ((packed)); } __attribute__ ((packed));
/* BT_STREAMRESUME_IND */ struct bt_suspend_stream_ind {
struct bt_streamresume_ind {
bt_audio_msg_header_t h; bt_audio_msg_header_t h;
} __attribute__ ((packed)); } __attribute__ ((packed));
/* BT_CONTROL_REQ */ struct bt_resume_stream_ind {
bt_audio_msg_header_t h;
} __attribute__ ((packed));
#define BT_CONTROL_KEY_POWER 0x40 #define BT_CONTROL_KEY_POWER 0x40
#define BT_CONTROL_KEY_VOL_UP 0x41 #define BT_CONTROL_KEY_VOL_UP 0x41
@ -272,14 +271,12 @@ struct bt_control_req {
uint8_t key; /* Control Key */ uint8_t key; /* Control Key */
} __attribute__ ((packed)); } __attribute__ ((packed));
/* BT_CONTROL_RSP */
struct bt_control_rsp { struct bt_control_rsp {
bt_audio_rsp_msg_header_t rsp_h; bt_audio_msg_header_t h;
uint8_t mode; /* Control Mode */ uint8_t mode; /* Control Mode */
uint8_t key; /* Control Key */ uint8_t key; /* Control Key */
} __attribute__ ((packed)); } __attribute__ ((packed));
/* BT_CONTROL_IND */
struct bt_control_ind { struct bt_control_ind {
bt_audio_msg_header_t h; bt_audio_msg_header_t h;
uint8_t mode; /* Control Mode */ uint8_t mode; /* Control Mode */
@ -299,7 +296,10 @@ BT_STREAMFD_IND message is returned */
int bt_audio_service_get_data_fd(int sk); int bt_audio_service_get_data_fd(int sk);
/* Human readable message type string */ /* Human readable message type string */
const char *bt_audio_strmsg(int type); const char *bt_audio_strtype(uint8_t type);
/* Human readable message name string */
const char *bt_audio_strname(uint8_t name);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -122,8 +122,14 @@ static const char* const valid_modargs[] = {
static int bt_audioservice_send(int sk, const bt_audio_msg_header_t *msg) { static int bt_audioservice_send(int sk, const bt_audio_msg_header_t *msg) {
int e; int e;
pa_log_debug("sending %s", bt_audio_strmsg(msg->msg_type)); const char *type, *name;
if (send(sk, msg, BT_AUDIO_IPC_PACKET_SIZE, 0) > 0) uint16_t length;
length = msg->length ? msg->length : BT_SUGGESTED_BUFFER_SIZE;
type = bt_audio_strtype(msg->type);
name = bt_audio_strname(msg->name);
pa_log_debug("sending: %s -> %s", type, name);
if (send(sk, msg, length, 0) > 0)
e = 0; e = 0;
else { else {
e = -errno; e = -errno;
@ -132,20 +138,25 @@ static int bt_audioservice_send(int sk, const bt_audio_msg_header_t *msg) {
return e; return e;
} }
static int bt_audioservice_recv(int sk, bt_audio_msg_header_t *inmsg) { static int bt_audioservice_recv(int sk, bt_audio_msg_header_t *inmsg, uint16_t expected_length) {
int e; int e;
const char *type; const char *type, *name;
uint16_t length;
length = expected_length ? expected_length : BT_SUGGESTED_BUFFER_SIZE;
pa_log_debug("trying to receive msg from audio service..."); pa_log_debug("trying to receive msg from audio service...");
if (recv(sk, inmsg, BT_AUDIO_IPC_PACKET_SIZE, 0) > 0) { if (recv(sk, inmsg, length, 0) > 0) {
type = bt_audio_strmsg(inmsg->msg_type); type = bt_audio_strtype(inmsg->type);
if (type) { name = bt_audio_strname(inmsg->name);
pa_log_debug("Received %s", type); if (type && name) {
pa_log_debug("Received: %s <- %s", type, name);
e = 0; e = 0;
} }
else { else {
e = -EINVAL; e = -EINVAL;
pa_log_error("Bogus message type %d received from audio service", inmsg->msg_type); pa_log_error("Bogus message type %d name %d received from audio service",
inmsg->type, inmsg->name);
} }
} }
else { else {
@ -156,29 +167,66 @@ static int bt_audioservice_recv(int sk, bt_audio_msg_header_t *inmsg) {
return e; return e;
} }
static int bt_audioservice_expect(int sk, bt_audio_msg_header_t *rsp_hdr, int expected_type) { static int bt_audioservice_expect(int sk, bt_audio_msg_header_t *rsp, uint8_t expected_name, uint16_t expected_length) {
int e = bt_audioservice_recv(sk, rsp_hdr); int e = bt_audioservice_recv(sk, rsp, expected_length);
if (e == 0) {
if (rsp_hdr->msg_type != expected_type) { if (e < 0) {
if (rsp->name != expected_name) {
e = -EINVAL; e = -EINVAL;
pa_log_error("Bogus message %s received while %s was expected", bt_audio_strmsg(rsp_hdr->msg_type), pa_log_error("Bogus message %s received while %s was expected",
bt_audio_strmsg(expected_type)); bt_audio_strname(rsp->name),
bt_audio_strname(expected_name));
} }
} }
if (rsp->type == BT_ERROR) {
bt_audio_error_t *error = (void *) rsp;
pa_log_error("%s failed : %s(%d)", bt_audio_strname(rsp->name), pa_cstrerror(error->posix_errno), error->posix_errno);
return -error->posix_errno;
}
return e; return e;
} }
static int bt_parsecaps(struct userdata *u, struct bt_get_capabilities_rsp *rsp) {
uint16_t bytes_left = rsp->h.length - sizeof(*rsp);
codec_capabilities_t *codec = (void *) rsp->data;
u->transport = codec->transport;
if (codec->transport != BT_CAPABILITIES_TRANSPORT_A2DP)
return 0;
while (bytes_left > 0) {
if (codec->type == BT_A2DP_CODEC_SBC)
break;
bytes_left -= codec->length;
codec = (void *) (codec + codec->length);
}
if (bytes_left <= 0 || codec->length != sizeof(u->a2dp.sbc_capabilities))
return -EINVAL;
memcpy(&u->a2dp.sbc_capabilities, codec, codec->length);
return 0;
}
static int bt_getcaps(struct userdata *u) { static int bt_getcaps(struct userdata *u) {
int e; int e;
union { union {
bt_audio_rsp_msg_header_t rsp_hdr; bt_audio_msg_header_t rsp;
struct bt_getcapabilities_req getcaps_req; struct bt_get_capabilities_req getcaps_req;
struct bt_getcapabilities_rsp getcaps_rsp; struct bt_get_capabilities_rsp getcaps_rsp;
uint8_t buf[BT_AUDIO_IPC_PACKET_SIZE]; uint8_t buf[BT_SUGGESTED_BUFFER_SIZE];
} msg; } msg;
memset(msg.buf, 0, BT_AUDIO_IPC_PACKET_SIZE); memset(msg.buf, 0, BT_SUGGESTED_BUFFER_SIZE);
msg.getcaps_req.h.msg_type = BT_GETCAPABILITIES_REQ; msg.getcaps_req.h.type = BT_REQUEST;
msg.getcaps_req.h.name = BT_GET_CAPABILITIES;
msg.getcaps_req.h.length = sizeof(msg.getcaps_req);
strncpy(msg.getcaps_req.device, u->addr, 18); strncpy(msg.getcaps_req.device, u->addr, 18);
if (strcasecmp(u->profile, "a2dp") == 0) if (strcasecmp(u->profile, "a2dp") == 0)
msg.getcaps_req.transport = BT_CAPABILITIES_TRANSPORT_A2DP; msg.getcaps_req.transport = BT_CAPABILITIES_TRANSPORT_A2DP;
@ -196,20 +244,13 @@ static int bt_getcaps(struct userdata *u) {
return e; return e;
} }
e = bt_audioservice_expect(u->audioservice_fd, &msg.rsp_hdr.msg_h, BT_GETCAPABILITIES_RSP); e = bt_audioservice_expect(u->audioservice_fd, &msg.rsp, BT_GET_CAPABILITIES, 0);
if (e < 0) { if (e < 0) {
pa_log_error("Failed to expect for GETCAPABILITIES_RSP"); pa_log_error("Failed to expect for GETCAPABILITIES_RSP");
return e; return e;
} }
if (msg.rsp_hdr.posix_errno != 0) {
pa_log_error("BT_GETCAPABILITIES failed : %s (%d)", pa_cstrerror(msg.rsp_hdr.posix_errno), msg.rsp_hdr.posix_errno);
return -msg.rsp_hdr.posix_errno;
}
if ((u->transport = msg.getcaps_rsp.transport) == BT_CAPABILITIES_TRANSPORT_A2DP) return bt_parsecaps(u, &msg.getcaps_rsp);
u->a2dp.sbc_capabilities = msg.getcaps_rsp.sbc_capabilities;
return 0;
} }
static uint8_t default_bitpool(uint8_t freq, uint8_t mode) { static uint8_t default_bitpool(uint8_t freq, uint8_t mode) {
@ -393,10 +434,10 @@ static void bt_a2dp_setup(struct bt_a2dp *a2dp) {
static int bt_setconf(struct userdata *u) { static int bt_setconf(struct userdata *u) {
int e; int e;
union { union {
bt_audio_rsp_msg_header_t rsp_hdr; bt_audio_msg_header_t rsp;
struct bt_setconfiguration_req setconf_req; struct bt_set_configuration_req setconf_req;
struct bt_setconfiguration_rsp setconf_rsp; struct bt_set_configuration_rsp setconf_rsp;
uint8_t buf[BT_AUDIO_IPC_PACKET_SIZE]; uint8_t buf[BT_SUGGESTED_BUFFER_SIZE];
} msg; } msg;
if (u->transport == BT_CAPABILITIES_TRANSPORT_A2DP) { if (u->transport == BT_CAPABILITIES_TRANSPORT_A2DP) {
@ -410,12 +451,19 @@ static int bt_setconf(struct userdata *u) {
else else
u->ss.format = PA_SAMPLE_U8; u->ss.format = PA_SAMPLE_U8;
memset(msg.buf, 0, BT_AUDIO_IPC_PACKET_SIZE); memset(msg.buf, 0, BT_SUGGESTED_BUFFER_SIZE);
msg.setconf_req.h.msg_type = BT_SETCONFIGURATION_REQ; msg.setconf_req.h.type = BT_REQUEST;
msg.setconf_req.h.name = BT_SET_CONFIGURATION;
msg.setconf_req.h.length = sizeof(msg.setconf_req);
strncpy(msg.setconf_req.device, u->addr, 18); strncpy(msg.setconf_req.device, u->addr, 18);
msg.setconf_req.transport = u->transport; msg.setconf_req.codec.transport = u->transport;
if (u->transport == BT_CAPABILITIES_TRANSPORT_A2DP) if (u->transport == BT_CAPABILITIES_TRANSPORT_A2DP) {
msg.setconf_req.sbc_capabilities = u->a2dp.sbc_capabilities; memcpy(&msg.setconf_req.codec, &u->a2dp.sbc_capabilities,
sizeof(u->a2dp.sbc_capabilities));
msg.setconf_req.h.length += msg.setconf_req.codec.length
- sizeof(msg.setconf_req.codec);
}
msg.setconf_req.access_mode = BT_CAPABILITIES_ACCESS_MODE_WRITE; msg.setconf_req.access_mode = BT_CAPABILITIES_ACCESS_MODE_WRITE;
e = bt_audioservice_send(u->audioservice_fd, &msg.setconf_req.h); e = bt_audioservice_send(u->audioservice_fd, &msg.setconf_req.h);
@ -424,17 +472,12 @@ static int bt_setconf(struct userdata *u) {
return e; return e;
} }
e = bt_audioservice_expect(u->audioservice_fd, &msg.rsp_hdr.msg_h, BT_SETCONFIGURATION_RSP); e = bt_audioservice_expect(u->audioservice_fd, &msg.rsp, BT_SET_CONFIGURATION, sizeof(msg.setconf_rsp));
if (e < 0) { if (e < 0) {
pa_log_error("Failed to expect BT_SETCONFIGURATION_RSP"); pa_log_error("Failed to expect BT_SETCONFIGURATION_RSP");
return e; return e;
} }
if (msg.rsp_hdr.posix_errno != 0) {
pa_log_error("BT_SETCONFIGURATION failed : %s(%d)", pa_cstrerror(msg.rsp_hdr.posix_errno), msg.rsp_hdr.posix_errno);
return -msg.rsp_hdr.posix_errno;
}
u->transport = msg.setconf_rsp.transport; u->transport = msg.setconf_rsp.transport;
u->strtransport = (u->transport == BT_CAPABILITIES_TRANSPORT_A2DP ? pa_xstrdup("A2DP") : pa_xstrdup("SCO")); u->strtransport = (u->transport == BT_CAPABILITIES_TRANSPORT_A2DP ? pa_xstrdup("A2DP") : pa_xstrdup("SCO"));
u->link_mtu = msg.setconf_rsp.link_mtu; u->link_mtu = msg.setconf_rsp.link_mtu;
@ -456,14 +499,17 @@ static int bt_getstreamfd(struct userdata *u) {
int e; int e;
// uint32_t period_count = io->buffer_size / io->period_size; // uint32_t period_count = io->buffer_size / io->period_size;
union { union {
bt_audio_rsp_msg_header_t rsp_hdr; bt_audio_msg_header_t rsp;
struct bt_streamstart_req start_req; struct bt_start_stream_req start_req;
struct bt_streamfd_ind streamfd_ind; struct bt_start_stream_rsp start_rsp;
uint8_t buf[BT_AUDIO_IPC_PACKET_SIZE]; struct bt_new_stream_ind streamfd_ind;
uint8_t buf[BT_SUGGESTED_BUFFER_SIZE];
} msg; } msg;
memset(msg.buf, 0, BT_AUDIO_IPC_PACKET_SIZE); memset(msg.buf, 0, BT_SUGGESTED_BUFFER_SIZE);
msg.start_req.h.msg_type = BT_STREAMSTART_REQ; msg.start_req.h.type = BT_REQUEST;
msg.start_req.h.name = BT_START_STREAM;
msg.start_req.h.length = sizeof(msg.start_req);
e = bt_audioservice_send(u->audioservice_fd, &msg.start_req.h); e = bt_audioservice_send(u->audioservice_fd, &msg.start_req.h);
if (e < 0) { if (e < 0) {
@ -471,18 +517,13 @@ static int bt_getstreamfd(struct userdata *u) {
return e; return e;
} }
e = bt_audioservice_expect(u->audioservice_fd, &msg.rsp_hdr.msg_h, BT_STREAMSTART_RSP); e = bt_audioservice_expect(u->audioservice_fd, &msg.rsp, BT_START_STREAM, sizeof(msg.start_rsp));
if (e < 0) { if (e < 0) {
pa_log_error("Failed to expect BT_STREAMSTART_RSP"); pa_log_error("Failed to expect BT_STREAMSTART_RSP");
return e; return e;
} }
if (msg.rsp_hdr.posix_errno != 0) { e = bt_audioservice_expect(u->audioservice_fd, &msg.rsp, BT_NEW_STREAM, sizeof(msg.streamfd_ind));
pa_log_error("BT_START failed : %s(%d)", pa_cstrerror(msg.rsp_hdr.posix_errno), msg.rsp_hdr.posix_errno);
return -msg.rsp_hdr.posix_errno;
}
e = bt_audioservice_expect(u->audioservice_fd, &msg.streamfd_ind.h, BT_STREAMFD_IND);
if (e < 0) { if (e < 0) {
pa_log_error("Failed to expect BT_STREAMFD_IND"); pa_log_error("Failed to expect BT_STREAMFD_IND");
return e; return e;

View file

@ -2,7 +2,7 @@
* *
* Bluetooth low-complexity, subband codec (SBC) library * Bluetooth low-complexity, subband codec (SBC) library
* *
* Copyright (C) 2004-2008 Marcel Holtmann <marcel@holtmann.org> * Copyright (C) 2004-2009 Marcel Holtmann <marcel@holtmann.org>
* Copyright (C) 2004-2005 Henryk Ploetz <henryk@ploetzli.ch> * Copyright (C) 2004-2005 Henryk Ploetz <henryk@ploetzli.ch>
* Copyright (C) 2005-2008 Brad Midgley <bmidgley@xmission.com> * Copyright (C) 2005-2008 Brad Midgley <bmidgley@xmission.com>
* *
@ -40,6 +40,7 @@
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
#include <sys/types.h> #include <sys/types.h>
#include <limits.h>
#include "sbc_math.h" #include "sbc_math.h"
#include "sbc_tables.h" #include "sbc_tables.h"
@ -68,7 +69,7 @@ struct sbc_frame {
uint8_t subband_mode; uint8_t subband_mode;
uint8_t subbands; uint8_t subbands;
uint8_t bitpool; uint8_t bitpool;
uint8_t codesize; uint16_t codesize;
uint8_t length; uint8_t length;
/* bit number x set means joint stereo has been used in subband x */ /* bit number x set means joint stereo has been used in subband x */
@ -93,7 +94,11 @@ struct sbc_decoder_state {
struct sbc_encoder_state { struct sbc_encoder_state {
int subbands; int subbands;
int position[2]; int position[2];
int32_t X[2][160]; int16_t X[2][256];
void (*sbc_analyze_4b_4s)(int16_t *pcm, int16_t *x,
int32_t *out, int out_stride);
void (*sbc_analyze_4b_8s)(int16_t *pcm, int16_t *x,
int32_t *out, int out_stride);
}; };
/* /*
@ -145,7 +150,7 @@ static uint8_t sbc_crc8(const uint8_t *data, size_t len)
octet = data[i]; octet = data[i];
for (i = 0; i < len % 8; i++) { for (i = 0; i < len % 8; i++) {
unsigned char bit = ((octet ^ crc) & 0x80) >> 7; char bit = ((octet ^ crc) & 0x80) >> 7;
crc = ((crc & 0x7f) << 1) ^ (bit ? 0x1d : 0); crc = ((crc & 0x7f) << 1) ^ (bit ? 0x1d : 0);
@ -563,7 +568,7 @@ static inline void sbc_synthesize_four(struct sbc_decoder_state *state,
k = (i + 4) & 0xf; k = (i + 4) & 0xf;
/* Store in output, Q0 */ /* Store in output, Q0 */
frame->pcm_sample[ch][blk * 4 + i] = SCALE4_STAGED2( frame->pcm_sample[ch][blk * 4 + i] = SCALE4_STAGED1(
MULA(v[offset[i] + 0], sbc_proto_4_40m0[idx + 0], MULA(v[offset[i] + 0], sbc_proto_4_40m0[idx + 0],
MULA(v[offset[k] + 1], sbc_proto_4_40m1[idx + 0], MULA(v[offset[k] + 1], sbc_proto_4_40m1[idx + 0],
MULA(v[offset[i] + 2], sbc_proto_4_40m0[idx + 1], MULA(v[offset[i] + 2], sbc_proto_4_40m0[idx + 1],
@ -609,7 +614,7 @@ static inline void sbc_synthesize_eight(struct sbc_decoder_state *state,
k = (i + 8) & 0xf; k = (i + 8) & 0xf;
/* Store in output */ /* Store in output */
frame->pcm_sample[ch][blk * 8 + i] = SCALE8_STAGED2( // Q0 frame->pcm_sample[ch][blk * 8 + i] = SCALE8_STAGED1( // Q0
MULA(state->V[ch][offset[i] + 0], sbc_proto_8_80m0[idx + 0], MULA(state->V[ch][offset[i] + 0], sbc_proto_8_80m0[idx + 0],
MULA(state->V[ch][offset[k] + 1], sbc_proto_8_80m1[idx + 0], MULA(state->V[ch][offset[k] + 1], sbc_proto_8_80m1[idx + 0],
MULA(state->V[ch][offset[i] + 2], sbc_proto_8_80m0[idx + 1], MULA(state->V[ch][offset[i] + 2], sbc_proto_8_80m0[idx + 1],
@ -648,242 +653,144 @@ static int sbc_synthesize_audio(struct sbc_decoder_state *state,
} }
} }
static void sbc_encoder_init(struct sbc_encoder_state *state, static inline void _sbc_analyze_four(const int16_t *in, int32_t *out)
const struct sbc_frame *frame)
{ {
memset(&state->X, 0, sizeof(state->X)); FIXED_A t1[4];
state->subbands = frame->subbands; FIXED_T t2[4];
state->position[0] = state->position[1] = 9 * frame->subbands; int i = 0, hop = 0;
/* rounding coefficient */
t1[0] = t1[1] = t1[2] = t1[3] =
(FIXED_A) 1 << (SBC_PROTO_FIXED4_SCALE - 1);
/* low pass polyphase filter */
for (hop = 0; hop < 40; hop += 8) {
t1[0] += (FIXED_A) in[hop] * _sbc_proto_fixed4[hop];
t1[1] += (FIXED_A) in[hop + 1] * _sbc_proto_fixed4[hop + 1];
t1[2] += (FIXED_A) in[hop + 2] * _sbc_proto_fixed4[hop + 2];
t1[1] += (FIXED_A) in[hop + 3] * _sbc_proto_fixed4[hop + 3];
t1[0] += (FIXED_A) in[hop + 4] * _sbc_proto_fixed4[hop + 4];
t1[3] += (FIXED_A) in[hop + 5] * _sbc_proto_fixed4[hop + 5];
t1[3] += (FIXED_A) in[hop + 7] * _sbc_proto_fixed4[hop + 7];
}
/* scaling */
t2[0] = t1[0] >> SBC_PROTO_FIXED4_SCALE;
t2[1] = t1[1] >> SBC_PROTO_FIXED4_SCALE;
t2[2] = t1[2] >> SBC_PROTO_FIXED4_SCALE;
t2[3] = t1[3] >> SBC_PROTO_FIXED4_SCALE;
/* do the cos transform */
for (i = 0, hop = 0; i < 4; hop += 8, i++) {
out[i] = ((FIXED_A) t2[0] * cos_table_fixed_4[0 + hop] +
(FIXED_A) t2[1] * cos_table_fixed_4[1 + hop] +
(FIXED_A) t2[2] * cos_table_fixed_4[2 + hop] +
(FIXED_A) t2[3] * cos_table_fixed_4[5 + hop]) >>
(SBC_COS_TABLE_FIXED4_SCALE - SCALE_OUT_BITS);
}
} }
static inline void _sbc_analyze_four(const int32_t *in, int32_t *out) static void sbc_analyze_4b_4s(int16_t *pcm, int16_t *x,
int32_t *out, int out_stride)
{ {
sbc_fixed_t t[8], s[5]; int i;
t[0] = SCALE4_STAGE1( /* Q8 */ /* Input 4 x 4 Audio Samples */
MULA(_sbc_proto_4[0], in[8] - in[32], /* Q18 */ for (i = 0; i < 16; i += 4) {
MUL( _sbc_proto_4[1], in[16] - in[24]))); x[64 + i] = x[0 + i] = pcm[15 - i];
x[65 + i] = x[1 + i] = pcm[14 - i];
x[66 + i] = x[2 + i] = pcm[13 - i];
x[67 + i] = x[3 + i] = pcm[12 - i];
}
t[1] = SCALE4_STAGE1( /* Analyze four blocks */
MULA(_sbc_proto_4[2], in[1], _sbc_analyze_four(x + 12, out);
MULA(_sbc_proto_4[3], in[9], out += out_stride;
MULA(_sbc_proto_4[4], in[17], _sbc_analyze_four(x + 8, out);
MULA(_sbc_proto_4[5], in[25], out += out_stride;
MUL( _sbc_proto_4[6], in[33])))))); _sbc_analyze_four(x + 4, out);
out += out_stride;
t[2] = SCALE4_STAGE1( _sbc_analyze_four(x, out);
MULA(_sbc_proto_4[7], in[2],
MULA(_sbc_proto_4[8], in[10],
MULA(_sbc_proto_4[9], in[18],
MULA(_sbc_proto_4[10], in[26],
MUL( _sbc_proto_4[11], in[34]))))));
t[3] = SCALE4_STAGE1(
MULA(_sbc_proto_4[12], in[3],
MULA(_sbc_proto_4[13], in[11],
MULA(_sbc_proto_4[14], in[19],
MULA(_sbc_proto_4[15], in[27],
MUL( _sbc_proto_4[16], in[35]))))));
t[4] = SCALE4_STAGE1(
MULA(_sbc_proto_4[17], in[4] + in[36],
MULA(_sbc_proto_4[18], in[12] + in[28],
MUL( _sbc_proto_4[19], in[20]))));
t[5] = SCALE4_STAGE1(
MULA(_sbc_proto_4[16], in[5],
MULA(_sbc_proto_4[15], in[13],
MULA(_sbc_proto_4[14], in[21],
MULA(_sbc_proto_4[13], in[29],
MUL( _sbc_proto_4[12], in[37]))))));
/* don't compute t[6]... this term always multiplies
* with cos(pi/2) = 0 */
t[7] = SCALE4_STAGE1(
MULA(_sbc_proto_4[6], in[7],
MULA(_sbc_proto_4[5], in[15],
MULA(_sbc_proto_4[4], in[23],
MULA(_sbc_proto_4[3], in[31],
MUL( _sbc_proto_4[2], in[39]))))));
s[0] = MUL( _anamatrix4[0], t[0] + t[4]);
s[1] = MUL( _anamatrix4[2], t[2]);
s[2] = MULA(_anamatrix4[1], t[1] + t[3],
MUL(_anamatrix4[3], t[5]));
s[3] = MULA(_anamatrix4[3], t[1] + t[3],
MUL(_anamatrix4[1], -t[5] + t[7]));
s[4] = MUL( _anamatrix4[3], t[7]);
out[0] = SCALE4_STAGE2( s[0] + s[1] + s[2] + s[4]); /* Q0 */
out[1] = SCALE4_STAGE2(-s[0] + s[1] + s[3]);
out[2] = SCALE4_STAGE2(-s[0] + s[1] - s[3]);
out[3] = SCALE4_STAGE2( s[0] + s[1] - s[2] - s[4]);
} }
static inline void sbc_analyze_four(struct sbc_encoder_state *state, static inline void _sbc_analyze_eight(const int16_t *in, int32_t *out)
struct sbc_frame *frame, int ch, int blk)
{ {
int32_t *x = &state->X[ch][state->position[ch]]; FIXED_A t1[8];
int16_t *pcm = &frame->pcm_sample[ch][blk * 4]; FIXED_T t2[8];
int i, hop;
/* Input 4 Audio Samples */ /* rounding coefficient */
x[40] = x[0] = pcm[3]; t1[0] = t1[1] = t1[2] = t1[3] = t1[4] = t1[5] = t1[6] = t1[7] =
x[41] = x[1] = pcm[2]; (FIXED_A) 1 << (SBC_PROTO_FIXED8_SCALE-1);
x[42] = x[2] = pcm[1];
x[43] = x[3] = pcm[0];
_sbc_analyze_four(x, frame->sb_sample_f[blk][ch]); /* low pass polyphase filter */
for (hop = 0; hop < 80; hop += 16) {
t1[0] += (FIXED_A) in[hop] * _sbc_proto_fixed8[hop];
t1[1] += (FIXED_A) in[hop + 1] * _sbc_proto_fixed8[hop + 1];
t1[2] += (FIXED_A) in[hop + 2] * _sbc_proto_fixed8[hop + 2];
t1[3] += (FIXED_A) in[hop + 3] * _sbc_proto_fixed8[hop + 3];
t1[4] += (FIXED_A) in[hop + 4] * _sbc_proto_fixed8[hop + 4];
t1[3] += (FIXED_A) in[hop + 5] * _sbc_proto_fixed8[hop + 5];
t1[2] += (FIXED_A) in[hop + 6] * _sbc_proto_fixed8[hop + 6];
t1[1] += (FIXED_A) in[hop + 7] * _sbc_proto_fixed8[hop + 7];
t1[0] += (FIXED_A) in[hop + 8] * _sbc_proto_fixed8[hop + 8];
t1[5] += (FIXED_A) in[hop + 9] * _sbc_proto_fixed8[hop + 9];
t1[6] += (FIXED_A) in[hop + 10] * _sbc_proto_fixed8[hop + 10];
t1[7] += (FIXED_A) in[hop + 11] * _sbc_proto_fixed8[hop + 11];
t1[7] += (FIXED_A) in[hop + 13] * _sbc_proto_fixed8[hop + 13];
t1[6] += (FIXED_A) in[hop + 14] * _sbc_proto_fixed8[hop + 14];
t1[5] += (FIXED_A) in[hop + 15] * _sbc_proto_fixed8[hop + 15];
}
state->position[ch] -= 4; /* scaling */
if (state->position[ch] < 0) t2[0] = t1[0] >> SBC_PROTO_FIXED8_SCALE;
state->position[ch] = 36; t2[1] = t1[1] >> SBC_PROTO_FIXED8_SCALE;
t2[2] = t1[2] >> SBC_PROTO_FIXED8_SCALE;
t2[3] = t1[3] >> SBC_PROTO_FIXED8_SCALE;
t2[4] = t1[4] >> SBC_PROTO_FIXED8_SCALE;
t2[5] = t1[5] >> SBC_PROTO_FIXED8_SCALE;
t2[6] = t1[6] >> SBC_PROTO_FIXED8_SCALE;
t2[7] = t1[7] >> SBC_PROTO_FIXED8_SCALE;
/* do the cos transform */
for (i = 0, hop = 0; i < 8; hop += 16, i++) {
out[i] = ((FIXED_A) t2[0] * cos_table_fixed_8[0 + hop] +
(FIXED_A) t2[1] * cos_table_fixed_8[1 + hop] +
(FIXED_A) t2[2] * cos_table_fixed_8[2 + hop] +
(FIXED_A) t2[3] * cos_table_fixed_8[3 + hop] +
(FIXED_A) t2[4] * cos_table_fixed_8[4 + hop] +
(FIXED_A) t2[5] * cos_table_fixed_8[9 + hop] +
(FIXED_A) t2[6] * cos_table_fixed_8[10 + hop] +
(FIXED_A) t2[7] * cos_table_fixed_8[11 + hop]) >>
(SBC_COS_TABLE_FIXED8_SCALE - SCALE_OUT_BITS);
}
} }
static inline void _sbc_analyze_eight(const int32_t *in, int32_t *out) static void sbc_analyze_4b_8s(int16_t *pcm, int16_t *x,
int32_t *out, int out_stride)
{ {
sbc_fixed_t t[8], s[8]; int i;
t[0] = SCALE8_STAGE1( /* Q10 */ /* Input 4 x 8 Audio Samples */
MULA(_sbc_proto_8[0], (in[16] - in[64]), /* Q18 = Q18 * Q0 */ for (i = 0; i < 32; i += 8) {
MULA(_sbc_proto_8[1], (in[32] - in[48]), x[128 + i] = x[0 + i] = pcm[31 - i];
MULA(_sbc_proto_8[2], in[4], x[129 + i] = x[1 + i] = pcm[30 - i];
MULA(_sbc_proto_8[3], in[20], x[130 + i] = x[2 + i] = pcm[29 - i];
MULA(_sbc_proto_8[4], in[36], x[131 + i] = x[3 + i] = pcm[28 - i];
MUL( _sbc_proto_8[5], in[52]))))))); x[132 + i] = x[4 + i] = pcm[27 - i];
x[133 + i] = x[5 + i] = pcm[26 - i];
x[134 + i] = x[6 + i] = pcm[25 - i];
x[135 + i] = x[7 + i] = pcm[24 - i];
}
t[1] = SCALE8_STAGE1( /* Analyze four blocks */
MULA(_sbc_proto_8[6], in[2], _sbc_analyze_eight(x + 24, out);
MULA(_sbc_proto_8[7], in[18], out += out_stride;
MULA(_sbc_proto_8[8], in[34], _sbc_analyze_eight(x + 16, out);
MULA(_sbc_proto_8[9], in[50], out += out_stride;
MUL(_sbc_proto_8[10], in[66])))))); _sbc_analyze_eight(x + 8, out);
out += out_stride;
t[2] = SCALE8_STAGE1( _sbc_analyze_eight(x, out);
MULA(_sbc_proto_8[11], in[1],
MULA(_sbc_proto_8[12], in[17],
MULA(_sbc_proto_8[13], in[33],
MULA(_sbc_proto_8[14], in[49],
MULA(_sbc_proto_8[15], in[65],
MULA(_sbc_proto_8[16], in[3],
MULA(_sbc_proto_8[17], in[19],
MULA(_sbc_proto_8[18], in[35],
MULA(_sbc_proto_8[19], in[51],
MUL( _sbc_proto_8[20], in[67])))))))))));
t[3] = SCALE8_STAGE1(
MULA( _sbc_proto_8[21], in[5],
MULA( _sbc_proto_8[22], in[21],
MULA( _sbc_proto_8[23], in[37],
MULA( _sbc_proto_8[24], in[53],
MULA( _sbc_proto_8[25], in[69],
MULA(-_sbc_proto_8[15], in[15],
MULA(-_sbc_proto_8[14], in[31],
MULA(-_sbc_proto_8[13], in[47],
MULA(-_sbc_proto_8[12], in[63],
MUL( -_sbc_proto_8[11], in[79])))))))))));
t[4] = SCALE8_STAGE1(
MULA( _sbc_proto_8[26], in[6],
MULA( _sbc_proto_8[27], in[22],
MULA( _sbc_proto_8[28], in[38],
MULA( _sbc_proto_8[29], in[54],
MULA( _sbc_proto_8[30], in[70],
MULA(-_sbc_proto_8[10], in[14],
MULA(-_sbc_proto_8[9], in[30],
MULA(-_sbc_proto_8[8], in[46],
MULA(-_sbc_proto_8[7], in[62],
MUL( -_sbc_proto_8[6], in[78])))))))))));
t[5] = SCALE8_STAGE1(
MULA( _sbc_proto_8[31], in[7],
MULA( _sbc_proto_8[32], in[23],
MULA( _sbc_proto_8[33], in[39],
MULA( _sbc_proto_8[34], in[55],
MULA( _sbc_proto_8[35], in[71],
MULA(-_sbc_proto_8[20], in[13],
MULA(-_sbc_proto_8[19], in[29],
MULA(-_sbc_proto_8[18], in[45],
MULA(-_sbc_proto_8[17], in[61],
MUL( -_sbc_proto_8[16], in[77])))))))))));
t[6] = SCALE8_STAGE1(
MULA( _sbc_proto_8[36], (in[8] + in[72]),
MULA( _sbc_proto_8[37], (in[24] + in[56]),
MULA( _sbc_proto_8[38], in[40],
MULA(-_sbc_proto_8[39], in[12],
MULA(-_sbc_proto_8[5], in[28],
MULA(-_sbc_proto_8[4], in[44],
MULA(-_sbc_proto_8[3], in[60],
MUL( -_sbc_proto_8[2], in[76])))))))));
t[7] = SCALE8_STAGE1(
MULA( _sbc_proto_8[35], in[9],
MULA( _sbc_proto_8[34], in[25],
MULA( _sbc_proto_8[33], in[41],
MULA( _sbc_proto_8[32], in[57],
MULA( _sbc_proto_8[31], in[73],
MULA(-_sbc_proto_8[25], in[11],
MULA(-_sbc_proto_8[24], in[27],
MULA(-_sbc_proto_8[23], in[43],
MULA(-_sbc_proto_8[22], in[59],
MUL( -_sbc_proto_8[21], in[75])))))))))));
s[0] = MULA( _anamatrix8[0], t[0],
MUL( _anamatrix8[1], t[6]));
s[1] = MUL( _anamatrix8[7], t[1]);
s[2] = MULA( _anamatrix8[2], t[2],
MULA( _anamatrix8[3], t[3],
MULA( _anamatrix8[4], t[5],
MUL( _anamatrix8[5], t[7]))));
s[3] = MUL( _anamatrix8[6], t[4]);
s[4] = MULA( _anamatrix8[3], t[2],
MULA(-_anamatrix8[5], t[3],
MULA(-_anamatrix8[2], t[5],
MUL( -_anamatrix8[4], t[7]))));
s[5] = MULA( _anamatrix8[4], t[2],
MULA(-_anamatrix8[2], t[3],
MULA( _anamatrix8[5], t[5],
MUL( _anamatrix8[3], t[7]))));
s[6] = MULA( _anamatrix8[1], t[0],
MUL( -_anamatrix8[0], t[6]));
s[7] = MULA( _anamatrix8[5], t[2],
MULA(-_anamatrix8[4], t[3],
MULA( _anamatrix8[3], t[5],
MUL( -_anamatrix8[2], t[7]))));
out[0] = SCALE8_STAGE2( s[0] + s[1] + s[2] + s[3]);
out[1] = SCALE8_STAGE2( s[1] - s[3] + s[4] + s[6]);
out[2] = SCALE8_STAGE2( s[1] - s[3] + s[5] - s[6]);
out[3] = SCALE8_STAGE2(-s[0] + s[1] + s[3] + s[7]);
out[4] = SCALE8_STAGE2(-s[0] + s[1] + s[3] - s[7]);
out[5] = SCALE8_STAGE2( s[1] - s[3] - s[5] - s[6]);
out[6] = SCALE8_STAGE2( s[1] - s[3] - s[4] + s[6]);
out[7] = SCALE8_STAGE2( s[0] + s[1] - s[2] + s[3]);
}
static inline void sbc_analyze_eight(struct sbc_encoder_state *state,
struct sbc_frame *frame, int ch,
int blk)
{
int32_t *x = &state->X[ch][state->position[ch]];
int16_t *pcm = &frame->pcm_sample[ch][blk * 8];
/* Input 8 Audio Samples */
x[80] = x[0] = pcm[7];
x[81] = x[1] = pcm[6];
x[82] = x[2] = pcm[5];
x[83] = x[3] = pcm[4];
x[84] = x[4] = pcm[3];
x[85] = x[5] = pcm[2];
x[86] = x[6] = pcm[1];
x[87] = x[7] = pcm[0];
_sbc_analyze_eight(x, frame->sb_sample_f[blk][ch]);
state->position[ch] -= 8;
if (state->position[ch] < 0)
state->position[ch] = 72;
} }
static int sbc_analyze_audio(struct sbc_encoder_state *state, static int sbc_analyze_audio(struct sbc_encoder_state *state,
@ -894,14 +801,32 @@ static int sbc_analyze_audio(struct sbc_encoder_state *state,
switch (frame->subbands) { switch (frame->subbands) {
case 4: case 4:
for (ch = 0; ch < frame->channels; ch++) for (ch = 0; ch < frame->channels; ch++)
for (blk = 0; blk < frame->blocks; blk++) for (blk = 0; blk < frame->blocks; blk += 4) {
sbc_analyze_four(state, frame, ch, blk); state->sbc_analyze_4b_4s(
&frame->pcm_sample[ch][blk * 4],
&state->X[ch][state->position[ch]],
frame->sb_sample_f[blk][ch],
frame->sb_sample_f[blk + 1][ch] -
frame->sb_sample_f[blk][ch]);
state->position[ch] -= 16;
if (state->position[ch] < 0)
state->position[ch] = 64 - 16;
}
return frame->blocks * 4; return frame->blocks * 4;
case 8: case 8:
for (ch = 0; ch < frame->channels; ch++) for (ch = 0; ch < frame->channels; ch++)
for (blk = 0; blk < frame->blocks; blk++) for (blk = 0; blk < frame->blocks; blk += 4) {
sbc_analyze_eight(state, frame, ch, blk); state->sbc_analyze_4b_8s(
&frame->pcm_sample[ch][blk * 8],
&state->X[ch][state->position[ch]],
frame->sb_sample_f[blk][ch],
frame->sb_sample_f[blk + 1][ch] -
frame->sb_sample_f[blk][ch]);
state->position[ch] -= 32;
if (state->position[ch] < 0)
state->position[ch] = 128 - 32;
}
return frame->blocks * 8; return frame->blocks * 8;
default: default:
@ -909,6 +834,26 @@ static int sbc_analyze_audio(struct sbc_encoder_state *state,
} }
} }
/* Supplementary bitstream writing macros for 'sbc_pack_frame' */
#define PUT_BITS(v, n)\
bits_cache = (v) | (bits_cache << (n));\
bits_count += (n);\
if (bits_count >= 16) {\
bits_count -= 8;\
*data_ptr++ = (uint8_t) (bits_cache >> bits_count);\
bits_count -= 8;\
*data_ptr++ = (uint8_t) (bits_cache >> bits_count);\
}\
#define FLUSH_BITS()\
while (bits_count >= 8) {\
bits_count -= 8;\
*data_ptr++ = (uint8_t) (bits_cache >> bits_count);\
}\
if (bits_count > 0)\
*data_ptr++ = (uint8_t) (bits_cache << (8 - bits_count));\
/* /*
* Packs the SBC frame from frame into the memory at data. At most len * Packs the SBC frame from frame into the memory at data. At most len
* bytes will be used, should more memory be needed an appropriate * bytes will be used, should more memory be needed an appropriate
@ -926,16 +871,21 @@ static int sbc_analyze_audio(struct sbc_encoder_state *state,
static int sbc_pack_frame(uint8_t *data, struct sbc_frame *frame, size_t len) static int sbc_pack_frame(uint8_t *data, struct sbc_frame *frame, size_t len)
{ {
int produced; /* Bitstream writer starts from the fourth byte */
uint8_t *data_ptr = data + 4;
uint32_t bits_cache = 0;
uint32_t bits_count = 0;
/* Will copy the header parts for CRC-8 calculation here */ /* Will copy the header parts for CRC-8 calculation here */
uint8_t crc_header[11] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; uint8_t crc_header[11] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
int crc_pos = 0; int crc_pos = 0;
uint16_t audio_sample; uint32_t audio_sample;
int ch, sb, blk, bit; /* channel, subband, block and bit counters */ int ch, sb, blk; /* channel, subband, block and bit counters */
int bits[2][8]; /* bits distribution */ int bits[2][8]; /* bits distribution */
int levels[2][8]; /* levels are derived from that */ uint32_t levels[2][8]; /* levels are derived from that */
uint32_t sb_sample_delta[2][8];
u_int32_t scalefactor[2][8]; /* derived from frame->scale_factor */ u_int32_t scalefactor[2][8]; /* derived from frame->scale_factor */
@ -973,8 +923,6 @@ static int sbc_pack_frame(uint8_t *data, struct sbc_frame *frame, size_t len)
/* Can't fill in crc yet */ /* Can't fill in crc yet */
produced = 32;
crc_header[0] = data[1]; crc_header[0] = data[1];
crc_header[1] = data[2]; crc_header[1] = data[2];
crc_pos = 16; crc_pos = 16;
@ -982,7 +930,7 @@ static int sbc_pack_frame(uint8_t *data, struct sbc_frame *frame, size_t len)
for (ch = 0; ch < frame->channels; ch++) { for (ch = 0; ch < frame->channels; ch++) {
for (sb = 0; sb < frame->subbands; sb++) { for (sb = 0; sb < frame->subbands; sb++) {
frame->scale_factor[ch][sb] = 0; frame->scale_factor[ch][sb] = 0;
scalefactor[ch][sb] = 2; scalefactor[ch][sb] = 2 << SCALE_OUT_BITS;
for (blk = 0; blk < frame->blocks; blk++) { for (blk = 0; blk < frame->blocks; blk++) {
while (scalefactor[ch][sb] < fabs(frame->sb_sample_f[blk][ch][sb])) { while (scalefactor[ch][sb] < fabs(frame->sb_sample_f[blk][ch][sb])) {
frame->scale_factor[ch][sb]++; frame->scale_factor[ch][sb]++;
@ -999,22 +947,23 @@ static int sbc_pack_frame(uint8_t *data, struct sbc_frame *frame, size_t len)
u_int32_t scalefactor_j[2]; u_int32_t scalefactor_j[2];
uint8_t scale_factor_j[2]; uint8_t scale_factor_j[2];
uint8_t joint = 0;
frame->joint = 0; frame->joint = 0;
for (sb = 0; sb < frame->subbands - 1; sb++) { for (sb = 0; sb < frame->subbands - 1; sb++) {
scale_factor_j[0] = 0; scale_factor_j[0] = 0;
scalefactor_j[0] = 2; scalefactor_j[0] = 2 << SCALE_OUT_BITS;
scale_factor_j[1] = 0; scale_factor_j[1] = 0;
scalefactor_j[1] = 2; scalefactor_j[1] = 2 << SCALE_OUT_BITS;
for (blk = 0; blk < frame->blocks; blk++) { for (blk = 0; blk < frame->blocks; blk++) {
/* Calculate joint stereo signal */ /* Calculate joint stereo signal */
sb_sample_j[blk][0] = sb_sample_j[blk][0] =
(frame->sb_sample_f[blk][0][sb] + ASR(frame->sb_sample_f[blk][0][sb], 1) +
frame->sb_sample_f[blk][1][sb]) >> 1; ASR(frame->sb_sample_f[blk][1][sb], 1);
sb_sample_j[blk][1] = sb_sample_j[blk][1] =
(frame->sb_sample_f[blk][0][sb] - ASR(frame->sb_sample_f[blk][0][sb], 1) -
frame->sb_sample_f[blk][1][sb]) >> 1; ASR(frame->sb_sample_f[blk][1][sb], 1);
/* calculate scale_factor_j and scalefactor_j for joint case */ /* calculate scale_factor_j and scalefactor_j for joint case */
while (scalefactor_j[0] < fabs(sb_sample_j[blk][0])) { while (scalefactor_j[0] < fabs(sb_sample_j[blk][0])) {
@ -1028,14 +977,15 @@ static int sbc_pack_frame(uint8_t *data, struct sbc_frame *frame, size_t len)
} }
/* decide whether to join this subband */ /* decide whether to join this subband */
if ((scalefactor[0][sb] + scalefactor[1][sb]) > if ((frame->scale_factor[0][sb] +
(scalefactor_j[0] + scalefactor_j[1]) ) { frame->scale_factor[1][sb]) >
(scale_factor_j[0] +
scale_factor_j[1])) {
/* use joint stereo for this subband */ /* use joint stereo for this subband */
joint |= 1 << (frame->subbands - 1 - sb);
frame->joint |= 1 << sb; frame->joint |= 1 << sb;
frame->scale_factor[0][sb] = scale_factor_j[0]; frame->scale_factor[0][sb] = scale_factor_j[0];
frame->scale_factor[1][sb] = scale_factor_j[1]; frame->scale_factor[1][sb] = scale_factor_j[1];
scalefactor[0][sb] = scalefactor_j[0];
scalefactor[1][sb] = scalefactor_j[1];
for (blk = 0; blk < frame->blocks; blk++) { for (blk = 0; blk < frame->blocks; blk++) {
frame->sb_sample_f[blk][0][sb] = frame->sb_sample_f[blk][0][sb] =
sb_sample_j[blk][0]; sb_sample_j[blk][0];
@ -1045,24 +995,16 @@ static int sbc_pack_frame(uint8_t *data, struct sbc_frame *frame, size_t len)
} }
} }
data[4] = 0; PUT_BITS(joint, frame->subbands);
for (sb = 0; sb < frame->subbands - 1; sb++) crc_header[crc_pos >> 3] = joint;
data[4] |= ((frame->joint >> sb) & 0x01) << (frame->subbands - 1 - sb);
crc_header[crc_pos >> 3] = data[4];
produced += frame->subbands;
crc_pos += frame->subbands; crc_pos += frame->subbands;
} }
for (ch = 0; ch < frame->channels; ch++) { for (ch = 0; ch < frame->channels; ch++) {
for (sb = 0; sb < frame->subbands; sb++) { for (sb = 0; sb < frame->subbands; sb++) {
data[produced >> 3] <<= 4; PUT_BITS(frame->scale_factor[ch][sb] & 0x0F, 4);
crc_header[crc_pos >> 3] <<= 4; crc_header[crc_pos >> 3] <<= 4;
data[produced >> 3] |= frame->scale_factor[ch][sb] & 0x0F;
crc_header[crc_pos >> 3] |= frame->scale_factor[ch][sb] & 0x0F; crc_header[crc_pos >> 3] |= frame->scale_factor[ch][sb] & 0x0F;
produced += 4;
crc_pos += 4; crc_pos += 4;
} }
} }
@ -1076,37 +1018,47 @@ static int sbc_pack_frame(uint8_t *data, struct sbc_frame *frame, size_t len)
sbc_calculate_bits(frame, bits); sbc_calculate_bits(frame, bits);
for (ch = 0; ch < frame->channels; ch++) { for (ch = 0; ch < frame->channels; ch++) {
for (sb = 0; sb < frame->subbands; sb++) for (sb = 0; sb < frame->subbands; sb++) {
levels[ch][sb] = (1 << bits[ch][sb]) - 1; levels[ch][sb] = ((1 << bits[ch][sb]) - 1) <<
(32 - (frame->scale_factor[ch][sb] +
SCALE_OUT_BITS + 2));
sb_sample_delta[ch][sb] = (uint32_t) 1 <<
(frame->scale_factor[ch][sb] +
SCALE_OUT_BITS + 1);
}
} }
for (blk = 0; blk < frame->blocks; blk++) { for (blk = 0; blk < frame->blocks; blk++) {
for (ch = 0; ch < frame->channels; ch++) { for (ch = 0; ch < frame->channels; ch++) {
for (sb = 0; sb < frame->subbands; sb++) { for (sb = 0; sb < frame->subbands; sb++) {
if (levels[ch][sb] > 0) {
audio_sample = if (bits[ch][sb] == 0)
(uint16_t) ((((frame->sb_sample_f[blk][ch][sb]*levels[ch][sb]) >> continue;
(frame->scale_factor[ch][sb] + 1)) +
levels[ch][sb]) >> 1); audio_sample = ((uint64_t) levels[ch][sb] *
audio_sample <<= 16 - bits[ch][sb]; (sb_sample_delta[ch][sb] +
for (bit = 0; bit < bits[ch][sb]; bit++) { frame->sb_sample_f[blk][ch][sb])) >> 32;
data[produced >> 3] <<= 1;
if (audio_sample & 0x8000) PUT_BITS(audio_sample, bits[ch][sb]);
data[produced >> 3] |= 0x1;
audio_sample <<= 1;
produced++;
}
}
} }
} }
} }
/* align the last byte */ FLUSH_BITS();
if (produced % 8) {
data[produced >> 3] <<= 8 - (produced % 8);
}
return (produced + 7) >> 3; return data_ptr - data;
}
static void sbc_encoder_init(struct sbc_encoder_state *state,
const struct sbc_frame *frame)
{
memset(&state->X, 0, sizeof(state->X));
state->subbands = frame->subbands;
state->position[0] = state->position[1] = 12 * frame->subbands;
/* Default implementation for analyze function */
state->sbc_analyze_4b_4s = sbc_analyze_4b_4s;
state->sbc_analyze_4b_8s = sbc_analyze_4b_8s;
} }
struct sbc_priv { struct sbc_priv {
@ -1190,6 +1142,9 @@ int sbc_decode(sbc_t *sbc, void *input, int input_len, void *output,
if (written) if (written)
*written = 0; *written = 0;
if (framelen <= 0)
return framelen;
samples = sbc_synthesize_audio(&priv->dec_state, &priv->frame); samples = sbc_synthesize_audio(&priv->dec_state, &priv->frame);
ptr = output; ptr = output;
@ -1202,13 +1157,7 @@ int sbc_decode(sbc_t *sbc, void *input, int input_len, void *output,
int16_t s; int16_t s;
s = priv->frame.pcm_sample[ch][i]; s = priv->frame.pcm_sample[ch][i];
#if __BYTE_ORDER == __LITTLE_ENDIAN
if (sbc->endian == SBC_BE) { if (sbc->endian == SBC_BE) {
#elif __BYTE_ORDER == __BIG_ENDIAN
if (sbc->endian == SBC_LE) {
#else
#error "Unknown byte order"
#endif
*ptr++ = (s & 0xff00) >> 8; *ptr++ = (s & 0xff00) >> 8;
*ptr++ = (s & 0x00ff); *ptr++ = (s & 0x00ff);
} else { } else {
@ -1269,13 +1218,7 @@ int sbc_encode(sbc_t *sbc, void *input, int input_len, void *output,
for (i = 0; i < priv->frame.subbands * priv->frame.blocks; i++) { for (i = 0; i < priv->frame.subbands * priv->frame.blocks; i++) {
for (ch = 0; ch < priv->frame.channels; ch++) { for (ch = 0; ch < priv->frame.channels; ch++) {
int16_t s; int16_t s;
#if __BYTE_ORDER == __LITTLE_ENDIAN
if (sbc->endian == SBC_BE) if (sbc->endian == SBC_BE)
#elif __BYTE_ORDER == __BIG_ENDIAN
if (sbc->endian == SBC_LE)
#else
#error "Unknown byte order"
#endif
s = (ptr[0] & 0xff) << 8 | (ptr[1] & 0xff); s = (ptr[0] & 0xff) << 8 | (ptr[1] & 0xff);
else else
s = (ptr[0] & 0xff) | (ptr[1] & 0xff) << 8; s = (ptr[0] & 0xff) | (ptr[1] & 0xff) << 8;
@ -1374,9 +1317,9 @@ int sbc_get_frame_duration(sbc_t *sbc)
return (1000000 * blocks * subbands) / frequency; return (1000000 * blocks * subbands) / frequency;
} }
int sbc_get_codesize(sbc_t *sbc) uint16_t sbc_get_codesize(sbc_t *sbc)
{ {
uint8_t subbands, channels, blocks; uint16_t subbands, channels, blocks;
struct sbc_priv *priv; struct sbc_priv *priv;
priv = sbc->priv; priv = sbc->priv;

View file

@ -2,7 +2,7 @@
* *
* Bluetooth low-complexity, subband codec (SBC) library * Bluetooth low-complexity, subband codec (SBC) library
* *
* Copyright (C) 2004-2008 Marcel Holtmann <marcel@holtmann.org> * Copyright (C) 2004-2009 Marcel Holtmann <marcel@holtmann.org>
* Copyright (C) 2004-2005 Henryk Ploetz <henryk@ploetzli.ch> * Copyright (C) 2004-2005 Henryk Ploetz <henryk@ploetzli.ch>
* Copyright (C) 2005-2006 Brad Midgley <bmidgley@xmission.com> * Copyright (C) 2005-2006 Brad Midgley <bmidgley@xmission.com>
* *
@ -87,7 +87,7 @@ int sbc_encode(sbc_t *sbc, void *input, int input_len, void *output,
int output_len, int *written); int output_len, int *written);
int sbc_get_frame_length(sbc_t *sbc); int sbc_get_frame_length(sbc_t *sbc);
int sbc_get_frame_duration(sbc_t *sbc); int sbc_get_frame_duration(sbc_t *sbc);
int sbc_get_codesize(sbc_t *sbc); uint16_t sbc_get_codesize(sbc_t *sbc);
void sbc_finish(sbc_t *sbc); void sbc_finish(sbc_t *sbc);
#ifdef __cplusplus #ifdef __cplusplus

View file

@ -2,7 +2,7 @@
* *
* Bluetooth low-complexity, subband codec (SBC) library * Bluetooth low-complexity, subband codec (SBC) library
* *
* Copyright (C) 2004-2008 Marcel Holtmann <marcel@holtmann.org> * Copyright (C) 2004-2009 Marcel Holtmann <marcel@holtmann.org>
* Copyright (C) 2004-2005 Henryk Ploetz <henryk@ploetzli.ch> * Copyright (C) 2004-2005 Henryk Ploetz <henryk@ploetzli.ch>
* Copyright (C) 2005-2008 Brad Midgley <bmidgley@xmission.com> * Copyright (C) 2005-2008 Brad Midgley <bmidgley@xmission.com>
* *
@ -29,31 +29,21 @@
#define ASR(val, bits) ((-2 >> 1 == -1) ? \ #define ASR(val, bits) ((-2 >> 1 == -1) ? \
((int32_t)(val)) >> (bits) : ((int32_t) (val)) / (1 << (bits))) ((int32_t)(val)) >> (bits) : ((int32_t) (val)) / (1 << (bits)))
#define SCALE_PROTO4_TBL 15 #define SCALE_OUT_BITS 15
#define SCALE_ANA4_TBL 17
#define SCALE_PROTO8_TBL 16
#define SCALE_ANA8_TBL 17
#define SCALE_SPROTO4_TBL 12 #define SCALE_SPROTO4_TBL 12
#define SCALE_SPROTO8_TBL 14 #define SCALE_SPROTO8_TBL 14
#define SCALE_NPROTO4_TBL 11 #define SCALE_NPROTO4_TBL 11
#define SCALE_NPROTO8_TBL 11 #define SCALE_NPROTO8_TBL 11
#define SCALE4_STAGE1_BITS 15
#define SCALE4_STAGE2_BITS 16
#define SCALE4_STAGED1_BITS 15 #define SCALE4_STAGED1_BITS 15
#define SCALE4_STAGED2_BITS 16 #define SCALE4_STAGED2_BITS 16
#define SCALE8_STAGE1_BITS 15
#define SCALE8_STAGE2_BITS 15
#define SCALE8_STAGED1_BITS 15 #define SCALE8_STAGED1_BITS 15
#define SCALE8_STAGED2_BITS 16 #define SCALE8_STAGED2_BITS 16
typedef int32_t sbc_fixed_t; typedef int32_t sbc_fixed_t;
#define SCALE4_STAGE1(src) ASR(src, SCALE4_STAGE1_BITS)
#define SCALE4_STAGE2(src) ASR(src, SCALE4_STAGE2_BITS)
#define SCALE4_STAGED1(src) ASR(src, SCALE4_STAGED1_BITS) #define SCALE4_STAGED1(src) ASR(src, SCALE4_STAGED1_BITS)
#define SCALE4_STAGED2(src) ASR(src, SCALE4_STAGED2_BITS) #define SCALE4_STAGED2(src) ASR(src, SCALE4_STAGED2_BITS)
#define SCALE8_STAGE1(src) ASR(src, SCALE8_STAGE1_BITS)
#define SCALE8_STAGE2(src) ASR(src, SCALE8_STAGE2_BITS)
#define SCALE8_STAGED1(src) ASR(src, SCALE8_STAGED1_BITS) #define SCALE8_STAGED1(src) ASR(src, SCALE8_STAGED1_BITS)
#define SCALE8_STAGED2(src) ASR(src, SCALE8_STAGED2_BITS) #define SCALE8_STAGED2(src) ASR(src, SCALE8_STAGED2_BITS)

View file

@ -2,7 +2,7 @@
* *
* Bluetooth low-complexity, subband codec (SBC) library * Bluetooth low-complexity, subband codec (SBC) library
* *
* Copyright (C) 2004-2008 Marcel Holtmann <marcel@holtmann.org> * Copyright (C) 2004-2009 Marcel Holtmann <marcel@holtmann.org>
* Copyright (C) 2004-2005 Henryk Ploetz <henryk@ploetzli.ch> * Copyright (C) 2004-2005 Henryk Ploetz <henryk@ploetzli.ch>
* Copyright (C) 2005-2006 Brad Midgley <bmidgley@xmission.com> * Copyright (C) 2005-2006 Brad Midgley <bmidgley@xmission.com>
* *
@ -39,40 +39,12 @@ static const int sbc_offset8[4][8] = {
{ -4, 0, 0, 0, 0, 0, 1, 2 } { -4, 0, 0, 0, 0, 0, 1, 2 }
}; };
#define SP4(val) ASR(val, SCALE_PROTO4_TBL)
#define SA4(val) ASR(val, SCALE_ANA4_TBL)
#define SP8(val) ASR(val, SCALE_PROTO8_TBL)
#define SA8(val) ASR(val, SCALE_ANA8_TBL)
#define SS4(val) ASR(val, SCALE_SPROTO4_TBL) #define SS4(val) ASR(val, SCALE_SPROTO4_TBL)
#define SS8(val) ASR(val, SCALE_SPROTO8_TBL) #define SS8(val) ASR(val, SCALE_SPROTO8_TBL)
#define SN4(val) ASR(val, SCALE_NPROTO4_TBL) #define SN4(val) ASR(val, SCALE_NPROTO4_TBL)
#define SN8(val) ASR(val, SCALE_NPROTO8_TBL) #define SN8(val) ASR(val, SCALE_NPROTO8_TBL)
static const int32_t _sbc_proto_4[20] = {
SP4(0x02cb3e8c), SP4(0x22b63dc0), SP4(0x002329cc), SP4(0x053b7548),
SP4(0x31eab940), SP4(0xec1f5e60), SP4(0xff3773a8), SP4(0x0061c5a7),
SP4(0x07646680), SP4(0x3f239480), SP4(0xf89f23a8), SP4(0x007a4737),
SP4(0x00b32807), SP4(0x083ddc80), SP4(0x4825e480), SP4(0x0191e578),
SP4(0x00ff11ca), SP4(0x00fb7991), SP4(0x069fdc58), SP4(0x4b584000)
};
static const int32_t _anamatrix4[4] = {
SA4(0x2d413cc0), SA4(0x3b20d780), SA4(0x40000000), SA4(0x187de2a0)
};
static const int32_t _sbc_proto_8[40] = {
SP8(0x02e5cd20), SP8(0x22d0c200), SP8(0x006bfe27), SP8(0x07808930),
SP8(0x3f1c8800), SP8(0xf8810d70), SP8(0x002cfdc6), SP8(0x055acf28),
SP8(0x31f566c0), SP8(0xebfe57e0), SP8(0xff27c437), SP8(0x001485cc),
SP8(0x041c6e58), SP8(0x2a7cfa80), SP8(0xe4c4a240), SP8(0xfe359e4c),
SP8(0x0048b1f8), SP8(0x0686ce30), SP8(0x38eec5c0), SP8(0xf2a1b9f0),
SP8(0xffe8904a), SP8(0x0095698a), SP8(0x0824a480), SP8(0x443b3c00),
SP8(0xfd7badc8), SP8(0x00d3e2d9), SP8(0x00c183d2), SP8(0x084e1950),
SP8(0x4810d800), SP8(0x017f43fe), SP8(0x01056dd8), SP8(0x00e9cb9f),
SP8(0x07d7d090), SP8(0x4a708980), SP8(0x0488fae8), SP8(0x0113bd20),
SP8(0x0107b1a8), SP8(0x069fb3c0), SP8(0x4b3db200), SP8(0x00763f48)
};
static const int32_t sbc_proto_4_40m0[] = { static const int32_t sbc_proto_4_40m0[] = {
SS4(0x00000000), SS4(0xffa6982f), SS4(0xfba93848), SS4(0x0456c7b8), SS4(0x00000000), SS4(0xffa6982f), SS4(0xfba93848), SS4(0x0456c7b8),
SS4(0x005967d1), SS4(0xfffb9ac7), SS4(0xff589157), SS4(0xf9c2a8d8), SS4(0x005967d1), SS4(0xfffb9ac7), SS4(0xff589157), SS4(0xf9c2a8d8),
@ -115,11 +87,6 @@ static const int32_t sbc_proto_8_80m1[] = {
SS8(0x0d9daee0), SS8(0xeac182c0), SS8(0xfdf1c8d4), SS8(0xfff5bd1a) SS8(0x0d9daee0), SS8(0xeac182c0), SS8(0xfdf1c8d4), SS8(0xfff5bd1a)
}; };
static const int32_t _anamatrix8[8] = {
SA8(0x3b20d780), SA8(0x187de2a0), SA8(0x3ec52f80), SA8(0x3536cc40),
SA8(0x238e7680), SA8(0x0c7c5c20), SA8(0x2d413cc0), SA8(0x40000000)
};
static const int32_t synmatrix4[8][4] = { static const int32_t synmatrix4[8][4] = {
{ SN4(0x05a82798), SN4(0xfa57d868), SN4(0xfa57d868), SN4(0x05a82798) }, { SN4(0x05a82798), SN4(0xfa57d868), SN4(0xfa57d868), SN4(0x05a82798) },
{ SN4(0x030fbc54), SN4(0xf89be510), SN4(0x07641af0), SN4(0xfcf043ac) }, { SN4(0x030fbc54), SN4(0xf89be510), SN4(0x07641af0), SN4(0xfcf043ac) },
@ -165,3 +132,216 @@ static const int32_t synmatrix8[16][8] = {
{ SN8(0xf9592678), SN8(0x018f8b84), SN8(0x07d8a5f0), SN8(0x0471ced0), { SN8(0xf9592678), SN8(0x018f8b84), SN8(0x07d8a5f0), SN8(0x0471ced0),
SN8(0xfb8e3130), SN8(0xf8275a10), SN8(0xfe70747c), SN8(0x06a6d988) } SN8(0xfb8e3130), SN8(0xf8275a10), SN8(0xfe70747c), SN8(0x06a6d988) }
}; };
/* Uncomment the following line to enable high precision build of SBC encoder */
/* #define SBC_HIGH_PRECISION */
#ifdef SBC_HIGH_PRECISION
#define FIXED_A int64_t /* data type for fixed point accumulator */
#define FIXED_T int32_t /* data type for fixed point constants */
#define SBC_FIXED_EXTRA_BITS 16
#else
#define FIXED_A int32_t /* data type for fixed point accumulator */
#define FIXED_T int16_t /* data type for fixed point constants */
#define SBC_FIXED_EXTRA_BITS 0
#endif
/* A2DP specification: Section 12.8 Tables
*
* Original values are premultiplied by 2 for better precision (that is the
* maximum which is possible without overflows)
*
* Note: in each block of 8 numbers sign was changed for elements 2 and 7
* in order to compensate the same change applied to cos_table_fixed_4
*/
#define SBC_PROTO_FIXED4_SCALE \
((sizeof(FIXED_T) * CHAR_BIT - 1) - SBC_FIXED_EXTRA_BITS + 1)
#define F(x) (FIXED_A) ((x * 2) * \
((FIXED_A) 1 << (sizeof(FIXED_T) * CHAR_BIT - 1)) + 0.5)
static const FIXED_T _sbc_proto_fixed4[40] = {
F(0.00000000E+00), F(5.36548976E-04),
-F(1.49188357E-03), F(2.73370904E-03),
F(3.83720193E-03), F(3.89205149E-03),
F(1.86581691E-03), F(3.06012286E-03),
F(1.09137620E-02), F(2.04385087E-02),
-F(2.88757392E-02), F(3.21939290E-02),
F(2.58767811E-02), F(6.13245186E-03),
-F(2.88217274E-02), F(7.76463494E-02),
F(1.35593274E-01), F(1.94987841E-01),
-F(2.46636662E-01), F(2.81828203E-01),
F(2.94315332E-01), F(2.81828203E-01),
F(2.46636662E-01), -F(1.94987841E-01),
-F(1.35593274E-01), -F(7.76463494E-02),
F(2.88217274E-02), F(6.13245186E-03),
F(2.58767811E-02), F(3.21939290E-02),
F(2.88757392E-02), -F(2.04385087E-02),
-F(1.09137620E-02), -F(3.06012286E-03),
-F(1.86581691E-03), F(3.89205149E-03),
F(3.83720193E-03), F(2.73370904E-03),
F(1.49188357E-03), -F(5.36548976E-04),
};
#undef F
/*
* To produce this cosine matrix in Octave:
*
* b = zeros(4, 8);
* for i = 0:3
* for j = 0:7 b(i+1, j+1) = cos((i + 0.5) * (j - 2) * (pi/4))
* endfor
* endfor;
* printf("%.10f, ", b');
*
* Note: in each block of 8 numbers sign was changed for elements 2 and 7
*
* Change of sign for element 2 allows to replace constant 1.0 (not
* representable in Q15 format) with -1.0 (fine with Q15).
* Changed sign for element 7 allows to have more similar constants
* and simplify subband filter function code.
*/
#define SBC_COS_TABLE_FIXED4_SCALE \
((sizeof(FIXED_T) * CHAR_BIT - 1) + SBC_FIXED_EXTRA_BITS)
#define F(x) (FIXED_A) ((x) * \
((FIXED_A) 1 << (sizeof(FIXED_T) * CHAR_BIT - 1)) + 0.5)
static const FIXED_T cos_table_fixed_4[32] = {
F(0.7071067812), F(0.9238795325), -F(1.0000000000), F(0.9238795325),
F(0.7071067812), F(0.3826834324), F(0.0000000000), F(0.3826834324),
-F(0.7071067812), F(0.3826834324), -F(1.0000000000), F(0.3826834324),
-F(0.7071067812), -F(0.9238795325), -F(0.0000000000), -F(0.9238795325),
-F(0.7071067812), -F(0.3826834324), -F(1.0000000000), -F(0.3826834324),
-F(0.7071067812), F(0.9238795325), F(0.0000000000), F(0.9238795325),
F(0.7071067812), -F(0.9238795325), -F(1.0000000000), -F(0.9238795325),
F(0.7071067812), -F(0.3826834324), -F(0.0000000000), -F(0.3826834324),
};
#undef F
/* A2DP specification: Section 12.8 Tables
*
* Original values are premultiplied by 4 for better precision (that is the
* maximum which is possible without overflows)
*
* Note: in each block of 16 numbers sign was changed for elements 4, 13, 14, 15
* in order to compensate the same change applied to cos_table_fixed_8
*/
#define SBC_PROTO_FIXED8_SCALE \
((sizeof(FIXED_T) * CHAR_BIT - 1) - SBC_FIXED_EXTRA_BITS + 2)
#define F(x) (FIXED_A) ((x * 4) * \
((FIXED_A) 1 << (sizeof(FIXED_T) * CHAR_BIT - 1)) + 0.5)
static const FIXED_T _sbc_proto_fixed8[80] = {
F(0.00000000E+00), F(1.56575398E-04),
F(3.43256425E-04), F(5.54620202E-04),
-F(8.23919506E-04), F(1.13992507E-03),
F(1.47640169E-03), F(1.78371725E-03),
F(2.01182542E-03), F(2.10371989E-03),
F(1.99454554E-03), F(1.61656283E-03),
F(9.02154502E-04), F(1.78805361E-04),
F(1.64973098E-03), F(3.49717454E-03),
F(5.65949473E-03), F(8.02941163E-03),
F(1.04584443E-02), F(1.27472335E-02),
-F(1.46525263E-02), F(1.59045603E-02),
F(1.62208471E-02), F(1.53184106E-02),
F(1.29371806E-02), F(8.85757540E-03),
F(2.92408442E-03), -F(4.91578024E-03),
-F(1.46404076E-02), F(2.61098752E-02),
F(3.90751381E-02), F(5.31873032E-02),
F(6.79989431E-02), F(8.29847578E-02),
F(9.75753918E-02), F(1.11196689E-01),
-F(1.23264548E-01), F(1.33264415E-01),
F(1.40753505E-01), F(1.45389847E-01),
F(1.46955068E-01), F(1.45389847E-01),
F(1.40753505E-01), F(1.33264415E-01),
F(1.23264548E-01), -F(1.11196689E-01),
-F(9.75753918E-02), -F(8.29847578E-02),
-F(6.79989431E-02), -F(5.31873032E-02),
-F(3.90751381E-02), -F(2.61098752E-02),
F(1.46404076E-02), -F(4.91578024E-03),
F(2.92408442E-03), F(8.85757540E-03),
F(1.29371806E-02), F(1.53184106E-02),
F(1.62208471E-02), F(1.59045603E-02),
F(1.46525263E-02), -F(1.27472335E-02),
-F(1.04584443E-02), -F(8.02941163E-03),
-F(5.65949473E-03), -F(3.49717454E-03),
-F(1.64973098E-03), -F(1.78805361E-04),
-F(9.02154502E-04), F(1.61656283E-03),
F(1.99454554E-03), F(2.10371989E-03),
F(2.01182542E-03), F(1.78371725E-03),
F(1.47640169E-03), F(1.13992507E-03),
F(8.23919506E-04), -F(5.54620202E-04),
-F(3.43256425E-04), -F(1.56575398E-04),
};
#undef F
/*
* To produce this cosine matrix in Octave:
*
* b = zeros(8, 16);
* for i = 0:7
* for j = 0:15 b(i+1, j+1) = cos((i + 0.5) * (j - 4) * (pi/8))
* endfor endfor;
* printf("%.10f, ", b');
*
* Note: in each block of 16 numbers sign was changed for elements 4, 13, 14, 15
*
* Change of sign for element 4 allows to replace constant 1.0 (not
* representable in Q15 format) with -1.0 (fine with Q15).
* Changed signs for elements 13, 14, 15 allow to have more similar constants
* and simplify subband filter function code.
*/
#define SBC_COS_TABLE_FIXED8_SCALE \
((sizeof(FIXED_T) * CHAR_BIT - 1) + SBC_FIXED_EXTRA_BITS)
#define F(x) (FIXED_A) ((x) * \
((FIXED_A) 1 << (sizeof(FIXED_T) * CHAR_BIT - 1)) + 0.5)
static const FIXED_T cos_table_fixed_8[128] = {
F(0.7071067812), F(0.8314696123), F(0.9238795325), F(0.9807852804),
-F(1.0000000000), F(0.9807852804), F(0.9238795325), F(0.8314696123),
F(0.7071067812), F(0.5555702330), F(0.3826834324), F(0.1950903220),
F(0.0000000000), F(0.1950903220), F(0.3826834324), F(0.5555702330),
-F(0.7071067812), -F(0.1950903220), F(0.3826834324), F(0.8314696123),
-F(1.0000000000), F(0.8314696123), F(0.3826834324), -F(0.1950903220),
-F(0.7071067812), -F(0.9807852804), -F(0.9238795325), -F(0.5555702330),
-F(0.0000000000), -F(0.5555702330), -F(0.9238795325), -F(0.9807852804),
-F(0.7071067812), -F(0.9807852804), -F(0.3826834324), F(0.5555702330),
-F(1.0000000000), F(0.5555702330), -F(0.3826834324), -F(0.9807852804),
-F(0.7071067812), F(0.1950903220), F(0.9238795325), F(0.8314696123),
F(0.0000000000), F(0.8314696123), F(0.9238795325), F(0.1950903220),
F(0.7071067812), -F(0.5555702330), -F(0.9238795325), F(0.1950903220),
-F(1.0000000000), F(0.1950903220), -F(0.9238795325), -F(0.5555702330),
F(0.7071067812), F(0.8314696123), -F(0.3826834324), -F(0.9807852804),
-F(0.0000000000), -F(0.9807852804), -F(0.3826834324), F(0.8314696123),
F(0.7071067812), F(0.5555702330), -F(0.9238795325), -F(0.1950903220),
-F(1.0000000000), -F(0.1950903220), -F(0.9238795325), F(0.5555702330),
F(0.7071067812), -F(0.8314696123), -F(0.3826834324), F(0.9807852804),
F(0.0000000000), F(0.9807852804), -F(0.3826834324), -F(0.8314696123),
-F(0.7071067812), F(0.9807852804), -F(0.3826834324), -F(0.5555702330),
-F(1.0000000000), -F(0.5555702330), -F(0.3826834324), F(0.9807852804),
-F(0.7071067812), -F(0.1950903220), F(0.9238795325), -F(0.8314696123),
-F(0.0000000000), -F(0.8314696123), F(0.9238795325), -F(0.1950903220),
-F(0.7071067812), F(0.1950903220), F(0.3826834324), -F(0.8314696123),
-F(1.0000000000), -F(0.8314696123), F(0.3826834324), F(0.1950903220),
-F(0.7071067812), F(0.9807852804), -F(0.9238795325), F(0.5555702330),
-F(0.0000000000), F(0.5555702330), -F(0.9238795325), F(0.9807852804),
F(0.7071067812), -F(0.8314696123), F(0.9238795325), -F(0.9807852804),
-F(1.0000000000), -F(0.9807852804), F(0.9238795325), -F(0.8314696123),
F(0.7071067812), -F(0.5555702330), F(0.3826834324), -F(0.1950903220),
-F(0.0000000000), -F(0.1950903220), F(0.3826834324), -F(0.5555702330),
};
#undef F

View file

@ -1409,7 +1409,7 @@ int pa__init(pa_module*m) {
} }
if (found) if (found)
if (!(u->mixer_elem = pa_alsa_find_elem(u->mixer_handle, "Master", "PCM"))) if (!(u->mixer_elem = pa_alsa_find_elem(u->mixer_handle, "Master", "PCM", TRUE)))
found = FALSE; found = FALSE;
if (!found) { if (!found) {

View file

@ -1236,7 +1236,7 @@ int pa__init(pa_module*m) {
} }
if (found) if (found)
if (!(u->mixer_elem = pa_alsa_find_elem(u->mixer_handle, "Capture", "Mic"))) if (!(u->mixer_elem = pa_alsa_find_elem(u->mixer_handle, "Capture", "Mic", FALSE)))
found = FALSE; found = FALSE;
if (!found) { if (!found) {

View file

@ -296,6 +296,11 @@ int pa__init(pa_module*m) {
pa_log("IP_MULTICAST_TTL failed: %s", pa_cstrerror(errno)); pa_log("IP_MULTICAST_TTL failed: %s", pa_cstrerror(errno));
goto fail; goto fail;
} }
if (setsockopt(sap_fd, IPPROTO_IP, IP_MULTICAST_TTL, &_ttl, sizeof(_ttl)) < 0) {
pa_log("IP_MULTICAST_TTL (sap) failed: %s", pa_cstrerror(errno));
goto fail;
}
} }
/* If the socket queue is full, let's drop packets */ /* If the socket queue is full, let's drop packets */