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
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 =
noinst_DATA =
@ -56,7 +56,7 @@ fedora-snapshot: dist
dist-hook:
if test -d .git ; then \
git pull ; \
test -z $$SKIP_GIT && git pull ; \
chmod u+w ${distdir}/ChangeLog || true ; \
( git-changelog.perl || echo "git-changelog.perl failed." ) > ${distdir}/ChangeLog 2>&1 ; \
fi

View file

@ -95,7 +95,7 @@ if test "x$M4" = xno ; then
fi
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
CC_CHECK_CFLAGS([$flag], [CFLAGS="$CFLAGS $flag"])
@ -411,21 +411,52 @@ AC_SUBST(pulselocaledir)
# 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) ####
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$os_is_win32" != "x1" ; then
AC_PATH_XTRA
test "x$no_x" != "xyes" && HAVE_X11=1
if test "x${x11}" != xno ; then
PKG_CHECK_MODULES(X11, [ x11 ice sm ],
HAVE_X11=1,
[
HAVE_X11=0
if test "x$x11" = xyes ; then
AC_MSG_ERROR([*** X11 not found])
fi
])
else
HAVE_X11=0
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)
AM_CONDITIONAL(HAVE_X11, test "x$HAVE_X11" = "x1")
if test "x$HAVE_X11" = "x1" ; then
AC_DEFINE([HAVE_X11], 1, [Have X11])
fi
AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
#### Capabilities (optional) ####
@ -450,18 +481,6 @@ fi
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 ####
PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.10 ])

View file

@ -72,7 +72,7 @@ USA.
</option>
<option>
<p><opt>--dump-resampe-methods</opt></p>
<p><opt>--dump-resample-methods</opt></p>
<optdesc><p>List available audio resamplers.</p></optdesc>
</option>
@ -110,7 +110,9 @@ USA.
<p><opt>--check</opt></p>
<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>

View file

@ -1,5 +1,9 @@
ca
cs
de
el
es
fi
fr
pl
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 ""
"Project-Id-Version: el\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"
"Last-Translator: Dimitris Glezos <dimitris@glezos.com>\n"
"Language-Team: Greek <fedora-trans-el@redhat.com>\n"
@ -16,12 +16,16 @@ msgstr ""
"X-Generator: KAider 0.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../src/daemon/ltdl-bind-now.c:177 ../src/daemon/ltdl-bind-now.c:197
msgid "Failed to add bind-now-loader."
#: ../src/daemon/ltdl-bind-now.c:124
msgid "Failed to find original lt_dlopen loader."
msgstr ""
#: ../src/daemon/ltdl-bind-now.c:184
msgid "Failed to find original dlopen loader."
#: ../src/daemon/ltdl-bind-now.c:129
msgid "Failed to allocate new dl loader."
msgstr ""
#: ../src/daemon/ltdl-bind-now.c:142
msgid "Failed to add bind-now-loader."
msgstr ""
#: ../src/daemon/polkit.c:55
@ -149,212 +153,212 @@ msgstr ""
msgid "Failed to parse command line."
msgstr ""
#: ../src/daemon/main.c:441
#: ../src/daemon/main.c:447
#, c-format
msgid "We're in the group '%s', allowing high-priority scheduling."
msgstr ""
#: ../src/daemon/main.c:448
#: ../src/daemon/main.c:454
#, c-format
msgid "We're in the group '%s', allowing real-time scheduling."
msgstr ""
#: ../src/daemon/main.c:456
#: ../src/daemon/main.c:462
msgid "PolicyKit grants us acquire-high-priority privilege."
msgstr ""
#: ../src/daemon/main.c:459
#: ../src/daemon/main.c:465
msgid "PolicyKit refuses acquire-high-priority privilege."
msgstr ""
#: ../src/daemon/main.c:464
#: ../src/daemon/main.c:470
msgid "PolicyKit grants us acquire-real-time privilege."
msgstr ""
#: ../src/daemon/main.c:467
#: ../src/daemon/main.c:473
msgid "PolicyKit refuses acquire-real-time privilege."
msgstr ""
#: ../src/daemon/main.c:479
#: ../src/daemon/main.c:502
msgid ""
"Called SUID root and real-time/high-priority scheduling was requested in the "
"configuration. However, we lack the necessary priviliges:\n"
"Called SUID root and real-time and/or high-priority scheduling was requested "
"in the configuration. However, we lack the necessary privileges:\n"
"We are not in group '"
msgstr ""
#: ../src/daemon/main.c:497
#: ../src/daemon/main.c:526
msgid ""
"High-priority scheduling enabled in configuration but not allowed by policy."
msgstr ""
#: ../src/daemon/main.c:522
#: ../src/daemon/main.c:555
msgid "Successfully increased RLIMIT_RTPRIO"
msgstr ""
#: ../src/daemon/main.c:525
#: ../src/daemon/main.c:558
#, c-format
msgid "RLIMIT_RTPRIO failed: %s"
msgstr ""
#: ../src/daemon/main.c:532
#: ../src/daemon/main.c:565
msgid "Giving up CAP_NICE"
msgstr ""
#: ../src/daemon/main.c:539
#: ../src/daemon/main.c:572
msgid ""
"Real-time scheduling enabled in configuration but not allowed by policy."
msgstr ""
#: ../src/daemon/main.c:597
#: ../src/daemon/main.c:633
msgid "Daemon not running"
msgstr ""
#: ../src/daemon/main.c:599
#: ../src/daemon/main.c:635
#, c-format
msgid "Daemon running as PID %u"
msgstr ""
#: ../src/daemon/main.c:609
#: ../src/daemon/main.c:645
#, c-format
msgid "Failed to kill daemon: %s"
msgstr ""
#: ../src/daemon/main.c:627
#: ../src/daemon/main.c:663
msgid ""
"This program is not intended to be run as root (unless --system is "
"specified)."
msgstr ""
#: ../src/daemon/main.c:629
msgid "Root priviliges required."
#: ../src/daemon/main.c:665
msgid "Root privileges required."
msgstr ""
#: ../src/daemon/main.c:634
#: ../src/daemon/main.c:670
msgid "--start not supported for system instances."
msgstr ""
#: ../src/daemon/main.c:639
#: ../src/daemon/main.c:675
msgid "Running in system mode, but --disallow-exit not set!"
msgstr ""
#: ../src/daemon/main.c:642
#: ../src/daemon/main.c:678
msgid "Running in system mode, but --disallow-module-loading not set!"
msgstr ""
#: ../src/daemon/main.c:645
#: ../src/daemon/main.c:681
msgid "Running in system mode, forcibly disabling SHM mode!"
msgstr ""
#: ../src/daemon/main.c:650
#: ../src/daemon/main.c:686
msgid "Running in system mode, forcibly disabling exit idle time!"
msgstr ""
#: ../src/daemon/main.c:677
#: ../src/daemon/main.c:713
msgid "Failed to acquire stdio."
msgstr ""
#: ../src/daemon/main.c:683
#: ../src/daemon/main.c:719
#, c-format
msgid "pipe failed: %s"
msgstr ""
#: ../src/daemon/main.c:688
#: ../src/daemon/main.c:724
#, c-format
msgid "fork() failed: %s"
msgstr ""
#: ../src/daemon/main.c:702
#: ../src/daemon/main.c:738
#, c-format
msgid "read() failed: %s"
msgstr ""
#: ../src/daemon/main.c:708
#: ../src/daemon/main.c:744
msgid "Daemon startup failed."
msgstr ""
#: ../src/daemon/main.c:710
#: ../src/daemon/main.c:746
msgid "Daemon startup successful."
msgstr ""
#: ../src/daemon/main.c:780
#: ../src/daemon/main.c:816
#, c-format
msgid "This is PulseAudio %s"
msgstr "Αυτό είναι το PulseAudio %s"
#: ../src/daemon/main.c:781
#: ../src/daemon/main.c:817
#, c-format
msgid "Compilation host: %s"
msgstr ""
#: ../src/daemon/main.c:782
#: ../src/daemon/main.c:818
#, c-format
msgid "Compilation CFLAGS: %s"
msgstr ""
#: ../src/daemon/main.c:785
#: ../src/daemon/main.c:821
#, c-format
msgid "Running on host: %s"
msgstr ""
#: ../src/daemon/main.c:788
#: ../src/daemon/main.c:824
#, c-format
msgid "Page size is %lu bytes"
msgstr ""
#: ../src/daemon/main.c:791
#: ../src/daemon/main.c:827
msgid "Compiled with Valgrind support: yes"
msgstr ""
#: ../src/daemon/main.c:793
#: ../src/daemon/main.c:829
msgid "Compiled with Valgrind support: no"
msgstr ""
#: ../src/daemon/main.c:796
#: ../src/daemon/main.c:832
#, c-format
msgid "Running in valgrind mode: %s"
msgstr ""
#: ../src/daemon/main.c:799
#: ../src/daemon/main.c:835
msgid "Optimized build: yes"
msgstr ""
#: ../src/daemon/main.c:801
#: ../src/daemon/main.c:837
msgid "Optimized build: no"
msgstr ""
#: ../src/daemon/main.c:805
#: ../src/daemon/main.c:841
msgid "Failed to get machine ID"
msgstr ""
#: ../src/daemon/main.c:808
#: ../src/daemon/main.c:844
#, c-format
msgid "Machine ID is %s."
msgstr ""
#: ../src/daemon/main.c:813
#: ../src/daemon/main.c:849
#, c-format
msgid "Using runtime directory %s."
msgstr ""
#: ../src/daemon/main.c:818
#: ../src/daemon/main.c:854
#, c-format
msgid "Using state directory %s."
msgstr ""
#: ../src/daemon/main.c:821
#: ../src/daemon/main.c:857
#, c-format
msgid "Running in system mode: %s"
msgstr ""
#: ../src/daemon/main.c:836
#: ../src/daemon/main.c:872
msgid "pa_pid_file_create() failed."
msgstr ""
#: ../src/daemon/main.c:848
#: ../src/daemon/main.c:884
msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr ""
#: ../src/daemon/main.c:850
#: ../src/daemon/main.c:886
msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!"
@ -362,36 +366,36 @@ msgstr ""
"Δικέ μου, ο πυρήνας σου είναι για τα μπάζα! Η πρόταση του σεφ σήμερα είναι "
"Linux με ενεργοποιημένα τα high-resolution timers!"
#: ../src/daemon/main.c:860
#: ../src/daemon/main.c:896
msgid "pa_core_new() failed."
msgstr ""
#: ../src/daemon/main.c:921
#: ../src/daemon/main.c:957
msgid "Failed to initialize daemon."
msgstr ""
#: ../src/daemon/main.c:926
#: ../src/daemon/main.c:962
msgid "Daemon startup without any loaded modules, refusing to work."
msgstr ""
#: ../src/daemon/main.c:931
#: ../src/daemon/main.c:967
#, c-format
msgid "Default sink name (%s) does not exist in name register."
msgstr ""
#: ../src/daemon/main.c:944
#: ../src/daemon/main.c:980
msgid "Daemon startup complete."
msgstr ""
#: ../src/daemon/main.c:950
#: ../src/daemon/main.c:986
msgid "Daemon shutdown initiated."
msgstr ""
#: ../src/daemon/main.c:971
#: ../src/daemon/main.c:1007
msgid "Daemon terminated."
msgstr ""
#: ../src/daemon/cmdline.c:117
#: ../src/daemon/cmdline.c:123
#, c-format
msgid ""
"%s [options]\n"
@ -407,7 +411,8 @@ msgid ""
" --start Start the daemon if it is not "
"running\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"
"OPTIONS:\n"
" --system[=BOOL] Run as system-wide instance\n"
@ -437,6 +442,10 @@ msgid ""
" --log-level[=LEVEL] Increase or set verbosity level\n"
" -v Increase the verbosity level\n"
" --log-target={auto,syslog,stderr} Specify the log target\n"
" --log-meta[=BOOL] Include code location in log "
"messages\n"
" --log-time[=BOOL] Include timestamps in log messages\n"
" --log-backtrace=FRAMES Include a backtrace in log messages\n"
" -p, --dl-search-path=PATH Set the search path for dynamic "
"shared\n"
" objects (plugins)\n"
@ -460,58 +469,66 @@ msgid ""
" -n Don't load default script file\n"
msgstr ""
#: ../src/daemon/cmdline.c:245
#: ../src/daemon/cmdline.c:254
msgid "--daemonize expects boolean argument"
msgstr ""
#: ../src/daemon/cmdline.c:252
#: ../src/daemon/cmdline.c:261
msgid "--fail expects boolean argument"
msgstr ""
#: ../src/daemon/cmdline.c:262
#: ../src/daemon/cmdline.c:271
msgid ""
"--log-level expects log level argument (either numeric in range 0..4 or one "
"of debug, info, notice, warn, error)."
msgstr ""
#: ../src/daemon/cmdline.c:274
#: ../src/daemon/cmdline.c:283
msgid "--high-priority expects boolean argument"
msgstr ""
#: ../src/daemon/cmdline.c:281
#: ../src/daemon/cmdline.c:290
msgid "--realtime expects boolean argument"
msgstr ""
#: ../src/daemon/cmdline.c:288
#: ../src/daemon/cmdline.c:297
msgid "--disallow-module-loading expects boolean argument"
msgstr ""
#: ../src/daemon/cmdline.c:295
#: ../src/daemon/cmdline.c:304
msgid "--disallow-exit boolean argument"
msgstr ""
#: ../src/daemon/cmdline.c:302
#: ../src/daemon/cmdline.c:311
msgid "--use-pid-file expects boolean argument"
msgstr ""
#: ../src/daemon/cmdline.c:319
#: ../src/daemon/cmdline.c:328
msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'."
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
msgid "Invalid resample method '%s'."
msgstr ""
#: ../src/daemon/cmdline.c:345
#: ../src/daemon/cmdline.c:372
msgid "--system expects boolean argument"
msgstr ""
#: ../src/daemon/cmdline.c:352
#: ../src/daemon/cmdline.c:379
msgid "--no-cpu-limit expects boolean argument"
msgstr ""
#: ../src/daemon/cmdline.c:359
#: ../src/daemon/cmdline.c:386
msgid "--disable-shm expects boolean argument"
msgstr ""
@ -555,73 +572,73 @@ msgstr ""
msgid "Path: %s\n"
msgstr ""
#: ../src/daemon/daemon-conf.c:205
#: ../src/daemon/daemon-conf.c:208
#, c-format
msgid "[%s:%u] Invalid log target '%s'."
msgstr ""
#: ../src/daemon/daemon-conf.c:221
#: ../src/daemon/daemon-conf.c:224
#, c-format
msgid "[%s:%u] Invalid log level '%s'."
msgstr ""
#: ../src/daemon/daemon-conf.c:237
#: ../src/daemon/daemon-conf.c:240
#, c-format
msgid "[%s:%u] Invalid resample method '%s'."
msgstr ""
#: ../src/daemon/daemon-conf.c:260
#: ../src/daemon/daemon-conf.c:263
#, c-format
msgid "[%s:%u] Invalid rlimit '%s'."
msgstr ""
#: ../src/daemon/daemon-conf.c:267
#: ../src/daemon/daemon-conf.c:270
#, c-format
msgid "[%s:%u] rlimit not supported on this platform."
msgstr ""
#: ../src/daemon/daemon-conf.c:283
#: ../src/daemon/daemon-conf.c:286
#, c-format
msgid "[%s:%u] Invalid sample format '%s'."
msgstr ""
#: ../src/daemon/daemon-conf.c:301
#: ../src/daemon/daemon-conf.c:304
#, c-format
msgid "[%s:%u] Invalid sample rate '%s'."
msgstr ""
#: ../src/daemon/daemon-conf.c:319
#: ../src/daemon/daemon-conf.c:322
#, c-format
msgid "[%s:%u] Invalid sample channels '%s'."
msgstr ""
#: ../src/daemon/daemon-conf.c:337
#: ../src/daemon/daemon-conf.c:340
#, c-format
msgid "[%s:%u] Invalid number of fragments '%s'."
msgstr ""
#: ../src/daemon/daemon-conf.c:355
#: ../src/daemon/daemon-conf.c:358
#, c-format
msgid "[%s:%u] Invalid fragment size '%s'."
msgstr ""
#: ../src/daemon/daemon-conf.c:373
#: ../src/daemon/daemon-conf.c:376
#, c-format
msgid "[%s:%u] Invalid nice level '%s'."
msgstr ""
#: ../src/daemon/daemon-conf.c:570
#: ../src/daemon/daemon-conf.c:554
#, c-format
msgid "Failed to open configuration file: %s"
msgstr ""
#: ../src/daemon/daemon-conf.c:644
#: ../src/daemon/daemon-conf.c:628
#, c-format
msgid "### Read from configuration file: %s ###\n"
msgstr ""
#: ../src/daemon/caps.c:63
msgid "Dropping root priviliges."
msgid "Dropping root privileges."
msgstr ""
#: ../src/daemon/caps.c:103
@ -957,177 +974,177 @@ msgstr ""
msgid "Received message for unknown extension '%s'"
msgstr ""
#: ../src/utils/pacat.c:93
#: ../src/utils/pacat.c:94
#, c-format
msgid "pa_stream_write() failed: %s\n"
msgstr ""
#: ../src/utils/pacat.c:132
#: ../src/utils/pacat.c:133
#, c-format
msgid "pa_stream_peek() failed: %s\n"
msgstr ""
#: ../src/utils/pacat.c:141
#: ../src/utils/pacat.c:142
#, c-format
msgid "Buffer overrun, dropping incoming data\n"
msgstr ""
#: ../src/utils/pacat.c:143
#: ../src/utils/pacat.c:144
#, c-format
msgid "pa_stream_drop() failed: %s\n"
msgstr ""
#: ../src/utils/pacat.c:169
#: ../src/utils/pacat.c:170
#, c-format
msgid "Stream successfully created.\n"
msgstr ""
#: ../src/utils/pacat.c:172
#: ../src/utils/pacat.c:173
#, c-format
msgid "pa_stream_get_buffer_attr() failed: %s\n"
msgstr ""
#: ../src/utils/pacat.c:176
#: ../src/utils/pacat.c:177
#, c-format
msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n"
msgstr ""
#: ../src/utils/pacat.c:179
#: ../src/utils/pacat.c:180
#, c-format
msgid "Buffer metrics: maxlength=%u, fragsize=%u\n"
msgstr ""
#: ../src/utils/pacat.c:183
#: ../src/utils/pacat.c:184
#, c-format
msgid "Using sample spec '%s', channel map '%s'.\n"
msgstr ""
#: ../src/utils/pacat.c:187
#: ../src/utils/pacat.c:188
#, c-format
msgid "Connected to device %s (%u, %ssuspended).\n"
msgstr ""
#: ../src/utils/pacat.c:197
#: ../src/utils/pacat.c:198
#, c-format
msgid "Stream error: %s\n"
msgstr ""
#: ../src/utils/pacat.c:207
#: ../src/utils/pacat.c:208
#, c-format
msgid "Stream device suspended.%s \n"
msgstr ""
#: ../src/utils/pacat.c:209
#: ../src/utils/pacat.c:210
#, c-format
msgid "Stream device resumed.%s \n"
msgstr ""
#: ../src/utils/pacat.c:217
#: ../src/utils/pacat.c:218
#, c-format
msgid "Stream underrun.%s \n"
msgstr ""
#: ../src/utils/pacat.c:224
#: ../src/utils/pacat.c:225
#, c-format
msgid "Stream overrun.%s \n"
msgstr ""
#: ../src/utils/pacat.c:231
#: ../src/utils/pacat.c:232
#, c-format
msgid "Stream started.%s \n"
msgstr ""
#: ../src/utils/pacat.c:238
#: ../src/utils/pacat.c:239
#, c-format
msgid "Stream moved to device %s (%u, %ssuspended).%s \n"
msgstr ""
#: ../src/utils/pacat.c:238
#: ../src/utils/pacat.c:239
msgid "not "
msgstr ""
#: ../src/utils/pacat.c:259
#: ../src/utils/pacat.c:260
#, c-format
msgid "Connection established.%s \n"
msgstr ""
#: ../src/utils/pacat.c:262
#: ../src/utils/pacat.c:263
#, c-format
msgid "pa_stream_new() failed: %s\n"
msgstr ""
#: ../src/utils/pacat.c:287
#: ../src/utils/pacat.c:288
#, c-format
msgid "pa_stream_connect_playback() failed: %s\n"
msgstr ""
#: ../src/utils/pacat.c:293
#: ../src/utils/pacat.c:294
#, c-format
msgid "pa_stream_connect_record() failed: %s\n"
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
#, c-format
msgid "Connection failure: %s\n"
msgstr ""
#: ../src/utils/pacat.c:328 ../src/utils/paplay.c:75
#: ../src/utils/pacat.c:329 ../src/utils/paplay.c:75
#, c-format
msgid "Failed to drain stream: %s\n"
msgstr ""
#: ../src/utils/pacat.c:333 ../src/utils/paplay.c:80
#: ../src/utils/pacat.c:334 ../src/utils/paplay.c:80
#, c-format
msgid "Playback stream drained.\n"
msgstr ""
#: ../src/utils/pacat.c:343 ../src/utils/paplay.c:92
#: ../src/utils/pacat.c:344 ../src/utils/paplay.c:92
#, c-format
msgid "Draining connection to server.\n"
msgstr ""
#: ../src/utils/pacat.c:369
#: ../src/utils/pacat.c:370
#, c-format
msgid "Got EOF.\n"
msgstr ""
#: ../src/utils/pacat.c:375
#: ../src/utils/pacat.c:376
#, c-format
msgid "pa_stream_drain(): %s\n"
msgstr ""
#: ../src/utils/pacat.c:385
#: ../src/utils/pacat.c:386
#, c-format
msgid "read() failed: %s\n"
msgstr ""
#: ../src/utils/pacat.c:417
#: ../src/utils/pacat.c:418
#, c-format
msgid "write() failed: %s\n"
msgstr ""
#: ../src/utils/pacat.c:438
#: ../src/utils/pacat.c:439
#, c-format
msgid "Got signal, exiting.\n"
msgstr ""
#: ../src/utils/pacat.c:452
#: ../src/utils/pacat.c:453
#, c-format
msgid "Failed to get latency: %s\n"
msgstr ""
#: ../src/utils/pacat.c:457
#: ../src/utils/pacat.c:458
#, c-format
msgid "Time: %0.3f sec; Latency: %0.0f usec. \r"
msgstr ""
#: ../src/utils/pacat.c:477
#: ../src/utils/pacat.c:478
#, c-format
msgid "pa_stream_update_timing_info() failed: %s\n"
msgstr ""
#: ../src/utils/pacat.c:490
#: ../src/utils/pacat.c:491
#, c-format
msgid ""
"%s [options]\n"
@ -1180,7 +1197,7 @@ msgid ""
"per request in bytes.\n"
msgstr ""
#: ../src/utils/pacat.c:591
#: ../src/utils/pacat.c:592
#, c-format
msgid ""
"pacat %s\n"
@ -1188,87 +1205,87 @@ msgid ""
"Linked with libpulse %s\n"
msgstr ""
#: ../src/utils/pacat.c:647
#: ../src/utils/pacat.c:649
#, c-format
msgid "Invalid channel map '%s'\n"
msgstr ""
#: ../src/utils/pacat.c:676
#: ../src/utils/pacat.c:678
#, c-format
msgid "Invalid latency specification '%s'\n"
msgstr ""
#: ../src/utils/pacat.c:683
#: ../src/utils/pacat.c:685
#, c-format
msgid "Invalid process time specification '%s'\n"
msgstr ""
#: ../src/utils/pacat.c:694
#: ../src/utils/pacat.c:696
#, c-format
msgid "Invalid sample specification\n"
msgstr ""
#: ../src/utils/pacat.c:699
#: ../src/utils/pacat.c:701
#, c-format
msgid "Channel map doesn't match sample specification\n"
msgstr ""
#: ../src/utils/pacat.c:706
#: ../src/utils/pacat.c:708
#, c-format
msgid "Opening a %s stream with sample specification '%s'.\n"
msgstr ""
#: ../src/utils/pacat.c:706
#: ../src/utils/pacat.c:708
msgid "recording"
msgstr ""
#: ../src/utils/pacat.c:706
#: ../src/utils/pacat.c:708
msgid "playback"
msgstr ""
#: ../src/utils/pacat.c:714
#: ../src/utils/pacat.c:716
#, c-format
msgid "open(): %s\n"
msgstr ""
#: ../src/utils/pacat.c:719
#: ../src/utils/pacat.c:721
#, c-format
msgid "dup2(): %s\n"
msgstr ""
#: ../src/utils/pacat.c:729
#: ../src/utils/pacat.c:731
#, c-format
msgid "Too many arguments.\n"
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
#, c-format
msgid "pa_mainloop_new() failed.\n"
msgstr ""
#: ../src/utils/pacat.c:763
#: ../src/utils/pacat.c:765
#, c-format
msgid "io_new() failed.\n"
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
#, c-format
msgid "pa_context_new() failed.\n"
msgstr ""
#: ../src/utils/pacat.c:777
#: ../src/utils/pacat.c:779
#, c-format
msgid "pa_context_connect() failed: %s"
msgstr ""
#: ../src/utils/pacat.c:788
#: ../src/utils/pacat.c:790
#, c-format
msgid "time_new() failed.\n"
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
#, c-format
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.
# Copyright (C) 2006-2008 Lennart Poettering
# This file is distributed under the same license as the pulseaudio package.
#
# Robert-André Mauchin <zebob.m@pengzone.org>, 2008.
# Michaël Ughetto <telimektar esraonline com>, 2008.
# Pablo Martin-Gomez <pablo.martin-gomez@laposte.net>, 2008.
#
#
msgid ""
msgstr ""
"Project-Id-Version: pulseaudio trunk\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-10-07 21:03+0200\n"
"PO-Revision-Date: 2008-09-06 10:49+0200\n"
"Last-Translator: Robert-André Mauchin <zebob.m@pengzone.org>\n"
"Language-Team: Fedora French <fedora-trans-fr@redhat.com>\n"
"POT-Creation-Date: 2009-01-08 19:36+0100\n"
"PO-Revision-Date: 2008-10-18 20:34+0200\n"
"Last-Translator: Pablo Martin-Gomez <pablo.martin-gomez@laposte.net>\n"
"Language-Team: Français <fedora-trans-fr@redhat.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n>1;\n"
#: ../src/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."
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
#, c-format
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."
msgstr "Échec lors de l'analyse de la ligne de commande"
#: ../src/daemon/main.c:441
#: ../src/daemon/main.c:447
#, c-format
msgid "We're in the group '%s', allowing high-priority scheduling."
msgstr ""
"Nous sommes dans le groupe « %s », permettant une planification à haute "
"priorité."
#: ../src/daemon/main.c:448
#: ../src/daemon/main.c:454
#, c-format
msgid "We're in the group '%s', allowing real-time scheduling."
msgstr ""
"Nous sommes dans le groupe « %s », permettant une planification en temps réel."
#: ../src/daemon/main.c:456
#: ../src/daemon/main.c:462
msgid "PolicyKit grants us acquire-high-priority privilege."
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."
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."
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."
msgstr "PolicyKit a refusé l'acquisition des permissions de temps réel."
#: ../src/daemon/main.c:479
#: ../src/daemon/main.c:502
#, fuzzy
msgid ""
"Called SUID root and real-time/high-priority scheduling was requested in the "
"configuration. However, we lack the necessary priviliges:\n"
"Called SUID root and real-time and/or high-priority scheduling was requested "
"in the configuration. However, we lack the necessary privileges:\n"
"We are not in group '"
msgstr ""
"Le SUID root a été appelé et la planification à haute priorité/en temps réel "
@ -192,48 +200,48 @@ msgstr ""
"nécessaires :\n"
"nous ne somme pas dans le groupe "
#: ../src/daemon/main.c:497
#: ../src/daemon/main.c:526
msgid ""
"High-priority scheduling enabled in configuration but not allowed by policy."
msgstr ""
"La planification à haute priorité est activée dans la configuration mais "
"n'est pas permise par la politique."
#: ../src/daemon/main.c:522
#: ../src/daemon/main.c:555
msgid "Successfully increased RLIMIT_RTPRIO"
msgstr "Augmentation de RLIMIT_RTPRIO réussie"
#: ../src/daemon/main.c:525
#: ../src/daemon/main.c:558
#, c-format
msgid "RLIMIT_RTPRIO failed: %s"
msgstr "RLIMIT_RTPRIO a échoué : %s"
#: ../src/daemon/main.c:532
#: ../src/daemon/main.c:565
msgid "Giving up CAP_NICE"
msgstr "Abandon de CAP_NICE"
#: ../src/daemon/main.c:539
#: ../src/daemon/main.c:572
msgid ""
"Real-time scheduling enabled in configuration but not allowed by policy."
msgstr ""
"La planification en temps réel est activée mais n'est pas permise par la "
"politique."
#: ../src/daemon/main.c:597
#: ../src/daemon/main.c:633
msgid "Daemon not running"
msgstr "Lé démon n'est pas lancé"
#: ../src/daemon/main.c:599
#: ../src/daemon/main.c:635
#, c-format
msgid "Daemon running as PID %u"
msgstr "Le démon est lancé avec le PID %u"
#: ../src/daemon/main.c:609
#: ../src/daemon/main.c:645
#, c-format
msgid "Failed to kill daemon: %s"
msgstr "Impossible de tuer le démon : %s"
#: ../src/daemon/main.c:627
#: ../src/daemon/main.c:663
msgid ""
"This program is not intended to be run as root (unless --system is "
"specified)."
@ -241,142 +249,143 @@ msgstr ""
"Le programme n'est pas conçu pour être lancé en tant que root (sauf si --"
"system est renseigné)."
#: ../src/daemon/main.c:629
msgid "Root priviliges required."
#: ../src/daemon/main.c:665
#, fuzzy
msgid "Root privileges required."
msgstr "Les permissions root sont nécessaires."
#: ../src/daemon/main.c:634
#: ../src/daemon/main.c:670
msgid "--start not supported for system instances."
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!"
msgstr ""
"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!"
msgstr ""
"Le démon s'exécute en mode système, mais --disallow-module-loading n'est pas "
"défini."
#: ../src/daemon/main.c:645
#: ../src/daemon/main.c:681
msgid "Running in system mode, forcibly disabling SHM mode!"
msgstr "Le démon s'exécute en mode système, désactivation forcée du mode SHM."
#: ../src/daemon/main.c:650
#: ../src/daemon/main.c:686
msgid "Running in system mode, forcibly disabling exit idle time!"
msgstr ""
"Le démon s'exécute en mode système, désactivation forcée de la fermeture "
"après délai d'inactivité."
#: ../src/daemon/main.c:677
#: ../src/daemon/main.c:713
msgid "Failed to acquire stdio."
msgstr "Échec lors de l'acquisition de stdio."
#: ../src/daemon/main.c:683
#: ../src/daemon/main.c:719
#, c-format
msgid "pipe failed: %s"
msgstr "Échec du tube : %s"
#: ../src/daemon/main.c:688
#: ../src/daemon/main.c:724
#, c-format
msgid "fork() failed: %s"
msgstr "Échec de fork() : %s"
#: ../src/daemon/main.c:702
#: ../src/daemon/main.c:738
#, c-format
msgid "read() failed: %s"
msgstr "Échec de read() : %s"
#: ../src/daemon/main.c:708
#: ../src/daemon/main.c:744
msgid "Daemon startup failed."
msgstr "Échec lors du démarrage du démon."
#: ../src/daemon/main.c:710
#: ../src/daemon/main.c:746
msgid "Daemon startup successful."
msgstr "Démarrage du démon réussi."
#: ../src/daemon/main.c:780
#: ../src/daemon/main.c:816
#, c-format
msgid "This is PulseAudio %s"
msgstr "Pulseaudio %s"
#: ../src/daemon/main.c:781
#, fuzzy, c-format
#: ../src/daemon/main.c:817
#, c-format
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
msgid "Compilation CFLAGS: %s"
msgstr "CFLAGS de compilation : %s"
#: ../src/daemon/main.c:785
#, fuzzy, c-format
#: ../src/daemon/main.c:821
#, c-format
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
msgid "Page size is %lu bytes"
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"
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"
msgstr "Compilé avec la prise en charge Valgrind : non"
#: ../src/daemon/main.c:796
#, fuzzy, c-format
#: ../src/daemon/main.c:832
#, c-format
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"
msgstr "Construction optimisée : oui"
#: ../src/daemon/main.c:801
#: ../src/daemon/main.c:837
msgid "Optimized build: no"
msgstr "Construction optimisée : non"
#: ../src/daemon/main.c:805
#: ../src/daemon/main.c:841
msgid "Failed to get machine ID"
msgstr "Échec lors de l'obtention de l'ID de la machine"
#: ../src/daemon/main.c:808
#: ../src/daemon/main.c:844
#, c-format
msgid "Machine ID is %s."
msgstr "L'ID de la machine est %s."
#: ../src/daemon/main.c:813
#: ../src/daemon/main.c:849
#, c-format
msgid "Using runtime directory %s."
msgstr "Utilisation du répertoire d'exécution %s."
#: ../src/daemon/main.c:818
#: ../src/daemon/main.c:854
#, c-format
msgid "Using state directory %s."
msgstr "Utilisation du répertoire d'état %s."
#: ../src/daemon/main.c:821
#: ../src/daemon/main.c:857
#, c-format
msgid "Running in system mode: %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."
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!"
msgstr ""
"De nouvelles horloges à haute résolution sont disponibles ! Bon appétit !"
#: ../src/daemon/main.c:850
#: ../src/daemon/main.c:886
msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!"
@ -384,39 +393,39 @@ msgstr ""
"Eh mec, ton noyau il pue ! La recommandation d'aujourd'hui du patron est "
"d'activer les horloges à haute résolution sur ton Linux."
#: ../src/daemon/main.c:860
#: ../src/daemon/main.c:896
msgid "pa_core_new() failed."
msgstr "Échec de pa_core_new()."
#: ../src/daemon/main.c:921
#: ../src/daemon/main.c:957
msgid "Failed to initialize daemon."
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."
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
msgid "Default sink name (%s) does not exist in name register."
msgstr ""
"Le nom de la destination par défaut (%s) n'existe pas dans le registre des "
"noms."
#: ../src/daemon/main.c:944
#: ../src/daemon/main.c:980
msgid "Daemon startup complete."
msgstr "Démarrage du démon effectué."
#: ../src/daemon/main.c:950
#: ../src/daemon/main.c:986
msgid "Daemon shutdown initiated."
msgstr "Fermeture du démon initiée."
#: ../src/daemon/main.c:971
#: ../src/daemon/main.c:1007
msgid "Daemon terminated."
msgstr "Démon terminé."
#: ../src/daemon/cmdline.c:117
#, c-format
#: ../src/daemon/cmdline.c:123
#, fuzzy, c-format
msgid ""
"%s [options]\n"
"\n"
@ -431,7 +440,8 @@ msgid ""
" --start Start the daemon if it is not "
"running\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"
"OPTIONS:\n"
" --system[=BOOL] Run as system-wide instance\n"
@ -461,6 +471,10 @@ msgid ""
" --log-level[=LEVEL] Increase or set verbosity level\n"
" -v Increase the verbosity level\n"
" --log-target={auto,syslog,stderr} Specify the log target\n"
" --log-meta[=BOOL] Include code location in log "
"messages\n"
" --log-time[=BOOL] Include timestamps in log messages\n"
" --log-backtrace=FRAMES Include a backtrace in log messages\n"
" -p, --dl-search-path=PATH Set the search path for dynamic "
"shared\n"
" objects (plugins)\n"
@ -565,15 +579,15 @@ msgstr ""
" -n Ne pas charger les fichiers de "
"scripts par défaut\n"
#: ../src/daemon/cmdline.c:245
#: ../src/daemon/cmdline.c:254
msgid "--daemonize expects boolean argument"
msgstr "--daemonize requiert un paramètre booléen"
#: ../src/daemon/cmdline.c:252
#: ../src/daemon/cmdline.c:261
msgid "--fail expects boolean argument"
msgstr "--fail requiert un paramètre booléen"
#: ../src/daemon/cmdline.c:262
#: ../src/daemon/cmdline.c:271
msgid ""
"--log-level expects log level argument (either numeric in range 0..4 or one "
"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 "
"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"
msgstr "--high-priority requiert un paramètre booléen"
#: ../src/daemon/cmdline.c:281
#: ../src/daemon/cmdline.c:290
msgid "--realtime expects boolean argument"
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"
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"
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"
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'."
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
msgid "Invalid resample method '%s'."
msgstr "Méthode de rééchantillonnage invalide « %s »."
#: ../src/daemon/cmdline.c:345
#: ../src/daemon/cmdline.c:372
msgid "--system expects boolean argument"
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"
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"
msgstr "--disable-shm requiert un paramètre booléen"
@ -663,73 +687,74 @@ msgid "Path: %s\n"
msgstr "Chemin : %s\n"
# dans les lignes suivantes [%s = nom de fichier: %u = ligne dans celui-ci]
#: ../src/daemon/daemon-conf.c:205
#: ../src/daemon/daemon-conf.c:208
#, c-format
msgid "[%s:%u] Invalid log target '%s'."
msgstr "[%s:%u] Cible du journal « %s » invalide."
#: ../src/daemon/daemon-conf.c:221
#: ../src/daemon/daemon-conf.c:224
#, c-format
msgid "[%s:%u] Invalid log level '%s'."
msgstr "[%s:%u] Niveau du journal « %s » invalide."
#: ../src/daemon/daemon-conf.c:237
#: ../src/daemon/daemon-conf.c:240
#, c-format
msgid "[%s:%u] Invalid resample method '%s'."
msgstr "[%s:%u] Méthode de rééchantillonnage « %s » invalide."
#: ../src/daemon/daemon-conf.c:260
#: ../src/daemon/daemon-conf.c:263
#, c-format
msgid "[%s:%u] Invalid rlimit '%s'."
msgstr "[%s:%u] rlimit « %s » invalide."
#: ../src/daemon/daemon-conf.c:267
#: ../src/daemon/daemon-conf.c:270
#, c-format
msgid "[%s:%u] rlimit not supported on this platform."
msgstr "[%s:%u] rlimit n'est pas pris en charge sur cette plateforme."
#: ../src/daemon/daemon-conf.c:283
#: ../src/daemon/daemon-conf.c:286
#, c-format
msgid "[%s:%u] Invalid sample format '%s'."
msgstr "[%s:%u] Format d'échantillon « %s » invalide."
#: ../src/daemon/daemon-conf.c:301
#: ../src/daemon/daemon-conf.c:304
#, c-format
msgid "[%s:%u] Invalid sample rate '%s'."
msgstr "[%s:%u] Taux d'échantillonnage « %s » invalide."
#: ../src/daemon/daemon-conf.c:319
#: ../src/daemon/daemon-conf.c:322
#, c-format
msgid "[%s:%u] Invalid sample channels '%s'."
msgstr "[%s:%u] Canaux d'échantillonnage « %s » invalide."
#: ../src/daemon/daemon-conf.c:337
#: ../src/daemon/daemon-conf.c:340
#, c-format
msgid "[%s:%u] Invalid number of fragments '%s'."
msgstr "[%s:%u] Nombre de fragments « %s » invalide."
#: ../src/daemon/daemon-conf.c:355
#: ../src/daemon/daemon-conf.c:358
#, c-format
msgid "[%s:%u] Invalid fragment size '%s'."
msgstr "[%s:%u] Taille du fragment « %s » invalide."
#: ../src/daemon/daemon-conf.c:373
#: ../src/daemon/daemon-conf.c:376
#, c-format
msgid "[%s:%u] Invalid nice level '%s'."
msgstr "[%s:%u] Niveau de priorité (nice) « %s » invalide."
#: ../src/daemon/daemon-conf.c:570
#: ../src/daemon/daemon-conf.c:554
#, c-format
msgid "Failed to open configuration file: %s"
msgstr "Échec lors de l'ouverture du fichier de configuration : %s"
#: ../src/daemon/daemon-conf.c:644
#: ../src/daemon/daemon-conf.c:628
#, c-format
msgid "### Read from configuration file: %s ###\n"
msgstr "### Lecture à partir du fichier de configuration : %s ###\n"
#: ../src/daemon/caps.c:63
msgid "Dropping root priviliges."
#, fuzzy
msgid "Dropping root privileges."
msgstr "Abandon des permissions root."
#: ../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/volume.c:163 ../src/pulse/volume.c:194
#, fuzzy
msgid "(invalid)"
msgstr "Invalide"
msgstr "(invalide)"
#: ../src/pulse/error.c:43
msgid "OK"
@ -1066,175 +1090,175 @@ msgstr "waitpid() : %s"
msgid "Received message for unknown extension '%s'"
msgstr "Message reçu pour une extension inconnue « %s »"
#: ../src/utils/pacat.c:93
#: ../src/utils/pacat.c:94
#, c-format
msgid "pa_stream_write() failed: %s\n"
msgstr "Échec de pa_stream_write() : %s\n"
#: ../src/utils/pacat.c:132
#: ../src/utils/pacat.c:133
#, c-format
msgid "pa_stream_peek() failed: %s\n"
msgstr "Échec de pa_stream_peek() : %s\n"
#: ../src/utils/pacat.c:141
#: ../src/utils/pacat.c:142
#, c-format
msgid "Buffer overrun, dropping incoming data\n"
msgstr "Saturation du tampon, abandon des données entrantes\n"
#: ../src/utils/pacat.c:143
#: ../src/utils/pacat.c:144
#, c-format
msgid "pa_stream_drop() failed: %s\n"
msgstr "Échec de pa_stream_drop() : %s\n"
#: ../src/utils/pacat.c:169
#: ../src/utils/pacat.c:170
#, c-format
msgid "Stream successfully created.\n"
msgstr "Création du flux réussie.\n"
#: ../src/utils/pacat.c:172
#: ../src/utils/pacat.c:173
#, c-format
msgid "pa_stream_get_buffer_attr() failed: %s\n"
msgstr "Échec de pa_stream_get_buffer_attr() : %s\n"
#: ../src/utils/pacat.c:176
#: ../src/utils/pacat.c:177
#, c-format
msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n"
msgstr "Mesures du tampon : maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n"
#: ../src/utils/pacat.c:179
#: ../src/utils/pacat.c:180
#, c-format
msgid "Buffer metrics: maxlength=%u, fragsize=%u\n"
msgstr "Mesures du tampon : maxlength=%u, fragsize=%u\n"
#: ../src/utils/pacat.c:183
#: ../src/utils/pacat.c:184
#, c-format
msgid "Using sample spec '%s', channel map '%s'.\n"
msgstr ""
"Utilisation de la spécification d'échantillon « %s », plan des canaux « %s ».\n"
# l'espace manquant entre %s et suspended est voulu
#: ../src/utils/pacat.c:187
#: ../src/utils/pacat.c:188
#, c-format
msgid "Connected to device %s (%u, %ssuspended).\n"
msgstr "Connecté au périphérique %s (%u, %ssuspendu).\n"
#: ../src/utils/pacat.c:197
#: ../src/utils/pacat.c:198
#, c-format
msgid "Stream error: %s\n"
msgstr "Erreur du flux : %s\n"
#: ../src/utils/pacat.c:207
#: ../src/utils/pacat.c:208
#, c-format
msgid "Stream device suspended.%s \n"
msgstr "Périphérique de flux suspendu %s \n"
#: ../src/utils/pacat.c:209
#: ../src/utils/pacat.c:210
#, c-format
msgid "Stream device resumed.%s \n"
msgstr "Périphérique de flux repris %s \n"
#: ../src/utils/pacat.c:217
#: ../src/utils/pacat.c:218
#, c-format
msgid "Stream underrun.%s \n"
msgstr "Flux vide %s \n"
#: ../src/utils/pacat.c:224
#: ../src/utils/pacat.c:225
#, c-format
msgid "Stream overrun.%s \n"
msgstr "Flux saturé %s \n"
#: ../src/utils/pacat.c:231
#: ../src/utils/pacat.c:232
#, c-format
msgid "Stream started.%s \n"
msgstr "Flux démarré %s \n"
#: ../src/utils/pacat.c:238
#: ../src/utils/pacat.c:239
#, c-format
msgid "Stream moved to device %s (%u, %ssuspended).%s \n"
msgstr "Flux déplacé vers le périphérique %s (%u, %ssuspendu).%s \n"
# suspendu ou non suspendu
#: ../src/utils/pacat.c:238
#: ../src/utils/pacat.c:239
msgid "not "
msgstr "non "
#: ../src/utils/pacat.c:259
#: ../src/utils/pacat.c:260
#, c-format
msgid "Connection established.%s \n"
msgstr "Connection établie.%s \n"
#: ../src/utils/pacat.c:262
#: ../src/utils/pacat.c:263
#, c-format
msgid "pa_stream_new() failed: %s\n"
msgstr "Échec de pa_stream_new() : %s\n"
#: ../src/utils/pacat.c:287
#: ../src/utils/pacat.c:288
#, c-format
msgid "pa_stream_connect_playback() failed: %s\n"
msgstr "Échec de pa_stream_connect_playback() : %s\n"
#: ../src/utils/pacat.c:293
#: ../src/utils/pacat.c:294
#, c-format
msgid "pa_stream_connect_record() failed: %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
#, c-format
msgid "Connection failure: %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
msgid "Failed to drain stream: %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
msgid "Playback stream drained.\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
msgid "Draining connection to server.\n"
msgstr "Vidage de la connexion au serveur.\n"
#: ../src/utils/pacat.c:369
#: ../src/utils/pacat.c:370
#, c-format
msgid "Got EOF.\n"
msgstr "EOF obtenu.\n"
#: ../src/utils/pacat.c:375
#: ../src/utils/pacat.c:376
#, c-format
msgid "pa_stream_drain(): %s\n"
msgstr "pa_stream_drain() : %s\n"
#: ../src/utils/pacat.c:385
#: ../src/utils/pacat.c:386
#, c-format
msgid "read() failed: %s\n"
msgstr "Échec de read() : %s\n"
#: ../src/utils/pacat.c:417
#: ../src/utils/pacat.c:418
#, c-format
msgid "write() failed: %s\n"
msgstr "Échec de write() : %s\n"
#: ../src/utils/pacat.c:438
#: ../src/utils/pacat.c:439
#, c-format
msgid "Got signal, exiting.\n"
msgstr "Signal obtenu, fermeture.\n"
#: ../src/utils/pacat.c:452
#: ../src/utils/pacat.c:453
#, c-format
msgid "Failed to get latency: %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
msgid "Time: %0.3f sec; Latency: %0.0f usec. \r"
msgstr "Durée : %0.3f s ; Latency : %0.0f µs. \r"
#: ../src/utils/pacat.c:477
#: ../src/utils/pacat.c:478
#, c-format
msgid "pa_stream_update_timing_info() failed: %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
# upmixer = par ex. convertir 2 canaux en 5 canaux
# https://bugzilla.redhat.com/show_bug.cgi?id=460798
#: ../src/utils/pacat.c:490
#, fuzzy, c-format
#: ../src/utils/pacat.c:491
#, c-format
msgid ""
"%s [options]\n"
"\n"
@ -1301,14 +1325,15 @@ msgstr ""
"\n"
" -r, --record Crée une connexion pour "
"l'enregistrement\n"
" -p, --playback Crée une connexion pour la lecture\n"
" -p, --playback Crée une connexion pour la "
"relecture\n"
"\n"
" -v, --verbose Active le mode verbeux\n"
"\n"
" -s, --server=SERVEUR Le nom du serveur auquel se "
"connecter\n"
" -d, --device=PÉRIPHÉRIQUE Le nom de la destination/source à "
"laquelle de connecter\n"
"laquelle se connecter\n"
" -n, --client-name=NOM Définit le nom de ce client sur le "
"serveur\n"
" --stream-name=NOM Définit le nom de ce flux sur le "
@ -1345,7 +1370,7 @@ msgstr ""
" --process-time=OCTETS Demande le temps de traitement "
"indiqué par requête en octets.\n"
#: ../src/utils/pacat.c:591
#: ../src/utils/pacat.c:592
#, c-format
msgid ""
"pacat %s\n"
@ -1356,88 +1381,88 @@ msgstr ""
"Compilé avec libpulse %s\n"
"Lié avec libpulse %s\n"
#: ../src/utils/pacat.c:647
#: ../src/utils/pacat.c:649
#, c-format
msgid "Invalid channel map '%s'\n"
msgstr "Plan des canaux invalide « %s »\n"
#: ../src/utils/pacat.c:676
#: ../src/utils/pacat.c:678
#, c-format
msgid "Invalid latency specification '%s'\n"
msgstr "Spécification de latence invalide « %s »\n"
#: ../src/utils/pacat.c:683
#: ../src/utils/pacat.c:685
#, c-format
msgid "Invalid process time specification '%s'\n"
msgstr "Spécification de temps de traitement invalide « %s »\n"
#: ../src/utils/pacat.c:694
#: ../src/utils/pacat.c:696
#, c-format
msgid "Invalid sample specification\n"
msgstr "Spécification d'échantillon invalide\n"
#: ../src/utils/pacat.c:699
#: ../src/utils/pacat.c:701
#, c-format
msgid "Channel map doesn't match sample specification\n"
msgstr ""
"Le plan des canaux ne correspond pas à la spécification d'échantillon\n"
#: ../src/utils/pacat.c:706
#: ../src/utils/pacat.c:708
#, c-format
msgid "Opening a %s stream with sample specification '%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"
msgstr "enregistrement"
#: ../src/utils/pacat.c:706
#: ../src/utils/pacat.c:708
msgid "playback"
msgstr "lecture"
#: ../src/utils/pacat.c:714
#: ../src/utils/pacat.c:716
#, c-format
msgid "open(): %s\n"
msgstr "open() : %s\n"
#: ../src/utils/pacat.c:719
#: ../src/utils/pacat.c:721
#, c-format
msgid "dup2(): %s\n"
msgstr "dup2() : %s\n"
#: ../src/utils/pacat.c:729
#: ../src/utils/pacat.c:731
#, c-format
msgid "Too many arguments.\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
#, c-format
msgid "pa_mainloop_new() failed.\n"
msgstr "Échec de pa_mainloop_new().\n"
#: ../src/utils/pacat.c:763
#: ../src/utils/pacat.c:765
#, c-format
msgid "io_new() failed.\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
#, c-format
msgid "pa_context_new() failed.\n"
msgstr "Échec de pa_context_new().\n"
#: ../src/utils/pacat.c:777
#, fuzzy, c-format
#: ../src/utils/pacat.c:779
#, c-format
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
msgid "time_new() failed.\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
#, c-format
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"
# 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
#: ../src/utils/pactl.c:455
#, 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
msgid "Cannot access autospawn lock."
msgstr ""
msgstr "Impossible d'accèder au verrou autonome."
#~ msgid ""
#~ "' 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 ""
"Project-Id-Version: pl\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-10-07 21:03+0200\n"
"PO-Revision-Date: 2008-09-10 22:41+0200\n"
"POT-Creation-Date: 2009-01-08 19:36+0100\n"
"PO-Revision-Date: 2008-12-30 22:55+0100\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <pl@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../src/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."
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
#, c-format
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."
msgstr "Analiza wiersza poleceń nie powiodła się."
#: ../src/daemon/main.c:441
#: ../src/daemon/main.c:447
#, c-format
msgid "We're in the group '%s', allowing high-priority scheduling."
msgstr ""
"Jesteśmy w grupie \"%s\", co umożliwia szeregowanie o wysokim priorytecie."
#: ../src/daemon/main.c:448
#: ../src/daemon/main.c:454
#, c-format
msgid "We're in the group '%s', allowing real-time scheduling."
msgstr ""
"Jesteśmy w grupie \"%s\", co umożliwia szeregowanie w czasie rzeczywistym."
#: ../src/daemon/main.c:456
#: ../src/daemon/main.c:462
msgid "PolicyKit grants us acquire-high-priority privilege."
msgstr "PolicyKit nadał uprawnienie \"acquire-high-priority\"."
#: ../src/daemon/main.c:459
#: ../src/daemon/main.c:465
msgid "PolicyKit refuses acquire-high-priority privilege."
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."
msgstr "PolicyKit nadał uprawnienie \"acquire-real-time\"."
#: ../src/daemon/main.c:467
#: ../src/daemon/main.c:473
msgid "PolicyKit refuses acquire-real-time privilege."
msgstr "PolicyKit odmówił nadania uprawnienia \"acquire-real-time\"."
#: ../src/daemon/main.c:479
#: ../src/daemon/main.c:502
msgid ""
"Called SUID root and real-time/high-priority scheduling was requested in the "
"configuration. However, we lack the necessary priviliges:\n"
"Called SUID root and real-time and/or high-priority scheduling was requested "
"in the configuration. However, we lack the necessary privileges:\n"
"We are not in group '"
msgstr ""
"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 "
"uprawnień:\n"
"Nie jesteśmy w grupie \""
#: ../src/daemon/main.c:497
#: ../src/daemon/main.c:526
msgid ""
"High-priority scheduling enabled in configuration but not allowed by policy."
msgstr ""
"Szeregowanie o wysokim priorytecie jest włączone w konfiguracji, ale nie "
"jest zezwolone przez politykę."
#: ../src/daemon/main.c:522
#: ../src/daemon/main.c:555
msgid "Successfully increased RLIMIT_RTPRIO"
msgstr "Pomyślnie zwiększono RLIMIT_RTPRIO"
#: ../src/daemon/main.c:525
#: ../src/daemon/main.c:558
#, c-format
msgid "RLIMIT_RTPRIO failed: %s"
msgstr "RLIMIT_RTPRIO nie powiodło się: %s"
#: ../src/daemon/main.c:532
#: ../src/daemon/main.c:565
msgid "Giving up CAP_NICE"
msgstr "Oddawanie CAP_NICE"
#: ../src/daemon/main.c:539
#: ../src/daemon/main.c:572
msgid ""
"Real-time scheduling enabled in configuration but not allowed by policy."
msgstr ""
"Szeregowanie w czasie rzeczywistym jest włączone w konfiguracji, ale nie "
"jest zezwolone przez politykę."
#: ../src/daemon/main.c:597
#: ../src/daemon/main.c:633
msgid "Daemon not running"
msgstr "Demon nie jest uruchomiony"
#: ../src/daemon/main.c:599
#: ../src/daemon/main.c:635
#, c-format
msgid "Daemon running as PID %u"
msgstr "Demon jest uruchomiony jako PID %u"
#: ../src/daemon/main.c:609
#: ../src/daemon/main.c:645
#, c-format
msgid "Failed to kill daemon: %s"
msgstr "Zniszczenie demona nie powiodło się: %s"
#: ../src/daemon/main.c:627
#: ../src/daemon/main.c:663
msgid ""
"This program is not intended to be run as root (unless --system is "
"specified)."
@ -235,141 +239,141 @@ msgstr ""
"Ten program nie powinien być uruchomiany jako root (chyba, że podano --"
"system)"
#: ../src/daemon/main.c:629
msgid "Root priviliges required."
#: ../src/daemon/main.c:665
msgid "Root privileges required."
msgstr "Wymagane są uprawnienia roota."
#: ../src/daemon/main.c:634
#: ../src/daemon/main.c:670
msgid "--start not supported for system instances."
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!"
msgstr ""
"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!"
msgstr ""
"Uruchamianie w trybie systemowym, ale --disallow-module-loading nie jest "
"ustawione!"
#: ../src/daemon/main.c:645
#: ../src/daemon/main.c:681
msgid "Running in system mode, forcibly disabling SHM mode!"
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!"
msgstr ""
"Uruchamianie w trybie systemowym, wymuszanie wyłączenia czasu oczekiwania na "
"zakończenie!"
#: ../src/daemon/main.c:677
#: ../src/daemon/main.c:713
msgid "Failed to acquire stdio."
msgstr "Uzyskanie standardowego wejścia/wyjścia nie powiodło się"
#: ../src/daemon/main.c:683
#: ../src/daemon/main.c:719
#, c-format
msgid "pipe failed: %s"
msgstr "potok nie powiódł się: %s"
#: ../src/daemon/main.c:688
#: ../src/daemon/main.c:724
#, c-format
msgid "fork() failed: %s"
msgstr "fork() nie powiodło się: %s"
#: ../src/daemon/main.c:702
#: ../src/daemon/main.c:738
#, c-format
msgid "read() failed: %s"
msgstr "read() nie powiodło się: %s"
#: ../src/daemon/main.c:708
#: ../src/daemon/main.c:744
msgid "Daemon startup failed."
msgstr "Uruchomienie demona nie powiodło się."
#: ../src/daemon/main.c:710
#: ../src/daemon/main.c:746
msgid "Daemon startup successful."
msgstr "Pomyślnie uruchomiono demona."
#: ../src/daemon/main.c:780
#: ../src/daemon/main.c:816
#, c-format
msgid "This is PulseAudio %s"
msgstr "To jest PulseAudio %s"
#: ../src/daemon/main.c:781
#: ../src/daemon/main.c:817
#, c-format
msgid "Compilation host: %s"
msgstr "Komputer kompilacji: %s"
#: ../src/daemon/main.c:782
#: ../src/daemon/main.c:818
#, c-format
msgid "Compilation CFLAGS: %s"
msgstr "CFLAGS kompilacji: %s"
#: ../src/daemon/main.c:785
#: ../src/daemon/main.c:821
#, c-format
msgid "Running on host: %s"
msgstr "Uruchamianie na komputerze: %s"
#: ../src/daemon/main.c:788
#: ../src/daemon/main.c:824
#, c-format
msgid "Page size is %lu bytes"
msgstr "Rozmiar strony to %lu bajtów"
#: ../src/daemon/main.c:791
#: ../src/daemon/main.c:827
msgid "Compiled with Valgrind support: yes"
msgstr "Skompilowano z obsługą Valgrind: tak"
#: ../src/daemon/main.c:793
#: ../src/daemon/main.c:829
msgid "Compiled with Valgrind support: no"
msgstr "Skompilowano z obsługą Valgrind: nie"
#: ../src/daemon/main.c:796
#, fuzzy, c-format
#: ../src/daemon/main.c:832
#, c-format
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"
msgstr "Budowanie optymalizowane: tak"
#: ../src/daemon/main.c:801
#: ../src/daemon/main.c:837
msgid "Optimized build: no"
msgstr "Budowanie optymalizowane: nie"
#: ../src/daemon/main.c:805
#: ../src/daemon/main.c:841
msgid "Failed to get machine ID"
msgstr "Uzyskanie identyfikatora komputera nie powiodło się"
#: ../src/daemon/main.c:808
#: ../src/daemon/main.c:844
#, c-format
msgid "Machine ID is %s."
msgstr "Identyfikator komputera to %s."
#: ../src/daemon/main.c:813
#: ../src/daemon/main.c:849
#, c-format
msgid "Using runtime directory %s."
msgstr "Używanie folderu wykonywania %s."
#: ../src/daemon/main.c:818
#: ../src/daemon/main.c:854
#, c-format
msgid "Using state directory %s."
msgstr "Używanie folderu stanu %s."
#: ../src/daemon/main.c:821
#: ../src/daemon/main.c:857
#, c-format
msgid "Running in system mode: %s"
msgstr "Uruchamianie w trybie systemowym: %s"
#: ../src/daemon/main.c:836
#: ../src/daemon/main.c:872
msgid "pa_pid_file_create() failed."
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!"
msgstr "Świeże zegary o wysokiej rozdzielczości! Smacznego!"
#: ../src/daemon/main.c:850
#: ../src/daemon/main.c:886
msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!"
@ -377,37 +381,37 @@ msgstr ""
"Koleś, twoje jądro śmierdzi! Szef kuchni poleca dzisiaj Linuksa w włączonymi "
"zegarami o wysokiej rozdzielczości!"
#: ../src/daemon/main.c:860
#: ../src/daemon/main.c:896
msgid "pa_core_new() failed."
msgstr "pa_core_new() nie powiodło się."
#: ../src/daemon/main.c:921
#: ../src/daemon/main.c:957
msgid "Failed to initialize daemon."
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."
msgstr "Uruchamianie demona bez żadnych wczytanych modułów, odmawianie pracy."
#: ../src/daemon/main.c:931
#: ../src/daemon/main.c:967
#, c-format
msgid "Default sink name (%s) does not exist in name register."
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."
msgstr "Zakończono uruchamianie demona."
#: ../src/daemon/main.c:950
#: ../src/daemon/main.c:986
msgid "Daemon shutdown initiated."
msgstr "Zainicjowano wyłączenie demona."
#: ../src/daemon/main.c:971
#: ../src/daemon/main.c:1007
msgid "Daemon terminated."
msgstr "Demon został zniszczony."
#: ../src/daemon/cmdline.c:117
#, c-format
#: ../src/daemon/cmdline.c:123
#, fuzzy, c-format
msgid ""
"%s [options]\n"
"\n"
@ -422,7 +426,8 @@ msgid ""
" --start Start the daemon if it is not "
"running\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"
"OPTIONS:\n"
" --system[=BOOL] Run as system-wide instance\n"
@ -452,6 +457,10 @@ msgid ""
" --log-level[=LEVEL] Increase or set verbosity level\n"
" -v Increase the verbosity level\n"
" --log-target={auto,syslog,stderr} Specify the log target\n"
" --log-meta[=BOOL] Include code location in log "
"messages\n"
" --log-time[=BOOL] Include timestamps in log messages\n"
" --log-backtrace=FRAMES Include a backtrace in log messages\n"
" -p, --dl-search-path=PATH Set the search path for dynamic "
"shared\n"
" objects (plugins)\n"
@ -482,81 +491,83 @@ msgstr ""
" --dump-conf Zrzuca domyślną konfigurację\n"
" --dump-modules Zrzuca listę dostępnych modułów\n"
" --dump-resample-methods Zrzuca dostępne metody resamplingu\n"
" --cleanup-shm Czyści stare fragmenty pamięci "
"współdzielonej\n"
" --start Uruchamia demona, jeśli nie jest "
"uruchomiony\n"
" --cleanup-shm Czyści stare fragmenty pamięci\n"
" współdzielonej\n"
" --start Uruchamia demona, jeśli nie jest\n"
" uruchomiony\n"
" -k --kill Niszczy uruchomionego demona\n"
" --check Sprawdza, czy demon jest "
"uruchomiony\n"
" --check Sprawdza, czy demon jest\n"
" uruchomiony\n"
"\n"
"OPCJE:\n"
" --system[=ZMIENNALOGICZNA] Uruchamia w trybie systemowym\n"
" -D, --daemonize[=ZMIENNALOGICZNA] Tworzy demona po uruchomieniu\n"
" --fail[=ZMIENNALOGICZNA] Wyłącza, kiedy uruchomienie nie "
"powiedzie się\n"
" --fail[=ZMIENNALOGICZNA] Wyłącza, kiedy uruchomienie nie\n"
" powiedzie się\n"
" --high-priority[=ZMIENNALOGICZNA] Próbuje ustawić wysoki poziom nice\n"
" (dostępne tylko jako root, na SUID "
"lub\n"
" z podniesionym RLIMIT_NICE)\n"
" --realtime[=ZMIENNALOGICZNA] Próbuje ustawić szeregowanie w "
"czasie rzeczywistym\n"
" (dostępne tylko jako root, na SUID "
"lub\n"
" z podniesionym RLIMIT_RTPRIO)\n"
" --disallow-module-loading[=ZMIENNALOGICZNA] Nie zezwala użytkownikowi "
"modułu na\n"
" żądanie wczytania/usunięcia modułu "
"po uruchomieniu\n"
" --disallow-exit[=ZMIENNALOGICZNA] Nie zezwala użytkownikowi na żądanie "
"wyłączenia\n"
" --exit-idle-time=SEKUNDY Niszczy demona, kiedy jest zajęty i "
"upłynął\n"
" ten czas\n"
" --module-idle-time=SEKUNDY Usuwa automatycznie wczytane moduły, "
"kiedy jest\n"
" zajęty i upłynął ten czas\n"
" --scache-idle-time=SEKUNDY Usuwa automatycznie wczytane próbki, "
"kiedy jest\n"
" zajęty i upłynął ten czas\n"
" --log-level[=POZIOM] Zwiększa lub ustaw poziom "
"wyświetlanych informacji\n"
" -v Zwiększa poziom wyświetlanych "
"informacji\n"
" (dostępne tylko jako root, na SUID\n"
" lub z podniesionym RLIMIT_NICE)\n"
" --realtime[=ZMIENNALOGICZNA] Próbuje ustawić szeregowanie w\n"
" czasie rzeczywistym\n"
" (dostępne tylko jako root, na SUID\n"
" lub z podniesionym RLIMIT_RTPRIO)\n"
" --disallow-module-loading[=ZMIENNALOGICZNA] Nie zezwala\n"
" użytkownikowi modułu na żądanie\n"
" wczytania/usunięcia modułu po\n"
" uruchomieniu\n"
" --disallow-exit[=ZMIENNALOGICZNA] Nie zezwala użytkownikowi na\n"
" żądanie wyłączenia\n"
" --exit-idle-time=SEKUNDY Niszczy demona, kiedy jest zajęty i\n"
" upłynął podany czas\n"
" --module-idle-time=SEKUNDY Usuwa automatycznie wczytane\n"
" moduły, kiedy jest zajęty i upłynął\n"
" podany czas\n"
" --scache-idle-time=SEKUNDY Usuwa automatycznie wczytane\n"
" próbki, kiedy jest zajęty i upłynął\n"
" podany czas\n"
" --log-level[=POZIOM] Zwiększa lub ustawia poziom\n"
" wyświetlanych informacji\n"
" -v Zwiększa poziom wyświetlanych\n"
" informacji\n"
" --log-target={auto,syslog,stderr} Określa dziennik docelowy\n"
" -p, --dl-search-path=ŚCIEŻKA Ustawia ścieżkę wyszukiwania dla "
"dynamicznie\n"
" współdzielonych obiektów (wtyczek)\n"
" --log-meta[=ZMIENNALOGICZNA] Dołącza położenie kodu do\n"
" komunikatów dziennika\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"
" (zobacz --dump-resample-methods,\n"
" aby poznać możliwe wartości)\n"
" --use-pid-file[=ZMIENNALOGICZNA] Tworzy plik PID\n"
" --no-cpu-limit[=ZMIENNALOGICZNA] Nie instaluje ograniczenia zasobów\n"
" procesora na obsługujących je "
"platformach.\n"
" --disable-shm[=ZMIENNALOGICZNA] Wyłącza obsługę pamięci "
"współdzielonej.\n"
" procesora na obsługujących je\n"
" platformach.\n"
" --disable-shm[=ZMIENNALOGICZNA] Wyłącza obsługę pamięci\n"
" współdzielonej.\n"
"\n"
"SKRYPT STARTOWY:\n"
" -L, --load=\"PARAMETRY MODUŁU\" Wczytuje podany moduł wtyczki z\n"
" podanym parametrem\n"
" -F, --file=NAZWAPLIKU Wykonuje podany skrypt\n"
" -C Otwiera wiersz poleceń na "
"uruchomionym TTY\n"
" po uruchomieniu\n"
" -C Otwiera wiersz poleceń na\n"
" uruchomionym TTY po uruchomieniu\n"
"\n"
" -n Nie wczytuje domyślnego pliku "
"skryptu\n"
" -n Nie wczytuje domyślnego pliku\n"
" skryptu\n"
#: ../src/daemon/cmdline.c:245
#: ../src/daemon/cmdline.c:254
msgid "--daemonize expects boolean argument"
msgstr "--daemonize oczekuje parametru w postaci zmiennej logicznej"
#: ../src/daemon/cmdline.c:252
#: ../src/daemon/cmdline.c:261
msgid "--fail expects boolean argument"
msgstr "--fail oczekuje parametru w postaci zmiennej logicznej"
#: ../src/daemon/cmdline.c:262
#: ../src/daemon/cmdline.c:271
msgid ""
"--log-level expects log level argument (either numeric in range 0..4 or one "
"of debug, info, notice, warn, error)."
@ -564,46 +575,54 @@ msgstr ""
"--log-level oczekuje parametru poziomu dziennika (numeryczny w zakresie 0..4 "
"lub jeden z debug, info, notice, warn, error)."
#: ../src/daemon/cmdline.c:274
#: ../src/daemon/cmdline.c:283
msgid "--high-priority expects boolean argument"
msgstr "--high-priority oczekuje parametru zmiennej logicznej"
#: ../src/daemon/cmdline.c:281
#: ../src/daemon/cmdline.c:290
msgid "--realtime expects boolean argument"
msgstr "-realtime oczekuje parametru zmiennej logicznej"
#: ../src/daemon/cmdline.c:288
#: ../src/daemon/cmdline.c:297
msgid "--disallow-module-loading expects boolean argument"
msgstr "--disallow-module-loading oczekuje parametru zmiennej logicznej"
#: ../src/daemon/cmdline.c:295
#: ../src/daemon/cmdline.c:304
msgid "--disallow-exit boolean argument"
msgstr "--disallow-exit zmienna logiczna"
#: ../src/daemon/cmdline.c:302
#: ../src/daemon/cmdline.c:311
msgid "--use-pid-file expects boolean argument"
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'."
msgstr ""
"Nieprawidłowy dziennik docelowy: należy użyć \"syslog\", \"stderr\" lub "
"\"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
msgid "Invalid resample method '%s'."
msgstr "Nieprawidłowa metoda resamplingu \"%s\"."
#: ../src/daemon/cmdline.c:345
#: ../src/daemon/cmdline.c:372
msgid "--system expects boolean argument"
msgstr "--system oczekuje parametru zmiennej logicznej"
#: ../src/daemon/cmdline.c:352
#: ../src/daemon/cmdline.c:379
msgid "--no-cpu-limit expects boolean argument"
msgstr "--no-cpu-limit oczekuje parametru zmiennej logicznej"
#: ../src/daemon/cmdline.c:359
#: ../src/daemon/cmdline.c:386
msgid "--disable-shm expects boolean argument"
msgstr "--disable-shm oczekuje parametru zmiennej logicznej"
@ -647,73 +666,73 @@ msgstr "Wczytanie jednorazowe: %s\n"
msgid "Path: %s\n"
msgstr "Ścieżka: %s\n"
#: ../src/daemon/daemon-conf.c:205
#: ../src/daemon/daemon-conf.c:208
#, c-format
msgid "[%s:%u] Invalid log target '%s'."
msgstr "[%s:%u] Nieprawidłowy dziennik docelowy \"%s\"."
#: ../src/daemon/daemon-conf.c:221
#: ../src/daemon/daemon-conf.c:224
#, c-format
msgid "[%s:%u] Invalid log level '%s'."
msgstr "[%s:%u] Nieprawidłowy poziom dziennika \"%s\"."
#: ../src/daemon/daemon-conf.c:237
#: ../src/daemon/daemon-conf.c:240
#, c-format
msgid "[%s:%u] Invalid resample method '%s'."
msgstr "[%s:%u] Nieprawidłowa metoda resamplingu \"%s\"."
#: ../src/daemon/daemon-conf.c:260
#: ../src/daemon/daemon-conf.c:263
#, c-format
msgid "[%s:%u] Invalid rlimit '%s'."
msgstr "[%s:%u] Nieprawidłowy rlimit \"%s\"."
#: ../src/daemon/daemon-conf.c:267
#: ../src/daemon/daemon-conf.c:270
#, c-format
msgid "[%s:%u] rlimit not supported on this platform."
msgstr "[%s:%u] rlimit nie jest obsługiwany na tej platformie."
#: ../src/daemon/daemon-conf.c:283
#: ../src/daemon/daemon-conf.c:286
#, c-format
msgid "[%s:%u] Invalid sample format '%s'."
msgstr "[%s:%u] Nieprawidłowy format próbki \"%s\"."
#: ../src/daemon/daemon-conf.c:301
#: ../src/daemon/daemon-conf.c:304
#, c-format
msgid "[%s:%u] Invalid sample rate '%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
msgid "[%s:%u] Invalid sample channels '%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
msgid "[%s:%u] Invalid number of fragments '%s'."
msgstr "[%s:%u] Nieprawidłowa liczba fragmentów \"%s\"."
#: ../src/daemon/daemon-conf.c:355
#: ../src/daemon/daemon-conf.c:358
#, c-format
msgid "[%s:%u] Invalid fragment size '%s'."
msgstr "[%s:%u] Nieprawidłowy rozmiar fragmentu \"%s\"."
#: ../src/daemon/daemon-conf.c:373
#: ../src/daemon/daemon-conf.c:376
#, c-format
msgid "[%s:%u] Invalid nice level '%s'."
msgstr "[%s:%u] Nieprawidłowy poziom nice \"%s\"."
#: ../src/daemon/daemon-conf.c:570
#: ../src/daemon/daemon-conf.c:554
#, c-format
msgid "Failed to open configuration file: %s"
msgstr "Otwarcie pliku konfiguracji nie powiodło się: %s"
#: ../src/daemon/daemon-conf.c:644
#: ../src/daemon/daemon-conf.c:628
#, c-format
msgid "### Read from configuration file: %s ###\n"
msgstr "### Odczytano z pliku konfiguracji: %s ###\n"
#: ../src/daemon/caps.c:63
msgid "Dropping root priviliges."
msgid "Dropping root privileges."
msgstr "Porzucanie uprawnień roota."
#: ../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/volume.c:163 ../src/pulse/volume.c:194
#, fuzzy
msgid "(invalid)"
msgstr "Nieprawidłowe"
msgstr "(nieprawidłowe)"
#: ../src/pulse/error.c:43
msgid "OK"
@ -1050,177 +1068,177 @@ msgstr "waitpid(): %s"
msgid "Received message for unknown extension '%s'"
msgstr "Otrzymano komunikat z nieznanego powodu \"%s\""
#: ../src/utils/pacat.c:93
#: ../src/utils/pacat.c:94
#, c-format
msgid "pa_stream_write() failed: %s\n"
msgstr "pa_stream_write() nie powiodło się: %s\n"
#: ../src/utils/pacat.c:132
#: ../src/utils/pacat.c:133
#, c-format
msgid "pa_stream_peek() failed: %s\n"
msgstr "pa_stream_peek() nie powiodło się: %s\n"
#: ../src/utils/pacat.c:141
#: ../src/utils/pacat.c:142
#, c-format
msgid "Buffer overrun, dropping incoming data\n"
msgstr "Przepełniono bufor, porzucanie danych przychodzących\n"
#: ../src/utils/pacat.c:143
#: ../src/utils/pacat.c:144
#, c-format
msgid "pa_stream_drop() failed: %s\n"
msgstr "pa_stream_drop() nie powiodło się: %s\n"
#: ../src/utils/pacat.c:169
#: ../src/utils/pacat.c:170
#, c-format
msgid "Stream successfully created.\n"
msgstr "Pomyślnie utworzono strumień.\n"
#: ../src/utils/pacat.c:172
#: ../src/utils/pacat.c:173
#, c-format
msgid "pa_stream_get_buffer_attr() failed: %s\n"
msgstr "pa_stream_get_buffer_attr() nie powiodło się: %s\n"
#: ../src/utils/pacat.c:176
#: ../src/utils/pacat.c:177
#, c-format
msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n"
msgstr "Metryka bufora: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n"
#: ../src/utils/pacat.c:179
#: ../src/utils/pacat.c:180
#, c-format
msgid "Buffer metrics: maxlength=%u, fragsize=%u\n"
msgstr "Metryka bufora: maxlength=%u, fragsize=%u\n"
#: ../src/utils/pacat.c:183
#: ../src/utils/pacat.c:184
#, c-format
msgid "Using sample spec '%s', channel map '%s'.\n"
msgstr "Używanie przykładowej specyfikacji \"%s\", mapa kanałów \"%s\".\n"
#: ../src/utils/pacat.c:187
#: ../src/utils/pacat.c:188
#, c-format
msgid "Connected to device %s (%u, %ssuspended).\n"
msgstr "Połączono się z urządzeniem %s (%u, %swstrzymane).\n"
#: ../src/utils/pacat.c:197
#: ../src/utils/pacat.c:198
#, c-format
msgid "Stream error: %s\n"
msgstr "Błąd strumienia: %s\n"
#: ../src/utils/pacat.c:207
#: ../src/utils/pacat.c:208
#, c-format
msgid "Stream device suspended.%s \n"
msgstr "Wstrzymano urządzenie strumienia.%s \n"
#: ../src/utils/pacat.c:209
#: ../src/utils/pacat.c:210
#, c-format
msgid "Stream device resumed.%s \n"
msgstr "Wznowiono urządzenie strumienia.%s \n"
#: ../src/utils/pacat.c:217
#: ../src/utils/pacat.c:218
#, c-format
msgid "Stream underrun.%s \n"
msgstr "Niedopełniono strumień.%s \n"
#: ../src/utils/pacat.c:224
#: ../src/utils/pacat.c:225
#, c-format
msgid "Stream overrun.%s \n"
msgstr "Przepełniono strumień.%s \n"
#: ../src/utils/pacat.c:231
#: ../src/utils/pacat.c:232
#, c-format
msgid "Stream started.%s \n"
msgstr "Utworzono strumień.%s \n"
#: ../src/utils/pacat.c:238
#: ../src/utils/pacat.c:239
#, c-format
msgid "Stream moved to device %s (%u, %ssuspended).%s \n"
msgstr "Strumień został przeniesiony do urządzenia %s (%u, %swstrzymane).%s \n"
#: ../src/utils/pacat.c:238
#: ../src/utils/pacat.c:239
msgid "not "
msgstr "nie "
#: ../src/utils/pacat.c:259
#: ../src/utils/pacat.c:260
#, c-format
msgid "Connection established.%s \n"
msgstr "Ustanowiono połączenie.%s \n"
#: ../src/utils/pacat.c:262
#: ../src/utils/pacat.c:263
#, c-format
msgid "pa_stream_new() failed: %s\n"
msgstr "pa_stream_new() nie powiodło się: %s\n"
#: ../src/utils/pacat.c:287
#: ../src/utils/pacat.c:288
#, c-format
msgid "pa_stream_connect_playback() failed: %s\n"
msgstr "pa_stream_connect_playback() nie powiodło się: %s\n"
#: ../src/utils/pacat.c:293
#: ../src/utils/pacat.c:294
#, c-format
msgid "pa_stream_connect_record() failed: %s\n"
msgstr "pa_stream_connect_record() nie powiodło się: %s\n"
#: ../src/utils/pacat.c: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
#, c-format
msgid "Connection failure: %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
msgid "Failed to drain stream: %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
msgid "Playback stream drained.\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
msgid "Draining connection to server.\n"
msgstr "Opróżnianie połączenia z serwerem.\n"
#: ../src/utils/pacat.c:369
#: ../src/utils/pacat.c:370
#, c-format
msgid "Got EOF.\n"
msgstr "Otrzymano EOF.\n"
#: ../src/utils/pacat.c:375
#: ../src/utils/pacat.c:376
#, c-format
msgid "pa_stream_drain(): %s\n"
msgstr "pa_stream_drain(): %s\n"
#: ../src/utils/pacat.c:385
#: ../src/utils/pacat.c:386
#, c-format
msgid "read() failed: %s\n"
msgstr "read() nie powiodło się: %s\n"
#: ../src/utils/pacat.c:417
#: ../src/utils/pacat.c:418
#, c-format
msgid "write() failed: %s\n"
msgstr "write() nie powiodło się: %s\n"
#: ../src/utils/pacat.c:438
#: ../src/utils/pacat.c:439
#, c-format
msgid "Got signal, exiting.\n"
msgstr "Otrzymano sygnał, wyłączanie.\n"
#: ../src/utils/pacat.c:452
#: ../src/utils/pacat.c:453
#, c-format
msgid "Failed to get latency: %s\n"
msgstr "Uzyskanie opóźnienia nie powiodło się: %s\n"
#: ../src/utils/pacat.c:457
#: ../src/utils/pacat.c:458
#, c-format
msgid "Time: %0.3f sec; Latency: %0.0f usec. \r"
msgstr "Czas: %0.3f sekundy; opóźnienie: %0.0f usekundy. \r"
#: ../src/utils/pacat.c:477
#: ../src/utils/pacat.c:478
#, c-format
msgid "pa_stream_update_timing_info() failed: %s\n"
msgstr "pa_stream_update_timing_info() nie powiodło się: %s\n"
#: ../src/utils/pacat.c:490
#: ../src/utils/pacat.c:491
#, c-format
msgid ""
"%s [options]\n"
@ -1320,7 +1338,7 @@ msgstr ""
" --process-time=BAJTY Żąda określonego czasu procesu na "
"żądanie w bajtach.\n"
#: ../src/utils/pacat.c:591
#: ../src/utils/pacat.c:592
#, c-format
msgid ""
"pacat %s\n"
@ -1331,87 +1349,87 @@ msgstr ""
"Skompilowane za pomocą libpulse %s\n"
"Skonsolidowane za pomocą libpulse %s\n"
#: ../src/utils/pacat.c:647
#: ../src/utils/pacat.c:649
#, c-format
msgid "Invalid channel map '%s'\n"
msgstr "Nieprawidłowa mapa kanałów \"%s\"\n"
#: ../src/utils/pacat.c:676
#: ../src/utils/pacat.c:678
#, c-format
msgid "Invalid latency specification '%s'\n"
msgstr "Nieprawidłowe określenie opóźnienia \"%s\"\n"
#: ../src/utils/pacat.c:683
#: ../src/utils/pacat.c:685
#, c-format
msgid "Invalid process time specification '%s'\n"
msgstr "Nieprawidłowe określenie czasu procesu \"%s\"\n"
#: ../src/utils/pacat.c:694
#: ../src/utils/pacat.c:696
#, c-format
msgid "Invalid sample specification\n"
msgstr "Nieprawidłowe określenie próbki\n"
#: ../src/utils/pacat.c:699
#: ../src/utils/pacat.c:701
#, c-format
msgid "Channel map doesn't match sample specification\n"
msgstr "Mapa kanałów nie zgadza się z określeniem próbki\n"
#: ../src/utils/pacat.c:706
#: ../src/utils/pacat.c:708
#, c-format
msgid "Opening a %s stream with sample specification '%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"
msgstr "nagrywanie"
#: ../src/utils/pacat.c:706
#: ../src/utils/pacat.c:708
msgid "playback"
msgstr "odtwarzanie"
#: ../src/utils/pacat.c:714
#: ../src/utils/pacat.c:716
#, c-format
msgid "open(): %s\n"
msgstr "open(): %s\n"
#: ../src/utils/pacat.c:719
#: ../src/utils/pacat.c:721
#, c-format
msgid "dup2(): %s\n"
msgstr "dup2(): %s\n"
#: ../src/utils/pacat.c:729
#: ../src/utils/pacat.c:731
#, c-format
msgid "Too many arguments.\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
#, c-format
msgid "pa_mainloop_new() failed.\n"
msgstr "pa_mainloop_new() nie powiodło się.\n"
#: ../src/utils/pacat.c:763
#: ../src/utils/pacat.c:765
#, c-format
msgid "io_new() failed.\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
#, c-format
msgid "pa_context_new() failed.\n"
msgstr "pa_context_new() nie powiodło się.\n"
#: ../src/utils/pacat.c:777
#: ../src/utils/pacat.c:779
#, c-format
msgid "pa_context_connect() failed: %s"
msgstr "pa_context_connect() nie powiodło się: %s"
#: ../src/utils/pacat.c:788
#: ../src/utils/pacat.c:790
#, c-format
msgid "time_new() failed.\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
#, c-format
msgid "pa_mainloop_run() failed.\n"

View file

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

308
po/sv.po
View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pulseaudio\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"
"Last-Translator: Daniel Nylander <po@danielnylander.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-Transfer-Encoding: 8bit\n"
#: ../src/daemon/ltdl-bind-now.c:177 ../src/daemon/ltdl-bind-now.c:197
msgid "Failed to add bind-now-loader."
#: ../src/daemon/ltdl-bind-now.c:124
msgid "Failed to find original lt_dlopen loader."
msgstr ""
#: ../src/daemon/ltdl-bind-now.c:184
msgid "Failed to find original dlopen loader."
#: ../src/daemon/ltdl-bind-now.c:129
#, 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 ""
#: ../src/daemon/polkit.c:55
@ -148,77 +153,77 @@ msgstr "setrlimit(%s, (%u, %u)) misslyckades: %s"
msgid "Failed to parse command line."
msgstr ""
#: ../src/daemon/main.c:441
#: ../src/daemon/main.c:447
#, c-format
msgid "We're in the group '%s', allowing high-priority scheduling."
msgstr ""
#: ../src/daemon/main.c:448
#: ../src/daemon/main.c:454
#, c-format
msgid "We're in the group '%s', allowing real-time scheduling."
msgstr ""
#: ../src/daemon/main.c:456
#: ../src/daemon/main.c:462
msgid "PolicyKit grants us acquire-high-priority privilege."
msgstr ""
#: ../src/daemon/main.c:459
#: ../src/daemon/main.c:465
msgid "PolicyKit refuses acquire-high-priority privilege."
msgstr ""
#: ../src/daemon/main.c:464
#: ../src/daemon/main.c:470
msgid "PolicyKit grants us acquire-real-time privilege."
msgstr ""
#: ../src/daemon/main.c:467
#: ../src/daemon/main.c:473
msgid "PolicyKit refuses acquire-real-time privilege."
msgstr ""
#: ../src/daemon/main.c:479
#: ../src/daemon/main.c:502
msgid ""
"Called SUID root and real-time/high-priority scheduling was requested in the "
"configuration. However, we lack the necessary priviliges:\n"
"Called SUID root and real-time and/or high-priority scheduling was requested "
"in the configuration. However, we lack the necessary privileges:\n"
"We are not in group '"
msgstr ""
#: ../src/daemon/main.c:497
#: ../src/daemon/main.c:526
msgid ""
"High-priority scheduling enabled in configuration but not allowed by policy."
msgstr ""
#: ../src/daemon/main.c:522
#: ../src/daemon/main.c:555
msgid "Successfully increased RLIMIT_RTPRIO"
msgstr ""
#: ../src/daemon/main.c:525
#: ../src/daemon/main.c:558
#, c-format
msgid "RLIMIT_RTPRIO failed: %s"
msgstr "RLIMIT_RTPRIO misslyckades: %s"
#: ../src/daemon/main.c:532
#: ../src/daemon/main.c:565
msgid "Giving up CAP_NICE"
msgstr ""
#: ../src/daemon/main.c:539
#: ../src/daemon/main.c:572
msgid ""
"Real-time scheduling enabled in configuration but not allowed by policy."
msgstr ""
#: ../src/daemon/main.c:597
#: ../src/daemon/main.c:633
msgid "Daemon not running"
msgstr ""
#: ../src/daemon/main.c:599
#: ../src/daemon/main.c:635
#, c-format
msgid "Daemon running as PID %u"
msgstr ""
#: ../src/daemon/main.c:609
#: ../src/daemon/main.c:645
#, c-format
msgid "Failed to kill daemon: %s"
msgstr ""
#: ../src/daemon/main.c:627
#: ../src/daemon/main.c:663
msgid ""
"This program is not intended to be run as root (unless --system is "
"specified)."
@ -226,171 +231,172 @@ msgstr ""
"Detta program är inte tänkt att köras som root (såvida inte --system har "
"angivits)."
#: ../src/daemon/main.c:629
msgid "Root priviliges required."
#: ../src/daemon/main.c:665
#, fuzzy
msgid "Root privileges required."
msgstr "Root-behörighet krävs."
#: ../src/daemon/main.c:634
#: ../src/daemon/main.c:670
msgid "--start not supported for system instances."
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!"
msgstr ""
#: ../src/daemon/main.c:642
#: ../src/daemon/main.c:678
msgid "Running in system mode, but --disallow-module-loading not set!"
msgstr ""
#: ../src/daemon/main.c:645
#: ../src/daemon/main.c:681
msgid "Running in system mode, forcibly disabling SHM mode!"
msgstr ""
#: ../src/daemon/main.c:650
#: ../src/daemon/main.c:686
msgid "Running in system mode, forcibly disabling exit idle time!"
msgstr ""
#: ../src/daemon/main.c:677
#: ../src/daemon/main.c:713
msgid "Failed to acquire stdio."
msgstr ""
#: ../src/daemon/main.c:683
#: ../src/daemon/main.c:719
#, c-format
msgid "pipe failed: %s"
msgstr "pipe misslyckades: %s"
#: ../src/daemon/main.c:688
#: ../src/daemon/main.c:724
#, c-format
msgid "fork() failed: %s"
msgstr "fork() misslyckades: %s"
#: ../src/daemon/main.c:702
#: ../src/daemon/main.c:738
#, c-format
msgid "read() failed: %s"
msgstr "read() misslyckades: %s"
#: ../src/daemon/main.c:708
#: ../src/daemon/main.c:744
msgid "Daemon startup failed."
msgstr ""
#: ../src/daemon/main.c:710
#: ../src/daemon/main.c:746
msgid "Daemon startup successful."
msgstr ""
#: ../src/daemon/main.c:780
#: ../src/daemon/main.c:816
#, c-format
msgid "This is PulseAudio %s"
msgstr "Detta är PulseAudio %s"
#: ../src/daemon/main.c:781
#: ../src/daemon/main.c:817
#, c-format
msgid "Compilation host: %s"
msgstr ""
#: ../src/daemon/main.c:782
#: ../src/daemon/main.c:818
#, c-format
msgid "Compilation CFLAGS: %s"
msgstr ""
#: ../src/daemon/main.c:785
#: ../src/daemon/main.c:821
#, c-format
msgid "Running on host: %s"
msgstr ""
#: ../src/daemon/main.c:788
#: ../src/daemon/main.c:824
#, c-format
msgid "Page size is %lu bytes"
msgstr ""
#: ../src/daemon/main.c:791
#: ../src/daemon/main.c:827
msgid "Compiled with Valgrind support: yes"
msgstr ""
#: ../src/daemon/main.c:793
#: ../src/daemon/main.c:829
msgid "Compiled with Valgrind support: no"
msgstr ""
#: ../src/daemon/main.c:796
#: ../src/daemon/main.c:832
#, c-format
msgid "Running in valgrind mode: %s"
msgstr ""
#: ../src/daemon/main.c:799
#: ../src/daemon/main.c:835
msgid "Optimized build: yes"
msgstr ""
#: ../src/daemon/main.c:801
#: ../src/daemon/main.c:837
msgid "Optimized build: no"
msgstr ""
#: ../src/daemon/main.c:805
#: ../src/daemon/main.c:841
msgid "Failed to get machine ID"
msgstr ""
#: ../src/daemon/main.c:808
#: ../src/daemon/main.c:844
#, c-format
msgid "Machine ID is %s."
msgstr ""
#: ../src/daemon/main.c:813
#: ../src/daemon/main.c:849
#, c-format
msgid "Using runtime directory %s."
msgstr ""
#: ../src/daemon/main.c:818
#: ../src/daemon/main.c:854
#, c-format
msgid "Using state directory %s."
msgstr ""
#: ../src/daemon/main.c:821
#: ../src/daemon/main.c:857
#, c-format
msgid "Running in system mode: %s"
msgstr ""
#: ../src/daemon/main.c:836
#: ../src/daemon/main.c:872
msgid "pa_pid_file_create() failed."
msgstr "pa_pid_file_create() misslyckades."
#: ../src/daemon/main.c:848
#: ../src/daemon/main.c:884
msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr ""
#: ../src/daemon/main.c:850
#: ../src/daemon/main.c:886
msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!"
msgstr ""
#: ../src/daemon/main.c:860
#: ../src/daemon/main.c:896
msgid "pa_core_new() failed."
msgstr "pa_core_new() misslyckades."
#: ../src/daemon/main.c:921
#: ../src/daemon/main.c:957
msgid "Failed to initialize daemon."
msgstr ""
#: ../src/daemon/main.c:926
#: ../src/daemon/main.c:962
msgid "Daemon startup without any loaded modules, refusing to work."
msgstr ""
#: ../src/daemon/main.c:931
#: ../src/daemon/main.c:967
#, c-format
msgid "Default sink name (%s) does not exist in name register."
msgstr ""
#: ../src/daemon/main.c:944
#: ../src/daemon/main.c:980
msgid "Daemon startup complete."
msgstr ""
#: ../src/daemon/main.c:950
#: ../src/daemon/main.c:986
msgid "Daemon shutdown initiated."
msgstr ""
#: ../src/daemon/main.c:971
#: ../src/daemon/main.c:1007
msgid "Daemon terminated."
msgstr ""
#: ../src/daemon/cmdline.c:117
#: ../src/daemon/cmdline.c:123
#, c-format
msgid ""
"%s [options]\n"
@ -406,7 +412,8 @@ msgid ""
" --start Start the daemon if it is not "
"running\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"
"OPTIONS:\n"
" --system[=BOOL] Run as system-wide instance\n"
@ -436,6 +443,10 @@ msgid ""
" --log-level[=LEVEL] Increase or set verbosity level\n"
" -v Increase the verbosity level\n"
" --log-target={auto,syslog,stderr} Specify the log target\n"
" --log-meta[=BOOL] Include code location in log "
"messages\n"
" --log-time[=BOOL] Include timestamps in log messages\n"
" --log-backtrace=FRAMES Include a backtrace in log messages\n"
" -p, --dl-search-path=PATH Set the search path for dynamic "
"shared\n"
" objects (plugins)\n"
@ -459,58 +470,68 @@ msgid ""
" -n Don't load default script file\n"
msgstr ""
#: ../src/daemon/cmdline.c:245
#: ../src/daemon/cmdline.c:254
msgid "--daemonize expects boolean 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"
msgstr "--fail förväntar sig ett booleskt argument"
#: ../src/daemon/cmdline.c:262
#: ../src/daemon/cmdline.c:271
msgid ""
"--log-level expects log level argument (either numeric in range 0..4 or one "
"of debug, info, notice, warn, error)."
msgstr ""
#: ../src/daemon/cmdline.c:274
#: ../src/daemon/cmdline.c:283
msgid "--high-priority expects boolean 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"
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"
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"
msgstr "--disallow-exit booleskt argument"
#: ../src/daemon/cmdline.c:302
#: ../src/daemon/cmdline.c:311
msgid "--use-pid-file expects boolean 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'."
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
msgid "Invalid resample method '%s'."
msgstr ""
#: ../src/daemon/cmdline.c:345
#: ../src/daemon/cmdline.c:372
msgid "--system expects boolean 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"
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"
msgstr "--disable-shm förväntar sig ett booleskt argument"
@ -554,73 +575,74 @@ msgstr ""
msgid "Path: %s\n"
msgstr "Sökväg: %s\n"
#: ../src/daemon/daemon-conf.c:205
#: ../src/daemon/daemon-conf.c:208
#, c-format
msgid "[%s:%u] Invalid log target '%s'."
msgstr ""
#: ../src/daemon/daemon-conf.c:221
#: ../src/daemon/daemon-conf.c:224
#, c-format
msgid "[%s:%u] Invalid log level '%s'."
msgstr ""
#: ../src/daemon/daemon-conf.c:237
#: ../src/daemon/daemon-conf.c:240
#, c-format
msgid "[%s:%u] Invalid resample method '%s'."
msgstr ""
#: ../src/daemon/daemon-conf.c:260
#: ../src/daemon/daemon-conf.c:263
#, c-format
msgid "[%s:%u] Invalid rlimit '%s'."
msgstr ""
#: ../src/daemon/daemon-conf.c:267
#: ../src/daemon/daemon-conf.c:270
#, c-format
msgid "[%s:%u] rlimit not supported on this platform."
msgstr ""
#: ../src/daemon/daemon-conf.c:283
#: ../src/daemon/daemon-conf.c:286
#, c-format
msgid "[%s:%u] Invalid sample format '%s'."
msgstr ""
#: ../src/daemon/daemon-conf.c:301
#: ../src/daemon/daemon-conf.c:304
#, c-format
msgid "[%s:%u] Invalid sample rate '%s'."
msgstr ""
#: ../src/daemon/daemon-conf.c:319
#: ../src/daemon/daemon-conf.c:322
#, c-format
msgid "[%s:%u] Invalid sample channels '%s'."
msgstr ""
#: ../src/daemon/daemon-conf.c:337
#: ../src/daemon/daemon-conf.c:340
#, c-format
msgid "[%s:%u] Invalid number of fragments '%s'."
msgstr ""
#: ../src/daemon/daemon-conf.c:355
#: ../src/daemon/daemon-conf.c:358
#, c-format
msgid "[%s:%u] Invalid fragment size '%s'."
msgstr ""
#: ../src/daemon/daemon-conf.c:373
#: ../src/daemon/daemon-conf.c:376
#, c-format
msgid "[%s:%u] Invalid nice level '%s'."
msgstr ""
#: ../src/daemon/daemon-conf.c:570
#: ../src/daemon/daemon-conf.c:554
#, c-format
msgid "Failed to open configuration file: %s"
msgstr "Misslyckades med att öppna konfigurationsfil: %s"
#: ../src/daemon/daemon-conf.c:644
#: ../src/daemon/daemon-conf.c:628
#, c-format
msgid "### Read from configuration file: %s ###\n"
msgstr ""
#: ../src/daemon/caps.c:63
msgid "Dropping root priviliges."
#, fuzzy
msgid "Dropping root privileges."
msgstr "Släpper root-behörighet."
#: ../src/daemon/caps.c:103
@ -957,177 +979,177 @@ msgstr "waitpid(): %s"
msgid "Received message for unknown extension '%s'"
msgstr ""
#: ../src/utils/pacat.c:93
#: ../src/utils/pacat.c:94
#, c-format
msgid "pa_stream_write() failed: %s\n"
msgstr "pa_stream_write() misslyckades: %s\n"
#: ../src/utils/pacat.c:132
#: ../src/utils/pacat.c:133
#, c-format
msgid "pa_stream_peek() failed: %s\n"
msgstr "pa_stream_peek() misslyckades: %s\n"
#: ../src/utils/pacat.c:141
#: ../src/utils/pacat.c:142
#, c-format
msgid "Buffer overrun, dropping incoming data\n"
msgstr ""
#: ../src/utils/pacat.c:143
#: ../src/utils/pacat.c:144
#, c-format
msgid "pa_stream_drop() failed: %s\n"
msgstr "pa_stream_drop() misslyckades: %s\n"
#: ../src/utils/pacat.c:169
#: ../src/utils/pacat.c:170
#, c-format
msgid "Stream successfully created.\n"
msgstr ""
#: ../src/utils/pacat.c:172
#: ../src/utils/pacat.c:173
#, c-format
msgid "pa_stream_get_buffer_attr() failed: %s\n"
msgstr "pa_stream_get_buffer_attr() misslyckades: %s\n"
#: ../src/utils/pacat.c:176
#: ../src/utils/pacat.c:177
#, c-format
msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n"
msgstr ""
#: ../src/utils/pacat.c:179
#: ../src/utils/pacat.c:180
#, c-format
msgid "Buffer metrics: maxlength=%u, fragsize=%u\n"
msgstr ""
#: ../src/utils/pacat.c:183
#: ../src/utils/pacat.c:184
#, c-format
msgid "Using sample spec '%s', channel map '%s'.\n"
msgstr ""
#: ../src/utils/pacat.c:187
#: ../src/utils/pacat.c:188
#, c-format
msgid "Connected to device %s (%u, %ssuspended).\n"
msgstr ""
#: ../src/utils/pacat.c:197
#: ../src/utils/pacat.c:198
#, c-format
msgid "Stream error: %s\n"
msgstr "Strömfel: %s\n"
#: ../src/utils/pacat.c:207
#: ../src/utils/pacat.c:208
#, c-format
msgid "Stream device suspended.%s \n"
msgstr ""
#: ../src/utils/pacat.c:209
#: ../src/utils/pacat.c:210
#, c-format
msgid "Stream device resumed.%s \n"
msgstr ""
#: ../src/utils/pacat.c:217
#: ../src/utils/pacat.c:218
#, c-format
msgid "Stream underrun.%s \n"
msgstr ""
#: ../src/utils/pacat.c:224
#: ../src/utils/pacat.c:225
#, c-format
msgid "Stream overrun.%s \n"
msgstr ""
#: ../src/utils/pacat.c:231
#: ../src/utils/pacat.c:232
#, c-format
msgid "Stream started.%s \n"
msgstr ""
#: ../src/utils/pacat.c:238
#: ../src/utils/pacat.c:239
#, c-format
msgid "Stream moved to device %s (%u, %ssuspended).%s \n"
msgstr ""
#: ../src/utils/pacat.c:238
#: ../src/utils/pacat.c:239
msgid "not "
msgstr "inte "
#: ../src/utils/pacat.c:259
#: ../src/utils/pacat.c:260
#, c-format
msgid "Connection established.%s \n"
msgstr ""
#: ../src/utils/pacat.c:262
#: ../src/utils/pacat.c:263
#, c-format
msgid "pa_stream_new() failed: %s\n"
msgstr "pa_stream_new() misslyckades: %s\n"
#: ../src/utils/pacat.c:287
#: ../src/utils/pacat.c:288
#, c-format
msgid "pa_stream_connect_playback() failed: %s\n"
msgstr "pa_stream_connect_playback() misslyckades: %s\n"
#: ../src/utils/pacat.c:293
#: ../src/utils/pacat.c:294
#, c-format
msgid "pa_stream_connect_record() failed: %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
#, c-format
msgid "Connection failure: %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
msgid "Failed to drain stream: %s\n"
msgstr ""
#: ../src/utils/pacat.c:333 ../src/utils/paplay.c:80
#: ../src/utils/pacat.c:334 ../src/utils/paplay.c:80
#, c-format
msgid "Playback stream drained.\n"
msgstr ""
#: ../src/utils/pacat.c:343 ../src/utils/paplay.c:92
#: ../src/utils/pacat.c:344 ../src/utils/paplay.c:92
#, c-format
msgid "Draining connection to server.\n"
msgstr ""
#: ../src/utils/pacat.c:369
#: ../src/utils/pacat.c:370
#, c-format
msgid "Got EOF.\n"
msgstr "Fick filslut.\n"
#: ../src/utils/pacat.c:375
#: ../src/utils/pacat.c:376
#, c-format
msgid "pa_stream_drain(): %s\n"
msgstr "pa_stream_drain(): %s\n"
#: ../src/utils/pacat.c:385
#: ../src/utils/pacat.c:386
#, c-format
msgid "read() failed: %s\n"
msgstr "read() misslyckades: %s\n"
#: ../src/utils/pacat.c:417
#: ../src/utils/pacat.c:418
#, c-format
msgid "write() failed: %s\n"
msgstr "write() misslyckades: %s\n"
#: ../src/utils/pacat.c:438
#: ../src/utils/pacat.c:439
#, c-format
msgid "Got signal, exiting.\n"
msgstr ""
#: ../src/utils/pacat.c:452
#: ../src/utils/pacat.c:453
#, c-format
msgid "Failed to get latency: %s\n"
msgstr ""
#: ../src/utils/pacat.c:457
#: ../src/utils/pacat.c:458
#, c-format
msgid "Time: %0.3f sec; Latency: %0.0f usec. \r"
msgstr "Tid: %0.3f sec; Latens: %0.0f ms \r"
#: ../src/utils/pacat.c:477
#: ../src/utils/pacat.c:478
#, c-format
msgid "pa_stream_update_timing_info() failed: %s\n"
msgstr "pa_stream_update_timing_info() misslyckades: %s\n"
#: ../src/utils/pacat.c:490
#: ../src/utils/pacat.c:491
#, c-format
msgid ""
"%s [options]\n"
@ -1180,7 +1202,7 @@ msgid ""
"per request in bytes.\n"
msgstr ""
#: ../src/utils/pacat.c:591
#: ../src/utils/pacat.c:592
#, c-format
msgid ""
"pacat %s\n"
@ -1188,87 +1210,87 @@ msgid ""
"Linked with libpulse %s\n"
msgstr ""
#: ../src/utils/pacat.c:647
#: ../src/utils/pacat.c:649
#, c-format
msgid "Invalid channel map '%s'\n"
msgstr ""
#: ../src/utils/pacat.c:676
#: ../src/utils/pacat.c:678
#, c-format
msgid "Invalid latency specification '%s'\n"
msgstr ""
#: ../src/utils/pacat.c:683
#: ../src/utils/pacat.c:685
#, c-format
msgid "Invalid process time specification '%s'\n"
msgstr ""
#: ../src/utils/pacat.c:694
#: ../src/utils/pacat.c:696
#, c-format
msgid "Invalid sample specification\n"
msgstr ""
#: ../src/utils/pacat.c:699
#: ../src/utils/pacat.c:701
#, c-format
msgid "Channel map doesn't match sample specification\n"
msgstr ""
#: ../src/utils/pacat.c:706
#: ../src/utils/pacat.c:708
#, c-format
msgid "Opening a %s stream with sample specification '%s'.\n"
msgstr ""
#: ../src/utils/pacat.c:706
#: ../src/utils/pacat.c:708
msgid "recording"
msgstr ""
#: ../src/utils/pacat.c:706
#: ../src/utils/pacat.c:708
msgid "playback"
msgstr ""
#: ../src/utils/pacat.c:714
#: ../src/utils/pacat.c:716
#, c-format
msgid "open(): %s\n"
msgstr "open(): %s\n"
#: ../src/utils/pacat.c:719
#: ../src/utils/pacat.c:721
#, c-format
msgid "dup2(): %s\n"
msgstr "dup2(): %s\n"
#: ../src/utils/pacat.c:729
#: ../src/utils/pacat.c:731
#, c-format
msgid "Too many arguments.\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
#, c-format
msgid "pa_mainloop_new() failed.\n"
msgstr "pa_mainloop_new() misslyckades.\n"
#: ../src/utils/pacat.c:763
#: ../src/utils/pacat.c:765
#, c-format
msgid "io_new() failed.\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
#, c-format
msgid "pa_context_new() failed.\n"
msgstr "pa_context_new() misslyckades.\n"
#: ../src/utils/pacat.c:777
#: ../src/utils/pacat.c:779
#, fuzzy, c-format
msgid "pa_context_connect() failed: %s"
msgstr "pa_context_new() misslyckades.\n"
#: ../src/utils/pacat.c:788
#: ../src/utils/pacat.c:790
#, c-format
msgid "time_new() failed.\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
#, c-format
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 = \
-I$(top_srcdir)/src \
-I$(top_builddir)/src/modules \
-I$(top_builddir)/src/modules/rtp \
-I$(top_builddir)/src/modules/gconf \
-I$(top_builddir)/src/modules/bluetooth \
-I$(top_builddir)/src/modules/raop \
-I$(top_srcdir)/src/modules \
-I$(top_srcdir)/src/modules/rtp \
-I$(top_srcdir)/src/modules/gconf \
-I$(top_srcdir)/src/modules/bluetooth \
-I$(top_srcdir)/src/modules/raop \
$(PTHREAD_CFLAGS) -D_POSIX_PTHREAD_SEMANTICS \
$(LTDLINCL) \
$(LIBSAMPLERATE_CFLAGS) \
@ -80,6 +80,8 @@ AM_LDFLAGS+=-Wl,--export-all-symbols
WINSOCK_LIBS=-lwsock32 -lws2_32 -lwininet
endif
MODULE_LDFLAGS = -module -disable-static -avoid-version
###################################
# Extra files #
###################################
@ -204,8 +206,8 @@ pacmd_LDADD = $(AM_LDADD) libpulse.la libpulsecommon-@PA_MAJORMINORMICRO@.la
pacmd_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
pax11publish_SOURCES = utils/pax11publish.c
pax11publish_CFLAGS = $(AM_CFLAGS) $(X_CFLAGS)
pax11publish_LDADD = $(AM_LDADD) libpulse.la libpulsecommon-@PA_MAJORMINORMICRO@.la $(X_PRE_LIBS) -lX11 $(X_LIBS) $(X_EXTRA_LIBS)
pax11publish_CFLAGS = $(AM_CFLAGS) $(X11_CFLAGS)
pax11publish_LDADD = $(AM_LDADD) libpulse.la libpulsecommon-@PA_MAJORMINORMICRO@.la $(X11_LIBS)
pax11publish_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
pabrowse_SOURCES = utils/pabrowse.c
@ -217,6 +219,35 @@ pabrowse_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
# 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 = \
mainloop-test \
mcalign-test \
@ -254,12 +285,17 @@ noinst_PROGRAMS = \
prioq-test
if HAVE_SIGXCPU
#TESTS += \
# cpulimit-test \
# cpulimit-test2
noinst_PROGRAMS += \
cpulimit-test \
cpulimit-test2
endif
if HAVE_GLIB20
TESTS += \
mainloop-test-glib
noinst_PROGRAMS += \
mainloop-test-glib
endif
@ -459,6 +495,7 @@ lib_LTLIBRARIES = \
libpulsecommon_@PA_MAJORMINORMICRO@_la_SOURCES = \
pulse/client-conf.c pulse/client-conf.h \
pulse/i18n.c pulse/i18n.h \
pulsecore/atomic.h \
pulsecore/authkey.c pulsecore/authkey.h \
pulsecore/conf-parser.c pulsecore/conf-parser.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/queue.c pulsecore/queue.h \
pulsecore/random.c pulsecore/random.h \
pulsecore/refcnt.h \
pulsecore/rtclock.c pulsecore/rtclock.h \
pulsecore/shm.c pulsecore/shm.h \
pulsecore/socket-client.c pulsecore/socket-client.h \
@ -531,8 +569,8 @@ endif
if HAVE_X11
libpulsecommon_@PA_MAJORMINORMICRO@_la_SOURCES += pulsecore/x11prop.c pulsecore/x11prop.h
libpulsecommon_@PA_MAJORMINORMICRO@_la_CFLAGS += $(X_CFLAGS)
libpulsecommon_@PA_MAJORMINORMICRO@_la_LDFLAGS += $(X_PRE_LIBS) -lX11 $(X_LIBS) $(X_EXTRA_LIBS)
libpulsecommon_@PA_MAJORMINORMICRO@_la_CFLAGS += $(X11_CFLAGS)
libpulsecommon_@PA_MAJORMINORMICRO@_la_LDFLAGS += $(X11_LIBS)
endif
if HAVE_LIBASYNCNS
@ -630,8 +668,8 @@ libpulse_la_LIBADD = $(AM_LIBADD) $(WINSOCK_LIBS) $(LTLIBICONV) libpulsecommon-@
if HAVE_X11
libpulse_la_SOURCES += pulse/client-conf-x11.c pulse/client-conf-x11.h
libpulse_la_CFLAGS += $(X_CFLAGS)
libpulse_la_LDFLAGS += $(X_PRE_LIBS) -lX11 $(X_LIBS) $(X_EXTRA_LIBS)
libpulse_la_CFLAGS += $(X11_CFLAGS)
libpulse_la_LDFLAGS += $(X11_LIBS)
endif
libpulse_simple_la_SOURCES = pulse/simple.c pulse/simple.h
@ -661,7 +699,7 @@ endif
libpulsedsp_la_SOURCES = utils/padsp.c
libpulsedsp_la_CFLAGS = $(AM_CFLAGS)
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 #
@ -721,8 +759,8 @@ libpulsecore_@PA_MAJORMINORMICRO@_la_LIBADD = $(AM_LIBADD) $(LIBLTDL) $(LIBSAMPL
if HAVE_X11
libpulsecore_@PA_MAJORMINORMICRO@_la_SOURCES += pulsecore/x11wrap.c pulsecore/x11wrap.h
libpulsecore_@PA_MAJORMINORMICRO@_la_CFLAGS += $(X_CFLAGS)
libpulsecore_@PA_MAJORMINORMICRO@_la_LDFLAGS += $(X_PRE_LIBS) -lX11 $(X_LIBS) $(X_EXTRA_LIBS)
libpulsecore_@PA_MAJORMINORMICRO@_la_CFLAGS += $(X11_CFLAGS)
libpulsecore_@PA_MAJORMINORMICRO@_la_LDFLAGS += $(X11_LIBS)
endif
###################################
@ -1039,108 +1077,108 @@ $(SYMDEF_FILES): modules/module-defs.h.m4
# Flat volume
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
# Simple protocol
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_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_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_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
# CLI protocol
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_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_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_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_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
# HTTP protocol
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_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_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_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
# Native protocol
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_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_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_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_fd_la_SOURCES = modules/module-native-protocol-fd.c
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
# EsounD protocol
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_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_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_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_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_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_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
# Pipes
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_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
# Fake sources/sinks
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_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_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
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_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_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_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_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_tunnel_sink_la_SOURCES = modules/module-tunnel.c
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_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
# X11
module_x11_bell_la_SOURCES = modules/module-x11-bell.c
module_x11_bell_la_CFLAGS = $(AM_CFLAGS) $(X_CFLAGS)
module_x11_bell_la_LDFLAGS = -module -avoid-version
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_CFLAGS = $(AM_CFLAGS) $(X11_CFLAGS)
module_x11_bell_la_LDFLAGS = $(MODULE_LDFLAGS)
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_CFLAGS = $(AM_CFLAGS) $(X_CFLAGS)
module_x11_publish_la_LDFLAGS = -module -avoid-version
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_CFLAGS = $(AM_CFLAGS) $(X11_CFLAGS)
module_x11_publish_la_LDFLAGS = $(MODULE_LDFLAGS)
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_CFLAGS = $(AM_CFLAGS) $(X_CFLAGS)
module_x11_xsmp_la_LDFLAGS = -module -avoid-version
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_CFLAGS = $(AM_CFLAGS) $(X11_CFLAGS)
module_x11_xsmp_la_LDFLAGS = $(MODULE_LDFLAGS)
module_x11_xsmp_la_LIBADD = $(AM_LIBADD) $(X11_LIBS) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
# 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
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
# ALSA
@ -1210,128 +1248,128 @@ libalsa_util_la_LIBADD = $(AM_LIBADD) $(ASOUNDLIB_LIBS) libpulsecore-@PA_MAJORMI
libalsa_util_la_CFLAGS = $(AM_CFLAGS) $(ASOUNDLIB_CFLAGS)
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_CFLAGS = $(AM_CFLAGS) $(ASOUNDLIB_CFLAGS)
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_CFLAGS = $(AM_CFLAGS) $(ASOUNDLIB_CFLAGS)
# Solaris
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
# Avahi
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_CFLAGS = $(AM_CFLAGS) $(AVAHI_CFLAGS)
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_CFLAGS = $(AM_CFLAGS) $(AVAHI_CFLAGS)
# LIRC
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_CFLAGS = $(AM_CFLAGS) $(LIRC_CFLAGS)
# Linux evdev
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_CFLAGS = $(AM_CFLAGS)
# Windows waveout
#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_CFLAGS = $(AM_CFLAGS)
# Hardware autodetection module
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_CFLAGS = $(AM_CFLAGS)
# Volume restore module
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_CFLAGS = $(AM_CFLAGS)
# Position event sounds in space
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_CFLAGS = $(AM_CFLAGS)
# Device volume/muted restore module
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_CFLAGS = $(AM_CFLAGS)
# Stream volume/muted/device restore module
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_CFLAGS = $(AM_CFLAGS)
# Default sink/source restore module
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_CFLAGS = $(AM_CFLAGS)
# Always Sink module
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_CFLAGS = $(AM_CFLAGS)
# Rescue streams module
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_CFLAGS = $(AM_CFLAGS)
# Suspend-on-idle module
module_suspend_on_idle_la_SOURCES = modules/module-suspend-on-idle.c
module_suspend_on_idle_la_LDFLAGS = -module -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_CFLAGS = $(AM_CFLAGS)
# RTP modules
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_CFLAGS = $(AM_CFLAGS)
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_CFLAGS = $(AM_CFLAGS)
# JACK
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_CFLAGS = $(AM_CFLAGS) $(JACK_CFLAGS)
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_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)
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_CFLAGS = $(AM_CFLAGS) $(HAL_CFLAGS)
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_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS)
# GConf support
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_CFLAGS = $(AM_CFLAGS) -DPA_GCONF_HELPER=\"$(pulselibexecdir)/gconf-helper\"
@ -1364,7 +1402,7 @@ gconf_helper_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
# Bluetooth proximity
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_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
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_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_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
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_LDFLAGS = -avoid-version
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_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_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS)
module_bluetooth_device_la_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS) -w
# Apple Airtunes/RAOP
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_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_CFLAGS = $(AM_CFLAGS) $(AVAHI_CFLAGS)
@ -1454,17 +1493,25 @@ install-exec-hook:
chmod u+s $(DESTDIR)$(bindir)/pulseaudio
-chmod u+s $(DESTDIR)$(pulselibexecdir)/proximity-helper
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)$(modlibexecdir)/*.la
uninstall-hook:
rm -f $(DESTDIR)$(bindir)/parec
rm -f $(DESTDIR)$(libdir)/libpulsedsp.*
rm -f $(DESTDIR)$(modlibexecdir)/*.so
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
update-ffmpeg:
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
update-map-file:
( echo "PULSE_0 {" ; \
@ -1474,4 +1521,6 @@ update-map-file:
echo "*;" ; \
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"
" --start Start the daemon if it is not running\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"
" --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(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);
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;
}
snd_mixer_elem_t *pa_alsa_find_elem(snd_mixer_t *mixer, const char *name, const char *fallback) {
snd_mixer_elem_t *elem;
static pa_bool_t elem_has_volume(snd_mixer_elem_t *elem, pa_bool_t playback) {
pa_assert(elem);
if (playback && snd_mixer_selem_has_playback_volume(elem))
return TRUE;
if (!playback && snd_mixer_selem_has_capture_volume(elem))
return TRUE;
return FALSE;
}
static pa_bool_t elem_has_switch(snd_mixer_elem_t *elem, pa_bool_t playback) {
pa_assert(elem);
if (playback && snd_mixer_selem_has_playback_switch(elem))
return TRUE;
if (!playback && snd_mixer_selem_has_capture_switch(elem))
return TRUE;
return FALSE;
}
snd_mixer_elem_t *pa_alsa_find_elem(snd_mixer_t *mixer, const char *name, const char *fallback, pa_bool_t playback) {
snd_mixer_elem_t *elem = NULL, *fallback_elem = NULL;
snd_mixer_selem_id_t *sid = NULL;
snd_mixer_selem_id_alloca(&sid);
@ -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);
if (!(elem = snd_mixer_find_selem(mixer, sid))) {
pa_log_info("Cannot find mixer control \"%s\".", snd_mixer_selem_id_get_name(sid));
if ((elem = snd_mixer_find_selem(mixer, sid))) {
if (fallback) {
snd_mixer_selem_id_set_name(sid, fallback);
if (elem_has_volume(elem, playback) &&
elem_has_switch(elem, playback))
goto success;
if (!(elem = snd_mixer_find_selem(mixer, sid)))
pa_log_warn("Cannot find fallback mixer control \"%s\".", snd_mixer_selem_id_get_name(sid));
if (!elem_has_volume(elem, playback) &&
!elem_has_switch(elem, playback))
elem = NULL;
}
pa_log_info("Cannot find mixer control \"%s\" or mixer control is no combination of switch/volume.", snd_mixer_selem_id_get_name(sid));
if (fallback) {
snd_mixer_selem_id_set_name(sid, fallback);
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)
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_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(
const char *dev_id,

View file

@ -22,22 +22,26 @@
#include "ipc.h"
/* This table contains the string representation for messages */
static const char *strmsg[] = {
"BT_GETCAPABILITIES_REQ",
"BT_GETCAPABILITIES_RSP",
"BT_SETCONFIGURATION_REQ",
"BT_SETCONFIGURATION_RSP",
"BT_STREAMSTART_REQ",
"BT_STREAMSTART_RSP",
"BT_STREAMSTOP_REQ",
"BT_STREAMSTOP_RSP",
"BT_STREAMSUSPEND_IND",
"BT_STREAMRESUME_IND",
"BT_CONTROL_REQ",
"BT_CONTROL_RSP",
"BT_CONTROL_IND",
"BT_STREAMFD_IND",
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
/* This table contains the string representation for messages types */
static const char *strtypes[] = {
"BT_REQUEST",
"BT_RESPONSE",
"BT_INDICATION",
"BT_ERROR",
};
/* This table contains the string representation for messages names */
static const char *strnames[] = {
"BT_GET_CAPABILITIES",
"BT_SET_CONFIGURATION",
"BT_NEW_STREAM",
"BT_START_STREAM",
"BT_STOP_STREAM",
"BT_SUSPEND_STREAM",
"BT_RESUME_STREAM",
"BT_CONTROL",
};
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_controllen = CMSG_LEN(sizeof(int));
ret = (int) recvmsg(sk, &msgh, 0);
ret = recvmsg(sk, &msgh, 0);
if (ret < 0) {
err = errno;
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;
}
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 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
Audio daemon User
on snd_pcm_open
<--BT_GETCAPABILITIES_REQ
Audio daemon User
on snd_pcm_open
<--BT_GET_CAPABILITIES_REQ
BT_GETCAPABILITIES_RSP-->
BT_GET_CAPABILITIES_RSP-->
on snd_pcm_hw_params
<--BT_SETCONFIGURATION_REQ
on snd_pcm_hw_params
<--BT_SETCONFIGURATION_REQ
BT_SETCONFIGURATION_RSP-->
BT_SET_CONFIGURATION_RSP-->
on snd_pcm_prepare
<--BT_STREAMSTART_REQ
on snd_pcm_prepare
<--BT_START_STREAM_REQ
<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>
BT_STREAMSTOP_RSP-->
BT_STOP_STREAM_RSP-->
on IPC close or appl crash
on IPC close or appl crash
<Moves to idle>
*/
@ -71,43 +71,36 @@ extern "C" {
#include <sys/un.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"
/* Generic message header definition, except for RSP messages */
/* Generic message header definition, except for RESPONSE messages */
typedef struct {
uint8_t msg_type;
uint8_t type;
uint8_t name;
uint16_t length;
} __attribute__ ((packed)) bt_audio_msg_header_t;
/* Generic message header definition, for all RSP messages */
typedef struct {
bt_audio_msg_header_t msg_h;
uint8_t posix_errno;
} __attribute__ ((packed)) bt_audio_rsp_msg_header_t;
bt_audio_msg_header_t h;
uint8_t posix_errno;
} __attribute__ ((packed)) bt_audio_error_t;
/* Messages list */
#define BT_GETCAPABILITIES_REQ 0
#define BT_GETCAPABILITIES_RSP 1
/* Message types */
#define BT_REQUEST 0
#define BT_RESPONSE 1
#define BT_INDICATION 2
#define BT_ERROR 3
#define BT_SETCONFIGURATION_REQ 2
#define BT_SETCONFIGURATION_RSP 3
#define BT_STREAMSTART_REQ 4
#define BT_STREAMSTART_RSP 5
#define BT_STREAMSTOP_REQ 6
#define BT_STREAMSTOP_RSP 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 */
/* Messages names */
#define BT_GET_CAPABILITIES 0
#define BT_SET_CONFIGURATION 1
#define BT_NEW_STREAM 2
#define BT_START_STREAM 3
#define BT_STOP_STREAM 4
#define BT_SUSPEND_STREAM 5
#define BT_RESUME_STREAM 6
#define BT_CONTROL 7
#define BT_CAPABILITIES_TRANSPORT_A2DP 0
#define BT_CAPABILITIES_TRANSPORT_SCO 1
@ -119,19 +112,22 @@ typedef struct {
#define BT_FLAG_AUTOCONNECT 1
struct bt_getcapabilities_req {
struct bt_get_capabilities_req {
bt_audio_msg_header_t h;
char device[18]; /* Address of the remote Device */
uint8_t transport; /* Requested transport */
uint8_t flags; /* Requested flags */
} __attribute__ ((packed));
/* BT_GETCAPABILITIES_RSP */
/**
* 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_32000 (1 << 2)
#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_3 1
#define BT_HFP_CODEC_PCM 0x00
#define BT_PCM_FLAG_NREC 1
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 frequency;
uint8_t allocation_method;
@ -175,6 +183,7 @@ typedef struct {
} __attribute__ ((packed)) sbc_capabilities_t;
typedef struct {
codec_capabilities_t capability;
uint8_t channel_mode;
uint8_t crc;
uint8_t layer;
@ -183,74 +192,64 @@ typedef struct {
uint16_t bitrate;
} __attribute__ ((packed)) mpeg_capabilities_t;
struct bt_getcapabilities_rsp {
bt_audio_rsp_msg_header_t rsp_h;
uint8_t transport; /* Granted transport */
sbc_capabilities_t sbc_capabilities; /* A2DP only */
mpeg_capabilities_t mpeg_capabilities; /* A2DP only */
uint16_t sampling_rate; /* SCO only */
} __attribute__ ((packed));
typedef struct {
codec_capabilities_t capability;
uint8_t flags;
uint16_t sampling_rate;
} __attribute__ ((packed)) pcm_capabilities_t;
/* BT_SETCONFIGURATION_REQ */
struct bt_setconfiguration_req {
struct bt_get_capabilities_rsp {
bt_audio_msg_header_t h;
char device[18]; /* Address of the remote Device */
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 */
uint8_t data[0]; /* First codec_capabilities_t */
} __attribute__ ((packed));
/* BT_SETCONFIGURATION_RSP */
struct bt_setconfiguration_rsp {
bt_audio_rsp_msg_header_t rsp_h;
uint8_t transport; /* Granted transport */
uint8_t access_mode; /* Granted access mode */
uint16_t link_mtu; /* Max length that transport supports */
struct bt_set_configuration_req {
bt_audio_msg_header_t h;
char device[18]; /* Address of the remote Device */
uint8_t access_mode; /* Requested access mode */
codec_capabilities_t codec; /* Requested codec */
} __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));
/* BT_STREAMSTART_REQ */
#define BT_STREAM_ACCESS_READ 0
#define BT_STREAM_ACCESS_WRITE 1
#define BT_STREAM_ACCESS_READWRITE 2
struct bt_streamstart_req {
struct bt_start_stream_req {
bt_audio_msg_header_t h;
} __attribute__ ((packed));
/* BT_STREAMSTART_RSP */
struct bt_streamstart_rsp {
bt_audio_rsp_msg_header_t rsp_h;
struct bt_start_stream_rsp {
bt_audio_msg_header_t h;
} __attribute__ ((packed));
/* BT_STREAMFD_IND */
/* This message is followed by one byte of data containing the stream data fd
as ancilliary data */
struct bt_streamfd_ind {
struct bt_new_stream_ind {
bt_audio_msg_header_t h;
} __attribute__ ((packed));
/* BT_STREAMSTOP_REQ */
struct bt_streamstop_req {
struct bt_stop_stream_req {
bt_audio_msg_header_t h;
} __attribute__ ((packed));
/* BT_STREAMSTOP_RSP */
struct bt_streamstop_rsp {
bt_audio_rsp_msg_header_t rsp_h;
} __attribute__ ((packed));
/* BT_STREAMSUSPEND_IND */
struct bt_streamsuspend_ind {
struct bt_stop_stream_rsp {
bt_audio_msg_header_t h;
} __attribute__ ((packed));
/* BT_STREAMRESUME_IND */
struct bt_streamresume_ind {
struct bt_suspend_stream_ind {
bt_audio_msg_header_t h;
} __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_VOL_UP 0x41
@ -272,14 +271,12 @@ struct bt_control_req {
uint8_t key; /* Control Key */
} __attribute__ ((packed));
/* BT_CONTROL_RSP */
struct bt_control_rsp {
bt_audio_rsp_msg_header_t rsp_h;
uint8_t mode; /* Control Mode */
uint8_t key; /* Control Key */
bt_audio_msg_header_t h;
uint8_t mode; /* Control Mode */
uint8_t key; /* Control Key */
} __attribute__ ((packed));
/* BT_CONTROL_IND */
struct bt_control_ind {
bt_audio_msg_header_t h;
uint8_t mode; /* Control Mode */
@ -299,7 +296,10 @@ BT_STREAMFD_IND message is returned */
int bt_audio_service_get_data_fd(int sk);
/* 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
}

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) {
int e;
pa_log_debug("sending %s", bt_audio_strmsg(msg->msg_type));
if (send(sk, msg, BT_AUDIO_IPC_PACKET_SIZE, 0) > 0)
const char *type, *name;
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;
else {
e = -errno;
@ -132,20 +138,25 @@ static int bt_audioservice_send(int sk, const bt_audio_msg_header_t *msg) {
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;
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...");
if (recv(sk, inmsg, BT_AUDIO_IPC_PACKET_SIZE, 0) > 0) {
type = bt_audio_strmsg(inmsg->msg_type);
if (type) {
pa_log_debug("Received %s", type);
if (recv(sk, inmsg, length, 0) > 0) {
type = bt_audio_strtype(inmsg->type);
name = bt_audio_strname(inmsg->name);
if (type && name) {
pa_log_debug("Received: %s <- %s", type, name);
e = 0;
}
else {
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 {
@ -156,29 +167,66 @@ static int bt_audioservice_recv(int sk, bt_audio_msg_header_t *inmsg) {
return e;
}
static int bt_audioservice_expect(int sk, bt_audio_msg_header_t *rsp_hdr, int expected_type) {
int e = bt_audioservice_recv(sk, rsp_hdr);
if (e == 0) {
if (rsp_hdr->msg_type != 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, expected_length);
if (e < 0) {
if (rsp->name != expected_name) {
e = -EINVAL;
pa_log_error("Bogus message %s received while %s was expected", bt_audio_strmsg(rsp_hdr->msg_type),
bt_audio_strmsg(expected_type));
pa_log_error("Bogus message %s received while %s was expected",
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;
}
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) {
int e;
union {
bt_audio_rsp_msg_header_t rsp_hdr;
struct bt_getcapabilities_req getcaps_req;
struct bt_getcapabilities_rsp getcaps_rsp;
uint8_t buf[BT_AUDIO_IPC_PACKET_SIZE];
bt_audio_msg_header_t rsp;
struct bt_get_capabilities_req getcaps_req;
struct bt_get_capabilities_rsp getcaps_rsp;
uint8_t buf[BT_SUGGESTED_BUFFER_SIZE];
} msg;
memset(msg.buf, 0, BT_AUDIO_IPC_PACKET_SIZE);
msg.getcaps_req.h.msg_type = BT_GETCAPABILITIES_REQ;
memset(msg.buf, 0, BT_SUGGESTED_BUFFER_SIZE);
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);
if (strcasecmp(u->profile, "a2dp") == 0)
msg.getcaps_req.transport = BT_CAPABILITIES_TRANSPORT_A2DP;
@ -196,20 +244,13 @@ static int bt_getcaps(struct userdata *u) {
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) {
pa_log_error("Failed to expect for GETCAPABILITIES_RSP");
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)
u->a2dp.sbc_capabilities = msg.getcaps_rsp.sbc_capabilities;
return 0;
return bt_parsecaps(u, &msg.getcaps_rsp);
}
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) {
int e;
union {
bt_audio_rsp_msg_header_t rsp_hdr;
struct bt_setconfiguration_req setconf_req;
struct bt_setconfiguration_rsp setconf_rsp;
uint8_t buf[BT_AUDIO_IPC_PACKET_SIZE];
bt_audio_msg_header_t rsp;
struct bt_set_configuration_req setconf_req;
struct bt_set_configuration_rsp setconf_rsp;
uint8_t buf[BT_SUGGESTED_BUFFER_SIZE];
} msg;
if (u->transport == BT_CAPABILITIES_TRANSPORT_A2DP) {
@ -410,12 +451,19 @@ static int bt_setconf(struct userdata *u) {
else
u->ss.format = PA_SAMPLE_U8;
memset(msg.buf, 0, BT_AUDIO_IPC_PACKET_SIZE);
msg.setconf_req.h.msg_type = BT_SETCONFIGURATION_REQ;
memset(msg.buf, 0, BT_SUGGESTED_BUFFER_SIZE);
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);
msg.setconf_req.transport = u->transport;
if (u->transport == BT_CAPABILITIES_TRANSPORT_A2DP)
msg.setconf_req.sbc_capabilities = u->a2dp.sbc_capabilities;
msg.setconf_req.codec.transport = u->transport;
if (u->transport == BT_CAPABILITIES_TRANSPORT_A2DP) {
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;
e = bt_audioservice_send(u->audioservice_fd, &msg.setconf_req.h);
@ -424,17 +472,12 @@ static int bt_setconf(struct userdata *u) {
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) {
pa_log_error("Failed to expect BT_SETCONFIGURATION_RSP");
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->strtransport = (u->transport == BT_CAPABILITIES_TRANSPORT_A2DP ? pa_xstrdup("A2DP") : pa_xstrdup("SCO"));
u->link_mtu = msg.setconf_rsp.link_mtu;
@ -456,14 +499,17 @@ static int bt_getstreamfd(struct userdata *u) {
int e;
// uint32_t period_count = io->buffer_size / io->period_size;
union {
bt_audio_rsp_msg_header_t rsp_hdr;
struct bt_streamstart_req start_req;
struct bt_streamfd_ind streamfd_ind;
uint8_t buf[BT_AUDIO_IPC_PACKET_SIZE];
bt_audio_msg_header_t rsp;
struct bt_start_stream_req start_req;
struct bt_start_stream_rsp start_rsp;
struct bt_new_stream_ind streamfd_ind;
uint8_t buf[BT_SUGGESTED_BUFFER_SIZE];
} msg;
memset(msg.buf, 0, BT_AUDIO_IPC_PACKET_SIZE);
msg.start_req.h.msg_type = BT_STREAMSTART_REQ;
memset(msg.buf, 0, BT_SUGGESTED_BUFFER_SIZE);
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);
if (e < 0) {
@ -471,18 +517,13 @@ static int bt_getstreamfd(struct userdata *u) {
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) {
pa_log_error("Failed to expect BT_STREAMSTART_RSP");
return e;
}
if (msg.rsp_hdr.posix_errno != 0) {
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);
e = bt_audioservice_expect(u->audioservice_fd, &msg.rsp, BT_NEW_STREAM, sizeof(msg.streamfd_ind));
if (e < 0) {
pa_log_error("Failed to expect BT_STREAMFD_IND");
return e;

View file

@ -2,7 +2,7 @@
*
* 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) 2005-2008 Brad Midgley <bmidgley@xmission.com>
*
@ -40,6 +40,7 @@
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <limits.h>
#include "sbc_math.h"
#include "sbc_tables.h"
@ -68,7 +69,7 @@ struct sbc_frame {
uint8_t subband_mode;
uint8_t subbands;
uint8_t bitpool;
uint8_t codesize;
uint16_t codesize;
uint8_t length;
/* 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 {
int subbands;
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];
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);
@ -563,7 +568,7 @@ static inline void sbc_synthesize_four(struct sbc_decoder_state *state,
k = (i + 4) & 0xf;
/* 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[k] + 1], sbc_proto_4_40m1[idx + 0],
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;
/* 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[k] + 1], sbc_proto_8_80m1[idx + 0],
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,
const struct sbc_frame *frame)
static inline void _sbc_analyze_four(const int16_t *in, int32_t *out)
{
memset(&state->X, 0, sizeof(state->X));
state->subbands = frame->subbands;
state->position[0] = state->position[1] = 9 * frame->subbands;
FIXED_A t1[4];
FIXED_T t2[4];
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 */
MULA(_sbc_proto_4[0], in[8] - in[32], /* Q18 */
MUL( _sbc_proto_4[1], in[16] - in[24])));
/* Input 4 x 4 Audio Samples */
for (i = 0; i < 16; i += 4) {
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(
MULA(_sbc_proto_4[2], in[1],
MULA(_sbc_proto_4[3], in[9],
MULA(_sbc_proto_4[4], in[17],
MULA(_sbc_proto_4[5], in[25],
MUL( _sbc_proto_4[6], in[33]))))));
t[2] = SCALE4_STAGE1(
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]);
/* Analyze four blocks */
_sbc_analyze_four(x + 12, out);
out += out_stride;
_sbc_analyze_four(x + 8, out);
out += out_stride;
_sbc_analyze_four(x + 4, out);
out += out_stride;
_sbc_analyze_four(x, out);
}
static inline void sbc_analyze_four(struct sbc_encoder_state *state,
struct sbc_frame *frame, int ch, int blk)
static inline void _sbc_analyze_eight(const int16_t *in, int32_t *out)
{
int32_t *x = &state->X[ch][state->position[ch]];
int16_t *pcm = &frame->pcm_sample[ch][blk * 4];
FIXED_A t1[8];
FIXED_T t2[8];
int i, hop;
/* Input 4 Audio Samples */
x[40] = x[0] = pcm[3];
x[41] = x[1] = pcm[2];
x[42] = x[2] = pcm[1];
x[43] = x[3] = pcm[0];
/* rounding coefficient */
t1[0] = t1[1] = t1[2] = t1[3] = t1[4] = t1[5] = t1[6] = t1[7] =
(FIXED_A) 1 << (SBC_PROTO_FIXED8_SCALE-1);
_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;
if (state->position[ch] < 0)
state->position[ch] = 36;
/* scaling */
t2[0] = t1[0] >> SBC_PROTO_FIXED8_SCALE;
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 */
MULA(_sbc_proto_8[0], (in[16] - in[64]), /* Q18 = Q18 * Q0 */
MULA(_sbc_proto_8[1], (in[32] - in[48]),
MULA(_sbc_proto_8[2], in[4],
MULA(_sbc_proto_8[3], in[20],
MULA(_sbc_proto_8[4], in[36],
MUL( _sbc_proto_8[5], in[52])))))));
/* Input 4 x 8 Audio Samples */
for (i = 0; i < 32; i += 8) {
x[128 + i] = x[0 + i] = pcm[31 - i];
x[129 + i] = x[1 + i] = pcm[30 - i];
x[130 + i] = x[2 + i] = pcm[29 - i];
x[131 + i] = x[3 + i] = pcm[28 - i];
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(
MULA(_sbc_proto_8[6], in[2],
MULA(_sbc_proto_8[7], in[18],
MULA(_sbc_proto_8[8], in[34],
MULA(_sbc_proto_8[9], in[50],
MUL(_sbc_proto_8[10], in[66]))))));
t[2] = SCALE8_STAGE1(
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;
/* Analyze four blocks */
_sbc_analyze_eight(x + 24, out);
out += out_stride;
_sbc_analyze_eight(x + 16, out);
out += out_stride;
_sbc_analyze_eight(x + 8, out);
out += out_stride;
_sbc_analyze_eight(x, out);
}
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) {
case 4:
for (ch = 0; ch < frame->channels; ch++)
for (blk = 0; blk < frame->blocks; blk++)
sbc_analyze_four(state, frame, ch, blk);
for (blk = 0; blk < frame->blocks; blk += 4) {
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;
case 8:
for (ch = 0; ch < frame->channels; ch++)
for (blk = 0; blk < frame->blocks; blk++)
sbc_analyze_eight(state, frame, ch, blk);
for (blk = 0; blk < frame->blocks; blk += 4) {
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;
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
* 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)
{
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 */
uint8_t crc_header[11] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 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 */
@ -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 */
produced = 32;
crc_header[0] = data[1];
crc_header[1] = data[2];
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 (sb = 0; sb < frame->subbands; sb++) {
frame->scale_factor[ch][sb] = 0;
scalefactor[ch][sb] = 2;
scalefactor[ch][sb] = 2 << SCALE_OUT_BITS;
for (blk = 0; blk < frame->blocks; blk++) {
while (scalefactor[ch][sb] < fabs(frame->sb_sample_f[blk][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];
uint8_t scale_factor_j[2];
uint8_t joint = 0;
frame->joint = 0;
for (sb = 0; sb < frame->subbands - 1; sb++) {
scale_factor_j[0] = 0;
scalefactor_j[0] = 2;
scalefactor_j[0] = 2 << SCALE_OUT_BITS;
scale_factor_j[1] = 0;
scalefactor_j[1] = 2;
scalefactor_j[1] = 2 << SCALE_OUT_BITS;
for (blk = 0; blk < frame->blocks; blk++) {
/* Calculate joint stereo signal */
sb_sample_j[blk][0] =
(frame->sb_sample_f[blk][0][sb] +
frame->sb_sample_f[blk][1][sb]) >> 1;
ASR(frame->sb_sample_f[blk][0][sb], 1) +
ASR(frame->sb_sample_f[blk][1][sb], 1);
sb_sample_j[blk][1] =
(frame->sb_sample_f[blk][0][sb] -
frame->sb_sample_f[blk][1][sb]) >> 1;
ASR(frame->sb_sample_f[blk][0][sb], 1) -
ASR(frame->sb_sample_f[blk][1][sb], 1);
/* calculate scale_factor_j and scalefactor_j for joint case */
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 */
if ((scalefactor[0][sb] + scalefactor[1][sb]) >
(scalefactor_j[0] + scalefactor_j[1]) ) {
if ((frame->scale_factor[0][sb] +
frame->scale_factor[1][sb]) >
(scale_factor_j[0] +
scale_factor_j[1])) {
/* use joint stereo for this subband */
joint |= 1 << (frame->subbands - 1 - sb);
frame->joint |= 1 << sb;
frame->scale_factor[0][sb] = scale_factor_j[0];
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++) {
frame->sb_sample_f[blk][0][sb] =
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;
for (sb = 0; sb < frame->subbands - 1; sb++)
data[4] |= ((frame->joint >> sb) & 0x01) << (frame->subbands - 1 - sb);
crc_header[crc_pos >> 3] = data[4];
produced += frame->subbands;
PUT_BITS(joint, frame->subbands);
crc_header[crc_pos >> 3] = joint;
crc_pos += frame->subbands;
}
for (ch = 0; ch < frame->channels; ch++) {
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;
data[produced >> 3] |= frame->scale_factor[ch][sb] & 0x0F;
crc_header[crc_pos >> 3] |= frame->scale_factor[ch][sb] & 0x0F;
produced += 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);
for (ch = 0; ch < frame->channels; ch++) {
for (sb = 0; sb < frame->subbands; sb++)
levels[ch][sb] = (1 << bits[ch][sb]) - 1;
for (sb = 0; sb < frame->subbands; sb++) {
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 (ch = 0; ch < frame->channels; ch++) {
for (sb = 0; sb < frame->subbands; sb++) {
if (levels[ch][sb] > 0) {
audio_sample =
(uint16_t) ((((frame->sb_sample_f[blk][ch][sb]*levels[ch][sb]) >>
(frame->scale_factor[ch][sb] + 1)) +
levels[ch][sb]) >> 1);
audio_sample <<= 16 - bits[ch][sb];
for (bit = 0; bit < bits[ch][sb]; bit++) {
data[produced >> 3] <<= 1;
if (audio_sample & 0x8000)
data[produced >> 3] |= 0x1;
audio_sample <<= 1;
produced++;
}
}
if (bits[ch][sb] == 0)
continue;
audio_sample = ((uint64_t) levels[ch][sb] *
(sb_sample_delta[ch][sb] +
frame->sb_sample_f[blk][ch][sb])) >> 32;
PUT_BITS(audio_sample, bits[ch][sb]);
}
}
}
/* align the last byte */
if (produced % 8) {
data[produced >> 3] <<= 8 - (produced % 8);
}
FLUSH_BITS();
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 {
@ -1190,6 +1142,9 @@ int sbc_decode(sbc_t *sbc, void *input, int input_len, void *output,
if (written)
*written = 0;
if (framelen <= 0)
return framelen;
samples = sbc_synthesize_audio(&priv->dec_state, &priv->frame);
ptr = output;
@ -1202,13 +1157,7 @@ int sbc_decode(sbc_t *sbc, void *input, int input_len, void *output,
int16_t s;
s = priv->frame.pcm_sample[ch][i];
#if __BYTE_ORDER == __LITTLE_ENDIAN
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 & 0x00ff);
} 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 (ch = 0; ch < priv->frame.channels; ch++) {
int16_t s;
#if __BYTE_ORDER == __LITTLE_ENDIAN
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);
else
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;
}
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;
priv = sbc->priv;

View file

@ -2,7 +2,7 @@
*
* 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) 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 sbc_get_frame_length(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);
#ifdef __cplusplus

View file

@ -2,7 +2,7 @@
*
* 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) 2005-2008 Brad Midgley <bmidgley@xmission.com>
*
@ -29,31 +29,21 @@
#define ASR(val, bits) ((-2 >> 1 == -1) ? \
((int32_t)(val)) >> (bits) : ((int32_t) (val)) / (1 << (bits)))
#define SCALE_PROTO4_TBL 15
#define SCALE_ANA4_TBL 17
#define SCALE_PROTO8_TBL 16
#define SCALE_ANA8_TBL 17
#define SCALE_OUT_BITS 15
#define SCALE_SPROTO4_TBL 12
#define SCALE_SPROTO8_TBL 14
#define SCALE_NPROTO4_TBL 11
#define SCALE_NPROTO8_TBL 11
#define SCALE4_STAGE1_BITS 15
#define SCALE4_STAGE2_BITS 16
#define SCALE4_STAGED1_BITS 15
#define SCALE4_STAGED2_BITS 16
#define SCALE8_STAGE1_BITS 15
#define SCALE8_STAGE2_BITS 15
#define SCALE8_STAGED1_BITS 15
#define SCALE8_STAGED2_BITS 16
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_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_STAGED2(src) ASR(src, SCALE8_STAGED2_BITS)

View file

@ -2,7 +2,7 @@
*
* 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) 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 }
};
#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 SS8(val) ASR(val, SCALE_SPROTO8_TBL)
#define SN4(val) ASR(val, SCALE_NPROTO4_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[] = {
SS4(0x00000000), SS4(0xffa6982f), SS4(0xfba93848), SS4(0x0456c7b8),
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)
};
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] = {
{ SN4(0x05a82798), SN4(0xfa57d868), SN4(0xfa57d868), SN4(0x05a82798) },
{ 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(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 (!(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;
if (!found) {

View file

@ -1236,7 +1236,7 @@ int pa__init(pa_module*m) {
}
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;
if (!found) {

View file

@ -296,6 +296,11 @@ int pa__init(pa_module*m) {
pa_log("IP_MULTICAST_TTL failed: %s", pa_cstrerror(errno));
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 */