[pulseaudio-commits] [SCM] PulseAudio Sound Server branch, master-tx, updated. v0.9.16-test7-87-gb043207

Lennart Poettering gitmailer-noreply at 0pointer.de
Wed Sep 9 17:04:40 PDT 2009


This is an automated email from the git hooks/post-receive script. It was
generated because of a push to the "PulseAudio Sound Server" repository.

The master-tx branch has been updated
      from  4f24a6258a1bef02b31b6b82d3ce0967fa5ab818 (commit)

- Log -----------------------------------------------------------------
b043207 i18n: run make update-po
a41c510 Merge remote branch 'origin/master-tx'
f3879f8 i18n: run make update-po
b2de8d8 i18n: get rid of ko.po/ru.po since they contain exactly 0 translated strings
9c65e5b add ml to LINGUAS
43c3164 Merge remote branch 'origin/master-tx'
d5f43bd alsa: disable tsched for software devices before we configure the buffer metrics so that we don't accidently set a buffer size that is suitable for tsched where we don't use tsched
8364b95 alsa: when probing for profiles configure buffer/period sizes since some broken drivers apparently need that
84ade21 alsa: pass SND_PCM_NONBLOCK when opening device during unsuspend, the same way we do it for initial opening
557c429 alsa: rework buffer/period configuration
71e066c simd: be more precise which SIMD optimizations we activate
1f0904b sample-util: add pa_convert_size() call for converting sizes between two sample specs
c2f1994 udev: ratelimit device initializations
12df686 ratelimit: allow non-static ratelimit structs
7cc100d padsp: properly return return values (llvm-clang-analyzer)
b51f5e5 pacat: don't convert stream name twice (llvm-clang-analyzer)
49bc6bc stripnul: initialize 'found' bool properly (llvm-clang-analyzer)
31d1d90 protocol-native: log explicitly when someone asks us to quit
31ae7de core-util: properly fill in exception array for pa_reset_sigs() (llvm-clang-analyzer)
1516b7c conf-parser: properly initialize variable we free() later (llvm-clang-analyzer)
3c9a09b cli-command: don't necessarily ovveride failure code of files (llvm-clang-analyzer)
5fd751f cli-command: modernizations
05506d7 utf8: minor simplification
f3be47f rtsp: document that rtsp_exec() needs fixing (llvm-clang-analyzer)
157ec79 hal: check properly for failure of libhal_find_device_by_capability() (llvm-clang-analyzer)
1380f18 blueooth: actually honour 'room' variable (llvm-clang-analyzer)
382eced alsa-sink: init after_avail earlier (llvm-clang-analyzer)
f504675 llvm-clang-analyzer: drop a few unnecessary assignments and other trivial fixes
b2606cf i18n: move \r out of translatable string
508c462 Merge remote branch 'wtay/optimize'
08a4d57 libpulse: allow invocation of pa_context_play_sample_with_proplist() with NULL proplist
f8f8cdc vala: reindent
b705a9b vector: don't try to build vector stuff on altivec
a02861e vala: s/PropList/Proplist/g since the C version does not use an underscore there
0b8f239 vala: add vala .vapi file for the PulseAudio APIs, but don't include them in the tarball for now
41a0dc1 volume: if pa_cvolume_set_{balance|fade}() is called with invalid fade/balance value log, but don't assert
d000dd6 volume: when passing NULL as channel map to pa_cvolume_scale_mask() handle this the same way as pa_cvolume_scale()
9755bfa volume: drop some redundant but expensive validity checks
cc6c4fe volume: add a couple of validity checks for pa_volume_t arguments
3bbc5e6 volume: fix definition of PA_VOLUME_MAX and introduce PA_VOLUME_INVALID and use it wherever applicable
7234994 x86: also call see init for SSE2
b5ac383 x86: only install some functions when SSE2
5cf0c1e introspect: rearrange order of functions a bit
e6a666d libpulse: introduce PA_BYTES_SNPRINT_MAX and make use of it wherever applicable
812be32 daemon: disable CPU load limiter by default
5daecea always-sink: rename null sink created to 'dummy sink' and make it translatable
0ad6a57 null: make name of null sink translatable
8cd635b alsa: add more input sources to path set
-----------------------------------------------------------------------

Summary of changes:
 man/pulse-daemon.conf.5.xml.in                     |    4 +-
 po/LINGUAS                                         |    3 +-
 po/as.po                                           |  124 +-
 po/bn_IN.po                                        |  139 +-
 po/ca.po                                           |  178 +-
 po/cs.po                                           |  625 ++++---
 po/de.po                                           |  124 +-
 po/de_CH.po                                        |  124 +-
 po/el.po                                           |  118 +-
 po/es.po                                           |  743 +++++---
 po/fi.po                                           |  124 +-
 po/fr.po                                           |  124 +-
 po/gu.po                                           |  171 +-
 po/hi.po                                           |  142 +-
 po/it.po                                           |  124 +-
 po/kn.po                                           |  142 +-
 po/ko.po                                           | 2010 --------------------
 po/ml.po                                           |  203 +-
 po/mr.po                                           |  136 +-
 po/nl.po                                           |  120 +-
 po/or.po                                           |  136 +-
 po/pa.po                                           |  270 ++-
 po/pl.po                                           |  120 +-
 po/pt.po                                           |  124 +-
 po/pt_BR.po                                        |  120 +-
 po/ru.po                                           | 2010 --------------------
 po/sr.po                                           |  120 +-
 po/sr at latin.po                                     |  120 +-
 po/sv.po                                           |  120 +-
 po/ta.po                                           |  145 +-
 po/te.po                                           |  152 +-
 po/uk.po                                           |  197 ++-
 po/zh_CN.po                                        |  124 +-
 pulseaudio.vapi                                    | 1463 ++++++++++++++
 src/daemon/daemon-conf.c                           |    2 +-
 src/daemon/daemon.conf.in                          |    2 +-
 src/modules/alsa/alsa-mixer.c                      |   25 +-
 src/modules/alsa/alsa-mixer.h                      |    2 +-
 src/modules/alsa/alsa-sink.c                       |   54 +-
 src/modules/alsa/alsa-source.c                     |   53 +-
 src/modules/alsa/alsa-util.c                       |  255 ++-
 src/modules/alsa/alsa-util.h                       |   10 +-
 .../alsa/mixer/paths/analog-input.conf.common      |    8 +
 src/modules/alsa/module-alsa-card.c                |    2 +-
 src/modules/bluetooth/module-bluetooth-device.c    |    9 +-
 src/modules/hal-util.c                             |    2 +-
 src/modules/module-always-sink.c                   |    6 +-
 src/modules/module-hal-detect.c                    |    4 +-
 src/modules/module-null-sink.c                     |    5 +-
 src/modules/module-tunnel.c                        |   15 +-
 src/modules/module-udev-detect.c                   |   47 +-
 src/modules/raop/base64.c                          |    1 -
 src/modules/rtp/rtsp_client.c                      |    2 +
 src/modules/x11/module-x11-publish.c               |    2 +-
 src/pulse/context.h                                |    1 -
 src/pulse/introspect.h                             |   12 +-
 src/pulse/sample.h                                 |    7 +
 src/pulse/scache.c                                 |   14 +-
 src/pulse/scache.h                                 |    4 +-
 src/pulse/stream.h                                 |    2 +-
 src/pulse/utf8.c                                   |    9 +-
 src/pulse/volume.c                                 |   60 +-
 src/pulse/volume.h                                 |    9 +-
 src/pulsecore/cli-command.c                        |   46 +-
 src/pulsecore/conf-parser.c                        |    2 +-
 src/pulsecore/core-scache.c                        |    4 +-
 src/pulsecore/core-util.c                          |   15 +-
 src/pulsecore/cpu-x86.c                            |    2 +-
 src/pulsecore/flist.c                              |   22 +-
 src/pulsecore/memblock.c                           |    2 +-
 src/pulsecore/memtrap.c                            |    4 +-
 src/pulsecore/pid.c                                |    4 +-
 src/pulsecore/protocol-esound.c                    |    4 +-
 src/pulsecore/protocol-native.c                    |    5 +-
 src/pulsecore/protocol-simple.c                    |    2 +-
 src/pulsecore/ratelimit.h                          |   18 +-
 src/pulsecore/remap_mmx.c                          |    8 +-
 src/pulsecore/remap_sse.c                          |   13 +-
 src/pulsecore/sample-util.c                        |   10 +
 src/pulsecore/sample-util.h                        |    2 +
 src/pulsecore/sconv_sse.c                          |   12 +-
 src/pulsecore/sink-input.c                         |    3 -
 src/pulsecore/socket-client.c                      |    4 +-
 src/pulsecore/svolume_mmx.c                        |    9 +-
 src/pulsecore/svolume_sse.c                        |   13 +-
 src/pulsecore/vector.h                             |    3 +-
 src/tests/stripnul.c                               |    2 +-
 src/utils/pacat.c                                  |    9 +-
 src/utils/pactl.c                                  |    4 +-
 src/utils/padsp.c                                  |    6 +-
 90 files changed, 5033 insertions(+), 6518 deletions(-)
 delete mode 100644 po/ko.po
 delete mode 100644 po/ru.po
 create mode 100644 pulseaudio.vapi

-----------------------------------------------------------------------

commit 8cd635bc614834c13d0f1c586d472b4a52b98664
Author: Lennart Poettering <lennart at poettering.net>
Date:   Thu Sep 3 04:45:55 2009 +0200

    alsa: add more input sources to path set

diff --git a/src/modules/alsa/mixer/paths/analog-input.conf.common b/src/modules/alsa/mixer/paths/analog-input.conf.common
index 6728a6a..87af38b 100644
--- a/src/modules/alsa/mixer/paths/analog-input.conf.common
+++ b/src/modules/alsa/mixer/paths/analog-input.conf.common
@@ -78,6 +78,10 @@ priority = 19
 name = input-microphone
 priority = 19
 
+[Option Input Source:Internal Mic]
+name = input-microphone
+priority = 19
+
 [Option Input Source:Line]
 name = input-linein
 priority = 18
@@ -90,6 +94,10 @@ priority = 18
 name = input-linein
 priority = 18
 
+[Option Input Source:Docking-Station]
+name = input-docking
+priority = 17
+
 ;;; ' Capture Source'
 
 [Element Capture Source]

commit 0ad6a574a1eb206f40a1eed3abab8b05a1b6f6ec
Author: Lennart Poettering <lennart at poettering.net>
Date:   Fri Sep 4 02:44:43 2009 +0200

    null: make name of null sink translatable

diff --git a/src/modules/module-null-sink.c b/src/modules/module-null-sink.c
index 36c50b0..74a2ebb 100644
--- a/src/modules/module-null-sink.c
+++ b/src/modules/module-null-sink.c
@@ -35,6 +35,7 @@
 #include <pulse/rtclock.h>
 #include <pulse/timeval.h>
 #include <pulse/xmalloc.h>
+#include <pulse/i18n.h>
 
 #include <pulsecore/macro.h>
 #include <pulsecore/sink.h>
@@ -51,7 +52,7 @@
 #include "module-null-sink-symdef.h"
 
 PA_MODULE_AUTHOR("Lennart Poettering");
-PA_MODULE_DESCRIPTION("Clocked NULL sink");
+PA_MODULE_DESCRIPTION(_("Clocked NULL sink"));
 PA_MODULE_VERSION(PACKAGE_VERSION);
 PA_MODULE_LOAD_ONCE(FALSE);
 PA_MODULE_USAGE(
@@ -287,7 +288,7 @@ int pa__init(pa_module*m) {
     pa_sink_new_data_set_name(&data, pa_modargs_get_value(ma, "sink_name", DEFAULT_SINK_NAME));
     pa_sink_new_data_set_sample_spec(&data, &ss);
     pa_sink_new_data_set_channel_map(&data, &map);
-    pa_proplist_sets(data.proplist, PA_PROP_DEVICE_DESCRIPTION, pa_modargs_get_value(ma, "description", "Null Output"));
+    pa_proplist_sets(data.proplist, PA_PROP_DEVICE_DESCRIPTION, pa_modargs_get_value(ma, "description", _("Null Output")));
     pa_proplist_sets(data.proplist, PA_PROP_DEVICE_CLASS, "abstract");
 
     if (pa_modargs_get_proplist(ma, "sink_properties", data.proplist, PA_UPDATE_REPLACE) < 0) {

commit 5daecea4dd4e0962e90e24a4ff594e2fa6a624a1
Author: Lennart Poettering <lennart at poettering.net>
Date:   Fri Sep 4 02:46:43 2009 +0200

    always-sink: rename null sink created to 'dummy sink' and make it translatable

diff --git a/src/modules/module-always-sink.c b/src/modules/module-always-sink.c
index aee1c65..3d7de9c 100644
--- a/src/modules/module-always-sink.c
+++ b/src/modules/module-always-sink.c
@@ -24,6 +24,7 @@
 #endif
 
 #include <pulse/xmalloc.h>
+#include <pulse/i18n.h>
 
 #include <pulsecore/core.h>
 #include <pulsecore/sink-input.h>
@@ -35,7 +36,7 @@
 #include "module-always-sink-symdef.h"
 
 PA_MODULE_AUTHOR("Colin Guthrie");
-PA_MODULE_DESCRIPTION("Always keeps at least one sink loaded even if it's a null one");
+PA_MODULE_DESCRIPTION(_("Always keeps at least one sink loaded even if it's a null one"));
 PA_MODULE_VERSION(PACKAGE_VERSION);
 PA_MODULE_LOAD_ONCE(TRUE);
 PA_MODULE_USAGE(
@@ -78,7 +79,8 @@ static void load_null_sink_if_needed(pa_core *c, pa_sink *sink, struct userdata*
 
     u->ignore = TRUE;
 
-    t = pa_sprintf_malloc("sink_name=%s", u->sink_name);
+    t = pa_sprintf_malloc("sink_name=%s sink_properties='device.description=\"%s\"'", u->sink_name,
+                          _("Dummy Output"));
     m = pa_module_load(c, "module-null-sink", t);
     u->null_module = m ? m->index : PA_INVALID_INDEX;
     pa_xfree(t);

commit 812be327836c93492ad389333bcc037566141eb8
Author: Lennart Poettering <lennart at poettering.net>
Date:   Fri Sep 4 02:47:48 2009 +0200

    daemon: disable CPU load limiter by default
    
    RLIMIT_RTTIME and rtki can do this job much better, so let's disable
    this by default.

diff --git a/man/pulse-daemon.conf.5.xml.in b/man/pulse-daemon.conf.5.xml.in
index 82c2b8e..e6b1e19 100644
--- a/man/pulse-daemon.conf.5.xml.in
+++ b/man/pulse-daemon.conf.5.xml.in
@@ -133,11 +133,11 @@ USA.
     </option>
 
     <option>
-      <p><opt>cpu-limit=</opt> If disabled d not install the CPU load
+      <p><opt>cpu-limit=</opt> If disabled do not install the CPU load
       limiter, even on platforms where it is supported. This option is
       useful when debugging/profiling PulseAudio to disable disturbing
       SIGXCPU signals. Takes a boolean argument, defaults to
-      <opt>yes</opt>. The <opt>--no-cpu-limit</opt> command line
+      <opt>no</opt>. The <opt>--no-cpu-limit</opt> command line
       argument takes precedence.</p>
     </option>
 
diff --git a/src/daemon/daemon-conf.c b/src/daemon/daemon-conf.c
index ec1ec5c..6e7926f 100644
--- a/src/daemon/daemon-conf.c
+++ b/src/daemon/daemon-conf.c
@@ -83,7 +83,7 @@ static const pa_daemon_conf default_conf = {
     .config_file = NULL,
     .use_pid_file = TRUE,
     .system_instance = FALSE,
-    .no_cpu_limit = FALSE,
+    .no_cpu_limit = TRUE,
     .disable_shm = FALSE,
     .lock_memory = FALSE,
     .default_n_fragments = 4,
diff --git a/src/daemon/daemon.conf.in b/src/daemon/daemon.conf.in
index d8b58d8..db2059e 100644
--- a/src/daemon/daemon.conf.in
+++ b/src/daemon/daemon.conf.in
@@ -28,7 +28,7 @@
 ; enable-shm = yes
 ; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB
 ; lock-memory = no
-; cpu-limit = yes
+; cpu-limit = no
 
 ; high-priority = yes
 ; nice-level = -11

commit e6a666d8d5fffbc9847b51b35349b88d74970079
Author: Lennart Poettering <lennart at poettering.net>
Date:   Sun Sep 6 22:33:04 2009 +0200

    libpulse: introduce PA_BYTES_SNPRINT_MAX and make use of it wherever applicable

diff --git a/src/pulse/context.h b/src/pulse/context.h
index cd12931..670b23e 100644
--- a/src/pulse/context.h
+++ b/src/pulse/context.h
@@ -267,7 +267,6 @@ pa_time_event* pa_context_rttime_new(pa_context *c, pa_usec_t usec, pa_time_even
     for mainloop->time_restart). \since 0.9.16 */
 void pa_context_rttime_restart(pa_context *c, pa_time_event *e, pa_usec_t usec);
 
-
 PA_C_DECL_END
 
 #endif
diff --git a/src/pulse/sample.h b/src/pulse/sample.h
index 53d7dea..7a4a55a 100644
--- a/src/pulse/sample.h
+++ b/src/pulse/sample.h
@@ -302,6 +302,13 @@ pa_sample_format_t pa_parse_sample_format(const char *format) PA_GCC_PURE;
 /** Pretty print a sample type specification to a string */
 char* pa_sample_spec_snprint(char *s, size_t l, const pa_sample_spec *spec);
 
+/** Maximum required string length for pa_bytes_snprint(). Please note
+ * that this value can change with any release without warning and
+ * without being considered API or ABI breakage. You should not use
+ * this definition anywhere where it might become part of an
+ * ABI. \since 0.9.16 */
+#define PA_BYTES_SNPRINT_MAX 11
+
 /** Pretty print a byte size value. (i.e. "2.5 MiB") */
 char* pa_bytes_snprint(char *s, size_t l, unsigned v);
 
diff --git a/src/pulse/stream.h b/src/pulse/stream.h
index 8a08421..21dd0a8 100644
--- a/src/pulse/stream.h
+++ b/src/pulse/stream.h
@@ -319,7 +319,7 @@ typedef struct pa_stream pa_stream;
 typedef void (*pa_stream_success_cb_t) (pa_stream*s, int success, void *userdata);
 
 /** A generic request callback */
-typedef void (*pa_stream_request_cb_t)(pa_stream *p, size_t bytes, void *userdata);
+typedef void (*pa_stream_request_cb_t)(pa_stream *p, size_t nbytes, void *userdata);
 
 /** A generic notification callback */
 typedef void (*pa_stream_notify_cb_t)(pa_stream *p, void *userdata);
diff --git a/src/pulsecore/cli-command.c b/src/pulsecore/cli-command.c
index 3c94960..143db3b 100644
--- a/src/pulsecore/cli-command.c
+++ b/src/pulsecore/cli-command.c
@@ -328,7 +328,7 @@ static int pa_cli_command_source_outputs(pa_core *c, pa_tokenizer *t, pa_strbuf
 static int pa_cli_command_stat(pa_core *c, pa_tokenizer *t, pa_strbuf *buf, pa_bool_t *fail) {
     char ss[PA_SAMPLE_SPEC_SNPRINT_MAX];
     char cm[PA_CHANNEL_MAP_SNPRINT_MAX];
-    char s[256];
+    char bytes[PA_BYTES_SNPRINT_MAX];
     const pa_mempool_stat *stat;
     unsigned k;
     pa_sink *def_sink;
@@ -352,22 +352,22 @@ static int pa_cli_command_stat(pa_core *c, pa_tokenizer *t, pa_strbuf *buf, pa_b
 
     pa_strbuf_printf(buf, "Memory blocks currently allocated: %u, size: %s.\n",
                      (unsigned) pa_atomic_load(&stat->n_allocated),
-                     pa_bytes_snprint(s, sizeof(s), (unsigned) pa_atomic_load(&stat->allocated_size)));
+                     pa_bytes_snprint(bytes, sizeof(bytes), (unsigned) pa_atomic_load(&stat->allocated_size)));
 
     pa_strbuf_printf(buf, "Memory blocks allocated during the whole lifetime: %u, size: %s.\n",
                      (unsigned) pa_atomic_load(&stat->n_accumulated),
-                     pa_bytes_snprint(s, sizeof(s), (unsigned) pa_atomic_load(&stat->accumulated_size)));
+                     pa_bytes_snprint(bytes, sizeof(bytes), (unsigned) pa_atomic_load(&stat->accumulated_size)));
 
     pa_strbuf_printf(buf, "Memory blocks imported from other processes: %u, size: %s.\n",
                      (unsigned) pa_atomic_load(&stat->n_imported),
-                     pa_bytes_snprint(s, sizeof(s), (unsigned) pa_atomic_load(&stat->imported_size)));
+                     pa_bytes_snprint(bytes, sizeof(bytes), (unsigned) pa_atomic_load(&stat->imported_size)));
 
     pa_strbuf_printf(buf, "Memory blocks exported to other processes: %u, size: %s.\n",
                      (unsigned) pa_atomic_load(&stat->n_exported),
-                     pa_bytes_snprint(s, sizeof(s), (unsigned) pa_atomic_load(&stat->exported_size)));
+                     pa_bytes_snprint(bytes, sizeof(bytes), (unsigned) pa_atomic_load(&stat->exported_size)));
 
     pa_strbuf_printf(buf, "Total sample cache size: %s.\n",
-                     pa_bytes_snprint(s, sizeof(s), (unsigned) pa_scache_total_size(c)));
+                     pa_bytes_snprint(bytes, sizeof(bytes), (unsigned) pa_scache_total_size(c)));
 
     pa_strbuf_printf(buf, "Default sample spec: %s\n",
                      pa_sample_spec_snprint(ss, sizeof(ss), &c->default_sample_spec));
diff --git a/src/pulsecore/memblock.c b/src/pulsecore/memblock.c
index 441b397..0e40d12 100644
--- a/src/pulsecore/memblock.c
+++ b/src/pulsecore/memblock.c
@@ -694,7 +694,7 @@ static void memblock_replace_import(pa_memblock *b) {
 
 pa_mempool* pa_mempool_new(pa_bool_t shared, size_t size) {
     pa_mempool *p;
-    char t1[64], t2[64];
+    char t1[PA_BYTES_SNPRINT_MAX], t2[PA_BYTES_SNPRINT_MAX];
 
     p = pa_xnew(pa_mempool, 1);
 
diff --git a/src/utils/pactl.c b/src/utils/pactl.c
index b8f4ea7..141ab5b 100644
--- a/src/utils/pactl.c
+++ b/src/utils/pactl.c
@@ -130,7 +130,7 @@ static void complete_action(void) {
 }
 
 static void stat_callback(pa_context *c, const pa_stat_info *i, void *userdata) {
-    char s[128];
+    char s[PA_BYTES_SNPRINT_MAX];
     if (!i) {
         pa_log(_("Failed to get statistics: %s"), pa_strerror(pa_context_errno(c)));
         quit(1);
@@ -598,7 +598,7 @@ static void get_source_output_info_callback(pa_context *c, const pa_source_outpu
 }
 
 static void get_sample_info_callback(pa_context *c, const pa_sample_info *i, int is_last, void *userdata) {
-    char t[32], s[PA_SAMPLE_SPEC_SNPRINT_MAX], cv[PA_CVOLUME_SNPRINT_MAX], cvdb[PA_SW_CVOLUME_SNPRINT_DB_MAX], cm[PA_CHANNEL_MAP_SNPRINT_MAX];
+    char t[PA_BYTES_SNPRINT_MAX], s[PA_SAMPLE_SPEC_SNPRINT_MAX], cv[PA_CVOLUME_SNPRINT_MAX], cvdb[PA_SW_CVOLUME_SNPRINT_DB_MAX], cm[PA_CHANNEL_MAP_SNPRINT_MAX];
     char *pl;
 
     if (is_last < 0) {

commit 5cf0c1e544a5fce97d514c793256b2e301277136
Author: Lennart Poettering <lennart at poettering.net>
Date:   Sun Sep 6 23:14:15 2009 +0200

    introspect: rearrange order of functions a bit

diff --git a/src/pulse/introspect.h b/src/pulse/introspect.h
index ee98210..68cfc87 100644
--- a/src/pulse/introspect.h
+++ b/src/pulse/introspect.h
@@ -331,6 +331,12 @@ pa_operation* pa_context_set_source_mute_by_index(pa_context *c, uint32_t idx, i
 /** Set the mute switch of a source device specified by its name */
 pa_operation* pa_context_set_source_mute_by_name(pa_context *c, const char *name, int mute, pa_context_success_cb_t cb, void *userdata);
 
+/** Suspend/Resume a source. \since 0.9.7 */
+pa_operation* pa_context_suspend_source_by_name(pa_context *c, const char *source_name, int suspend, pa_context_success_cb_t cb, void* userdata);
+
+/** Suspend/Resume a source. If idx is PA_INVALID_INDEX all sources will be suspended. \since 0.9.7 */
+pa_operation* pa_context_suspend_source_by_index(pa_context *c, uint32_t idx, int suspend, pa_context_success_cb_t cb, void* userdata);
+
 /** Change the profile of a source. \since 0.9.16 */
 pa_operation* pa_context_set_source_port_by_index(pa_context *c, uint32_t idx, const char*port, pa_context_success_cb_t cb, void *userdata);
 
@@ -557,12 +563,6 @@ pa_operation* pa_context_move_source_output_by_name(pa_context *c, uint32_t idx,
 /** Move the specified source output to a different source. \since 0.9.5 */
 pa_operation* pa_context_move_source_output_by_index(pa_context *c, uint32_t idx, uint32_t source_idx, pa_context_success_cb_t cb, void* userdata);
 
-/** Suspend/Resume a source. \since 0.9.7 */
-pa_operation* pa_context_suspend_source_by_name(pa_context *c, const char *source_name, int suspend, pa_context_success_cb_t cb, void* userdata);
-
-/** Suspend/Resume a source. If idx is PA_INVALID_INDEX all sources will be suspended. \since 0.9.7 */
-pa_operation* pa_context_suspend_source_by_index(pa_context *c, uint32_t idx, int suspend, pa_context_success_cb_t cb, void* userdata);
-
 /** Kill a source output. */
 pa_operation* pa_context_kill_source_output(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata);
 

commit b5ac3839e18524524fa3e0da7ec68dbce16e8203
Author: Wim Taymans <wim.taymans at collabora.co.uk>
Date:   Mon Sep 7 17:21:21 2009 +0200

    x86: only install some functions when SSE2
    
    Remap and volume functions use SSE2 instructions so only install them when SSE2
    is present.

diff --git a/src/pulsecore/remap_sse.c b/src/pulsecore/remap_sse.c
index bf22df7..dac072e 100644
--- a/src/pulsecore/remap_sse.c
+++ b/src/pulsecore/remap_sse.c
@@ -102,7 +102,7 @@
                 "4:                             \n\t"
 
 #if defined (__i386__) || defined (__amd64__)
-static void remap_mono_to_stereo_sse (pa_remap_t *m, void *dst, const void *src, unsigned n) {
+static void remap_mono_to_stereo_sse2 (pa_remap_t *m, void *dst, const void *src, unsigned n) {
     pa_reg_x86 temp, temp2;
 
     switch (*m->format) {
@@ -132,7 +132,7 @@ static void remap_mono_to_stereo_sse (pa_remap_t *m, void *dst, const void *src,
 }
 
 /* set the function that will execute the remapping based on the matrices */
-static void init_remap_sse (pa_remap_t *m) {
+static void init_remap_sse2 (pa_remap_t *m) {
     unsigned n_oc, n_ic;
 
     n_oc = m->o_ss->channels;
@@ -141,7 +141,7 @@ static void init_remap_sse (pa_remap_t *m) {
     /* find some common channel remappings, fall back to full matrix operation. */
     if (n_ic == 1 && n_oc == 2 &&
             m->map_table_f[0][0] >= 1.0 && m->map_table_f[1][0] >= 1.0) {
-        m->do_remap = (pa_do_remap_func_t) remap_mono_to_stereo_sse;
+        m->do_remap = (pa_do_remap_func_t) remap_mono_to_stereo_sse2;
         pa_log_info("Using SSE mono to stereo remapping");
     }
 }
@@ -151,6 +151,7 @@ void pa_remap_func_init_sse (pa_cpu_x86_flag_t flags) {
 #if defined (__i386__) || defined (__amd64__)
     pa_log_info("Initialising SSE optimized remappers.");
 
-    pa_set_init_remap_func ((pa_init_remap_func_t) init_remap_sse);
+    if (flags & PA_CPU_X86_SSE2)
+      pa_set_init_remap_func ((pa_init_remap_func_t) init_remap_sse2);
 #endif /* defined (__i386__) || defined (__amd64__) */
 }
diff --git a/src/pulsecore/svolume_sse.c b/src/pulsecore/svolume_sse.c
index 54af4a5..d9dcf47 100644
--- a/src/pulsecore/svolume_sse.c
+++ b/src/pulsecore/svolume_sse.c
@@ -75,7 +75,7 @@
       " por %%xmm5, "#s2"            \n\t"
 
 static void
-pa_volume_s16ne_sse (int16_t *samples, int32_t *volumes, unsigned channels, unsigned length)
+pa_volume_s16ne_sse2 (int16_t *samples, int32_t *volumes, unsigned channels, unsigned length)
 {
     pa_reg_x86 channel, temp;
 
@@ -155,7 +155,7 @@ pa_volume_s16ne_sse (int16_t *samples, int32_t *volumes, unsigned channels, unsi
 }
 
 static void
-pa_volume_s16re_sse (int16_t *samples, int32_t *volumes, unsigned channels, unsigned length)
+pa_volume_s16re_sse2 (int16_t *samples, int32_t *volumes, unsigned channels, unsigned length)
 {
     pa_reg_x86 channel, temp;
 
@@ -308,7 +308,9 @@ void pa_volume_func_init_sse (pa_cpu_x86_flag_t flags) {
     run_test ();
 #endif
 
-    pa_set_volume_func (PA_SAMPLE_S16NE,     (pa_do_volume_func_t) pa_volume_s16ne_sse);
-    pa_set_volume_func (PA_SAMPLE_S16RE,     (pa_do_volume_func_t) pa_volume_s16re_sse);
+    if (flags & PA_CPU_X86_SSE2) {
+      pa_set_volume_func (PA_SAMPLE_S16NE,     (pa_do_volume_func_t) pa_volume_s16ne_sse2);
+      pa_set_volume_func (PA_SAMPLE_S16RE,     (pa_do_volume_func_t) pa_volume_s16re_sse2);
+    }
 #endif /* defined (__i386__) || defined (__amd64__) */
 }

commit 723499439f575f744f07c85a42b47d95cdc98de6
Author: Wim Taymans <wim.taymans at collabora.co.uk>
Date:   Mon Sep 7 17:28:19 2009 +0200

    x86: also call see init for SSE2

diff --git a/src/pulsecore/cpu-x86.c b/src/pulsecore/cpu-x86.c
index 1ba9f1a..f194a60 100644
--- a/src/pulsecore/cpu-x86.c
+++ b/src/pulsecore/cpu-x86.c
@@ -115,7 +115,7 @@ void pa_cpu_init_x86 (void) {
         pa_remap_func_init_mmx (flags);
     }
 
-    if (flags & PA_CPU_X86_SSE) {
+    if (flags & (PA_CPU_X86_SSE | PA_CPU_X86_SSE2)) {
         pa_volume_func_init_sse (flags);
         pa_remap_func_init_sse (flags);
         pa_convert_func_init_sse (flags);

commit 3bbc5e6a4d0211d8cedd2fe6698c2e2c07d1c4b9
Author: Lennart Poettering <lennart at poettering.net>
Date:   Mon Sep 7 19:53:39 2009 +0200

    volume: fix definition of PA_VOLUME_MAX and introduce PA_VOLUME_INVALID and use it wherever applicable

diff --git a/src/pulse/scache.c b/src/pulse/scache.c
index 77f60d7..43dc529 100644
--- a/src/pulse/scache.c
+++ b/src/pulse/scache.c
@@ -187,7 +187,7 @@ pa_operation *pa_context_play_sample(pa_context *c, const char *name, const char
     pa_tagstruct_putu32(t, PA_INVALID_INDEX);
     pa_tagstruct_puts(t, dev);
 
-    if (volume == (pa_volume_t) -1 && c->version < 15)
+    if (volume == PA_VOLUME_INVALID && c->version < 15)
         volume = PA_VOLUME_NORM;
 
     pa_tagstruct_putu32(t, volume);
@@ -228,7 +228,7 @@ pa_operation *pa_context_play_sample_with_proplist(pa_context *c, const char *na
     pa_tagstruct_putu32(t, PA_INVALID_INDEX);
     pa_tagstruct_puts(t, dev);
 
-    if (volume == (pa_volume_t) -1 && c->version < 15)
+    if (volume == PA_VOLUME_INVALID && c->version < 15)
         volume = PA_VOLUME_NORM;
 
     pa_tagstruct_putu32(t, volume);
diff --git a/src/pulse/scache.h b/src/pulse/scache.h
index cd579d2..31cf7b0 100644
--- a/src/pulse/scache.h
+++ b/src/pulse/scache.h
@@ -101,7 +101,7 @@ pa_operation* pa_context_play_sample(
         pa_context *c               /**< Context */,
         const char *name            /**< Name of the sample to play */,
         const char *dev             /**< Sink to play this sample on */,
-        pa_volume_t volume          /**< Volume to play this sample with. Starting with 0.9.15 you may pass here (pa_volume_t) -1 which will leave the decision about the volume to the server side which is a good idea. */ ,
+        pa_volume_t volume          /**< Volume to play this sample with. Starting with 0.9.15 you may pass here PA_VOLUME_INVALID which will leave the decision about the volume to the server side which is a good idea. */ ,
         pa_context_success_cb_t cb  /**< Call this function after successfully starting playback, or NULL */,
         void *userdata              /**< Userdata to pass to the callback */);
 
@@ -113,7 +113,7 @@ pa_operation* pa_context_play_sample_with_proplist(
         pa_context *c                   /**< Context */,
         const char *name                /**< Name of the sample to play */,
         const char *dev                 /**< Sink to play this sample on */,
-        pa_volume_t volume              /**< Volume to play this sample with. Starting with 0.9.15 you may pass here (pa_volume_t) -1 which will leave the decision about the volume to the server side which is a good idea.  */ ,
+        pa_volume_t volume              /**< Volume to play this sample with. Starting with 0.9.15 you may pass here PA_VOLUME_INVALID which will leave the decision about the volume to the server side which is a good idea.  */ ,
         pa_proplist *proplist           /**< Property list for this sound. The property list of the cached entry will be merged into this property list */,
         pa_context_play_sample_cb_t cb  /**< Call this function after successfully starting playback, or NULL */,
         void *userdata                  /**< Userdata to pass to the callback */);
diff --git a/src/pulse/volume.c b/src/pulse/volume.c
index 234c3f7..4991e5c 100644
--- a/src/pulse/volume.c
+++ b/src/pulse/volume.c
@@ -64,7 +64,7 @@ pa_cvolume* pa_cvolume_init(pa_cvolume *a) {
     a->channels = 0;
 
     for (c = 0; c < PA_CHANNELS_MAX; c++)
-        a->values[c] = (pa_volume_t) -1;
+        a->values[c] = PA_VOLUME_INVALID;
 
     return a;
 }
@@ -307,7 +307,7 @@ char *pa_volume_snprint(char *s, size_t l, pa_volume_t v) {
 
     pa_init_i18n();
 
-    if (v == (pa_volume_t) -1) {
+    if (v == PA_VOLUME_INVALID) {
         pa_snprintf(s, l, _("(invalid)"));
         return s;
     }
@@ -357,7 +357,7 @@ char *pa_sw_volume_snprint_dB(char *s, size_t l, pa_volume_t v) {
 
     pa_init_i18n();
 
-    if (v == (pa_volume_t) -1) {
+    if (v == PA_VOLUME_INVALID) {
         pa_snprintf(s, l, _("(invalid)"));
         return s;
     }
@@ -459,7 +459,7 @@ int pa_cvolume_valid(const pa_cvolume *v) {
         return 0;
 
     for (c = 0; c < v->channels; c++)
-        if (v->values[c] == (pa_volume_t) -1)
+        if (v->values[c] == PA_VOLUME_INVALID)
             return 0;
 
     return 1;
@@ -679,7 +679,7 @@ pa_cvolume* pa_cvolume_scale(pa_cvolume *v, pa_volume_t max) {
     pa_assert(v);
 
     pa_return_val_if_fail(pa_cvolume_valid(v), NULL);
-    pa_return_val_if_fail(max != (pa_volume_t) -1, NULL);
+    pa_return_val_if_fail(max != PA_VOLUME_INVALID, NULL);
 
     t = pa_cvolume_max(v);
 
diff --git a/src/pulse/volume.h b/src/pulse/volume.h
index 543b0af..c964020 100644
--- a/src/pulse/volume.h
+++ b/src/pulse/volume.h
@@ -106,11 +106,14 @@ typedef uint32_t pa_volume_t;
 /** Normal volume (100%, 0 dB) */
 #define PA_VOLUME_NORM ((pa_volume_t) 0x10000U)
 
-/** Muted volume (0%, -inf dB) */
+/** Muted (minimal valid) volume (0%, -inf dB) */
 #define PA_VOLUME_MUTED ((pa_volume_t) 0U)
 
-/** Maximum volume we can store. \since 0.9.15 */
-#define PA_VOLUME_MAX ((pa_volume_t) UINT32_MAX)
+/** Maximum valid volume we can store. \since 0.9.15 */
+#define PA_VOLUME_MAX ((pa_volume_t) UINT32_MAX-1)
+
+/** Special 'invalid' volume. \since 0.9.16 */
+#define PA_VOLUME_INVALID ((pa_volume_t) UINT32_MAX)
 
 /** A structure encapsulating a per-channel volume */
 typedef struct pa_cvolume {
diff --git a/src/pulsecore/core-scache.c b/src/pulsecore/core-scache.c
index fde12ec..1fb81d0 100644
--- a/src/pulsecore/core-scache.c
+++ b/src/pulsecore/core-scache.c
@@ -335,12 +335,12 @@ int pa_scache_play_item(pa_core *c, const char *name, pa_sink *sink, pa_volume_t
 
     pass_volume = TRUE;
 
-    if (e->volume_is_set && volume != (pa_volume_t) -1) {
+    if (e->volume_is_set && volume != PA_VOLUME_INVALID) {
         pa_cvolume_set(&r, e->sample_spec.channels, volume);
         pa_sw_cvolume_multiply(&r, &r, &e->volume);
     } else if (e->volume_is_set)
         r = e->volume;
-    else if (volume != (pa_volume_t) -1)
+    else if (volume != PA_VOLUME_INVALID)
         pa_cvolume_set(&r, e->sample_spec.channels, volume);
     else
         pass_volume = FALSE;

commit cc6c4fe91f916451bbea9073619c11a6b122b684
Author: Lennart Poettering <lennart at poettering.net>
Date:   Mon Sep 7 19:59:18 2009 +0200

    volume: add a couple of validity checks for pa_volume_t arguments

diff --git a/src/pulse/volume.c b/src/pulse/volume.c
index 4991e5c..1bbb07f 100644
--- a/src/pulse/volume.c
+++ b/src/pulse/volume.c
@@ -201,6 +201,9 @@ pa_volume_t pa_cvolume_min_mask(const pa_cvolume *a, const pa_channel_map *cm, p
 
 pa_volume_t pa_sw_volume_multiply(pa_volume_t a, pa_volume_t b) {
 
+    pa_return_val_if_fail(a != PA_VOLUME_INVALID, PA_VOLUME_INVALID);
+    pa_return_val_if_fail(b != PA_VOLUME_INVALID, PA_VOLUME_INVALID);
+
     /* cbrt((a/PA_VOLUME_NORM)^3*(b/PA_VOLUME_NORM)^3)*PA_VOLUME_NORM = a*b/PA_VOLUME_NORM */
 
     return (pa_volume_t) (((uint64_t) a * (uint64_t) b + (uint64_t) PA_VOLUME_NORM / 2ULL) / (uint64_t) PA_VOLUME_NORM);
@@ -208,6 +211,9 @@ pa_volume_t pa_sw_volume_multiply(pa_volume_t a, pa_volume_t b) {
 
 pa_volume_t pa_sw_volume_divide(pa_volume_t a, pa_volume_t b) {
 
+    pa_return_val_if_fail(a != PA_VOLUME_INVALID, PA_VOLUME_INVALID);
+    pa_return_val_if_fail(b != PA_VOLUME_INVALID, PA_VOLUME_INVALID);
+
     if (b <= PA_VOLUME_MUTED)
         return 0;
 
@@ -232,6 +238,8 @@ pa_volume_t pa_sw_volume_from_dB(double dB) {
 
 double pa_sw_volume_to_dB(pa_volume_t v) {
 
+    pa_return_val_if_fail(v != PA_VOLUME_INVALID, PA_DECIBEL_MININFTY);
+
     if (v <= PA_VOLUME_MUTED)
         return PA_DECIBEL_MININFTY;
 
@@ -259,6 +267,8 @@ pa_volume_t pa_sw_volume_from_linear(double v) {
 double pa_sw_volume_to_linear(pa_volume_t v) {
     double f;
 
+    pa_return_val_if_fail(v != PA_VOLUME_INVALID, 0.0);
+
     if (v <= PA_VOLUME_MUTED)
         return 0.0;
 
@@ -374,6 +384,7 @@ int pa_cvolume_channels_equal_to(const pa_cvolume *a, pa_volume_t v) {
     pa_assert(a);
 
     pa_return_val_if_fail(pa_cvolume_valid(a), 0);
+    pa_return_val_if_fail(v != PA_VOLUME_INVALID, 0);
 
     for (c = 0; c < a->channels; c++)
         if (a->values[c] != v)
@@ -407,6 +418,7 @@ pa_cvolume *pa_sw_cvolume_multiply_scalar(pa_cvolume *dest, const pa_cvolume *a,
     pa_assert(a);
 
     pa_return_val_if_fail(pa_cvolume_valid(a), NULL);
+    pa_return_val_if_fail(b != PA_VOLUME_INVALID, NULL);
 
     for (i = 0; i < a->channels; i++)
         dest->values[i] = pa_sw_volume_multiply(a->values[i], b);
@@ -441,6 +453,7 @@ pa_cvolume *pa_sw_cvolume_divide_scalar(pa_cvolume *dest, const pa_cvolume *a, p
     pa_assert(a);
 
     pa_return_val_if_fail(pa_cvolume_valid(a), NULL);
+    pa_return_val_if_fail(b != PA_VOLUME_INVALID, NULL);
 
     for (i = 0; i < a->channels; i++)
         dest->values[i] = pa_sw_volume_divide(a->values[i], b);
@@ -827,6 +840,7 @@ pa_cvolume* pa_cvolume_set_position(
 
     pa_return_val_if_fail(pa_cvolume_compatible_with_channel_map(cv, map), NULL);
     pa_return_val_if_fail(t < PA_CHANNEL_POSITION_MAX, NULL);
+    pa_return_val_if_fail(v != PA_VOLUME_INVALID, NULL);
 
     for (c = 0; c < map->channels; c++)
         if (map->map[c] == t) {
@@ -883,6 +897,7 @@ pa_cvolume* pa_cvolume_inc(pa_cvolume *v, pa_volume_t inc) {
     pa_assert(v);
 
     pa_return_val_if_fail(pa_cvolume_valid(v), NULL);
+    pa_return_val_if_fail(inc != PA_VOLUME_INVALID, NULL);
 
     m = pa_cvolume_max(v);
 
@@ -900,6 +915,7 @@ pa_cvolume* pa_cvolume_dec(pa_cvolume *v, pa_volume_t dec) {
     pa_assert(v);
 
     pa_return_val_if_fail(pa_cvolume_valid(v), NULL);
+    pa_return_val_if_fail(dec != PA_VOLUME_INVALID, NULL);
 
     m = pa_cvolume_max(v);
 

commit 9755bfa58af0c27b478d5d8cc56013527a6f660b
Author: Lennart Poettering <lennart at poettering.net>
Date:   Mon Sep 7 20:00:02 2009 +0200

    volume: drop some redundant but expensive validity checks

diff --git a/src/pulse/volume.c b/src/pulse/volume.c
index 1bbb07f..1b26cc7 100644
--- a/src/pulse/volume.c
+++ b/src/pulse/volume.c
@@ -510,8 +510,6 @@ pa_cvolume *pa_cvolume_remap(pa_cvolume *v, const pa_channel_map *from, const pa
     pa_assert(from);
     pa_assert(to);
 
-    pa_return_val_if_fail(pa_cvolume_valid(v), NULL);
-    pa_return_val_if_fail(pa_channel_map_valid(from), NULL);
     pa_return_val_if_fail(pa_channel_map_valid(to), NULL);
     pa_return_val_if_fail(pa_cvolume_compatible_with_channel_map(v, from), NULL);
 
@@ -613,8 +611,6 @@ float pa_cvolume_get_balance(const pa_cvolume *v, const pa_channel_map *map) {
     pa_assert(v);
     pa_assert(map);
 
-    pa_return_val_if_fail(pa_cvolume_valid(v), 0.0f);
-    pa_return_val_if_fail(pa_channel_map_valid(map), 0.0f);
     pa_return_val_if_fail(pa_cvolume_compatible_with_channel_map(v, map), 0.0f);
 
     if (!pa_channel_map_can_balance(map))
@@ -711,8 +707,8 @@ pa_cvolume* pa_cvolume_scale_mask(pa_cvolume *v, pa_volume_t max, pa_channel_map
 
     pa_assert(v);
 
-    pa_return_val_if_fail(pa_cvolume_valid(v), NULL);
     pa_return_val_if_fail(max != (pa_volume_t) -1, NULL);
+    pa_return_val_if_fail(pa_cvolume_compatible_with_channel_map(v, cm), NULL);
 
     t = pa_cvolume_max_mask(v, cm, mask);
 
@@ -763,8 +759,6 @@ float pa_cvolume_get_fade(const pa_cvolume *v, const pa_channel_map *map) {
     pa_assert(v);
     pa_assert(map);
 
-    pa_return_val_if_fail(pa_cvolume_valid(v), 0.0f);
-    pa_return_val_if_fail(pa_channel_map_valid(map), 0.0f);
     pa_return_val_if_fail(pa_cvolume_compatible_with_channel_map(v, map), 0.0f);
 
     if (!pa_channel_map_can_fade(map))

commit d000dd6f4b976894558613f69bdad2974cce7d1e
Author: Lennart Poettering <lennart at poettering.net>
Date:   Mon Sep 7 20:00:58 2009 +0200

    volume: when passing NULL as channel map to pa_cvolume_scale_mask() handle this the same way as pa_cvolume_scale()

diff --git a/src/pulse/volume.c b/src/pulse/volume.c
index 1b26cc7..8a28b33 100644
--- a/src/pulse/volume.c
+++ b/src/pulse/volume.c
@@ -707,7 +707,11 @@ pa_cvolume* pa_cvolume_scale_mask(pa_cvolume *v, pa_volume_t max, pa_channel_map
 
     pa_assert(v);
 
-    pa_return_val_if_fail(max != (pa_volume_t) -1, NULL);
+    pa_return_val_if_fail(max != PA_VOLUME_INVALID, NULL);
+
+    if (!cm)
+        return pa_cvolume_scale(v, max);
+
     pa_return_val_if_fail(pa_cvolume_compatible_with_channel_map(v, cm), NULL);
 
     t = pa_cvolume_max_mask(v, cm, mask);

commit 41a0dc1e9987ae00b605fd88bf887becbdf097d5
Author: Lennart Poettering <lennart at poettering.net>
Date:   Mon Sep 7 20:08:07 2009 +0200

    volume: if pa_cvolume_set_{balance|fade}() is called with invalid fade/balance value log, but don't assert

diff --git a/src/pulse/volume.c b/src/pulse/volume.c
index 8a28b33..47bccad 100644
--- a/src/pulse/volume.c
+++ b/src/pulse/volume.c
@@ -642,12 +642,10 @@ pa_cvolume* pa_cvolume_set_balance(pa_cvolume *v, const pa_channel_map *map, flo
 
     pa_assert(map);
     pa_assert(v);
-    pa_assert(new_balance >= -1.0f);
-    pa_assert(new_balance <= 1.0f);
 
-    pa_return_val_if_fail(pa_cvolume_valid(v), NULL);
-    pa_return_val_if_fail(pa_channel_map_valid(map), NULL);
     pa_return_val_if_fail(pa_cvolume_compatible_with_channel_map(v, map), NULL);
+    pa_return_val_if_fail(new_balance >= -1.0f, NULL);
+    pa_return_val_if_fail(new_balance <= 1.0f, NULL);
 
     if (!pa_channel_map_can_balance(map))
         return v;
@@ -785,12 +783,10 @@ pa_cvolume* pa_cvolume_set_fade(pa_cvolume *v, const pa_channel_map *map, float
 
     pa_assert(map);
     pa_assert(v);
-    pa_assert(new_fade >= -1.0f);
-    pa_assert(new_fade <= 1.0f);
 
-    pa_return_val_if_fail(pa_cvolume_valid(v), NULL);
-    pa_return_val_if_fail(pa_channel_map_valid(map), NULL);
     pa_return_val_if_fail(pa_cvolume_compatible_with_channel_map(v, map), NULL);
+    pa_return_val_if_fail(new_fade >= -1.0f, NULL);
+    pa_return_val_if_fail(new_fade <= 1.0f, NULL);
 
     if (!pa_channel_map_can_fade(map))
         return v;

commit 0b8f23994bff192782bcb91f75133821ce205805
Author: Lennart Poettering <lennart at poettering.net>
Date:   Mon Sep 7 20:24:59 2009 +0200

    vala: add vala .vapi file for the PulseAudio APIs, but don't include them in the tarball for now

diff --git a/pulseaudio.vapi b/pulseaudio.vapi
new file mode 100644
index 0000000..47a57ab
--- /dev/null
+++ b/pulseaudio.vapi
@@ -0,0 +1,1463 @@
+/*-*- Mode: vala; c-basic-offset: 8 -*-*/
+
+/***
+  This file is part of PulseAudio.
+
+  Copyright 2009 Lennart Poettering
+
+  PulseAudio is free software; you can redistribute it and/or modify
+  it under the terms of the GNU Lesser General Public License as published
+  by the Free Software Foundation; either version 2.1 of the License,
+  or (at your option) any later version.
+
+  PulseAudio is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public License
+  along with PulseAudio; if not, write to the Free Software
+  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+  USA.
+***/
+
+using GLib;
+using Posix;
+
+[CCode (cheader_filename="pulse/pulseaudio.h")]
+namespace Pulse {
+
+        [CCode (cname="pa_get_library_version")]
+		public unowned string get_library_version();
+
+		[CCode (cname="PA_API_VERSION")]
+		public const int API_VERSION;
+
+		[CCode (cname="PA_PROTOCOL_VERSION")]
+		public const int PROTOCOL_VERSION;
+
+		[CCode (cname="PA_MAJOR")]
+		public const int MAJOR;
+
+		[CCode (cname="PA_MINOR")]
+		public const int MINOR;
+
+		[CCode (cname="PA_MICRO")]
+		public const int MICRO;
+
+		[CCode (cname="PA_CHECK_VERSION")]
+		public bool CHECK_VERSION(int major, int minor, int micro);
+
+		[CCode (cname="INVALID_INDEX")]
+		public const uint32 INVALID_INDEX;
+
+		[CCode (cname="pa_free_cb_t")]
+		public delegate void FreeCb(void *p);
+
+        [CCode (cname="pa_sample_format_t", cprefix="PA_SAMPLE_")]
+        public enum SampleFormat {
+                U8,
+                ALAW,
+                ULAW,
+                S16LE,
+                S16BE,
+                FLOAT32LE,
+                FLOAT32BE,
+                S32LE,
+                S32BE,
+                S24LE,
+                S24BE,
+                S24_32LE,
+                S24_32BE,
+                MAX,
+                S16NE,
+                S16RE,
+                FLOAT32NE,
+                FLOAT32RE,
+                S32NE,
+                S32RE,
+                S24NE,
+                S24RE,
+                S24_32NE,
+                S24_32RE;
+
+				[CCode (cname="pa_sample_size_of_format")]
+				public size_t size();
+
+				[CCode (cname="pa_sample_format_to_string")]
+				public unowned string? to_string();
+
+				[CCode (cname="pa_sample_format_is_le")]
+				public int is_le();
+
+				[CCode (cname="pa_sample_format_is_be")]
+				public int is_be();
+
+				[CCode (cname="pa_sample_format_is_ne")]
+				public int is_ne();
+
+				[CCode (cname="pa_sample_format_is_re")]
+				public int is_re();
+
+				[CCode (cname="pa_parse_sample_format")]
+				public static SampleFormat parse(string b);
+        }
+
+        [CCode (cname="pa_usec_t")]
+		public struct usec : uint64 {
+		}
+
+        [CCode (cname="pa_sample_spec")]
+		public struct SampleSpec {
+				public SampleFormat format;
+				public uint32 rate;
+				public uint8 channels;
+
+				[CCode (cname="PA_SAMPLE_SPEC_SNPRINT_MAX")]
+				public static const size_t SNPRINT_MAX;
+
+				[CCode (cname="pa_bytes_per_second")]
+				public size_t bytes_per_second();
+
+				[CCode (cname="pa_frame_size")]
+				public size_t frame_size();
+
+				[CCode (cname="pa_sample_size")]
+				public size_t sample_size();
+
+				[CCode (cname="pa_bytes_to_usec", instance_pos=1.1)]
+				public usec bytes_to_usec(size_t size);
+
+				[CCode (cname="pa_usec_to_bytes", instance_pos=1.1)]
+				public size_t usec_to_bytes(usec u);
+
+				[CCode (cname="pa_sample_spec_init")]
+				public unowned SampleSpec? init();
+
+				[CCode (cname="pa_sample_spec_valid")]
+				public bool valid();
+
+				[CCode (cname="pa_sample_spec_equal")]
+				public bool equal(SampleSpec other);
+
+				[CCode (cname="pa_sample_spec_snprint", instance_pos=3.1)]
+				public unowned string snprint(char[] buf);
+
+				public string sprint() {
+						var buffer = new char[SNPRINT_MAX];
+						this.snprint(buffer);
+						return (string) buffer;
+				}
+
+				public string to_string() {
+						return sprint();
+				}
+
+				[CCode (cname="pa_sample_spec_init")]
+				SampleSpec();
+		}
+
+		// [CCode (cname="PA_BYTES_SNPRINT_MAX")]
+		[CCode (cname="PA_SAMPLE_SPEC_SNPRINT_MAX")]
+		public const size_t BYTES_SNPRINT_MAX;
+
+		[CCode (cname="pa_bytes_snprint")]
+		public unowned string bytes_snprint(char[] buf, uint bytes);
+
+		public string bytes_sprint(uint bytes) {
+				var buffer = new char[BYTES_SNPRINT_MAX];
+				bytes_snprint(buffer, bytes);
+				return (string) buffer;
+		}
+
+		[CCode (cname="pa_volume_t")]
+		public struct Volume : uint32 {
+
+				[CCode (cname="PA_SW_VOLUME_SNPRINT_DB_MAX")]
+				public static const size_t SW_SNPRINT_DB_MAX;
+
+				[CCode (cname="PA_VOLUME_SNPRINT_MAX")]
+				public static const size_t SNPRINT_MAX;
+
+				[CCode (cname="PA_VOLUME_MAX")]
+				public static const Volume MAX;
+
+				[CCode (cname="PA_VOLUME_NORM")]
+				public static const Volume NORM;
+
+				[CCode (cname="PA_VOLUME_MUTED")]
+				public static const Volume MUTED;
+
+				// [CCode (cname="PA_VOLUME_INVALID")]
+				[CCode (cname="PA_VOLUME_MAX")]
+				public static const Volume INVALID;
+
+				[CCode (cname="pa_volume_snprint", instance_pos = 3.1)]
+				public unowned string snprint(char[] s);
+
+				public string sprint() {
+						var buffer = new char[SNPRINT_MAX];
+						this.snprint(buffer);
+						return (string) buffer;
+				}
+
+				public string to_string() {
+						return sprint();
+				}
+
+				[CCode (cname="pa_sw_volume_snprint_dB", instance_pos = 3.1)]
+				public unowned string sw_snprint_dB(char[] s);
+
+				public string sw_sprint_dB() {
+						var buffer = new char[SW_SNPRINT_DB_MAX];
+						this.sw_snprint_dB(buffer);
+						return (string) buffer;
+				}
+
+				[CCode (cname="pa_sw_volume_multiply")]
+				public Volume sw_multiply(Volume other);
+
+				[CCode (cname="pa_sw_volume_divide")]
+				public Volume sw_divide(Volume other);
+
+				[CCode (cname="pa_sw_volume_from_dB")]
+				public static Volume sw_from_dB(double f);
+
+				[CCode (cname="pa_sw_volume_to_dB")]
+				public double sw_to_dB();
+
+				[CCode (cname="pa_sw_volume_from_linear")]
+				public static Volume sw_from_linear(double f);
+
+				[CCode (cname="pa_sw_volume_to_linear")]
+				public double sw_to_linear();
+		}
+
+		[CCode (cname="PA_DECIBEL_MININFTY")]
+		public const double DECIBEL_MININFTY;
+
+		[CCode (cname="PA_CHANNELS_MAX")]
+		public const int CHANNELS_MAX;
+
+		[CCode (cname="PA_CHANNELS_MAX")]
+		public const int RATE_MAX;
+
+		[CCode (cname="pa_cvolume")]
+		public struct CVolume {
+				public uint8 channels;
+				public Volume values[];
+
+				[CCode (cname="PA_SW_CVOLUME_SNPRINT_DB_MAX")]
+				public static const size_t SW_SNPRINT_DB_MAX;
+
+				[CCode (cname="PA_CVOLUME_SNPRINT_MAX")]
+				public static const size_t SNPRINT_MAX;
+
+				[CCode (cname="pa_cvolume_equal")]
+				public bool equal(CVolume other);
+
+				[CCode (cname="pa_cvolume_init")]
+				public unowned CVolume? init();
+
+				[CCode (cname="pa_cvolume_reset")]
+				public unowned CVolume? reset(uint8 channels);
+
+				[CCode (cname="pa_cvolume_mute")]
+				public unowned CVolume? mute(uint8 channels);
+
+				[CCode (cname="pa_cvolume_snprint", instance_pos = 3.1)]
+				public unowned string snprint(char[] s);
+
+				public string sprint() {
+						var buffer = new char[SNPRINT_MAX];
+						this.snprint(buffer);
+						return (string) buffer;
+				}
+
+				public string to_string() {
+						return sprint();
+				}
+
+				[CCode (cname="pa_sw_cvolume_snprint_dB", instance_pos = 3.1)]
+				public unowned string sw_snprint_dB(char [] s);
+
+				public string sw_sprint_dB() {
+						var buffer = new char[SW_SNPRINT_DB_MAX];
+						this.sw_snprint_dB(buffer);
+						return (string) buffer;
+				}
+
+				[CCode (cname="pa_cvolume_init")]
+				public CVolume();
+
+				[CCode (cname="pa_cvolume_avg")]
+				public Volume avg();
+
+				[CCode (cname="pa_cvolume_max")]
+				public Volume max();
+
+				[CCode (cname="pa_cvolume_min")]
+				public Volume min();
+
+				[CCode (cname="pa_cvolume_avg_mask")]
+				public Volume avg_mask(ChannelMap map, ChannelPositionMask mask);
+
+				[CCode (cname="pa_cvolume_max_mask")]
+				public Volume max_mask(ChannelMap map, ChannelPositionMask mask);
+
+				[CCode (cname="pa_cvolume_min_mask")]
+				public Volume min_mask(ChannelMap map, ChannelPositionMask mask);
+
+				[CCode (cname="pa_cvolume_valid")]
+				public bool valid();
+
+				[CCode (cname="pa_cvolume_channels_equal_to")]
+				public bool channels_equal_to(Volume other);
+
+				[CCode (cname="pa_cvolume_is_muted")]
+				public bool is_muted();
+
+				[CCode (cname="pa_cvolume_is_norm")]
+				public bool is_norm();
+
+				[CCode (cname="pa_sw_cvolume_multiply")]
+				public unowned CVolume? multiply(CVolume other);
+
+				[CCode (cname="pa_sw_cvolume_divide")]
+				public unowned CVolume? divide(CVolume other);
+
+				[CCode (cname="pa_sw_cvolume_multiply_scalar")]
+				public unowned CVolume? multiply_scalar(Volume other);
+
+				[CCode (cname="pa_sw_cvolume_divide_scalar")]
+				public unowned CVolume? divide_scalar(Volume other);
+
+				[CCode (cname="pa_cvolume_remap")]
+				public unowned CVolume? remap(ChannelMap from, ChannelMap to);
+
+				[CCode (cname="pa_cvolume_compatible")]
+				public bool compatible(SampleSpec ss);
+
+				[CCode (cname="pa_cvolume_compatible_with_channel_map")]
+				public bool compatible_with_channel_map(ChannelMap cm);
+
+				[CCode (cname="pa_cvolume_get_balance")]
+				public float get_balance(ChannelMap map);
+
+				[CCode (cname="pa_cvolume_set_balance")]
+				public unowned CVolume? set_balance(ChannelMap map, float b);
+
+				[CCode (cname="pa_cvolume_get_fade")]
+				public float get_fade(ChannelMap map);
+
+				[CCode (cname="pa_cvolume_set_fade")]
+				public unowned CVolume? set_fade(ChannelMap map, float f);
+
+				[CCode (cname="pa_cvolume_scale")]
+				public unowned CVolume? scale(Volume max);
+
+				[CCode (cname="pa_cvolume_scale_mask")]
+				public unowned CVolume? scale_mask(Volume max, ChannelMap map, ChannelPositionMask mask);
+
+				[CCode (cname="pa_cvolume_set_position")]
+				public unowned CVolume? set_position(ChannelMap map, ChannelPosition p, Volume v);
+
+				[CCode (cname="pa_cvolume_get_position")]
+				public Volume get_position(ChannelMap map, ChannelPosition p);
+
+				[CCode (cname="pa_cvolume_merge")]
+				public unowned CVolume? merge(CVolume other);
+
+				[CCode (cname="pa_cvolume_inc")]
+				public unowned CVolume? inc(Volume plus = 1);
+
+				[CCode (cname="pa_cvolume_dec")]
+				public unowned CVolume? dec(Volume minus = 1);
+		}
+
+		[CCode (cname="pa_channel_map")]
+		public struct ChannelMap {
+				public uint8 channels;
+				public ChannelPosition map[];
+
+				[CCode (cname="PA_CHANNEL_MAP_SNPRINT_MAX")]
+				public static const size_t SNPRINT_MAX;
+
+				[CCode (cname="pa_channel_map_init")]
+				public ChannelMap();
+
+				[CCode (cname="pa_channel_map_init")]
+				public unowned ChannelMap? init();
+
+				[CCode (cname="pa_channel_map_init_mono")]
+				public unowned ChannelMap? init_mono();
+
+				[CCode (cname="pa_channel_map_init_stereo")]
+				public unowned ChannelMap? init_stereo();
+
+				[CCode (cname="pa_channel_map_init_auto")]
+				public unowned ChannelMap? init_auto(uint8 channels, ChannelMapDef def = ChannelMapDef.DEFAULT);
+
+				[CCode (cname="pa_channel_map_init_extend")]
+				public unowned ChannelMap? init_extend(uint8 channels, ChannelMapDef def = ChannelMapDef.DEFAULT);
+
+				[CCode (cname="pa_channel_map_snprint", instance_pos = 3.1)]
+				public unowned string snprint(char[] s);
+
+				public string sprint() {
+						var buffer = new char[SNPRINT_MAX];
+						this.snprint(buffer);
+						return (string) buffer;
+				}
+
+				public string to_string() {
+						return sprint();
+				}
+
+				[CCode (cname="pa_channel_map_parse")]
+				public unowned ChannelMap? parse(string s);
+
+				[CCode (cname="pa_channel_map_equal")]
+				public bool equal(ChannelMap other);
+
+				[CCode (cname="pa_channel_map_superset")]
+				public bool superset(ChannelMap other);
+
+				[CCode (cname="pa_channel_map_valid")]
+				public bool valid();
+
+				[CCode (cname="pa_channel_map_compatible")]
+				public bool compatible(SampleSpec ss);
+
+				[CCode (cname="pa_channel_map_can_balance")]
+				public bool can_balance();
+
+				[CCode (cname="pa_channel_map_can_fade")]
+				public bool can_fade();
+
+				[CCode (cname="pa_channel_map_to_name")]
+				public unowned string? to_name();
+
+				[CCode (cname="pa_channel_map_to_pretty_name")]
+				public unowned string? to_pretty_name();
+
+				[CCode (cname="pa_channel_map_has_position")]
+				public bool has_position(ChannelPosition p);
+
+				[CCode (cname="pa_channel_map_mask")]
+				public ChannelPositionMask mask();
+		}
+
+		[CCode (cname="pa_channel_position_mask_t")]
+		public struct ChannelPositionMask : uint64 {
+		}
+
+		[CCode (cname="pa_channel_position_t", cprefix="PA_CHANNEL_POSITION_")]
+		public enum ChannelPosition {
+				INVALID,
+				MONO,
+				FRONT_LEFT,
+				FRONT_RIGHT,
+				FRONT_CENTER,
+				REAR_CENTER,
+				REAR_LEFT,
+				REAR_RIGHT,
+				LFE,
+				FRONT_LEFT_OF_CENTER,
+				FRONT_RIGHT_OF_CENTER,
+				SIDE_LEFT,
+				SIDE_RIGHT,
+				TOP_CENTER,
+				AUX0,
+				AUX1,
+				AUX2,
+				AUX3,
+				AUX4,
+				AUX5,
+				AUX6,
+				AUX7,
+				AUX8,
+				AUX9,
+				AUX10,
+				AUX11,
+				AUX12,
+				AUX13,
+				AUX14,
+				AUX15,
+				AUX16,
+				AUX17,
+				AUX18,
+				AUX19,
+				AUX20,
+				AUX21,
+				AUX22,
+				AUX23,
+				AUX24,
+				AUX25,
+				AUX26,
+				AUX27,
+				AUX28,
+				AUX29,
+				AUX30,
+				AUX31,
+				MAX;
+
+				[CCode (cname="PA_CHANNEL_POSITION_MASK")]
+				public ChannelPositionMask mask();
+
+				[CCode (cname="pa_channel_position_to_string")]
+				public unowned string? to_string();
+
+				[CCode (cname="pa_channel_position_to_pretty_string")]
+				public unowned string? to_pretty_string();
+
+				[CCode (cname="pa_channel_position_from_string")]
+				public static ChannelPosition from_string(string s);
+		}
+
+		[CCode (cname="pa_channel_map_def_t", cprefix="PA_CHANNEL_MAP_")]
+		public enum ChannelMapDef {
+				AIFF,
+				WAVEEX,
+				AUX,
+				DEFAULT,
+
+				[CCode (cname="PA_CHANNEL_MAP_DEF_MAX")]
+				MAX
+		}
+
+		[Compact]
+		[CCode (cname="pa_proplist", cprefix="pa_proplist_", free_function="pa_proplist_free")]
+		public class PropList {
+
+				[CCode (cname="PA_PROP_MEDIA_NAME")]
+				public static const string PROP_MEDIA_NAME;
+				[CCode (cname="PA_PROP_MEDIA_TITLE")]
+				public static const string PROP_MEDIA_TITLE;
+				[CCode (cname="PA_PROP_MEDIA_ARTIST")]
+				public static const string PROP_MEDIA_ARTIST;
+				[CCode (cname="PA_PROP_MEDIA_COPYRIGHT")]
+				public static const string PROP_MEDIA_COPYRIGHT;
+				[CCode (cname="PA_PROP_MEDIA_SOFTWARE")]
+				public static const string PROP_MEDIA_SOFTWARE;
+				[CCode (cname="PA_PROP_MEDIA_LANGUAGE")]
+				public static const string PROP_MEDIA_LANGUAGE;
+				[CCode (cname="PA_PROP_MEDIA_FILENAME")]
+				public static const string PROP_MEDIA_FILENAME;
+				[CCode (cname="PA_PROP_MEDIA_ICON_NAME")]
+				public static const string PROP_MEDIA_ICON_NAME;
+				[CCode (cname="PA_PROP_MEDIA_ROLE")]
+				public static const string PROP_MEDIA_ROLE;
+				[CCode (cname="PA_PROP_EVENT_ID")]
+				public static const string PROP_EVENT_ID;
+				[CCode (cname="PA_PROP_EVENT_DESCRIPTION")]
+				public static const string PROP_EVENT_DESCRIPTION;
+				[CCode (cname="PA_PROP_EVENT_MOUSE_X")]
+				public static const string PROP_EVENT_MOUSE_X;
+				[CCode (cname="PA_PROP_EVENT_MOUSE_Y")]
+				public static const string PROP_EVENT_MOUSE_Y;
+				[CCode (cname="PA_PROP_EVENT_MOUSE_HPOS")]
+				public static const string PROP_EVENT_MOUSE_HPOS;
+				[CCode (cname="PA_PROP_EVENT_MOUSE_VPOS")]
+				public static const string PROP_EVENT_MOUSE_VPOS;
+				[CCode (cname="PA_PROP_EVENT_MOUSE_BUTTON")]
+				public static const string PROP_EVENT_MOUSE_BUTTON;
+				[CCode (cname="PA_PROP_WINDOW_NAME")]
+				public static const string PROP_WINDOW_NAME;
+				[CCode (cname="PA_PROP_WINDOW_ID")]
+				public static const string PROP_WINDOW_ID;
+				[CCode (cname="PA_PROP_WINDOW_ICON_NAME")]
+				public static const string PROP_WINDOW_ICON_NAME;
+				[CCode (cname="PA_PROP_WINDOW_X11_DISPLAY")]
+				public static const string PROP_WINDOW_X11_DISPLAY;
+				[CCode (cname="PA_PROP_WINDOW_X11_SCREEN")]
+				public static const string PROP_WINDOW_X11_SCREEN;
+				[CCode (cname="PA_PROP_WINDOW_X11_MONITOR")]
+				public static const string PROP_WINDOW_X11_MONITOR;
+				[CCode (cname="PA_PROP_WINDOW_X11_XID")]
+				public static const string PROP_WINDOW_X11_XID;
+				[CCode (cname="PA_PROP_APPLICATION_NAME")]
+				public static const string PROP_APPLICATION_NAME;
+				[CCode (cname="PA_PROP_APPLICATION_ID")]
+				public static const string PROP_APPLICATION_ID;
+				[CCode (cname="PA_PROP_APPLICATION_VERSION")]
+				public static const string PROP_APPLICATION_VERSION;
+				[CCode (cname="PA_PROP_APPLICATION_ICON_NAME")]
+				public static const string PROP_APPLICATION_ICON_NAME;
+				[CCode (cname="PA_PROP_APPLICATION_LANGUAGE")]
+				public static const string PROP_APPLICATION_LANGUAGE;
+				[CCode (cname="PA_PROP_APPLICATION_PROCESS_ID")]
+				public static const string PROP_APPLICATION_PROCESS_ID;
+				[CCode (cname="PA_PROP_APPLICATION_PROCESS_BINARY")]
+				public static const string PROP_APPLICATION_PROCESS_BINARY;
+				[CCode (cname="PA_PROP_APPLICATION_PROCESS_USER")]
+				public static const string PROP_APPLICATION_PROCESS_USER;
+				[CCode (cname="PA_PROP_APPLICATION_PROCESS_HOST")]
+				public static const string PROP_APPLICATION_PROCESS_HOST;
+				[CCode (cname="PA_PROP_APPLICATION_PROCESS_MACHINE_ID")]
+				public static const string PROP_APPLICATION_PROCESS_MACHINE_ID;
+				[CCode (cname="PA_PROP_APPLICATION_PROCESS_SESSION_ID")]
+				public static const string PROP_APPLICATION_PROCESS_SESSION_ID;
+				[CCode (cname="PA_PROP_DEVICE_STRING")]
+				public static const string PROP_DEVICE_STRING;
+				[CCode (cname="PA_PROP_DEVICE_API")]
+				public static const string PROP_DEVICE_API;
+				[CCode (cname="PA_PROP_DEVICE_DESCRIPTION")]
+				public static const string PROP_DEVICE_DESCRIPTION;
+				[CCode (cname="PA_PROP_DEVICE_BUS_PATH")]
+				public static const string PROP_DEVICE_BUS_PATH;
+				[CCode (cname="PA_PROP_DEVICE_SERIAL")]
+				public static const string PROP_DEVICE_SERIAL;
+				[CCode (cname="PA_PROP_DEVICE_VENDOR_ID")]
+				public static const string PROP_DEVICE_VENDOR_ID;
+				[CCode (cname="PA_PROP_DEVICE_VENDOR_NAME")]
+				public static const string PROP_DEVICE_VENDOR_NAME;
+				[CCode (cname="PA_PROP_DEVICE_PRODUCT_ID")]
+				public static const string PROP_DEVICE_PRODUCT_ID;
+				[CCode (cname="PA_PROP_DEVICE_PRODUCT_NAME")]
+				public static const string PROP_DEVICE_PRODUCT_NAME;
+				[CCode (cname="PA_PROP_DEVICE_CLASS")]
+				public static const string PROP_DEVICE_CLASS;
+				[CCode (cname="PA_PROP_DEVICE_FORM_FACTOR")]
+				public static const string PROP_DEVICE_FORM_FACTOR;
+				[CCode (cname="PA_PROP_DEVICE_BUS")]
+				public static const string PROP_DEVICE_BUS;
+				[CCode (cname="PA_PROP_DEVICE_ICON_NAME")]
+				public static const string PROP_DEVICE_ICON_NAME;
+				[CCode (cname="PA_PROP_DEVICE_ACCESS_MODE")]
+				public static const string PROP_DEVICE_ACCESS_MODE;
+				[CCode (cname="PA_PROP_DEVICE_MASTER_DEVICE")]
+				public static const string PROP_DEVICE_MASTER_DEVICE;
+				[CCode (cname="PA_PROP_DEVICE_BUFFERING_BUFFER_SIZE")]
+				public static const string PROP_DEVICE_BUFFERING_BUFFER_SIZE;
+				[CCode (cname="PA_PROP_DEVICE_BUFFERING_FRAGMENT_SIZE")]
+				public static const string PROP_DEVICE_BUFFERING_FRAGMENT_SIZE;
+				[CCode (cname="PA_PROP_DEVICE_PROFILE_NAME")]
+				public static const string PROP_DEVICE_PROFILE_NAME;
+				[CCode (cname="PA_PROP_DEVICE_INTENDED_ROLES")]
+				public static const string PROP_DEVICE_INTENDED_ROLES;
+				[CCode (cname="PA_PROP_DEVICE_PROFILE_DESCRIPTION")]
+				public static const string PROP_DEVICE_PROFILE_DESCRIPTION;
+				[CCode (cname="PA_PROP_MODULE_AUTHOR")]
+				public static const string PROP_MODULE_AUTHOR;
+				[CCode (cname="PA_PROP_MODULE_DESCRIPTION")]
+				public static const string PROP_MODULE_DESCRIPTION;
+				[CCode (cname="PA_PROP_MODULE_USAGE")]
+				public static const string PROP_MODULE_USAGE;
+				[CCode (cname="PA_PROP_MODULE_VERSION")]
+				public static const string PROP_MODULE_VERSION;
+
+				[CCode (cname="pa_proplist_new")]
+				public PropList();
+
+				public int sets(string key, string value);
+				public int setp(string pair);
+
+				[PrintfFormat]
+				public int setf(string key, string format, ...);
+
+				public int set(string key, void* data, size_t size);
+
+				public unowned string? gets(string key);
+
+				public int get(string key, out void* data, out size_t size);
+
+				public void update(UpdateMode mode, PropList other);
+
+				public void unset(string key);
+
+				[CCode (array_length = false)]
+				public void unset_many(string[] key);
+
+				public unowned string? iterate(ref void* state);
+
+				public string to_string();
+
+				public string to_string_sep(string sep);
+
+				public static PropList? from_string(string s);
+
+				public int contains(string key);
+
+				public void clear();
+
+				public PropList copy();
+
+				public uint size();
+
+				public bool is_empty();
+		}
+
+		[CCode (cname="pa_update_mode_t", cprefix="PA_UPDATE_")]
+		public enum UpdateMode {
+				SET,
+				MERGE,
+				REPLACE
+		}
+
+		[CCode (cname="PA_OK")]
+		public const int OK;
+
+		[CCode (cname="int", cprefix="PA_ERR_")]
+		public enum Error {
+				ACCESS,
+				COMMAND,
+				INVALID,
+				EXIST,
+				NOENTITY,
+				CONNECTIONREFUSED,
+				PROTOCOL,
+				TIMEOUT,
+				AUTHKEY,
+				INTERNAL,
+				CONNECTIONTERMINATED,
+				KILLED,
+				INVALIDSERVER,
+				MODINITFAILED,
+				BADSTATE,
+				NODATA,
+				VERSION,
+				TOOLARGE,
+				NOTSUPPORTED,
+				UNKNOWN,
+				NOEXTENSION,
+				OBSOLETE,
+				NOTIMPLEMENTED,
+				FORKED,
+				IO,
+				MAX
+		}
+
+		[CCode (cname="pa_strerror")]
+		public unowned string? strerror(Error e);
+
+		public delegate void VoidFunc();
+
+		[CCode (cname="pa_spawn_api")]
+		public struct SpawnApi {
+				VoidFunc? prefork;
+				VoidFunc? postfork;
+				VoidFunc? atfork;
+		}
+
+		[CCode (cname="pa_io_event_flags_t", cprefix="PA_IO_EVENT_")]
+		public enum IoEventFlags {
+				NULL,
+				INPUT,
+				OUTPUT,
+				HANGUP,
+				ERROR
+		}
+
+		[CCode (cname="pa_io_event")]
+		public struct IoEvent {
+		}
+
+		[CCode (cname="pa_time_event")]
+		public struct TimeEvent {
+		}
+
+		[CCode (cname="pa_defer_event")]
+		public struct DeferEvent {
+		}
+
+		[CCode (cname="pa_signal_event", cprefix="pa_signal_", free_function="pa_signal_free")]
+		public struct SignalEvent {
+
+				[CCode (cname="pa_signal_new")]
+				public SignalEvent(int sig, MainLoopApi.SignalEventCb cb);
+
+				public void set_destroy(MainLoopApi.SignalEventDestroyCb cb);
+		}
+
+		[Compact]
+		[CCode (cname="pa_mainloop_api")]
+		public class MainLoopApi {
+				public void* userdata;
+
+				/* Callbacks for the consumer to implement*/
+				public delegate void IoEventCb(IoEvent e, int fd, IoEventFlags flags);
+				public delegate void IoEventDestroyCb(IoEvent e);
+
+				public delegate void TimeEventCb(TimeEvent e, ref timeval t);
+				public delegate void TimeEventDestroyCb(TimeEvent e);
+
+				public delegate void DeferEventCb(DeferEvent e);
+				public delegate void DeferEventDestroyCb(DeferEvent e);
+
+				public delegate void SignalEventCb(SignalEvent e);
+				public delegate void SignalEventDestroyCb(SignalEvent e);
+
+				/* Callbacks for the provider to implement */
+				public delegate IoEvent IoNewCb(int fd, IoEventFlags flags, IoEventCb cb);
+				public delegate void IoEnableCb(IoEvent e, IoEventFlags flags);
+				public delegate void IoFreeCb(IoEvent e);
+				public delegate void IoSetDestroyCb(IoEvent e, IoEventDestroyCb? cb);
+
+				public delegate TimeEvent TimeNewCb(ref timeval? t, TimeEventCb cb);
+				public delegate void TimeRestartCb(TimeEvent e, ref timeval? t);
+				public delegate void TimeFreeCb(TimeEvent e);
+				public delegate void TimeSetDestroyCb(TimeEvent e, TimeEventDestroyCb? cb);
+
+				public delegate DeferEvent DeferNewCb(DeferEventCb cb);
+				public delegate void DeferEnableCb(DeferEvent e, bool b);
+				public delegate void DeferFreeCb(DeferEvent e);
+				public delegate void DeferSetDestroyCb(DeferEvent e, DeferEventDestroyCb? cb);
+
+				public delegate void QuitCb(int retval);
+
+				public delegate void OnceCb();
+
+				public IoNewCb io_new;
+				public IoEnableCb io_enable;
+				public IoFreeCb io_free;
+				public IoSetDestroyCb io_set_destroy;
+
+				public TimeNewCb time_new;
+				public TimeRestartCb time_restart;
+				public TimeFreeCb time_free;
+				public TimeSetDestroyCb time_set_destroy;
+
+				public DeferNewCb defer_new;
+				public DeferEnableCb defer_enable;
+				public DeferFreeCb defer_free;
+				public DeferSetDestroyCb defer_set_destroy;
+
+				public QuitCb quit;
+
+				[CCode (cname="pa_mainloop_api_once")]
+				public void once(OnceCb cb);
+		}
+
+		[CCode (cname="pa_signal_init")]
+		public void signal_init(MainLoopApi api);
+
+		[CCode (cname="pa_signal_done")]
+		public void signal_done();
+
+		[CCode (cname="pa_poll_func")]
+		public delegate int PollFunc(pollfd[] ufds);
+
+		[Compact]
+		[CCode (cname="pa_mainloop", cprefix="pa_mainloop_", free_function="pa_mainloop_free")]
+		public class MainLoop {
+
+				[CCode (cname="pa_mainloop_new")]
+				public MainLoop();
+
+				public int prepare(int timeout = -1);
+				public int poll();
+				public int dispatch();
+				public int get_retval();
+				public int iterate(bool block = true, out int retval = null);
+				public int run(out int retval = null);
+				public unowned MainLoopApi get_api();
+				public void quit(int r);
+				public void wakeup();
+				public void set_poll_func(PollFunc poll_func);
+		}
+
+		[Compact]
+		[CCode (cname="pa_threaded_mainloop", cprefix="pa_threaded_mainloop_", free_function="pa_threaded_mainloop_free")]
+		public class ThreadedMainLoop {
+
+				[CCode (cname="pa_threaded_mainloop_new")]
+				public ThreadedMainLoop();
+
+				public int start();
+				public void stop();
+				public void lock();
+				public void unlock();
+				public void wait();
+				public void signal(bool WaitForAccept = false);
+				public void accept();
+				public int get_retval();
+				public unowned MainLoopApi get_api();
+				public bool in_thread();
+		}
+
+		[Compact]
+		[CCode (cname="pa_glib_mainloop", cprefix="pa_glib_mainloop_", free_function="pa_glib_mainloop_free")]
+		public class GLibMainLoop {
+
+				[CCode (cname="pa_glib_mainloop_new")]
+				public GLibMainLoop();
+
+				public unowned MainLoopApi get_api();
+		}
+
+		[Compact]
+		[CCode (cname="pa_operation", cprefix="pa_operation_", unref_function="pa_operation_unref", ref_function="pa_operation_ref")]
+		public class Operation {
+
+				[CCode (cname="pa_operation_state_t", cprefix="PA_OPERATION_")]
+				public enum State {
+						RUNNING,
+						DONE,
+						CANCELED
+				}
+
+				public void cancel();
+				public State get_state();
+		}
+
+		[Compact]
+		[CCode (cname="pa_context", cprefix="pa_context_", unref_function="pa_context_unref", ref_function="pa_context_ref")]
+		public class Context {
+
+				[CCode (cname="pa_context_flags_t", cprefix="PA_CONTEXT_")]
+				public enum Flags {
+						NOAUTOSPAWN,
+						NOFAIL
+				}
+
+				[CCode (cname="pa_context_state_t", cprefix="PA_CONTEXT_")]
+				public enum State {
+						UNCONNECTED,
+						CONNECTING,
+						AUTHORIZING,
+						SETTING_NAME,
+						READ,
+						FAILED,
+						TERMINATED;
+
+						bool IS_GOOD();
+				}
+
+				[CCode (cname="pa_subscription_mask_t", cprefix="PA_SUBSCRIPTION_MASK_")]
+				public enum SubscriptionMask {
+						NULL,
+						SINK,
+						SOURCE,
+						SINK_INPUT,
+						SOURCE_OUTPUT,
+						MODULE,
+						CLIENT,
+						SAMPLE_CACHE,
+						SERVER,
+						CARD,
+						ALL;
+
+						[CCode (cname="pa_subscription_match_flags")]
+						bool match_flags(SubscriptionEventType t);
+				}
+
+				[CCode (cname="pa_subscription_event_type_t", cprefix="PA_SUBSCRIPTION_EVENT_")]
+				public enum SubscriptionEventType {
+						SINK,
+						SOURCE,
+						SINK_INPUT,
+						SOURCE_OUTPUT,
+						MODULE,
+						CLIENT,
+						SAMPLE_CACHE,
+						SERVER,
+						CARD,
+						FACILITY_MASK,
+						NEW,
+						CHANGE,
+						REMOVE,
+						TYPE_MASK
+				}
+
+				public delegate void NotifyCb();
+				public delegate void SuccessCb(int success);
+				public delegate void EventCb(string name, PropList? proplist);
+				public delegate void SubscribeCb(SubscriptionEventType t, uint32 idx);
+				public delegate void SinkInfoCb(SinkInfo? i, int eol);
+				public delegate void SourceInfoCb(SourceInfo? i, int eol);
+				public delegate void CardInfoCb(CardInfo? i, int eol);
+				public delegate void SinkInputInfoCb(SinkInputInfo? i, int eol);
+				public delegate void SourceOutputInfoCb(SourceOutputInfo? i, int eol);
+				public delegate void ServerInfoCb(ServerInfo? i);
+				public delegate void StatInfoCb(ServerInfo? i);
+				public delegate void ModuleInfoCb(ModuleInfo? i, int eol);
+				public delegate void ClientInfoCb(ClientInfo? i, int eol);
+				public delegate void SampleInfoCb(SampleInfo? i, int eol);
+				public delegate void IndexCb(uint32 idx);
+
+				[CCode (cname="pa_context_new_with_proplist")]
+				public Context(MainLoopApi api, string? name, PropList? proplist = null);
+
+				public void set_state_callback(NotifyCb? cb = null);
+				public void set_event_callback(EventCb? cb = null);
+				public void set_subscribe_callback(SubscribeCb? cb = null);
+
+				public Error errno();
+
+				public int is_pending();
+				public State get_state();
+				public int is_local();
+				public unowned string? get_server();
+				public uint32 get_protocol_version();
+				public uint32 get_server_protocol_version();
+				public uint32 get_index();
+
+				public int connect(string? server = null, Flags flags = 0, SpawnApi? api = null);
+				public void disconnect();
+
+				public Operation? drain(NotifyCb? cb = null);
+				public Operation? exit_daemon(SuccessCb? cb = null);
+				public Operation? set_default_sink(string name, SuccessCb? cb = null);
+				public Operation? set_default_source(string name, SuccessCb? cb = null);
+				public Operation? set_name(string name, SuccessCb? cb = null);
+
+				[CCode (array_length = false)]
+				public Operation? proplist_remove(string[] keys, SuccessCb? cb = null);
+				public Operation? proplist_update(UpdateMode mode, PropList pl, SuccessCb? cb = null);
+
+				public Operation? subscribe(SubscriptionMask mask, SuccessCb? cb = null);
+
+				public Operation? get_sink_info_by_name(string name, SinkInfoCb cb);
+				public Operation? get_sink_info_by_index(uint32 idx, SinkInfoCb cb);
+				public Operation? get_sink_info_list(SinkInfoCb cb);
+
+				public Operation? set_sink_volume_by_name(string name, CVolume volume, SuccessCb? cb = null);
+				public Operation? set_sink_volume_by_index(uint32 idx, CVolume volume, SuccessCb? cb = null);
+				public Operation? set_sink_mute_by_name(string name, bool mute, SuccessCb? cb = null);
+				public Operation? set_sink_mute_by_index(uint32 idx, bool mute, SuccessCb? cb = null);
+
+				public Operation? suspend_sink_by_name(string name, bool suspend, SuccessCb? cb = null);
+				public Operation? suspend_sink_by_index(uint32 idx, bool suspend, SuccessCb? cb = null);
+
+				public Operation? set_sink_port_by_name(string name, string port, SuccessCb? cb = null);
+				public Operation? set_sink_port_by_index(string idx, string port, SuccessCb? cb = null);
+
+				public Operation? get_source_info_by_name(string name, SourceInfoCb cb);
+				public Operation? get_source_info_by_index(uint32 idx, SourceInfoCb cb);
+				public Operation? get_source_info_list(SourceInfoCb cb);
+
+				public Operation? set_source_volume_by_name(string name, CVolume volume, SuccessCb? cb = null);
+				public Operation? set_source_volume_by_index(uint32 idx, CVolume volume, SuccessCb? cb = null);
+				public Operation? set_source_mute_by_name(string name, bool mute, SuccessCb? cb = null);
+				public Operation? set_source_mute_by_index(uint32 idx, bool mute, SuccessCb? cb = null);
+
+				public Operation? suspend_source_by_name(string name, bool suspend, SuccessCb? cb = null);
+				public Operation? suspend_source_by_index(uint32 idx, bool suspend, SuccessCb? cb = null);
+
+				public Operation? set_source_port_by_name(string name, string port, SuccessCb? cb = null);
+				public Operation? set_source_port_by_index(string idx, string port, SuccessCb? cb = null);
+
+				public Operation? get_server_info(ServerInfoCb cb);
+
+				public Operation? get_module_info(uint32 idx, ModuleInfoCb cb);
+				public Operation? get_module_info_list(ModuleInfoCb cb);
+
+				public Operation? load_module(string name, string? argument, IndexCb? cb = null);
+				public Operation? unload_module(uint32 idx, SuccessCb? cb = null);
+
+				public Operation? get_client_info(uint32 idx, ClientInfoCb cb);
+				public Operation? get_client_info_list(ClientInfoCb cb);
+
+				public Operation? kill_client(uint32 idx, SuccessCb? cb = null);
+
+				public Operation? get_card_info_by_name(string name, CardInfoCb cb);
+				public Operation? get_card_info_by_index(uint32 idx, CardInfoCb cb);
+				public Operation? get_card_info_list(CardInfoCb cb);
+
+				public Operation? set_card_profile_by_index(uint32 idx, string profile, SuccessCb? cb = null);
+				public Operation? set_card_profile_by_name(string name, string profile, SuccessCb? cb = null);
+
+				public Operation? get_sink_input_info(uint32 idx, SinkInputInfoCb cb);
+				public Operation? get_sink_input_info_list(SinkInputInfoCb cb);
+
+				public Operation? move_sink_input_by_index(uint32 idx, uint32 sink_idx, SuccessCb? cb = null);
+				public Operation? move_sink_input_by_name(uint32 idx, string sink_name, SuccessCb? cb = null);
+
+				public Operation? set_sink_input_volume(uint32 idx, CVolume volume, SuccessCb? cb = null);
+				public Operation? set_sink_input_mute(uint32 idx, bool mute, SuccessCb? cb = null);
+
+				public Operation? kill_sink_input(uint32 idx, SuccessCb? cb = null);
+
+				public Operation? get_source_output_info(uint32 idx, SourceOutputInfoCb cb);
+				public Operation? get_source_output_info_list(SourceOutputInfoCb cb);
+
+				public Operation? move_source_output_by_index(uint32 idx, uint32 source_idx, SuccessCb? cb = null);
+				public Operation? move_source_output_by_name(uint32 idx, string source_name, SuccessCb? cb = null);
+
+				public Operation? kill_source_output(uint32 idx, SuccessCb? cb = null);
+
+				public Operation? stat(StatInfoCb cb);
+
+				public Operation? get_sample_info_by_name(string name, SampleInfoCb cb);
+				public Operation? get_sample_info_by_index(uint32 idx, SampleInfoCb cb);
+				public Operation? get_sample_info_list(SampleInfoCb cb);
+
+				public Operation? remove_sample(string name, SuccessCb? cb = null);
+				public Operation? play_sample(string name, string? device = null, Volume volume = Volume.INVALID
+		}
+
+		[Compact]
+		[CCode (cname="pa_stream", cprefix="pa_stream_", unref_function="pa_stream_unref", ref_function="pa_stream_ref")]
+		public class Stream {
+
+				[CCode (cname="pa_stream_flags_t", cprefix="PA_STREAM_")]
+				public enum Flags {
+						START_CORKED,
+						INTERPOLATE_TIMING,
+						NOT_MONOTONIC,
+						AUTO_TIMING_UPDATE,
+						NO_REMAP_CHANNELS,
+						NO_REMIX_CHANNELS,
+						FIX_FORMAT,
+						FIX_RATE,
+						FIX_CHANNELS,
+						DONT_MOVE,
+						VARIABLE_RATE,
+						PEAK_DETECT,
+						START_MUTED,
+						ADJUST_LATENCY,
+						EARLY_REQUESTS,
+						DONT_INHIBIT_AUTO_SUSPEND,
+						START_UNMUTED,
+						FAIL_ON_SUSPEND
+				}
+
+				[CCode (cname="pa_stream_state_t", cprefix="PA_STREAM_")]
+				public enum State {
+						UNCONNECTED,
+						CREATING,
+						READY,
+						FAILED,
+						TERMINATED;
+
+						bool IS_GOOD();
+				}
+
+				[CCode (cname="pa_stream_direction_t", cprefix="PA_STREAM_")]
+				public enum Direction {
+						NODIRECTION,
+						PLAYBACK,
+						RECORD,
+						UPLOAD
+				}
+
+				[CCode (cname="pa_seek_mode_t", cprefix="PA_SEEK_")]
+				public enum SeekMode {
+						RELATIVE,
+						ABSOLUTE,
+						RELATIVE_ON_READ,
+						RELATIVE_END
+				}
+
+				[CCode (cname="pa_buffer_attr")]
+				public struct BufferAttr {
+						uint32 maxlength;
+						uint32 tlength;
+						uint32 prebuf;
+						uint32 minreq;
+						uint32 fragsize;
+				}
+
+				[CCode (cname="pa_timing_info")]
+				public struct TimingInfo {
+						timeval timestamp;
+						int synchronized_clocks;
+						usec sink_usec;
+						usec source_usec;
+						usec transport_usec;
+						int playing;
+						int write_index_corrupt;
+						int64 write_index;
+						int read_index_corrupt;
+						int64 read_index;
+						usec configured_sink_usec;
+						usec configured_source_usec;
+						int64 since_underrun;
+				}
+
+				[CCode (cname="PA_STREAM_EVENT_REQUEST_CORK")]
+				public const string EVENT_REQUEST_CORK;
+
+				[CCode (cname="PA_STREAM_EVENT_REQUEST_UNCORK")]
+				public const string EVENT_REQUEST_UNCORK;
+
+				public delegate void SuccessCb(int success);
+				public delegate void RequestCb(size_t nbytes);
+				public delegate void NotifyCb();
+				public delegate void EventCb(string name, PropList proplist);
+
+				[CCode (cname="pa_stream_new_with_proplist")]
+				public Stream(Context c, string name, SampleSpec ss, ChannelMap map = null, PropList proplist = null);
+
+				public State get_state();
+				public Context get_context();
+				public uint32 get_index();
+				public uint32 get_device_index();
+				public unowned string? get_device_name();
+				public int is_suspended();
+				public int is_corked();
+
+				public int connect_playback(string dev, BufferAttr a = null, Flags flags = 0, Volume volume = null, Stream sync_stream = null);
+				public int connect_record(string dev, BufferAttr a = null, Flags flags = 0);
+				public int connect_upload(size_t length);
+				public int disconnect();
+				public int finish_upload();
+
+				public int begin_write(out void* data, out size_t nbytes);
+				public int cancel_write();
+				public int write(void *data, size_t bytes, FreeCb free_cb = null, int64 offset = 0, SeekMode mode = SeekMode.RELATIVE);
+				public int peek(out void *data, out size_t nbytes);
+				public int drop();
+				public size_t writable_size();
+				public size_t readable_size();
+
+				public void set_state_callback(NotifyCb cb = null);
+				public void set_write_callback(RequestCb cb = null);
+				public void set_read_callback(RequestCb cb = null);
+				public void set_overflow_callback(NotifyCb cb = null);
+				public void set_underflow_callback(NotifyCb cb = null);
+				public void set_started_callback(NotifyCb cb = null);
+				public void set_latency_update_callback(NotifyCb cb = null);
+				public void set_moved_callback(NotifyCb cb = null);
+				public void set_suspended_callback(NotifyCb cb = null);
+				public void set_event_callback(EventCb cb = null);
+				public void set_buffer_attr_callback(NotifyCb cb = null);
+
+				public Operation? drain(SuccessCb cb = null);
+				public Operation? update_timing_info(SuccessCb cb = null);
+
+				public Operation? cork(bool b, SuccessCb cb = null);
+				public Operation? flush(SuccessCb cb = null);
+				public Operation? prebuf(SuccessCb cb = null);
+				public Operation? trigger(SuccessCb cb = null);
+
+				public Operation? set_name(string name, SuccessCb cb = null);
+				public Operation? set_buffer_attr(BufferAttr attr, SuccessCb cb = null);
+				public Operation? update_sample_rate(uint32 rate, SuccessCb cb = null);
+
+				[CCode (array_length = false)]
+				public Operation? proplist_remove(string[] keys, SuccessCb cb = null);
+				public Operation? proplist_update(UpdateMode mode, PropList pl, SuccessCb cb = null);
+
+				public unowned TimingInfo? get_timing_info();
+				public int get_time(out usec u);
+				public int get_latency(out usec u, out bool negative = null);
+
+				public unowned SampleSpec? get_sample_spec();
+				public unowned ChannelMap? get_channel_map();
+				public unowned BufferAttr? get_buffer_attr();
+
+				public int set_monitor_stream(uint32 sink_input);
+				public uint32 get_monitor_stream();
+		}
+
+		[CCode (cname="pa_sink_port_info")]
+		public struct SinkPortInfo {
+				string name;
+				string description;
+				uint32 priority;
+		}
+
+		[CCode (cname="pa_sink_info")]
+		public struct SinkInfo {
+				string name;
+				uint32 index;
+				string description;
+				SampleSpec sample_spec;
+				ChannelMap channel_map;
+				uint32 owner_module;
+				CVolume volume;
+				int mute;
+			    uint32 monitor_source;
+				string monitor_source_name;
+				usec latency;
+				string driver;
+				SinkFlags flags;
+				PropList proplist;
+				usec configured_latency;
+				Volume base_volume;
+				SinkState state;
+				uint32 n_volume_steps;
+				uint32 card;
+				uint32 n_ports;
+				SinkPortInfo*[] ports;
+				SinkPortInfo* active_port;
+		}
+
+		[CCode (cname="pa_source_port_info")]
+		public struct SourcePortInfo {
+				string name;
+				string description;
+				uint32 priority;
+		}
+
+		[CCode (cname="pa_source_info")]
+		public struct SourceInfo {
+				string name;
+				uint32 index;
+				string description;
+				SampleSpec sample_spec;
+				ChannelMap channel_map;
+				uint32 owner_module;
+				CVolume volume;
+				int mute;
+			    uint32 monitor_of_sink;
+				string monitor_of_sink_name;
+				usec latency;
+				string driver;
+				SourceFlags flags;
+				PropList proplist;
+				usec configured_latency;
+				Volume base_volume;
+				SourceState state;
+				uint32 n_volume_steps;
+				uint32 card;
+				uint32 n_ports;
+				SourcePortInfo*[] ports;
+				SourcePortInfo* active_port;
+		}
+
+		[CCode (cname="pa_server_info")]
+		public struct ServerInfo {
+				string user_name;
+				string host_name;
+				string server_version;
+				string server_name;
+				SampleSpec sample_spec;
+				string default_sink_name;
+				string default_source_name;
+				ChannelMap channel_map;
+		}
+
+		[CCode (cname="pa_module_info")]
+		public struct ModuleInfo {
+				uint32 index;
+				string name;
+				string argument;
+				uint32 n_used;
+				PropList proplist;
+		}
+
+		[CCode (cname="pa_client_info")]
+		public struct ClientInfo {
+				uint32 index;
+				string name;
+				uint32 owner_module;
+				string driver;
+				PropList proplist;
+		}
+
+		[CCode (cname="pa_card_profile_info")]
+		public struct CardProfileInfo {
+				string name;
+				string description;
+				uint32 n_sinks;
+				uint32 n_sources;
+				uint32 priority;
+		}
+
+		[CCode (cname="pa_card_info")]
+		public struct CardInfo {
+				uint32 index;
+				string name;
+				uint32 owner_module;
+				string driver;
+				uint32 n_profiles;
+				CardProfileInfo profiles[];
+				CardProfileInfo *active_profile;
+				PropList proplist;
+		}
+
+		[CCode (cname="pa_sink_input_info")]
+		public struct SinkInputInfo {
+				uint32 index;
+				string name;
+				uint32 owner_module;
+				uint32 client;
+				uint32 sink;
+				SampleSpec sample_spec;
+				ChannelMap channel_map;
+				CVolume volume;
+				uint32 buffer_usec;
+				uint32 sink_usec;
+				string resample_method;
+				string driver;
+				int mute;
+				PropList proplist;
+		}
+
+		[CCode (cname="pa_source_output_info")]
+		public struct SourceOutputInfo {
+				uint32 index;
+				string name;
+				uint32 owner_module;
+				uint32 client;
+				uint32 source;
+				SampleSpec sample_spec;
+				ChannelMap channel_map;
+				uint32 buffer_usec;
+				uint32 sink_usec;
+				string resample_method;
+				string driver;
+				PropList proplist;
+		}
+
+		[CCode (cname="pa_stat_info")]
+		public struct StatInfo {
+				uint32 memblock_total;
+				uint32 memblock_total_size;
+				uint32 memblock_allocated;
+				uint32 memblock_allocated_size;
+				uint32 scache_size;
+		}
+
+		[CCode (cname="pa_sample_info")]
+		public struct SampleInfo {
+				uint32 index;
+				string name;
+				CVolume volume;
+				SampleSpec sample_spec;
+				ChannelMap channel_map;
+				usec duration;
+				uint32 bytes;
+				bool lazy;
+				string filename;
+				PropList proplist;
+		}
+
+		[CCode (cname="pa_sink_flags_t", cprefix="PA_SINK_")]
+		public enum SinkFlags {
+				HW_VOLUME_CTRL,
+				LATENCY,
+				HARDWARE,
+				NETWORK,
+				HW_MUTE_CTRL,
+				DECIBEL_VOLUME,
+				FLAT_VOLUME,
+				DYNAMIC_LATENCY
+		}
+
+		[CCode (cname="pa_source_flags_t", cprefix="PA_SOURCE_")]
+		public enum SourceFlags {
+				HW_VOLUME_CTRL,
+				LATENCY,
+				HARDWARE,
+				NETWORK,
+				HW_MUTE_CTRL,
+				DECIBEL_VOLUME,
+				DYNAMIC_LATENCY
+		}
+
+		[CCode (cname="pa_sink_state_t", cprefix="PA_SINK_")]
+		public enum SinkState {
+				INVALID_STATE,
+				RUNNING,
+				IDLE,
+				SUSPENDED;
+
+				[CCode (cname="PA_SINK_IS_OPENED")]
+				public bool IS_OPENED();
+		}
+
+		[CCode (cname="pa_source_state_t", cprefix="PA_SOURCE_")]
+		public enum SourceState {
+				INVALID_STATE,
+				RUNNING,
+				IDLE,
+				SUSPENDED;
+
+				[CCode (cname="PA_SOURCE_IS_OPENED")]
+				public bool IS_OPENED();
+		}
+}

commit a02861ea99b020181ba0dd9d5c0a3a978a6c59d1
Author: Lennart Poettering <lennart at poettering.net>
Date:   Mon Sep 7 22:31:34 2009 +0200

    vala: s/PropList/Proplist/g since the C version does not use an underscore there

diff --git a/pulseaudio.vapi b/pulseaudio.vapi
index 47a57ab..8818abf 100644
--- a/pulseaudio.vapi
+++ b/pulseaudio.vapi
@@ -528,7 +528,7 @@ namespace Pulse {
 
 		[Compact]
 		[CCode (cname="pa_proplist", cprefix="pa_proplist_", free_function="pa_proplist_free")]
-		public class PropList {
+		public class Proplist {
 
 				[CCode (cname="PA_PROP_MEDIA_NAME")]
 				public static const string PROP_MEDIA_NAME;
@@ -648,7 +648,7 @@ namespace Pulse {
 				public static const string PROP_MODULE_VERSION;
 
 				[CCode (cname="pa_proplist_new")]
-				public PropList();
+				public Proplist();
 
 				public int sets(string key, string value);
 				public int setp(string pair);
@@ -662,7 +662,7 @@ namespace Pulse {
 
 				public int get(string key, out void* data, out size_t size);
 
-				public void update(UpdateMode mode, PropList other);
+				public void update(UpdateMode mode, Proplist other);
 
 				public void unset(string key);
 
@@ -675,13 +675,13 @@ namespace Pulse {
 
 				public string to_string_sep(string sep);
 
-				public static PropList? from_string(string s);
+				public static Proplist? from_string(string s);
 
 				public int contains(string key);
 
 				public void clear();
 
-				public PropList copy();
+				public Proplist copy();
 
 				public uint size();
 
@@ -962,7 +962,7 @@ namespace Pulse {
 
 				public delegate void NotifyCb();
 				public delegate void SuccessCb(int success);
-				public delegate void EventCb(string name, PropList? proplist);
+				public delegate void EventCb(string name, Proplist? proplist);
 				public delegate void SubscribeCb(SubscriptionEventType t, uint32 idx);
 				public delegate void SinkInfoCb(SinkInfo? i, int eol);
 				public delegate void SourceInfoCb(SourceInfo? i, int eol);
@@ -977,7 +977,7 @@ namespace Pulse {
 				public delegate void IndexCb(uint32 idx);
 
 				[CCode (cname="pa_context_new_with_proplist")]
-				public Context(MainLoopApi api, string? name, PropList? proplist = null);
+				public Context(MainLoopApi api, string? name, Proplist? proplist = null);
 
 				public void set_state_callback(NotifyCb? cb = null);
 				public void set_event_callback(EventCb? cb = null);
@@ -1004,7 +1004,7 @@ namespace Pulse {
 
 				[CCode (array_length = false)]
 				public Operation? proplist_remove(string[] keys, SuccessCb? cb = null);
-				public Operation? proplist_update(UpdateMode mode, PropList pl, SuccessCb? cb = null);
+				public Operation? proplist_update(UpdateMode mode, Proplist pl, SuccessCb? cb = null);
 
 				public Operation? subscribe(SubscriptionMask mask, SuccessCb? cb = null);
 
@@ -1175,10 +1175,10 @@ namespace Pulse {
 				public delegate void SuccessCb(int success);
 				public delegate void RequestCb(size_t nbytes);
 				public delegate void NotifyCb();
-				public delegate void EventCb(string name, PropList proplist);
+				public delegate void EventCb(string name, Proplist proplist);
 
 				[CCode (cname="pa_stream_new_with_proplist")]
-				public Stream(Context c, string name, SampleSpec ss, ChannelMap map = null, PropList proplist = null);
+				public Stream(Context c, string name, SampleSpec ss, ChannelMap map = null, Proplist proplist = null);
 
 				public State get_state();
 				public Context get_context();
@@ -1228,7 +1228,7 @@ namespace Pulse {
 
 				[CCode (array_length = false)]
 				public Operation? proplist_remove(string[] keys, SuccessCb cb = null);
-				public Operation? proplist_update(UpdateMode mode, PropList pl, SuccessCb cb = null);
+				public Operation? proplist_update(UpdateMode mode, Proplist pl, SuccessCb cb = null);
 
 				public unowned TimingInfo? get_timing_info();
 				public int get_time(out usec u);
@@ -1264,7 +1264,7 @@ namespace Pulse {
 				usec latency;
 				string driver;
 				SinkFlags flags;
-				PropList proplist;
+				Proplist proplist;
 				usec configured_latency;
 				Volume base_volume;
 				SinkState state;
@@ -1297,7 +1297,7 @@ namespace Pulse {
 				usec latency;
 				string driver;
 				SourceFlags flags;
-				PropList proplist;
+				Proplist proplist;
 				usec configured_latency;
 				Volume base_volume;
 				SourceState state;
@@ -1326,7 +1326,7 @@ namespace Pulse {
 				string name;
 				string argument;
 				uint32 n_used;
-				PropList proplist;
+				Proplist proplist;
 		}
 
 		[CCode (cname="pa_client_info")]
@@ -1335,7 +1335,7 @@ namespace Pulse {
 				string name;
 				uint32 owner_module;
 				string driver;
-				PropList proplist;
+				Proplist proplist;
 		}
 
 		[CCode (cname="pa_card_profile_info")]
@@ -1356,7 +1356,7 @@ namespace Pulse {
 				uint32 n_profiles;
 				CardProfileInfo profiles[];
 				CardProfileInfo *active_profile;
-				PropList proplist;
+				Proplist proplist;
 		}
 
 		[CCode (cname="pa_sink_input_info")]
@@ -1374,7 +1374,7 @@ namespace Pulse {
 				string resample_method;
 				string driver;
 				int mute;
-				PropList proplist;
+				Proplist proplist;
 		}
 
 		[CCode (cname="pa_source_output_info")]
@@ -1390,7 +1390,7 @@ namespace Pulse {
 				uint32 sink_usec;
 				string resample_method;
 				string driver;
-				PropList proplist;
+				Proplist proplist;
 		}
 
 		[CCode (cname="pa_stat_info")]
@@ -1413,7 +1413,7 @@ namespace Pulse {
 				uint32 bytes;
 				bool lazy;
 				string filename;
-				PropList proplist;
+				Proplist proplist;
 		}
 
 		[CCode (cname="pa_sink_flags_t", cprefix="PA_SINK_")]

commit b705a9bb8dfd7f859b0aca98833010f831ba2e6a
Author: Lennart Poettering <lennart at poettering.net>
Date:   Mon Sep 7 22:32:11 2009 +0200

    vector: don't try to build vector stuff on altivec

diff --git a/src/pulsecore/vector.h b/src/pulsecore/vector.h
index 924e3cb..9de3b8c 100644
--- a/src/pulsecore/vector.h
+++ b/src/pulsecore/vector.h
@@ -23,7 +23,8 @@
 #include <inttypes.h>
 
 /* First, define HAVE_VECTOR if we have the gcc vector extensions at all */
-#if defined(__SSE2__) || defined(__ALTIVEC__)
+#if defined(__SSE2__)
+    /* || defined(__ALTIVEC__)*/
 #define HAVE_VECTOR
 
 

commit f8f8cdc78c4d9e461184ad97ffe8c0bee043ebd8
Author: Lennart Poettering <lennart at poettering.net>
Date:   Mon Sep 7 22:42:47 2009 +0200

    vala: reindent

diff --git a/pulseaudio.vapi b/pulseaudio.vapi
index 8818abf..cf0e82e 100644
--- a/pulseaudio.vapi
+++ b/pulseaudio.vapi
@@ -1,5 +1,3 @@
-/*-*- Mode: vala; c-basic-offset: 8 -*-*/
-
 /***
   This file is part of PulseAudio.
 
@@ -28,31 +26,31 @@ using Posix;
 namespace Pulse {
 
         [CCode (cname="pa_get_library_version")]
-		public unowned string get_library_version();
+        public unowned string get_library_version();
 
-		[CCode (cname="PA_API_VERSION")]
-		public const int API_VERSION;
+        [CCode (cname="PA_API_VERSION")]
+        public const int API_VERSION;
 
-		[CCode (cname="PA_PROTOCOL_VERSION")]
-		public const int PROTOCOL_VERSION;
+        [CCode (cname="PA_PROTOCOL_VERSION")]
+        public const int PROTOCOL_VERSION;
 
-		[CCode (cname="PA_MAJOR")]
-		public const int MAJOR;
+        [CCode (cname="PA_MAJOR")]
+        public const int MAJOR;
 
-		[CCode (cname="PA_MINOR")]
-		public const int MINOR;
+        [CCode (cname="PA_MINOR")]
+        public const int MINOR;
 
-		[CCode (cname="PA_MICRO")]
-		public const int MICRO;
+        [CCode (cname="PA_MICRO")]
+        public const int MICRO;
 
-		[CCode (cname="PA_CHECK_VERSION")]
-		public bool CHECK_VERSION(int major, int minor, int micro);
+        [CCode (cname="PA_CHECK_VERSION")]
+        public bool CHECK_VERSION(int major, int minor, int micro);
 
-		[CCode (cname="INVALID_INDEX")]
-		public const uint32 INVALID_INDEX;
+        [CCode (cname="INVALID_INDEX")]
+        public const uint32 INVALID_INDEX;
 
-		[CCode (cname="pa_free_cb_t")]
-		public delegate void FreeCb(void *p);
+        [CCode (cname="pa_free_cb_t")]
+        public delegate void FreeCb(void *p);
 
         [CCode (cname="pa_sample_format_t", cprefix="PA_SAMPLE_")]
         public enum SampleFormat {
@@ -81,1383 +79,1385 @@ namespace Pulse {
                 S24_32NE,
                 S24_32RE;
 
-				[CCode (cname="pa_sample_size_of_format")]
-				public size_t size();
+                [CCode (cname="pa_sample_size_of_format")]
+                public size_t size();
 
-				[CCode (cname="pa_sample_format_to_string")]
-				public unowned string? to_string();
+                [CCode (cname="pa_sample_format_to_string")]
+                public unowned string? to_string();
 
-				[CCode (cname="pa_sample_format_is_le")]
-				public int is_le();
+                [CCode (cname="pa_sample_format_is_le")]
+                public int is_le();
 
-				[CCode (cname="pa_sample_format_is_be")]
-				public int is_be();
+                [CCode (cname="pa_sample_format_is_be")]
+                public int is_be();
 
-				[CCode (cname="pa_sample_format_is_ne")]
-				public int is_ne();
+                [CCode (cname="pa_sample_format_is_ne")]
+                public int is_ne();
 
-				[CCode (cname="pa_sample_format_is_re")]
-				public int is_re();
+                [CCode (cname="pa_sample_format_is_re")]
+                public int is_re();
 
-				[CCode (cname="pa_parse_sample_format")]
-				public static SampleFormat parse(string b);
+                [CCode (cname="pa_parse_sample_format")]
+                public static SampleFormat parse(string b);
         }
 
         [CCode (cname="pa_usec_t")]
-		public struct usec : uint64 {
-		}
+        public struct usec : uint64 {
+        }
 
         [CCode (cname="pa_sample_spec")]
-		public struct SampleSpec {
-				public SampleFormat format;
-				public uint32 rate;
-				public uint8 channels;
+        public struct SampleSpec {
+                public SampleFormat format;
+                public uint32 rate;
+                public uint8 channels;
+
+                [CCode (cname="PA_SAMPLE_SPEC_SNPRINT_MAX")]
+                public static const size_t SNPRINT_MAX;
+
+                [CCode (cname="pa_bytes_per_second")]
+                public size_t bytes_per_second();
+
+                [CCode (cname="pa_frame_size")]
+                public size_t frame_size();
+
+                [CCode (cname="pa_sample_size")]
+                public size_t sample_size();
+
+                [CCode (cname="pa_bytes_to_usec", instance_pos=1.1)]
+                public usec bytes_to_usec(size_t size);
+
+                [CCode (cname="pa_usec_to_bytes", instance_pos=1.1)]
+                public size_t usec_to_bytes(usec u);
+
+                [CCode (cname="pa_sample_spec_init")]
+                public unowned SampleSpec? init();
 
-				[CCode (cname="PA_SAMPLE_SPEC_SNPRINT_MAX")]
-				public static const size_t SNPRINT_MAX;
+                [CCode (cname="pa_sample_spec_valid")]
+                public bool valid();
 
-				[CCode (cname="pa_bytes_per_second")]
-				public size_t bytes_per_second();
+                [CCode (cname="pa_sample_spec_equal")]
+                public bool equal(SampleSpec other);
 
-				[CCode (cname="pa_frame_size")]
-				public size_t frame_size();
+                [CCode (cname="pa_sample_spec_snprint", instance_pos=3.1)]
+                public unowned string snprint(char[] buf);
 
-				[CCode (cname="pa_sample_size")]
-				public size_t sample_size();
+                public string sprint() {
+                        var buffer = new char[SNPRINT_MAX];
+                        this.snprint(buffer);
+                        return (string) buffer;
+                }
 
-				[CCode (cname="pa_bytes_to_usec", instance_pos=1.1)]
-				public usec bytes_to_usec(size_t size);
+                public string to_string() {
+                        return sprint();
+                }
 
-				[CCode (cname="pa_usec_to_bytes", instance_pos=1.1)]
-				public size_t usec_to_bytes(usec u);
+                [CCode (cname="pa_sample_spec_init")]
+                SampleSpec();
+        }
+
+        // [CCode (cname="PA_BYTES_SNPRINT_MAX")]
+        [CCode (cname="PA_SAMPLE_SPEC_SNPRINT_MAX")]
+        public const size_t BYTES_SNPRINT_MAX;
 
-				[CCode (cname="pa_sample_spec_init")]
-				public unowned SampleSpec? init();
+        [CCode (cname="pa_bytes_snprint")]
+        public unowned string bytes_snprint(char[] buf, uint bytes);
 
-				[CCode (cname="pa_sample_spec_valid")]
-				public bool valid();
+        public string bytes_sprint(uint bytes) {
+                var buffer = new char[BYTES_SNPRINT_MAX];
+                bytes_snprint(buffer, bytes);
+                return (string) buffer;
+        }
 
-				[CCode (cname="pa_sample_spec_equal")]
-				public bool equal(SampleSpec other);
+        [CCode (cname="pa_volume_t")]
+        public struct Volume : uint32 {
 
-				[CCode (cname="pa_sample_spec_snprint", instance_pos=3.1)]
-				public unowned string snprint(char[] buf);
+                [CCode (cname="PA_SW_VOLUME_SNPRINT_DB_MAX")]
+                public static const size_t SW_SNPRINT_DB_MAX;
 
-				public string sprint() {
-						var buffer = new char[SNPRINT_MAX];
-						this.snprint(buffer);
-						return (string) buffer;
-				}
+                [CCode (cname="PA_VOLUME_SNPRINT_MAX")]
+                public static const size_t SNPRINT_MAX;
 
-				public string to_string() {
-						return sprint();
-				}
+                [CCode (cname="PA_VOLUME_MAX")]
+                public static const Volume MAX;
 
-				[CCode (cname="pa_sample_spec_init")]
-				SampleSpec();
-		}
+                [CCode (cname="PA_VOLUME_NORM")]
+                public static const Volume NORM;
 
-		// [CCode (cname="PA_BYTES_SNPRINT_MAX")]
-		[CCode (cname="PA_SAMPLE_SPEC_SNPRINT_MAX")]
-		public const size_t BYTES_SNPRINT_MAX;
+                [CCode (cname="PA_VOLUME_MUTED")]
+                public static const Volume MUTED;
 
-		[CCode (cname="pa_bytes_snprint")]
-		public unowned string bytes_snprint(char[] buf, uint bytes);
+                // [CCode (cname="PA_VOLUME_INVALID")]
+                [CCode (cname="PA_VOLUME_MAX")]
+                public static const Volume INVALID;
 
-		public string bytes_sprint(uint bytes) {
-				var buffer = new char[BYTES_SNPRINT_MAX];
-				bytes_snprint(buffer, bytes);
-				return (string) buffer;
-		}
+                [CCode (cname="pa_volume_snprint", instance_pos = 3.1)]
+                public unowned string snprint(char[] s);
 
-		[CCode (cname="pa_volume_t")]
-		public struct Volume : uint32 {
+                public string sprint() {
+                        var buffer = new char[SNPRINT_MAX];
+                        this.snprint(buffer);
+                        return (string) buffer;
+                }
 
-				[CCode (cname="PA_SW_VOLUME_SNPRINT_DB_MAX")]
-				public static const size_t SW_SNPRINT_DB_MAX;
+                public string to_string() {
+                        return sprint();
+                }
 
-				[CCode (cname="PA_VOLUME_SNPRINT_MAX")]
-				public static const size_t SNPRINT_MAX;
+                [CCode (cname="pa_sw_volume_snprint_dB", instance_pos = 3.1)]
+                public unowned string sw_snprint_dB(char[] s);
 
-				[CCode (cname="PA_VOLUME_MAX")]
-				public static const Volume MAX;
+                public string sw_sprint_dB() {
+                        var buffer = new char[SW_SNPRINT_DB_MAX];
+                        this.sw_snprint_dB(buffer);
+                        return (string) buffer;
+                }
 
-				[CCode (cname="PA_VOLUME_NORM")]
-				public static const Volume NORM;
+                [CCode (cname="pa_sw_volume_multiply")]
+                public Volume sw_multiply(Volume other);
 
-				[CCode (cname="PA_VOLUME_MUTED")]
-				public static const Volume MUTED;
+                [CCode (cname="pa_sw_volume_divide")]
+                public Volume sw_divide(Volume other);
 
-				// [CCode (cname="PA_VOLUME_INVALID")]
-				[CCode (cname="PA_VOLUME_MAX")]
-				public static const Volume INVALID;
+                [CCode (cname="pa_sw_volume_from_dB")]
+                public static Volume sw_from_dB(double f);
 
-				[CCode (cname="pa_volume_snprint", instance_pos = 3.1)]
-				public unowned string snprint(char[] s);
+                [CCode (cname="pa_sw_volume_to_dB")]
+                public double sw_to_dB();
 
-				public string sprint() {
-						var buffer = new char[SNPRINT_MAX];
-						this.snprint(buffer);
-						return (string) buffer;
-				}
+                [CCode (cname="pa_sw_volume_from_linear")]
+                public static Volume sw_from_linear(double f);
+
+                [CCode (cname="pa_sw_volume_to_linear")]
+                public double sw_to_linear();
+        }
 
-				public string to_string() {
-						return sprint();
-				}
+        [CCode (cname="PA_DECIBEL_MININFTY")]
+        public const double DECIBEL_MININFTY;
 
-				[CCode (cname="pa_sw_volume_snprint_dB", instance_pos = 3.1)]
-				public unowned string sw_snprint_dB(char[] s);
+        [CCode (cname="PA_CHANNELS_MAX")]
+        public const int CHANNELS_MAX;
 
-				public string sw_sprint_dB() {
-						var buffer = new char[SW_SNPRINT_DB_MAX];
-						this.sw_snprint_dB(buffer);
-						return (string) buffer;
-				}
+        [CCode (cname="PA_CHANNELS_MAX")]
+        public const int RATE_MAX;
 
-				[CCode (cname="pa_sw_volume_multiply")]
-				public Volume sw_multiply(Volume other);
+        [CCode (cname="pa_cvolume")]
+        public struct CVolume {
+                public uint8 channels;
+                public Volume values[];
 
-				[CCode (cname="pa_sw_volume_divide")]
-				public Volume sw_divide(Volume other);
+                [CCode (cname="PA_SW_CVOLUME_SNPRINT_DB_MAX")]
+                public static const size_t SW_SNPRINT_DB_MAX;
 
-				[CCode (cname="pa_sw_volume_from_dB")]
-				public static Volume sw_from_dB(double f);
+                [CCode (cname="PA_CVOLUME_SNPRINT_MAX")]
+                public static const size_t SNPRINT_MAX;
 
-				[CCode (cname="pa_sw_volume_to_dB")]
-				public double sw_to_dB();
+                [CCode (cname="pa_cvolume_equal")]
+                public bool equal(CVolume other);
 
-				[CCode (cname="pa_sw_volume_from_linear")]
-				public static Volume sw_from_linear(double f);
+                [CCode (cname="pa_cvolume_init")]
+                public unowned CVolume? init();
 
-				[CCode (cname="pa_sw_volume_to_linear")]
-				public double sw_to_linear();
-		}
+                [CCode (cname="pa_cvolume_reset")]
+                public unowned CVolume? reset(uint8 channels);
 
-		[CCode (cname="PA_DECIBEL_MININFTY")]
-		public const double DECIBEL_MININFTY;
+                [CCode (cname="pa_cvolume_mute")]
+                public unowned CVolume? mute(uint8 channels);
 
-		[CCode (cname="PA_CHANNELS_MAX")]
-		public const int CHANNELS_MAX;
+                [CCode (cname="pa_cvolume_snprint", instance_pos = 3.1)]
+                public unowned string snprint(char[] s);
 
-		[CCode (cname="PA_CHANNELS_MAX")]
-		public const int RATE_MAX;
+                public string sprint() {
+                        var buffer = new char[SNPRINT_MAX];
+                        this.snprint(buffer);
+                        return (string) buffer;
+                }
 
-		[CCode (cname="pa_cvolume")]
-		public struct CVolume {
-				public uint8 channels;
-				public Volume values[];
+                public string to_string() {
+                        return sprint();
+                }
 
-				[CCode (cname="PA_SW_CVOLUME_SNPRINT_DB_MAX")]
-				public static const size_t SW_SNPRINT_DB_MAX;
+                [CCode (cname="pa_sw_cvolume_snprint_dB", instance_pos = 3.1)]
+                public unowned string sw_snprint_dB(char [] s);
 
-				[CCode (cname="PA_CVOLUME_SNPRINT_MAX")]
-				public static const size_t SNPRINT_MAX;
+                public string sw_sprint_dB() {
+                        var buffer = new char[SW_SNPRINT_DB_MAX];
+                        this.sw_snprint_dB(buffer);
+                        return (string) buffer;
+                }
 
-				[CCode (cname="pa_cvolume_equal")]
-				public bool equal(CVolume other);
+                [CCode (cname="pa_cvolume_init")]
+                public CVolume();
 
-				[CCode (cname="pa_cvolume_init")]
-				public unowned CVolume? init();
+                [CCode (cname="pa_cvolume_avg")]
+                public Volume avg();
 
-				[CCode (cname="pa_cvolume_reset")]
-				public unowned CVolume? reset(uint8 channels);
+                [CCode (cname="pa_cvolume_max")]
+                public Volume max();
 
-				[CCode (cname="pa_cvolume_mute")]
-				public unowned CVolume? mute(uint8 channels);
+                [CCode (cname="pa_cvolume_min")]
+                public Volume min();
 
-				[CCode (cname="pa_cvolume_snprint", instance_pos = 3.1)]
-				public unowned string snprint(char[] s);
+                [CCode (cname="pa_cvolume_avg_mask")]
+                public Volume avg_mask(ChannelMap map, ChannelPositionMask mask);
 
-				public string sprint() {
-						var buffer = new char[SNPRINT_MAX];
-						this.snprint(buffer);
-						return (string) buffer;
-				}
+                [CCode (cname="pa_cvolume_max_mask")]
+                public Volume max_mask(ChannelMap map, ChannelPositionMask mask);
 
-				public string to_string() {
-						return sprint();
-				}
+                [CCode (cname="pa_cvolume_min_mask")]
+                public Volume min_mask(ChannelMap map, ChannelPositionMask mask);
 
-				[CCode (cname="pa_sw_cvolume_snprint_dB", instance_pos = 3.1)]
-				public unowned string sw_snprint_dB(char [] s);
+                [CCode (cname="pa_cvolume_valid")]
+                public bool valid();
 
-				public string sw_sprint_dB() {
-						var buffer = new char[SW_SNPRINT_DB_MAX];
-						this.sw_snprint_dB(buffer);
-						return (string) buffer;
-				}
+                [CCode (cname="pa_cvolume_channels_equal_to")]
+                public bool channels_equal_to(Volume other);
 
-				[CCode (cname="pa_cvolume_init")]
-				public CVolume();
+                [CCode (cname="pa_cvolume_is_muted")]
+                public bool is_muted();
 
-				[CCode (cname="pa_cvolume_avg")]
-				public Volume avg();
+                [CCode (cname="pa_cvolume_is_norm")]
+                public bool is_norm();
 
-				[CCode (cname="pa_cvolume_max")]
-				public Volume max();
+                [CCode (cname="pa_sw_cvolume_multiply")]
+                public unowned CVolume? multiply(CVolume other);
 
-				[CCode (cname="pa_cvolume_min")]
-				public Volume min();
+                [CCode (cname="pa_sw_cvolume_divide")]
+                public unowned CVolume? divide(CVolume other);
 
-				[CCode (cname="pa_cvolume_avg_mask")]
-				public Volume avg_mask(ChannelMap map, ChannelPositionMask mask);
+                [CCode (cname="pa_sw_cvolume_multiply_scalar")]
+                public unowned CVolume? multiply_scalar(Volume other);
 
-				[CCode (cname="pa_cvolume_max_mask")]
-				public Volume max_mask(ChannelMap map, ChannelPositionMask mask);
+                [CCode (cname="pa_sw_cvolume_divide_scalar")]
+                public unowned CVolume? divide_scalar(Volume other);
 
-				[CCode (cname="pa_cvolume_min_mask")]
-				public Volume min_mask(ChannelMap map, ChannelPositionMask mask);
+                [CCode (cname="pa_cvolume_remap")]
+                public unowned CVolume? remap(ChannelMap from, ChannelMap to);
 
-				[CCode (cname="pa_cvolume_valid")]
-				public bool valid();
+                [CCode (cname="pa_cvolume_compatible")]
+                public bool compatible(SampleSpec ss);
 
-				[CCode (cname="pa_cvolume_channels_equal_to")]
-				public bool channels_equal_to(Volume other);
+                [CCode (cname="pa_cvolume_compatible_with_channel_map")]
+                public bool compatible_with_channel_map(ChannelMap cm);
 
-				[CCode (cname="pa_cvolume_is_muted")]
-				public bool is_muted();
+                [CCode (cname="pa_cvolume_get_balance")]
+                public float get_balance(ChannelMap map);
 
-				[CCode (cname="pa_cvolume_is_norm")]
-				public bool is_norm();
+                [CCode (cname="pa_cvolume_set_balance")]
+                public unowned CVolume? set_balance(ChannelMap map, float b);
 
-				[CCode (cname="pa_sw_cvolume_multiply")]
-				public unowned CVolume? multiply(CVolume other);
+                [CCode (cname="pa_cvolume_get_fade")]
+                public float get_fade(ChannelMap map);
 
-				[CCode (cname="pa_sw_cvolume_divide")]
-				public unowned CVolume? divide(CVolume other);
+                [CCode (cname="pa_cvolume_set_fade")]
+                public unowned CVolume? set_fade(ChannelMap map, float f);
 
-				[CCode (cname="pa_sw_cvolume_multiply_scalar")]
-				public unowned CVolume? multiply_scalar(Volume other);
+                [CCode (cname="pa_cvolume_scale")]
+                public unowned CVolume? scale(Volume max);
 
-				[CCode (cname="pa_sw_cvolume_divide_scalar")]
-				public unowned CVolume? divide_scalar(Volume other);
+                [CCode (cname="pa_cvolume_scale_mask")]
+                public unowned CVolume? scale_mask(Volume max, ChannelMap map, ChannelPositionMask mask);
 
-				[CCode (cname="pa_cvolume_remap")]
-				public unowned CVolume? remap(ChannelMap from, ChannelMap to);
+                [CCode (cname="pa_cvolume_set_position")]
+                public unowned CVolume? set_position(ChannelMap map, ChannelPosition p, Volume v);
 
-				[CCode (cname="pa_cvolume_compatible")]
-				public bool compatible(SampleSpec ss);
+                [CCode (cname="pa_cvolume_get_position")]
+                public Volume get_position(ChannelMap map, ChannelPosition p);
+
+                [CCode (cname="pa_cvolume_merge")]
+                public unowned CVolume? merge(CVolume other);
+
+                [CCode (cname="pa_cvolume_inc")]
+                public unowned CVolume? inc(Volume plus = 1);
+
+                [CCode (cname="pa_cvolume_dec")]
+                public unowned CVolume? dec(Volume minus = 1);
+        }
 
-				[CCode (cname="pa_cvolume_compatible_with_channel_map")]
-				public bool compatible_with_channel_map(ChannelMap cm);
+        [CCode (cname="pa_channel_map")]
+        public struct ChannelMap {
+                public uint8 channels;
+                public ChannelPosition map[];
 
-				[CCode (cname="pa_cvolume_get_balance")]
-				public float get_balance(ChannelMap map);
+                [CCode (cname="PA_CHANNEL_MAP_SNPRINT_MAX")]
+                public static const size_t SNPRINT_MAX;
 
-				[CCode (cname="pa_cvolume_set_balance")]
-				public unowned CVolume? set_balance(ChannelMap map, float b);
+                [CCode (cname="pa_channel_map_init")]
+                public ChannelMap();
 
-				[CCode (cname="pa_cvolume_get_fade")]
-				public float get_fade(ChannelMap map);
+                [CCode (cname="pa_channel_map_init")]
+                public unowned ChannelMap? init();
 
-				[CCode (cname="pa_cvolume_set_fade")]
-				public unowned CVolume? set_fade(ChannelMap map, float f);
+                [CCode (cname="pa_channel_map_init_mono")]
+                public unowned ChannelMap? init_mono();
 
-				[CCode (cname="pa_cvolume_scale")]
-				public unowned CVolume? scale(Volume max);
+                [CCode (cname="pa_channel_map_init_stereo")]
+                public unowned ChannelMap? init_stereo();
 
-				[CCode (cname="pa_cvolume_scale_mask")]
-				public unowned CVolume? scale_mask(Volume max, ChannelMap map, ChannelPositionMask mask);
+                [CCode (cname="pa_channel_map_init_auto")]
+                public unowned ChannelMap? init_auto(uint8 channels, ChannelMapDef def = ChannelMapDef.DEFAULT);
 
-				[CCode (cname="pa_cvolume_set_position")]
-				public unowned CVolume? set_position(ChannelMap map, ChannelPosition p, Volume v);
+                [CCode (cname="pa_channel_map_init_extend")]
+                public unowned ChannelMap? init_extend(uint8 channels, ChannelMapDef def = ChannelMapDef.DEFAULT);
 
-				[CCode (cname="pa_cvolume_get_position")]
-				public Volume get_position(ChannelMap map, ChannelPosition p);
+                [CCode (cname="pa_channel_map_snprint", instance_pos = 3.1)]
+                public unowned string snprint(char[] s);
 
-				[CCode (cname="pa_cvolume_merge")]
-				public unowned CVolume? merge(CVolume other);
+                public string sprint() {
+                        var buffer = new char[SNPRINT_MAX];
+                        this.snprint(buffer);
+                        return (string) buffer;
+                }
 
-				[CCode (cname="pa_cvolume_inc")]
-				public unowned CVolume? inc(Volume plus = 1);
+                public string to_string() {
+                        return sprint();
+                }
 
-				[CCode (cname="pa_cvolume_dec")]
-				public unowned CVolume? dec(Volume minus = 1);
-		}
+                [CCode (cname="pa_channel_map_parse")]
+                public unowned ChannelMap? parse(string s);
 
-		[CCode (cname="pa_channel_map")]
-		public struct ChannelMap {
-				public uint8 channels;
-				public ChannelPosition map[];
+                [CCode (cname="pa_channel_map_equal")]
+                public bool equal(ChannelMap other);
 
-				[CCode (cname="PA_CHANNEL_MAP_SNPRINT_MAX")]
-				public static const size_t SNPRINT_MAX;
+                [CCode (cname="pa_channel_map_superset")]
+                public bool superset(ChannelMap other);
 
-				[CCode (cname="pa_channel_map_init")]
-				public ChannelMap();
+                [CCode (cname="pa_channel_map_valid")]
+                public bool valid();
 
-				[CCode (cname="pa_channel_map_init")]
-				public unowned ChannelMap? init();
+                [CCode (cname="pa_channel_map_compatible")]
+                public bool compatible(SampleSpec ss);
 
-				[CCode (cname="pa_channel_map_init_mono")]
-				public unowned ChannelMap? init_mono();
+                [CCode (cname="pa_channel_map_can_balance")]
+                public bool can_balance();
+
+                [CCode (cname="pa_channel_map_can_fade")]
+                public bool can_fade();
+
+                [CCode (cname="pa_channel_map_to_name")]
+                public unowned string? to_name();
+
+                [CCode (cname="pa_channel_map_to_pretty_name")]
+                public unowned string? to_pretty_name();
+
+                [CCode (cname="pa_channel_map_has_position")]
+                public bool has_position(ChannelPosition p);
+
+                [CCode (cname="pa_channel_map_mask")]
+                public ChannelPositionMask mask();
+        }
+
+        [CCode (cname="pa_channel_position_mask_t")]
+        public struct ChannelPositionMask : uint64 {
+        }
+
+        [CCode (cname="pa_channel_position_t", cprefix="PA_CHANNEL_POSITION_")]
+        public enum ChannelPosition {
+                INVALID,
+                MONO,
+                FRONT_LEFT,
+                FRONT_RIGHT,
+                FRONT_CENTER,
+                REAR_CENTER,
+                REAR_LEFT,
+                REAR_RIGHT,
+                LFE,
+                FRONT_LEFT_OF_CENTER,
+                FRONT_RIGHT_OF_CENTER,
+                SIDE_LEFT,
+                SIDE_RIGHT,
+                TOP_CENTER,
+                AUX0,
+                AUX1,
+                AUX2,
+                AUX3,
+                AUX4,
+                AUX5,
+                AUX6,
+                AUX7,
+                AUX8,
+                AUX9,
+                AUX10,
+                AUX11,
+                AUX12,
+                AUX13,
+                AUX14,
+                AUX15,
+                AUX16,
+                AUX17,
+                AUX18,
+                AUX19,
+                AUX20,
+                AUX21,
+                AUX22,
+                AUX23,
+                AUX24,
+                AUX25,
+                AUX26,
+                AUX27,
+                AUX28,
+                AUX29,
+                AUX30,
+                AUX31,
+                MAX;
+
+                [CCode (cname="PA_CHANNEL_POSITION_MASK")]
+                public ChannelPositionMask mask();
+
+                [CCode (cname="pa_channel_position_to_string")]
+                public unowned string? to_string();
+
+                [CCode (cname="pa_channel_position_to_pretty_string")]
+                public unowned string? to_pretty_string();
+
+                [CCode (cname="pa_channel_position_from_string")]
+                public static ChannelPosition from_string(string s);
+        }
+
+        [CCode (cname="pa_channel_map_def_t", cprefix="PA_CHANNEL_MAP_")]
+        public enum ChannelMapDef {
+                AIFF,
+                WAVEEX,
+                AUX,
+                DEFAULT,
+
+                [CCode (cname="PA_CHANNEL_MAP_DEF_MAX")]
+                MAX
+        }
+
+        [Compact]
+        [CCode (cname="pa_proplist", cprefix="pa_proplist_", free_function="pa_proplist_free")]
+        public class Proplist {
+
+                [CCode (cname="PA_PROP_MEDIA_NAME")]
+                public static const string PROP_MEDIA_NAME;
+                [CCode (cname="PA_PROP_MEDIA_TITLE")]
+                public static const string PROP_MEDIA_TITLE;
+                [CCode (cname="PA_PROP_MEDIA_ARTIST")]
+                public static const string PROP_MEDIA_ARTIST;
+                [CCode (cname="PA_PROP_MEDIA_COPYRIGHT")]
+                public static const string PROP_MEDIA_COPYRIGHT;
+                [CCode (cname="PA_PROP_MEDIA_SOFTWARE")]
+                public static const string PROP_MEDIA_SOFTWARE;
+                [CCode (cname="PA_PROP_MEDIA_LANGUAGE")]
+                public static const string PROP_MEDIA_LANGUAGE;
+                [CCode (cname="PA_PROP_MEDIA_FILENAME")]
+                public static const string PROP_MEDIA_FILENAME;
+                [CCode (cname="PA_PROP_MEDIA_ICON_NAME")]
+                public static const string PROP_MEDIA_ICON_NAME;
+                [CCode (cname="PA_PROP_MEDIA_ROLE")]
+                public static const string PROP_MEDIA_ROLE;
+                [CCode (cname="PA_PROP_EVENT_ID")]
+                public static const string PROP_EVENT_ID;
+                [CCode (cname="PA_PROP_EVENT_DESCRIPTION")]
+                public static const string PROP_EVENT_DESCRIPTION;
+                [CCode (cname="PA_PROP_EVENT_MOUSE_X")]
+                public static const string PROP_EVENT_MOUSE_X;
+                [CCode (cname="PA_PROP_EVENT_MOUSE_Y")]
+                public static const string PROP_EVENT_MOUSE_Y;
+                [CCode (cname="PA_PROP_EVENT_MOUSE_HPOS")]
+                public static const string PROP_EVENT_MOUSE_HPOS;
+                [CCode (cname="PA_PROP_EVENT_MOUSE_VPOS")]
+                public static const string PROP_EVENT_MOUSE_VPOS;
+                [CCode (cname="PA_PROP_EVENT_MOUSE_BUTTON")]
+                public static const string PROP_EVENT_MOUSE_BUTTON;
+                [CCode (cname="PA_PROP_WINDOW_NAME")]
+                public static const string PROP_WINDOW_NAME;
+                [CCode (cname="PA_PROP_WINDOW_ID")]
+                public static const string PROP_WINDOW_ID;
+                [CCode (cname="PA_PROP_WINDOW_ICON_NAME")]
+                public static const string PROP_WINDOW_ICON_NAME;
+                [CCode (cname="PA_PROP_WINDOW_X11_DISPLAY")]
+                public static const string PROP_WINDOW_X11_DISPLAY;
+                [CCode (cname="PA_PROP_WINDOW_X11_SCREEN")]
+                public static const string PROP_WINDOW_X11_SCREEN;
+                [CCode (cname="PA_PROP_WINDOW_X11_MONITOR")]
+                public static const string PROP_WINDOW_X11_MONITOR;
+                [CCode (cname="PA_PROP_WINDOW_X11_XID")]
+                public static const string PROP_WINDOW_X11_XID;
+                [CCode (cname="PA_PROP_APPLICATION_NAME")]
+                public static const string PROP_APPLICATION_NAME;
+                [CCode (cname="PA_PROP_APPLICATION_ID")]
+                public static const string PROP_APPLICATION_ID;
+                [CCode (cname="PA_PROP_APPLICATION_VERSION")]
+                public static const string PROP_APPLICATION_VERSION;
+                [CCode (cname="PA_PROP_APPLICATION_ICON_NAME")]
+                public static const string PROP_APPLICATION_ICON_NAME;
+                [CCode (cname="PA_PROP_APPLICATION_LANGUAGE")]
+                public static const string PROP_APPLICATION_LANGUAGE;
+                [CCode (cname="PA_PROP_APPLICATION_PROCESS_ID")]
+                public static const string PROP_APPLICATION_PROCESS_ID;
+                [CCode (cname="PA_PROP_APPLICATION_PROCESS_BINARY")]
+                public static const string PROP_APPLICATION_PROCESS_BINARY;
+                [CCode (cname="PA_PROP_APPLICATION_PROCESS_USER")]
+                public static const string PROP_APPLICATION_PROCESS_USER;
+                [CCode (cname="PA_PROP_APPLICATION_PROCESS_HOST")]
+                public static const string PROP_APPLICATION_PROCESS_HOST;
+                [CCode (cname="PA_PROP_APPLICATION_PROCESS_MACHINE_ID")]
+                public static const string PROP_APPLICATION_PROCESS_MACHINE_ID;
+                [CCode (cname="PA_PROP_APPLICATION_PROCESS_SESSION_ID")]
+                public static const string PROP_APPLICATION_PROCESS_SESSION_ID;
+                [CCode (cname="PA_PROP_DEVICE_STRING")]
+                public static const string PROP_DEVICE_STRING;
+                [CCode (cname="PA_PROP_DEVICE_API")]
+                public static const string PROP_DEVICE_API;
+                [CCode (cname="PA_PROP_DEVICE_DESCRIPTION")]
+                public static const string PROP_DEVICE_DESCRIPTION;
+                [CCode (cname="PA_PROP_DEVICE_BUS_PATH")]
+                public static const string PROP_DEVICE_BUS_PATH;
+                [CCode (cname="PA_PROP_DEVICE_SERIAL")]
+                public static const string PROP_DEVICE_SERIAL;
+                [CCode (cname="PA_PROP_DEVICE_VENDOR_ID")]
+                public static const string PROP_DEVICE_VENDOR_ID;
+                [CCode (cname="PA_PROP_DEVICE_VENDOR_NAME")]
+                public static const string PROP_DEVICE_VENDOR_NAME;
+                [CCode (cname="PA_PROP_DEVICE_PRODUCT_ID")]
+                public static const string PROP_DEVICE_PRODUCT_ID;
+                [CCode (cname="PA_PROP_DEVICE_PRODUCT_NAME")]
+                public static const string PROP_DEVICE_PRODUCT_NAME;
+                [CCode (cname="PA_PROP_DEVICE_CLASS")]
+                public static const string PROP_DEVICE_CLASS;
+                [CCode (cname="PA_PROP_DEVICE_FORM_FACTOR")]
+                public static const string PROP_DEVICE_FORM_FACTOR;
+                [CCode (cname="PA_PROP_DEVICE_BUS")]
+                public static const string PROP_DEVICE_BUS;
+                [CCode (cname="PA_PROP_DEVICE_ICON_NAME")]
+                public static const string PROP_DEVICE_ICON_NAME;
+                [CCode (cname="PA_PROP_DEVICE_ACCESS_MODE")]
+                public static const string PROP_DEVICE_ACCESS_MODE;
+                [CCode (cname="PA_PROP_DEVICE_MASTER_DEVICE")]
+                public static const string PROP_DEVICE_MASTER_DEVICE;
+                [CCode (cname="PA_PROP_DEVICE_BUFFERING_BUFFER_SIZE")]
+                public static const string PROP_DEVICE_BUFFERING_BUFFER_SIZE;
+                [CCode (cname="PA_PROP_DEVICE_BUFFERING_FRAGMENT_SIZE")]
+                public static const string PROP_DEVICE_BUFFERING_FRAGMENT_SIZE;
+                [CCode (cname="PA_PROP_DEVICE_PROFILE_NAME")]
+                public static const string PROP_DEVICE_PROFILE_NAME;
+                [CCode (cname="PA_PROP_DEVICE_INTENDED_ROLES")]
+                public static const string PROP_DEVICE_INTENDED_ROLES;
+                [CCode (cname="PA_PROP_DEVICE_PROFILE_DESCRIPTION")]
+                public static const string PROP_DEVICE_PROFILE_DESCRIPTION;
+                [CCode (cname="PA_PROP_MODULE_AUTHOR")]
+                public static const string PROP_MODULE_AUTHOR;
+                [CCode (cname="PA_PROP_MODULE_DESCRIPTION")]
+                public static const string PROP_MODULE_DESCRIPTION;
+                [CCode (cname="PA_PROP_MODULE_USAGE")]
+                public static const string PROP_MODULE_USAGE;
+                [CCode (cname="PA_PROP_MODULE_VERSION")]
+                public static const string PROP_MODULE_VERSION;
+
+                [CCode (cname="pa_proplist_new")]
+                public Proplist();
+
+                public int sets(string key, string value);
+                public int setp(string pair);
+
+                [PrintfFormat]
+                public int setf(string key, string format, ...);
+
+                public int set(string key, void* data, size_t size);
+
+                public unowned string? gets(string key);
+
+                public int get(string key, out void* data, out size_t size);
+
+                public void update(UpdateMode mode, Proplist other);
+
+                public void unset(string key);
+
+                [CCode (array_length = false)]
+                public void unset_many(string[] key);
+
+                public unowned string? iterate(ref void* state);
+
+                public string to_string();
+
+                public string to_string_sep(string sep);
+
+                public static Proplist? from_string(string s);
+
+                public int contains(string key);
+
+                public void clear();
+
+                public Proplist copy();
+
+                public uint size();
+
+                public bool is_empty();
+        }
+
+        [CCode (cname="pa_update_mode_t", cprefix="PA_UPDATE_")]
+        public enum UpdateMode {
+                SET,
+                MERGE,
+                REPLACE
+        }
+
+        [CCode (cname="PA_OK")]
+        public const int OK;
+
+        [CCode (cname="int", cprefix="PA_ERR_")]
+        public enum Error {
+                ACCESS,
+                COMMAND,
+                INVALID,
+                EXIST,
+                NOENTITY,
+                CONNECTIONREFUSED,
+                PROTOCOL,
+                TIMEOUT,
+                AUTHKEY,
+                INTERNAL,
+                CONNECTIONTERMINATED,
+                KILLED,
+                INVALIDSERVER,
+                MODINITFAILED,
+                BADSTATE,
+                NODATA,
+                VERSION,
+                TOOLARGE,
+                NOTSUPPORTED,
+                UNKNOWN,
+                NOEXTENSION,
+                OBSOLETE,
+                NOTIMPLEMENTED,
+                FORKED,
+                IO,
+                MAX
+        }
+
+        [CCode (cname="pa_strerror")]
+        public unowned string? strerror(Error e);
+
+        public delegate void VoidFunc();
+
+        [CCode (cname="pa_spawn_api")]
+        public struct SpawnApi {
+                VoidFunc? prefork;
+                VoidFunc? postfork;
+                VoidFunc? atfork;
+        }
+
+        [CCode (cname="pa_io_event_flags_t", cprefix="PA_IO_EVENT_")]
+        public enum IoEventFlags {
+                NULL,
+                INPUT,
+                OUTPUT,
+                HANGUP,
+                ERROR
+        }
+
+        [CCode (cname="pa_io_event")]
+        public struct IoEvent {
+        }
+
+        [CCode (cname="pa_time_event")]
+        public struct TimeEvent {
+        }
+
+        [CCode (cname="pa_defer_event")]
+        public struct DeferEvent {
+        }
+
+        [CCode (cname="pa_signal_event", cprefix="pa_signal_", free_function="pa_signal_free")]
+        public struct SignalEvent {
+
+                [CCode (cname="pa_signal_new")]
+                public SignalEvent(int sig, MainLoopApi.SignalEventCb cb);
+
+                public void set_destroy(MainLoopApi.SignalEventDestroyCb cb);
+        }
+
+        [Compact]
+        [CCode (cname="pa_mainloop_api")]
+        public class MainLoopApi {
+                public void* userdata;
+
+                /* Callbacks for the consumer to implement*/
+                public delegate void IoEventCb(IoEvent e, int fd, IoEventFlags flags);
+                public delegate void IoEventDestroyCb(IoEvent e);
+
+                public delegate void TimeEventCb(TimeEvent e, ref timeval t);
+                public delegate void TimeEventDestroyCb(TimeEvent e);
+
+                public delegate void DeferEventCb(DeferEvent e);
+                public delegate void DeferEventDestroyCb(DeferEvent e);
+
+                public delegate void SignalEventCb(SignalEvent e);
+                public delegate void SignalEventDestroyCb(SignalEvent e);
+
+                /* Callbacks for the provider to implement */
+                public delegate IoEvent IoNewCb(int fd, IoEventFlags flags, IoEventCb cb);
+                public delegate void IoEnableCb(IoEvent e, IoEventFlags flags);
+                public delegate void IoFreeCb(IoEvent e);
+                public delegate void IoSetDestroyCb(IoEvent e, IoEventDestroyCb? cb);
+
+                public delegate TimeEvent TimeNewCb(ref timeval? t, TimeEventCb cb);
+                public delegate void TimeRestartCb(TimeEvent e, ref timeval? t);
+                public delegate void TimeFreeCb(TimeEvent e);
+                public delegate void TimeSetDestroyCb(TimeEvent e, TimeEventDestroyCb? cb);
+
+                public delegate DeferEvent DeferNewCb(DeferEventCb cb);
+                public delegate void DeferEnableCb(DeferEvent e, bool b);
+                public delegate void DeferFreeCb(DeferEvent e);
+                public delegate void DeferSetDestroyCb(DeferEvent e, DeferEventDestroyCb? cb);
+
+                public delegate void QuitCb(int retval);
+
+                public delegate void OnceCb();
+
+                public IoNewCb io_new;
+                public IoEnableCb io_enable;
+                public IoFreeCb io_free;
+                public IoSetDestroyCb io_set_destroy;
+
+                public TimeNewCb time_new;
+                public TimeRestartCb time_restart;
+                public TimeFreeCb time_free;
+                public TimeSetDestroyCb time_set_destroy;
+
+                public DeferNewCb defer_new;
+                public DeferEnableCb defer_enable;
+                public DeferFreeCb defer_free;
+                public DeferSetDestroyCb defer_set_destroy;
+
+                public QuitCb quit;
+
+                [CCode (cname="pa_mainloop_api_once")]
+                public void once(OnceCb cb);
+        }
 
-				[CCode (cname="pa_channel_map_init_stereo")]
-				public unowned ChannelMap? init_stereo();
+        [CCode (cname="pa_signal_init")]
+        public void signal_init(MainLoopApi api);
 
-				[CCode (cname="pa_channel_map_init_auto")]
-				public unowned ChannelMap? init_auto(uint8 channels, ChannelMapDef def = ChannelMapDef.DEFAULT);
-
-				[CCode (cname="pa_channel_map_init_extend")]
-				public unowned ChannelMap? init_extend(uint8 channels, ChannelMapDef def = ChannelMapDef.DEFAULT);
-
-				[CCode (cname="pa_channel_map_snprint", instance_pos = 3.1)]
-				public unowned string snprint(char[] s);
-
-				public string sprint() {
-						var buffer = new char[SNPRINT_MAX];
-						this.snprint(buffer);
-						return (string) buffer;
-				}
-
-				public string to_string() {
-						return sprint();
-				}
-
-				[CCode (cname="pa_channel_map_parse")]
-				public unowned ChannelMap? parse(string s);
-
-				[CCode (cname="pa_channel_map_equal")]
-				public bool equal(ChannelMap other);
-
-				[CCode (cname="pa_channel_map_superset")]
-				public bool superset(ChannelMap other);
-
-				[CCode (cname="pa_channel_map_valid")]
-				public bool valid();
-
-				[CCode (cname="pa_channel_map_compatible")]
-				public bool compatible(SampleSpec ss);
-
-				[CCode (cname="pa_channel_map_can_balance")]
-				public bool can_balance();
-
-				[CCode (cname="pa_channel_map_can_fade")]
-				public bool can_fade();
-
-				[CCode (cname="pa_channel_map_to_name")]
-				public unowned string? to_name();
-
-				[CCode (cname="pa_channel_map_to_pretty_name")]
-				public unowned string? to_pretty_name();
-
-				[CCode (cname="pa_channel_map_has_position")]
-				public bool has_position(ChannelPosition p);
-
-				[CCode (cname="pa_channel_map_mask")]
-				public ChannelPositionMask mask();
-		}
-
-		[CCode (cname="pa_channel_position_mask_t")]
-		public struct ChannelPositionMask : uint64 {
-		}
-
-		[CCode (cname="pa_channel_position_t", cprefix="PA_CHANNEL_POSITION_")]
-		public enum ChannelPosition {
-				INVALID,
-				MONO,
-				FRONT_LEFT,
-				FRONT_RIGHT,
-				FRONT_CENTER,
-				REAR_CENTER,
-				REAR_LEFT,
-				REAR_RIGHT,
-				LFE,
-				FRONT_LEFT_OF_CENTER,
-				FRONT_RIGHT_OF_CENTER,
-				SIDE_LEFT,
-				SIDE_RIGHT,
-				TOP_CENTER,
-				AUX0,
-				AUX1,
-				AUX2,
-				AUX3,
-				AUX4,
-				AUX5,
-				AUX6,
-				AUX7,
-				AUX8,
-				AUX9,
-				AUX10,
-				AUX11,
-				AUX12,
-				AUX13,
-				AUX14,
-				AUX15,
-				AUX16,
-				AUX17,
-				AUX18,
-				AUX19,
-				AUX20,
-				AUX21,
-				AUX22,
-				AUX23,
-				AUX24,
-				AUX25,
-				AUX26,
-				AUX27,
-				AUX28,
-				AUX29,
-				AUX30,
-				AUX31,
-				MAX;
-
-				[CCode (cname="PA_CHANNEL_POSITION_MASK")]
-				public ChannelPositionMask mask();
-
-				[CCode (cname="pa_channel_position_to_string")]
-				public unowned string? to_string();
-
-				[CCode (cname="pa_channel_position_to_pretty_string")]
-				public unowned string? to_pretty_string();
-
-				[CCode (cname="pa_channel_position_from_string")]
-				public static ChannelPosition from_string(string s);
-		}
-
-		[CCode (cname="pa_channel_map_def_t", cprefix="PA_CHANNEL_MAP_")]
-		public enum ChannelMapDef {
-				AIFF,
-				WAVEEX,
-				AUX,
-				DEFAULT,
-
-				[CCode (cname="PA_CHANNEL_MAP_DEF_MAX")]
-				MAX
-		}
-
-		[Compact]
-		[CCode (cname="pa_proplist", cprefix="pa_proplist_", free_function="pa_proplist_free")]
-		public class Proplist {
-
-				[CCode (cname="PA_PROP_MEDIA_NAME")]
-				public static const string PROP_MEDIA_NAME;
-				[CCode (cname="PA_PROP_MEDIA_TITLE")]
-				public static const string PROP_MEDIA_TITLE;
-				[CCode (cname="PA_PROP_MEDIA_ARTIST")]
-				public static const string PROP_MEDIA_ARTIST;
-				[CCode (cname="PA_PROP_MEDIA_COPYRIGHT")]
-				public static const string PROP_MEDIA_COPYRIGHT;
-				[CCode (cname="PA_PROP_MEDIA_SOFTWARE")]
-				public static const string PROP_MEDIA_SOFTWARE;
-				[CCode (cname="PA_PROP_MEDIA_LANGUAGE")]
-				public static const string PROP_MEDIA_LANGUAGE;
-				[CCode (cname="PA_PROP_MEDIA_FILENAME")]
-				public static const string PROP_MEDIA_FILENAME;
-				[CCode (cname="PA_PROP_MEDIA_ICON_NAME")]
-				public static const string PROP_MEDIA_ICON_NAME;
-				[CCode (cname="PA_PROP_MEDIA_ROLE")]
-				public static const string PROP_MEDIA_ROLE;
-				[CCode (cname="PA_PROP_EVENT_ID")]
-				public static const string PROP_EVENT_ID;
-				[CCode (cname="PA_PROP_EVENT_DESCRIPTION")]
-				public static const string PROP_EVENT_DESCRIPTION;
-				[CCode (cname="PA_PROP_EVENT_MOUSE_X")]
-				public static const string PROP_EVENT_MOUSE_X;
-				[CCode (cname="PA_PROP_EVENT_MOUSE_Y")]
-				public static const string PROP_EVENT_MOUSE_Y;
-				[CCode (cname="PA_PROP_EVENT_MOUSE_HPOS")]
-				public static const string PROP_EVENT_MOUSE_HPOS;
-				[CCode (cname="PA_PROP_EVENT_MOUSE_VPOS")]
-				public static const string PROP_EVENT_MOUSE_VPOS;
-				[CCode (cname="PA_PROP_EVENT_MOUSE_BUTTON")]
-				public static const string PROP_EVENT_MOUSE_BUTTON;
-				[CCode (cname="PA_PROP_WINDOW_NAME")]
-				public static const string PROP_WINDOW_NAME;
-				[CCode (cname="PA_PROP_WINDOW_ID")]
-				public static const string PROP_WINDOW_ID;
-				[CCode (cname="PA_PROP_WINDOW_ICON_NAME")]
-				public static const string PROP_WINDOW_ICON_NAME;
-				[CCode (cname="PA_PROP_WINDOW_X11_DISPLAY")]
-				public static const string PROP_WINDOW_X11_DISPLAY;
-				[CCode (cname="PA_PROP_WINDOW_X11_SCREEN")]
-				public static const string PROP_WINDOW_X11_SCREEN;
-				[CCode (cname="PA_PROP_WINDOW_X11_MONITOR")]
-				public static const string PROP_WINDOW_X11_MONITOR;
-				[CCode (cname="PA_PROP_WINDOW_X11_XID")]
-				public static const string PROP_WINDOW_X11_XID;
-				[CCode (cname="PA_PROP_APPLICATION_NAME")]
-				public static const string PROP_APPLICATION_NAME;
-				[CCode (cname="PA_PROP_APPLICATION_ID")]
-				public static const string PROP_APPLICATION_ID;
-				[CCode (cname="PA_PROP_APPLICATION_VERSION")]
-				public static const string PROP_APPLICATION_VERSION;
-				[CCode (cname="PA_PROP_APPLICATION_ICON_NAME")]
-				public static const string PROP_APPLICATION_ICON_NAME;
-				[CCode (cname="PA_PROP_APPLICATION_LANGUAGE")]
-				public static const string PROP_APPLICATION_LANGUAGE;
-				[CCode (cname="PA_PROP_APPLICATION_PROCESS_ID")]
-				public static const string PROP_APPLICATION_PROCESS_ID;
-				[CCode (cname="PA_PROP_APPLICATION_PROCESS_BINARY")]
-				public static const string PROP_APPLICATION_PROCESS_BINARY;
-				[CCode (cname="PA_PROP_APPLICATION_PROCESS_USER")]
-				public static const string PROP_APPLICATION_PROCESS_USER;
-				[CCode (cname="PA_PROP_APPLICATION_PROCESS_HOST")]
-				public static const string PROP_APPLICATION_PROCESS_HOST;
-				[CCode (cname="PA_PROP_APPLICATION_PROCESS_MACHINE_ID")]
-				public static const string PROP_APPLICATION_PROCESS_MACHINE_ID;
-				[CCode (cname="PA_PROP_APPLICATION_PROCESS_SESSION_ID")]
-				public static const string PROP_APPLICATION_PROCESS_SESSION_ID;
-				[CCode (cname="PA_PROP_DEVICE_STRING")]
-				public static const string PROP_DEVICE_STRING;
-				[CCode (cname="PA_PROP_DEVICE_API")]
-				public static const string PROP_DEVICE_API;
-				[CCode (cname="PA_PROP_DEVICE_DESCRIPTION")]
-				public static const string PROP_DEVICE_DESCRIPTION;
-				[CCode (cname="PA_PROP_DEVICE_BUS_PATH")]
-				public static const string PROP_DEVICE_BUS_PATH;
-				[CCode (cname="PA_PROP_DEVICE_SERIAL")]
-				public static const string PROP_DEVICE_SERIAL;
-				[CCode (cname="PA_PROP_DEVICE_VENDOR_ID")]
-				public static const string PROP_DEVICE_VENDOR_ID;
-				[CCode (cname="PA_PROP_DEVICE_VENDOR_NAME")]
-				public static const string PROP_DEVICE_VENDOR_NAME;
-				[CCode (cname="PA_PROP_DEVICE_PRODUCT_ID")]
-				public static const string PROP_DEVICE_PRODUCT_ID;
-				[CCode (cname="PA_PROP_DEVICE_PRODUCT_NAME")]
-				public static const string PROP_DEVICE_PRODUCT_NAME;
-				[CCode (cname="PA_PROP_DEVICE_CLASS")]
-				public static const string PROP_DEVICE_CLASS;
-				[CCode (cname="PA_PROP_DEVICE_FORM_FACTOR")]
-				public static const string PROP_DEVICE_FORM_FACTOR;
-				[CCode (cname="PA_PROP_DEVICE_BUS")]
-				public static const string PROP_DEVICE_BUS;
-				[CCode (cname="PA_PROP_DEVICE_ICON_NAME")]
-				public static const string PROP_DEVICE_ICON_NAME;
-				[CCode (cname="PA_PROP_DEVICE_ACCESS_MODE")]
-				public static const string PROP_DEVICE_ACCESS_MODE;
-				[CCode (cname="PA_PROP_DEVICE_MASTER_DEVICE")]
-				public static const string PROP_DEVICE_MASTER_DEVICE;
-				[CCode (cname="PA_PROP_DEVICE_BUFFERING_BUFFER_SIZE")]
-				public static const string PROP_DEVICE_BUFFERING_BUFFER_SIZE;
-				[CCode (cname="PA_PROP_DEVICE_BUFFERING_FRAGMENT_SIZE")]
-				public static const string PROP_DEVICE_BUFFERING_FRAGMENT_SIZE;
-				[CCode (cname="PA_PROP_DEVICE_PROFILE_NAME")]
-				public static const string PROP_DEVICE_PROFILE_NAME;
-				[CCode (cname="PA_PROP_DEVICE_INTENDED_ROLES")]
-				public static const string PROP_DEVICE_INTENDED_ROLES;
-				[CCode (cname="PA_PROP_DEVICE_PROFILE_DESCRIPTION")]
-				public static const string PROP_DEVICE_PROFILE_DESCRIPTION;
-				[CCode (cname="PA_PROP_MODULE_AUTHOR")]
-				public static const string PROP_MODULE_AUTHOR;
-				[CCode (cname="PA_PROP_MODULE_DESCRIPTION")]
-				public static const string PROP_MODULE_DESCRIPTION;
-				[CCode (cname="PA_PROP_MODULE_USAGE")]
-				public static const string PROP_MODULE_USAGE;
-				[CCode (cname="PA_PROP_MODULE_VERSION")]
-				public static const string PROP_MODULE_VERSION;
-
-				[CCode (cname="pa_proplist_new")]
-				public Proplist();
-
-				public int sets(string key, string value);
-				public int setp(string pair);
-
-				[PrintfFormat]
-				public int setf(string key, string format, ...);
-
-				public int set(string key, void* data, size_t size);
-
-				public unowned string? gets(string key);
-
-				public int get(string key, out void* data, out size_t size);
-
-				public void update(UpdateMode mode, Proplist other);
-
-				public void unset(string key);
-
-				[CCode (array_length = false)]
-				public void unset_many(string[] key);
-
-				public unowned string? iterate(ref void* state);
-
-				public string to_string();
-
-				public string to_string_sep(string sep);
-
-				public static Proplist? from_string(string s);
-
-				public int contains(string key);
-
-				public void clear();
-
-				public Proplist copy();
-
-				public uint size();
-
-				public bool is_empty();
-		}
-
-		[CCode (cname="pa_update_mode_t", cprefix="PA_UPDATE_")]
-		public enum UpdateMode {
-				SET,
-				MERGE,
-				REPLACE
-		}
-
-		[CCode (cname="PA_OK")]
-		public const int OK;
-
-		[CCode (cname="int", cprefix="PA_ERR_")]
-		public enum Error {
-				ACCESS,
-				COMMAND,
-				INVALID,
-				EXIST,
-				NOENTITY,
-				CONNECTIONREFUSED,
-				PROTOCOL,
-				TIMEOUT,
-				AUTHKEY,
-				INTERNAL,
-				CONNECTIONTERMINATED,
-				KILLED,
-				INVALIDSERVER,
-				MODINITFAILED,
-				BADSTATE,
-				NODATA,
-				VERSION,
-				TOOLARGE,
-				NOTSUPPORTED,
-				UNKNOWN,
-				NOEXTENSION,
-				OBSOLETE,
-				NOTIMPLEMENTED,
-				FORKED,
-				IO,
-				MAX
-		}
-
-		[CCode (cname="pa_strerror")]
-		public unowned string? strerror(Error e);
-
-		public delegate void VoidFunc();
-
-		[CCode (cname="pa_spawn_api")]
-		public struct SpawnApi {
-				VoidFunc? prefork;
-				VoidFunc? postfork;
-				VoidFunc? atfork;
-		}
+        [CCode (cname="pa_signal_done")]
+        public void signal_done();
 
-		[CCode (cname="pa_io_event_flags_t", cprefix="PA_IO_EVENT_")]
-		public enum IoEventFlags {
-				NULL,
-				INPUT,
-				OUTPUT,
-				HANGUP,
-				ERROR
-		}
+        [CCode (cname="pa_poll_func")]
+        public delegate int PollFunc(pollfd[] ufds);
 
-		[CCode (cname="pa_io_event")]
-		public struct IoEvent {
-		}
+        [Compact]
+        [CCode (cname="pa_mainloop", cprefix="pa_mainloop_", free_function="pa_mainloop_free")]
+        public class MainLoop {
 
-		[CCode (cname="pa_time_event")]
-		public struct TimeEvent {
-		}
-
-		[CCode (cname="pa_defer_event")]
-		public struct DeferEvent {
-		}
-
-		[CCode (cname="pa_signal_event", cprefix="pa_signal_", free_function="pa_signal_free")]
-		public struct SignalEvent {
-
-				[CCode (cname="pa_signal_new")]
-				public SignalEvent(int sig, MainLoopApi.SignalEventCb cb);
-
-				public void set_destroy(MainLoopApi.SignalEventDestroyCb cb);
-		}
-
-		[Compact]
-		[CCode (cname="pa_mainloop_api")]
-		public class MainLoopApi {
-				public void* userdata;
-
-				/* Callbacks for the consumer to implement*/
-				public delegate void IoEventCb(IoEvent e, int fd, IoEventFlags flags);
-				public delegate void IoEventDestroyCb(IoEvent e);
-
-				public delegate void TimeEventCb(TimeEvent e, ref timeval t);
-				public delegate void TimeEventDestroyCb(TimeEvent e);
-
-				public delegate void DeferEventCb(DeferEvent e);
-				public delegate void DeferEventDestroyCb(DeferEvent e);
-
-				public delegate void SignalEventCb(SignalEvent e);
-				public delegate void SignalEventDestroyCb(SignalEvent e);
-
-				/* Callbacks for the provider to implement */
-				public delegate IoEvent IoNewCb(int fd, IoEventFlags flags, IoEventCb cb);
-				public delegate void IoEnableCb(IoEvent e, IoEventFlags flags);
-				public delegate void IoFreeCb(IoEvent e);
-				public delegate void IoSetDestroyCb(IoEvent e, IoEventDestroyCb? cb);
-
-				public delegate TimeEvent TimeNewCb(ref timeval? t, TimeEventCb cb);
-				public delegate void TimeRestartCb(TimeEvent e, ref timeval? t);
-				public delegate void TimeFreeCb(TimeEvent e);
-				public delegate void TimeSetDestroyCb(TimeEvent e, TimeEventDestroyCb? cb);
-
-				public delegate DeferEvent DeferNewCb(DeferEventCb cb);
-				public delegate void DeferEnableCb(DeferEvent e, bool b);
-				public delegate void DeferFreeCb(DeferEvent e);
-				public delegate void DeferSetDestroyCb(DeferEvent e, DeferEventDestroyCb? cb);
-
-				public delegate void QuitCb(int retval);
-
-				public delegate void OnceCb();
-
-				public IoNewCb io_new;
-				public IoEnableCb io_enable;
-				public IoFreeCb io_free;
-				public IoSetDestroyCb io_set_destroy;
-
-				public TimeNewCb time_new;
-				public TimeRestartCb time_restart;
-				public TimeFreeCb time_free;
-				public TimeSetDestroyCb time_set_destroy;
-
-				public DeferNewCb defer_new;
-				public DeferEnableCb defer_enable;
-				public DeferFreeCb defer_free;
-				public DeferSetDestroyCb defer_set_destroy;
-
-				public QuitCb quit;
-
-				[CCode (cname="pa_mainloop_api_once")]
-				public void once(OnceCb cb);
-		}
-
-		[CCode (cname="pa_signal_init")]
-		public void signal_init(MainLoopApi api);
-
-		[CCode (cname="pa_signal_done")]
-		public void signal_done();
-
-		[CCode (cname="pa_poll_func")]
-		public delegate int PollFunc(pollfd[] ufds);
-
-		[Compact]
-		[CCode (cname="pa_mainloop", cprefix="pa_mainloop_", free_function="pa_mainloop_free")]
-		public class MainLoop {
-
-				[CCode (cname="pa_mainloop_new")]
-				public MainLoop();
-
-				public int prepare(int timeout = -1);
-				public int poll();
-				public int dispatch();
-				public int get_retval();
-				public int iterate(bool block = true, out int retval = null);
-				public int run(out int retval = null);
-				public unowned MainLoopApi get_api();
-				public void quit(int r);
-				public void wakeup();
-				public void set_poll_func(PollFunc poll_func);
-		}
-
-		[Compact]
-		[CCode (cname="pa_threaded_mainloop", cprefix="pa_threaded_mainloop_", free_function="pa_threaded_mainloop_free")]
-		public class ThreadedMainLoop {
-
-				[CCode (cname="pa_threaded_mainloop_new")]
-				public ThreadedMainLoop();
-
-				public int start();
-				public void stop();
-				public void lock();
-				public void unlock();
-				public void wait();
-				public void signal(bool WaitForAccept = false);
-				public void accept();
-				public int get_retval();
-				public unowned MainLoopApi get_api();
-				public bool in_thread();
-		}
-
-		[Compact]
-		[CCode (cname="pa_glib_mainloop", cprefix="pa_glib_mainloop_", free_function="pa_glib_mainloop_free")]
-		public class GLibMainLoop {
-
-				[CCode (cname="pa_glib_mainloop_new")]
-				public GLibMainLoop();
-
-				public unowned MainLoopApi get_api();
-		}
-
-		[Compact]
-		[CCode (cname="pa_operation", cprefix="pa_operation_", unref_function="pa_operation_unref", ref_function="pa_operation_ref")]
-		public class Operation {
-
-				[CCode (cname="pa_operation_state_t", cprefix="PA_OPERATION_")]
-				public enum State {
-						RUNNING,
-						DONE,
-						CANCELED
-				}
-
-				public void cancel();
-				public State get_state();
-		}
-
-		[Compact]
-		[CCode (cname="pa_context", cprefix="pa_context_", unref_function="pa_context_unref", ref_function="pa_context_ref")]
-		public class Context {
-
-				[CCode (cname="pa_context_flags_t", cprefix="PA_CONTEXT_")]
-				public enum Flags {
-						NOAUTOSPAWN,
-						NOFAIL
-				}
-
-				[CCode (cname="pa_context_state_t", cprefix="PA_CONTEXT_")]
-				public enum State {
-						UNCONNECTED,
-						CONNECTING,
-						AUTHORIZING,
-						SETTING_NAME,
-						READ,
-						FAILED,
-						TERMINATED;
-
-						bool IS_GOOD();
-				}
-
-				[CCode (cname="pa_subscription_mask_t", cprefix="PA_SUBSCRIPTION_MASK_")]
-				public enum SubscriptionMask {
-						NULL,
-						SINK,
-						SOURCE,
-						SINK_INPUT,
-						SOURCE_OUTPUT,
-						MODULE,
-						CLIENT,
-						SAMPLE_CACHE,
-						SERVER,
-						CARD,
-						ALL;
-
-						[CCode (cname="pa_subscription_match_flags")]
-						bool match_flags(SubscriptionEventType t);
-				}
-
-				[CCode (cname="pa_subscription_event_type_t", cprefix="PA_SUBSCRIPTION_EVENT_")]
-				public enum SubscriptionEventType {
-						SINK,
-						SOURCE,
-						SINK_INPUT,
-						SOURCE_OUTPUT,
-						MODULE,
-						CLIENT,
-						SAMPLE_CACHE,
-						SERVER,
-						CARD,
-						FACILITY_MASK,
-						NEW,
-						CHANGE,
-						REMOVE,
-						TYPE_MASK
-				}
-
-				public delegate void NotifyCb();
-				public delegate void SuccessCb(int success);
-				public delegate void EventCb(string name, Proplist? proplist);
-				public delegate void SubscribeCb(SubscriptionEventType t, uint32 idx);
-				public delegate void SinkInfoCb(SinkInfo? i, int eol);
-				public delegate void SourceInfoCb(SourceInfo? i, int eol);
-				public delegate void CardInfoCb(CardInfo? i, int eol);
-				public delegate void SinkInputInfoCb(SinkInputInfo? i, int eol);
-				public delegate void SourceOutputInfoCb(SourceOutputInfo? i, int eol);
-				public delegate void ServerInfoCb(ServerInfo? i);
-				public delegate void StatInfoCb(ServerInfo? i);
-				public delegate void ModuleInfoCb(ModuleInfo? i, int eol);
-				public delegate void ClientInfoCb(ClientInfo? i, int eol);
-				public delegate void SampleInfoCb(SampleInfo? i, int eol);
-				public delegate void IndexCb(uint32 idx);
-
-				[CCode (cname="pa_context_new_with_proplist")]
-				public Context(MainLoopApi api, string? name, Proplist? proplist = null);
-
-				public void set_state_callback(NotifyCb? cb = null);
-				public void set_event_callback(EventCb? cb = null);
-				public void set_subscribe_callback(SubscribeCb? cb = null);
-
-				public Error errno();
-
-				public int is_pending();
-				public State get_state();
-				public int is_local();
-				public unowned string? get_server();
-				public uint32 get_protocol_version();
-				public uint32 get_server_protocol_version();
-				public uint32 get_index();
-
-				public int connect(string? server = null, Flags flags = 0, SpawnApi? api = null);
-				public void disconnect();
-
-				public Operation? drain(NotifyCb? cb = null);
-				public Operation? exit_daemon(SuccessCb? cb = null);
-				public Operation? set_default_sink(string name, SuccessCb? cb = null);
-				public Operation? set_default_source(string name, SuccessCb? cb = null);
-				public Operation? set_name(string name, SuccessCb? cb = null);
-
-				[CCode (array_length = false)]
-				public Operation? proplist_remove(string[] keys, SuccessCb? cb = null);
-				public Operation? proplist_update(UpdateMode mode, Proplist pl, SuccessCb? cb = null);
-
-				public Operation? subscribe(SubscriptionMask mask, SuccessCb? cb = null);
-
-				public Operation? get_sink_info_by_name(string name, SinkInfoCb cb);
-				public Operation? get_sink_info_by_index(uint32 idx, SinkInfoCb cb);
-				public Operation? get_sink_info_list(SinkInfoCb cb);
-
-				public Operation? set_sink_volume_by_name(string name, CVolume volume, SuccessCb? cb = null);
-				public Operation? set_sink_volume_by_index(uint32 idx, CVolume volume, SuccessCb? cb = null);
-				public Operation? set_sink_mute_by_name(string name, bool mute, SuccessCb? cb = null);
-				public Operation? set_sink_mute_by_index(uint32 idx, bool mute, SuccessCb? cb = null);
-
-				public Operation? suspend_sink_by_name(string name, bool suspend, SuccessCb? cb = null);
-				public Operation? suspend_sink_by_index(uint32 idx, bool suspend, SuccessCb? cb = null);
-
-				public Operation? set_sink_port_by_name(string name, string port, SuccessCb? cb = null);
-				public Operation? set_sink_port_by_index(string idx, string port, SuccessCb? cb = null);
-
-				public Operation? get_source_info_by_name(string name, SourceInfoCb cb);
-				public Operation? get_source_info_by_index(uint32 idx, SourceInfoCb cb);
-				public Operation? get_source_info_list(SourceInfoCb cb);
-
-				public Operation? set_source_volume_by_name(string name, CVolume volume, SuccessCb? cb = null);
-				public Operation? set_source_volume_by_index(uint32 idx, CVolume volume, SuccessCb? cb = null);
-				public Operation? set_source_mute_by_name(string name, bool mute, SuccessCb? cb = null);
-				public Operation? set_source_mute_by_index(uint32 idx, bool mute, SuccessCb? cb = null);
-
-				public Operation? suspend_source_by_name(string name, bool suspend, SuccessCb? cb = null);
-				public Operation? suspend_source_by_index(uint32 idx, bool suspend, SuccessCb? cb = null);
-
-				public Operation? set_source_port_by_name(string name, string port, SuccessCb? cb = null);
-				public Operation? set_source_port_by_index(string idx, string port, SuccessCb? cb = null);
-
-				public Operation? get_server_info(ServerInfoCb cb);
-
-				public Operation? get_module_info(uint32 idx, ModuleInfoCb cb);
-				public Operation? get_module_info_list(ModuleInfoCb cb);
-
-				public Operation? load_module(string name, string? argument, IndexCb? cb = null);
-				public Operation? unload_module(uint32 idx, SuccessCb? cb = null);
-
-				public Operation? get_client_info(uint32 idx, ClientInfoCb cb);
-				public Operation? get_client_info_list(ClientInfoCb cb);
-
-				public Operation? kill_client(uint32 idx, SuccessCb? cb = null);
-
-				public Operation? get_card_info_by_name(string name, CardInfoCb cb);
-				public Operation? get_card_info_by_index(uint32 idx, CardInfoCb cb);
-				public Operation? get_card_info_list(CardInfoCb cb);
-
-				public Operation? set_card_profile_by_index(uint32 idx, string profile, SuccessCb? cb = null);
-				public Operation? set_card_profile_by_name(string name, string profile, SuccessCb? cb = null);
-
-				public Operation? get_sink_input_info(uint32 idx, SinkInputInfoCb cb);
-				public Operation? get_sink_input_info_list(SinkInputInfoCb cb);
-
-				public Operation? move_sink_input_by_index(uint32 idx, uint32 sink_idx, SuccessCb? cb = null);
-				public Operation? move_sink_input_by_name(uint32 idx, string sink_name, SuccessCb? cb = null);
-
-				public Operation? set_sink_input_volume(uint32 idx, CVolume volume, SuccessCb? cb = null);
-				public Operation? set_sink_input_mute(uint32 idx, bool mute, SuccessCb? cb = null);
-
-				public Operation? kill_sink_input(uint32 idx, SuccessCb? cb = null);
-
-				public Operation? get_source_output_info(uint32 idx, SourceOutputInfoCb cb);
-				public Operation? get_source_output_info_list(SourceOutputInfoCb cb);
-
-				public Operation? move_source_output_by_index(uint32 idx, uint32 source_idx, SuccessCb? cb = null);
-				public Operation? move_source_output_by_name(uint32 idx, string source_name, SuccessCb? cb = null);
-
-				public Operation? kill_source_output(uint32 idx, SuccessCb? cb = null);
-
-				public Operation? stat(StatInfoCb cb);
-
-				public Operation? get_sample_info_by_name(string name, SampleInfoCb cb);
-				public Operation? get_sample_info_by_index(uint32 idx, SampleInfoCb cb);
-				public Operation? get_sample_info_list(SampleInfoCb cb);
-
-				public Operation? remove_sample(string name, SuccessCb? cb = null);
-				public Operation? play_sample(string name, string? device = null, Volume volume = Volume.INVALID
-		}
-
-		[Compact]
-		[CCode (cname="pa_stream", cprefix="pa_stream_", unref_function="pa_stream_unref", ref_function="pa_stream_ref")]
-		public class Stream {
-
-				[CCode (cname="pa_stream_flags_t", cprefix="PA_STREAM_")]
-				public enum Flags {
-						START_CORKED,
-						INTERPOLATE_TIMING,
-						NOT_MONOTONIC,
-						AUTO_TIMING_UPDATE,
-						NO_REMAP_CHANNELS,
-						NO_REMIX_CHANNELS,
-						FIX_FORMAT,
-						FIX_RATE,
-						FIX_CHANNELS,
-						DONT_MOVE,
-						VARIABLE_RATE,
-						PEAK_DETECT,
-						START_MUTED,
-						ADJUST_LATENCY,
-						EARLY_REQUESTS,
-						DONT_INHIBIT_AUTO_SUSPEND,
-						START_UNMUTED,
-						FAIL_ON_SUSPEND
-				}
-
-				[CCode (cname="pa_stream_state_t", cprefix="PA_STREAM_")]
-				public enum State {
-						UNCONNECTED,
-						CREATING,
-						READY,
-						FAILED,
-						TERMINATED;
-
-						bool IS_GOOD();
-				}
-
-				[CCode (cname="pa_stream_direction_t", cprefix="PA_STREAM_")]
-				public enum Direction {
-						NODIRECTION,
-						PLAYBACK,
-						RECORD,
-						UPLOAD
-				}
-
-				[CCode (cname="pa_seek_mode_t", cprefix="PA_SEEK_")]
-				public enum SeekMode {
-						RELATIVE,
-						ABSOLUTE,
-						RELATIVE_ON_READ,
-						RELATIVE_END
-				}
-
-				[CCode (cname="pa_buffer_attr")]
-				public struct BufferAttr {
-						uint32 maxlength;
-						uint32 tlength;
-						uint32 prebuf;
-						uint32 minreq;
-						uint32 fragsize;
-				}
-
-				[CCode (cname="pa_timing_info")]
-				public struct TimingInfo {
-						timeval timestamp;
-						int synchronized_clocks;
-						usec sink_usec;
-						usec source_usec;
-						usec transport_usec;
-						int playing;
-						int write_index_corrupt;
-						int64 write_index;
-						int read_index_corrupt;
-						int64 read_index;
-						usec configured_sink_usec;
-						usec configured_source_usec;
-						int64 since_underrun;
-				}
-
-				[CCode (cname="PA_STREAM_EVENT_REQUEST_CORK")]
-				public const string EVENT_REQUEST_CORK;
-
-				[CCode (cname="PA_STREAM_EVENT_REQUEST_UNCORK")]
-				public const string EVENT_REQUEST_UNCORK;
-
-				public delegate void SuccessCb(int success);
-				public delegate void RequestCb(size_t nbytes);
-				public delegate void NotifyCb();
-				public delegate void EventCb(string name, Proplist proplist);
-
-				[CCode (cname="pa_stream_new_with_proplist")]
-				public Stream(Context c, string name, SampleSpec ss, ChannelMap map = null, Proplist proplist = null);
-
-				public State get_state();
-				public Context get_context();
-				public uint32 get_index();
-				public uint32 get_device_index();
-				public unowned string? get_device_name();
-				public int is_suspended();
-				public int is_corked();
-
-				public int connect_playback(string dev, BufferAttr a = null, Flags flags = 0, Volume volume = null, Stream sync_stream = null);
-				public int connect_record(string dev, BufferAttr a = null, Flags flags = 0);
-				public int connect_upload(size_t length);
-				public int disconnect();
-				public int finish_upload();
-
-				public int begin_write(out void* data, out size_t nbytes);
-				public int cancel_write();
-				public int write(void *data, size_t bytes, FreeCb free_cb = null, int64 offset = 0, SeekMode mode = SeekMode.RELATIVE);
-				public int peek(out void *data, out size_t nbytes);
-				public int drop();
-				public size_t writable_size();
-				public size_t readable_size();
-
-				public void set_state_callback(NotifyCb cb = null);
-				public void set_write_callback(RequestCb cb = null);
-				public void set_read_callback(RequestCb cb = null);
-				public void set_overflow_callback(NotifyCb cb = null);
-				public void set_underflow_callback(NotifyCb cb = null);
-				public void set_started_callback(NotifyCb cb = null);
-				public void set_latency_update_callback(NotifyCb cb = null);
-				public void set_moved_callback(NotifyCb cb = null);
-				public void set_suspended_callback(NotifyCb cb = null);
-				public void set_event_callback(EventCb cb = null);
-				public void set_buffer_attr_callback(NotifyCb cb = null);
-
-				public Operation? drain(SuccessCb cb = null);
-				public Operation? update_timing_info(SuccessCb cb = null);
-
-				public Operation? cork(bool b, SuccessCb cb = null);
-				public Operation? flush(SuccessCb cb = null);
-				public Operation? prebuf(SuccessCb cb = null);
-				public Operation? trigger(SuccessCb cb = null);
-
-				public Operation? set_name(string name, SuccessCb cb = null);
-				public Operation? set_buffer_attr(BufferAttr attr, SuccessCb cb = null);
-				public Operation? update_sample_rate(uint32 rate, SuccessCb cb = null);
-
-				[CCode (array_length = false)]
-				public Operation? proplist_remove(string[] keys, SuccessCb cb = null);
-				public Operation? proplist_update(UpdateMode mode, Proplist pl, SuccessCb cb = null);
-
-				public unowned TimingInfo? get_timing_info();
-				public int get_time(out usec u);
-				public int get_latency(out usec u, out bool negative = null);
-
-				public unowned SampleSpec? get_sample_spec();
-				public unowned ChannelMap? get_channel_map();
-				public unowned BufferAttr? get_buffer_attr();
-
-				public int set_monitor_stream(uint32 sink_input);
-				public uint32 get_monitor_stream();
-		}
-
-		[CCode (cname="pa_sink_port_info")]
-		public struct SinkPortInfo {
-				string name;
-				string description;
-				uint32 priority;
-		}
-
-		[CCode (cname="pa_sink_info")]
-		public struct SinkInfo {
-				string name;
-				uint32 index;
-				string description;
-				SampleSpec sample_spec;
-				ChannelMap channel_map;
-				uint32 owner_module;
-				CVolume volume;
-				int mute;
-			    uint32 monitor_source;
-				string monitor_source_name;
-				usec latency;
-				string driver;
-				SinkFlags flags;
-				Proplist proplist;
-				usec configured_latency;
-				Volume base_volume;
-				SinkState state;
-				uint32 n_volume_steps;
-				uint32 card;
-				uint32 n_ports;
-				SinkPortInfo*[] ports;
-				SinkPortInfo* active_port;
-		}
-
-		[CCode (cname="pa_source_port_info")]
-		public struct SourcePortInfo {
-				string name;
-				string description;
-				uint32 priority;
-		}
-
-		[CCode (cname="pa_source_info")]
-		public struct SourceInfo {
-				string name;
-				uint32 index;
-				string description;
-				SampleSpec sample_spec;
-				ChannelMap channel_map;
-				uint32 owner_module;
-				CVolume volume;
-				int mute;
-			    uint32 monitor_of_sink;
-				string monitor_of_sink_name;
-				usec latency;
-				string driver;
-				SourceFlags flags;
-				Proplist proplist;
-				usec configured_latency;
-				Volume base_volume;
-				SourceState state;
-				uint32 n_volume_steps;
-				uint32 card;
-				uint32 n_ports;
-				SourcePortInfo*[] ports;
-				SourcePortInfo* active_port;
-		}
-
-		[CCode (cname="pa_server_info")]
-		public struct ServerInfo {
-				string user_name;
-				string host_name;
-				string server_version;
-				string server_name;
-				SampleSpec sample_spec;
-				string default_sink_name;
-				string default_source_name;
-				ChannelMap channel_map;
-		}
-
-		[CCode (cname="pa_module_info")]
-		public struct ModuleInfo {
-				uint32 index;
-				string name;
-				string argument;
-				uint32 n_used;
-				Proplist proplist;
-		}
-
-		[CCode (cname="pa_client_info")]
-		public struct ClientInfo {
-				uint32 index;
-				string name;
-				uint32 owner_module;
-				string driver;
-				Proplist proplist;
-		}
-
-		[CCode (cname="pa_card_profile_info")]
-		public struct CardProfileInfo {
-				string name;
-				string description;
-				uint32 n_sinks;
-				uint32 n_sources;
-				uint32 priority;
-		}
-
-		[CCode (cname="pa_card_info")]
-		public struct CardInfo {
-				uint32 index;
-				string name;
-				uint32 owner_module;
-				string driver;
-				uint32 n_profiles;
-				CardProfileInfo profiles[];
-				CardProfileInfo *active_profile;
-				Proplist proplist;
-		}
-
-		[CCode (cname="pa_sink_input_info")]
-		public struct SinkInputInfo {
-				uint32 index;
-				string name;
-				uint32 owner_module;
-				uint32 client;
-				uint32 sink;
-				SampleSpec sample_spec;
-				ChannelMap channel_map;
-				CVolume volume;
-				uint32 buffer_usec;
-				uint32 sink_usec;
-				string resample_method;
-				string driver;
-				int mute;
-				Proplist proplist;
-		}
-
-		[CCode (cname="pa_source_output_info")]
-		public struct SourceOutputInfo {
-				uint32 index;
-				string name;
-				uint32 owner_module;
-				uint32 client;
-				uint32 source;
-				SampleSpec sample_spec;
-				ChannelMap channel_map;
-				uint32 buffer_usec;
-				uint32 sink_usec;
-				string resample_method;
-				string driver;
-				Proplist proplist;
-		}
-
-		[CCode (cname="pa_stat_info")]
-		public struct StatInfo {
-				uint32 memblock_total;
-				uint32 memblock_total_size;
-				uint32 memblock_allocated;
-				uint32 memblock_allocated_size;
-				uint32 scache_size;
-		}
-
-		[CCode (cname="pa_sample_info")]
-		public struct SampleInfo {
-				uint32 index;
-				string name;
-				CVolume volume;
-				SampleSpec sample_spec;
-				ChannelMap channel_map;
-				usec duration;
-				uint32 bytes;
-				bool lazy;
-				string filename;
-				Proplist proplist;
-		}
-
-		[CCode (cname="pa_sink_flags_t", cprefix="PA_SINK_")]
-		public enum SinkFlags {
-				HW_VOLUME_CTRL,
-				LATENCY,
-				HARDWARE,
-				NETWORK,
-				HW_MUTE_CTRL,
-				DECIBEL_VOLUME,
-				FLAT_VOLUME,
-				DYNAMIC_LATENCY
-		}
-
-		[CCode (cname="pa_source_flags_t", cprefix="PA_SOURCE_")]
-		public enum SourceFlags {
-				HW_VOLUME_CTRL,
-				LATENCY,
-				HARDWARE,
-				NETWORK,
-				HW_MUTE_CTRL,
-				DECIBEL_VOLUME,
-				DYNAMIC_LATENCY
-		}
-
-		[CCode (cname="pa_sink_state_t", cprefix="PA_SINK_")]
-		public enum SinkState {
-				INVALID_STATE,
-				RUNNING,
-				IDLE,
-				SUSPENDED;
-
-				[CCode (cname="PA_SINK_IS_OPENED")]
-				public bool IS_OPENED();
-		}
-
-		[CCode (cname="pa_source_state_t", cprefix="PA_SOURCE_")]
-		public enum SourceState {
-				INVALID_STATE,
-				RUNNING,
-				IDLE,
-				SUSPENDED;
-
-				[CCode (cname="PA_SOURCE_IS_OPENED")]
-				public bool IS_OPENED();
-		}
+                [CCode (cname="pa_mainloop_new")]
+                public MainLoop();
+
+                public int prepare(int timeout = -1);
+                public int poll();
+                public int dispatch();
+                public int get_retval();
+                public int iterate(bool block = true, out int retval = null);
+                public int run(out int retval = null);
+                public unowned MainLoopApi get_api();
+                public void quit(int r);
+                public void wakeup();
+                public void set_poll_func(PollFunc poll_func);
+        }
+
+        [Compact]
+        [CCode (cname="pa_threaded_mainloop", cprefix="pa_threaded_mainloop_", free_function="pa_threaded_mainloop_free")]
+        public class ThreadedMainLoop {
+
+                [CCode (cname="pa_threaded_mainloop_new")]
+                public ThreadedMainLoop();
+
+                public int start();
+                public void stop();
+                public void lock();
+                public void unlock();
+                public void wait();
+                public void signal(bool WaitForAccept = false);
+                public void accept();
+                public int get_retval();
+                public unowned MainLoopApi get_api();
+                public bool in_thread();
+        }
+
+        [Compact]
+        [CCode (cname="pa_glib_mainloop", cprefix="pa_glib_mainloop_", free_function="pa_glib_mainloop_free")]
+        public class GLibMainLoop {
+
+                [CCode (cname="pa_glib_mainloop_new")]
+                public GLibMainLoop();
+
+                public unowned MainLoopApi get_api();
+        }
+
+        [Compact]
+        [CCode (cname="pa_operation", cprefix="pa_operation_", unref_function="pa_operation_unref", ref_function="pa_operation_ref")]
+        public class Operation {
+
+                [CCode (cname="pa_operation_state_t", cprefix="PA_OPERATION_")]
+                public enum State {
+                        RUNNING,
+                        DONE,
+                        CANCELED
+                }
+
+                public void cancel();
+                public State get_state();
+        }
+
+        [Compact]
+        [CCode (cname="pa_context", cprefix="pa_context_", unref_function="pa_context_unref", ref_function="pa_context_ref")]
+        public class Context {
+
+                [CCode (cname="pa_context_flags_t", cprefix="PA_CONTEXT_")]
+                public enum Flags {
+                        NOAUTOSPAWN,
+                        NOFAIL
+                }
+
+                [CCode (cname="pa_context_state_t", cprefix="PA_CONTEXT_")]
+                public enum State {
+                        UNCONNECTED,
+                        CONNECTING,
+                        AUTHORIZING,
+                        SETTING_NAME,
+                        READ,
+                        FAILED,
+                        TERMINATED;
+
+                        bool IS_GOOD();
+                }
+
+                [CCode (cname="pa_subscription_mask_t", cprefix="PA_SUBSCRIPTION_MASK_")]
+                public enum SubscriptionMask {
+                        NULL,
+                        SINK,
+                        SOURCE,
+                        SINK_INPUT,
+                        SOURCE_OUTPUT,
+                        MODULE,
+                        CLIENT,
+                        SAMPLE_CACHE,
+                        SERVER,
+                        CARD,
+                        ALL;
+
+                        [CCode (cname="pa_subscription_match_flags")]
+                        bool match_flags(SubscriptionEventType t);
+                }
+
+                [CCode (cname="pa_subscription_event_type_t", cprefix="PA_SUBSCRIPTION_EVENT_")]
+                public enum SubscriptionEventType {
+                        SINK,
+                        SOURCE,
+                        SINK_INPUT,
+                        SOURCE_OUTPUT,
+                        MODULE,
+                        CLIENT,
+                        SAMPLE_CACHE,
+                        SERVER,
+                        CARD,
+                        FACILITY_MASK,
+                        NEW,
+                        CHANGE,
+                        REMOVE,
+                        TYPE_MASK
+                }
+
+                public delegate void NotifyCb();
+                public delegate void SuccessCb(int success);
+                public delegate void EventCb(string name, Proplist? proplist);
+                public delegate void SubscribeCb(SubscriptionEventType t, uint32 idx);
+                public delegate void SinkInfoCb(SinkInfo? i, int eol);
+                public delegate void SourceInfoCb(SourceInfo? i, int eol);
+                public delegate void CardInfoCb(CardInfo? i, int eol);
+                public delegate void SinkInputInfoCb(SinkInputInfo? i, int eol);
+                public delegate void SourceOutputInfoCb(SourceOutputInfo? i, int eol);
+                public delegate void ServerInfoCb(ServerInfo? i);
+                public delegate void StatInfoCb(ServerInfo? i);
+                public delegate void ModuleInfoCb(ModuleInfo? i, int eol);
+                public delegate void ClientInfoCb(ClientInfo? i, int eol);
+                public delegate void SampleInfoCb(SampleInfo? i, int eol);
+                public delegate void IndexCb(uint32 idx);
+
+                [CCode (cname="pa_context_new_with_proplist")]
+                public Context(MainLoopApi api, string? name, Proplist? proplist = null);
+
+                public void set_state_callback(NotifyCb? cb = null);
+                public void set_event_callback(EventCb? cb = null);
+                public void set_subscribe_callback(SubscribeCb? cb = null);
+
+                public Error errno();
+
+                public int is_pending();
+                public State get_state();
+                public int is_local();
+                public unowned string? get_server();
+                public uint32 get_protocol_version();
+                public uint32 get_server_protocol_version();
+                public uint32 get_index();
+
+                public int connect(string? server = null, Flags flags = 0, SpawnApi? api = null);
+                public void disconnect();
+
+                public Operation? drain(NotifyCb? cb = null);
+                public Operation? exit_daemon(SuccessCb? cb = null);
+                public Operation? set_default_sink(string name, SuccessCb? cb = null);
+                public Operation? set_default_source(string name, SuccessCb? cb = null);
+                public Operation? set_name(string name, SuccessCb? cb = null);
+
+                [CCode (array_length = false)]
+                public Operation? proplist_remove(string[] keys, SuccessCb? cb = null);
+                public Operation? proplist_update(UpdateMode mode, Proplist pl, SuccessCb? cb = null);
+
+                public Operation? subscribe(SubscriptionMask mask, SuccessCb? cb = null);
+
+                public Operation? get_sink_info_by_name(string name, SinkInfoCb cb);
+                public Operation? get_sink_info_by_index(uint32 idx, SinkInfoCb cb);
+                public Operation? get_sink_info_list(SinkInfoCb cb);
+
+                public Operation? set_sink_volume_by_name(string name, CVolume volume, SuccessCb? cb = null);
+                public Operation? set_sink_volume_by_index(uint32 idx, CVolume volume, SuccessCb? cb = null);
+                public Operation? set_sink_mute_by_name(string name, bool mute, SuccessCb? cb = null);
+                public Operation? set_sink_mute_by_index(uint32 idx, bool mute, SuccessCb? cb = null);
+
+                public Operation? suspend_sink_by_name(string name, bool suspend, SuccessCb? cb = null);
+                public Operation? suspend_sink_by_index(uint32 idx, bool suspend, SuccessCb? cb = null);
+
+                public Operation? set_sink_port_by_name(string name, string port, SuccessCb? cb = null);
+                public Operation? set_sink_port_by_index(string idx, string port, SuccessCb? cb = null);
+
+                public Operation? get_source_info_by_name(string name, SourceInfoCb cb);
+                public Operation? get_source_info_by_index(uint32 idx, SourceInfoCb cb);
+                public Operation? get_source_info_list(SourceInfoCb cb);
+
+                public Operation? set_source_volume_by_name(string name, CVolume volume, SuccessCb? cb = null);
+                public Operation? set_source_volume_by_index(uint32 idx, CVolume volume, SuccessCb? cb = null);
+                public Operation? set_source_mute_by_name(string name, bool mute, SuccessCb? cb = null);
+                public Operation? set_source_mute_by_index(uint32 idx, bool mute, SuccessCb? cb = null);
+
+                public Operation? suspend_source_by_name(string name, bool suspend, SuccessCb? cb = null);
+                public Operation? suspend_source_by_index(uint32 idx, bool suspend, SuccessCb? cb = null);
+
+                public Operation? set_source_port_by_name(string name, string port, SuccessCb? cb = null);
+                public Operation? set_source_port_by_index(string idx, string port, SuccessCb? cb = null);
+
+                public Operation? get_server_info(ServerInfoCb cb);
+
+                public Operation? get_module_info(uint32 idx, ModuleInfoCb cb);
+                public Operation? get_module_info_list(ModuleInfoCb cb);
+
+                public Operation? load_module(string name, string? argument, IndexCb? cb = null);
+                public Operation? unload_module(uint32 idx, SuccessCb? cb = null);
+
+                public Operation? get_client_info(uint32 idx, ClientInfoCb cb);
+                public Operation? get_client_info_list(ClientInfoCb cb);
+
+                public Operation? kill_client(uint32 idx, SuccessCb? cb = null);
+
+                public Operation? get_card_info_by_name(string name, CardInfoCb cb);
+                public Operation? get_card_info_by_index(uint32 idx, CardInfoCb cb);
+                public Operation? get_card_info_list(CardInfoCb cb);
+
+                public Operation? set_card_profile_by_index(uint32 idx, string profile, SuccessCb? cb = null);
+                public Operation? set_card_profile_by_name(string name, string profile, SuccessCb? cb = null);
+
+                public Operation? get_sink_input_info(uint32 idx, SinkInputInfoCb cb);
+                public Operation? get_sink_input_info_list(SinkInputInfoCb cb);
+
+                public Operation? move_sink_input_by_index(uint32 idx, uint32 sink_idx, SuccessCb? cb = null);
+                public Operation? move_sink_input_by_name(uint32 idx, string sink_name, SuccessCb? cb = null);
+
+                public Operation? set_sink_input_volume(uint32 idx, CVolume volume, SuccessCb? cb = null);
+                public Operation? set_sink_input_mute(uint32 idx, bool mute, SuccessCb? cb = null);
+
+                public Operation? kill_sink_input(uint32 idx, SuccessCb? cb = null);
+
+                public Operation? get_source_output_info(uint32 idx, SourceOutputInfoCb cb);
+                public Operation? get_source_output_info_list(SourceOutputInfoCb cb);
+
+                public Operation? move_source_output_by_index(uint32 idx, uint32 source_idx, SuccessCb? cb = null);
+                public Operation? move_source_output_by_name(uint32 idx, string source_name, SuccessCb? cb = null);
+
+                public Operation? kill_source_output(uint32 idx, SuccessCb? cb = null);
+
+                public Operation? stat(StatInfoCb cb);
+
+                public Operation? get_sample_info_by_name(string name, SampleInfoCb cb);
+                public Operation? get_sample_info_by_index(uint32 idx, SampleInfoCb cb);
+                public Operation? get_sample_info_list(SampleInfoCb cb);
+
+                public Operation? remove_sample(string name, SuccessCb? cb = null);
+
+                public Operation? play_sample(string name, string? device = null, Volume volume = Volume.INVALID, SuccessCb? cb = null);
+                public Operation? play_sample_with_proplist(string name, string? device = null, Volume volume = Volume.INVALID, Proplist? p = null, IndexCb? cb = null);
+        }
+
+        [Compact]
+        [CCode (cname="pa_stream", cprefix="pa_stream_", unref_function="pa_stream_unref", ref_function="pa_stream_ref")]
+        public class Stream {
+
+                [CCode (cname="pa_stream_flags_t", cprefix="PA_STREAM_")]
+                public enum Flags {
+                        START_CORKED,
+                        INTERPOLATE_TIMING,
+                        NOT_MONOTONIC,
+                        AUTO_TIMING_UPDATE,
+                        NO_REMAP_CHANNELS,
+                        NO_REMIX_CHANNELS,
+                        FIX_FORMAT,
+                        FIX_RATE,
+                        FIX_CHANNELS,
+                        DONT_MOVE,
+                        VARIABLE_RATE,
+                        PEAK_DETECT,
+                        START_MUTED,
+                        ADJUST_LATENCY,
+                        EARLY_REQUESTS,
+                        DONT_INHIBIT_AUTO_SUSPEND,
+                        START_UNMUTED,
+                        FAIL_ON_SUSPEND
+                }
+
+                [CCode (cname="pa_stream_state_t", cprefix="PA_STREAM_")]
+                public enum State {
+                        UNCONNECTED,
+                        CREATING,
+                        READY,
+                        FAILED,
+                        TERMINATED;
+
+                        bool IS_GOOD();
+                }
+
+                [CCode (cname="pa_stream_direction_t", cprefix="PA_STREAM_")]
+                public enum Direction {
+                        NODIRECTION,
+                        PLAYBACK,
+                        RECORD,
+                        UPLOAD
+                }
+
+                [CCode (cname="pa_seek_mode_t", cprefix="PA_SEEK_")]
+                public enum SeekMode {
+                        RELATIVE,
+                        ABSOLUTE,
+                        RELATIVE_ON_READ,
+                        RELATIVE_END
+                }
+
+                [CCode (cname="pa_buffer_attr")]
+                public struct BufferAttr {
+                        uint32 maxlength;
+                        uint32 tlength;
+                        uint32 prebuf;
+                        uint32 minreq;
+                        uint32 fragsize;
+                }
+
+                [CCode (cname="pa_timing_info")]
+                public struct TimingInfo {
+                        timeval timestamp;
+                        int synchronized_clocks;
+                        usec sink_usec;
+                        usec source_usec;
+                        usec transport_usec;
+                        int playing;
+                        int write_index_corrupt;
+                        int64 write_index;
+                        int read_index_corrupt;
+                        int64 read_index;
+                        usec configured_sink_usec;
+                        usec configured_source_usec;
+                        int64 since_underrun;
+                }
+
+                [CCode (cname="PA_STREAM_EVENT_REQUEST_CORK")]
+                public const string EVENT_REQUEST_CORK;
+
+                [CCode (cname="PA_STREAM_EVENT_REQUEST_UNCORK")]
+                public const string EVENT_REQUEST_UNCORK;
+
+                public delegate void SuccessCb(int success);
+                public delegate void RequestCb(size_t nbytes);
+                public delegate void NotifyCb();
+                public delegate void EventCb(string name, Proplist proplist);
+
+                [CCode (cname="pa_stream_new_with_proplist")]
+                public Stream(Context c, string name, SampleSpec ss, ChannelMap map = null, Proplist proplist = null);
+
+                public State get_state();
+                public Context get_context();
+                public uint32 get_index();
+                public uint32 get_device_index();
+                public unowned string? get_device_name();
+                public int is_suspended();
+                public int is_corked();
+
+                public int connect_playback(string dev, BufferAttr a = null, Flags flags = 0, Volume volume = null, Stream sync_stream = null);
+                public int connect_record(string dev, BufferAttr a = null, Flags flags = 0);
+                public int connect_upload(size_t length);
+                public int disconnect();
+                public int finish_upload();
+
+                public int begin_write(out void* data, out size_t nbytes);
+                public int cancel_write();
+                public int write(void *data, size_t bytes, FreeCb free_cb = null, int64 offset = 0, SeekMode mode = SeekMode.RELATIVE);
+                public int peek(out void *data, out size_t nbytes);
+                public int drop();
+                public size_t writable_size();
+                public size_t readable_size();
+
+                public void set_state_callback(NotifyCb cb = null);
+                public void set_write_callback(RequestCb cb = null);
+                public void set_read_callback(RequestCb cb = null);
+                public void set_overflow_callback(NotifyCb cb = null);
+                public void set_underflow_callback(NotifyCb cb = null);
+                public void set_started_callback(NotifyCb cb = null);
+                public void set_latency_update_callback(NotifyCb cb = null);
+                public void set_moved_callback(NotifyCb cb = null);
+                public void set_suspended_callback(NotifyCb cb = null);
+                public void set_event_callback(EventCb cb = null);
+                public void set_buffer_attr_callback(NotifyCb cb = null);
+
+                public Operation? drain(SuccessCb cb = null);
+                public Operation? update_timing_info(SuccessCb cb = null);
+
+                public Operation? cork(bool b, SuccessCb cb = null);
+                public Operation? flush(SuccessCb cb = null);
+                public Operation? prebuf(SuccessCb cb = null);
+                public Operation? trigger(SuccessCb cb = null);
+
+                public Operation? set_name(string name, SuccessCb cb = null);
+                public Operation? set_buffer_attr(BufferAttr attr, SuccessCb cb = null);
+                public Operation? update_sample_rate(uint32 rate, SuccessCb cb = null);
+
+                [CCode (array_length = false)]
+                public Operation? proplist_remove(string[] keys, SuccessCb cb = null);
+                public Operation? proplist_update(UpdateMode mode, Proplist pl, SuccessCb cb = null);
+
+                public unowned TimingInfo? get_timing_info();
+                public int get_time(out usec u);
+                public int get_latency(out usec u, out bool negative = null);
+
+                public unowned SampleSpec? get_sample_spec();
+                public unowned ChannelMap? get_channel_map();
+                public unowned BufferAttr? get_buffer_attr();
+
+                public int set_monitor_stream(uint32 sink_input);
+                public uint32 get_monitor_stream();
+        }
+
+        [CCode (cname="pa_sink_port_info")]
+        public struct SinkPortInfo {
+                string name;
+                string description;
+                uint32 priority;
+        }
+
+        [CCode (cname="pa_sink_info")]
+        public struct SinkInfo {
+                string name;
+                uint32 index;
+                string description;
+                SampleSpec sample_spec;
+                ChannelMap channel_map;
+                uint32 owner_module;
+                CVolume volume;
+                int mute;
+                uint32 monitor_source;
+                string monitor_source_name;
+                usec latency;
+                string driver;
+                SinkFlags flags;
+                Proplist proplist;
+                usec configured_latency;
+                Volume base_volume;
+                SinkState state;
+                uint32 n_volume_steps;
+                uint32 card;
+                uint32 n_ports;
+                SinkPortInfo*[] ports;
+                SinkPortInfo* active_port;
+        }
+
+        [CCode (cname="pa_source_port_info")]
+        public struct SourcePortInfo {
+                string name;
+                string description;
+                uint32 priority;
+        }
+
+        [CCode (cname="pa_source_info")]
+        public struct SourceInfo {
+                string name;
+                uint32 index;
+                string description;
+                SampleSpec sample_spec;
+                ChannelMap channel_map;
+                uint32 owner_module;
+                CVolume volume;
+                int mute;
+                uint32 monitor_of_sink;
+                string monitor_of_sink_name;
+                usec latency;
+                string driver;
+                SourceFlags flags;
+                Proplist proplist;
+                usec configured_latency;
+                Volume base_volume;
+                SourceState state;
+                uint32 n_volume_steps;
+                uint32 card;
+                uint32 n_ports;
+                SourcePortInfo*[] ports;
+                SourcePortInfo* active_port;
+        }
+
+        [CCode (cname="pa_server_info")]
+        public struct ServerInfo {
+                string user_name;
+                string host_name;
+                string server_version;
+                string server_name;
+                SampleSpec sample_spec;
+                string default_sink_name;
+                string default_source_name;
+                ChannelMap channel_map;
+        }
+
+        [CCode (cname="pa_module_info")]
+        public struct ModuleInfo {
+                uint32 index;
+                string name;
+                string argument;
+                uint32 n_used;
+                Proplist proplist;
+        }
+
+        [CCode (cname="pa_client_info")]
+        public struct ClientInfo {
+                uint32 index;
+                string name;
+                uint32 owner_module;
+                string driver;
+                Proplist proplist;
+        }
+
+        [CCode (cname="pa_card_profile_info")]
+        public struct CardProfileInfo {
+                string name;
+                string description;
+                uint32 n_sinks;
+                uint32 n_sources;
+                uint32 priority;
+        }
+
+        [CCode (cname="pa_card_info")]
+        public struct CardInfo {
+                uint32 index;
+                string name;
+                uint32 owner_module;
+                string driver;
+                uint32 n_profiles;
+                CardProfileInfo profiles[];
+                CardProfileInfo *active_profile;
+                Proplist proplist;
+        }
+
+        [CCode (cname="pa_sink_input_info")]
+        public struct SinkInputInfo {
+                uint32 index;
+                string name;
+                uint32 owner_module;
+                uint32 client;
+                uint32 sink;
+                SampleSpec sample_spec;
+                ChannelMap channel_map;
+                CVolume volume;
+                uint32 buffer_usec;
+                uint32 sink_usec;
+                string resample_method;
+                string driver;
+                int mute;
+                Proplist proplist;
+        }
+
+        [CCode (cname="pa_source_output_info")]
+        public struct SourceOutputInfo {
+                uint32 index;
+                string name;
+                uint32 owner_module;
+                uint32 client;
+                uint32 source;
+                SampleSpec sample_spec;
+                ChannelMap channel_map;
+                uint32 buffer_usec;
+                uint32 sink_usec;
+                string resample_method;
+                string driver;
+                Proplist proplist;
+        }
+
+        [CCode (cname="pa_stat_info")]
+        public struct StatInfo {
+                uint32 memblock_total;
+                uint32 memblock_total_size;
+                uint32 memblock_allocated;
+                uint32 memblock_allocated_size;
+                uint32 scache_size;
+        }
+
+        [CCode (cname="pa_sample_info")]
+        public struct SampleInfo {
+                uint32 index;
+                string name;
+                CVolume volume;
+                SampleSpec sample_spec;
+                ChannelMap channel_map;
+                usec duration;
+                uint32 bytes;
+                bool lazy;
+                string filename;
+                Proplist proplist;
+        }
+
+        [CCode (cname="pa_sink_flags_t", cprefix="PA_SINK_")]
+        public enum SinkFlags {
+                HW_VOLUME_CTRL,
+                LATENCY,
+                HARDWARE,
+                NETWORK,
+                HW_MUTE_CTRL,
+                DECIBEL_VOLUME,
+                FLAT_VOLUME,
+                DYNAMIC_LATENCY
+        }
+
+        [CCode (cname="pa_source_flags_t", cprefix="PA_SOURCE_")]
+        public enum SourceFlags {
+                HW_VOLUME_CTRL,
+                LATENCY,
+                HARDWARE,
+                NETWORK,
+                HW_MUTE_CTRL,
+                DECIBEL_VOLUME,
+                DYNAMIC_LATENCY
+        }
+
+        [CCode (cname="pa_sink_state_t", cprefix="PA_SINK_")]
+        public enum SinkState {
+                INVALID_STATE,
+                RUNNING,
+                IDLE,
+                SUSPENDED;
+
+                [CCode (cname="PA_SINK_IS_OPENED")]
+                public bool IS_OPENED();
+        }
+
+        [CCode (cname="pa_source_state_t", cprefix="PA_SOURCE_")]
+        public enum SourceState {
+                INVALID_STATE,
+                RUNNING,
+                IDLE,
+                SUSPENDED;
+
+                [CCode (cname="PA_SOURCE_IS_OPENED")]
+                public bool IS_OPENED();
+        }
 }

commit 08a4d57ce2f20173ea8a90e597a3ebcd28398242
Author: Lennart Poettering <lennart at poettering.net>
Date:   Mon Sep 7 22:43:35 2009 +0200

    libpulse: allow invocation of pa_context_play_sample_with_proplist() with NULL proplist

diff --git a/src/pulse/scache.c b/src/pulse/scache.c
index 43dc529..27da688 100644
--- a/src/pulse/scache.c
+++ b/src/pulse/scache.c
@@ -216,7 +216,6 @@ pa_operation *pa_context_play_sample_with_proplist(pa_context *c, const char *na
     PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE);
     PA_CHECK_VALIDITY_RETURN_NULL(c, name && *name, PA_ERR_INVALID);
     PA_CHECK_VALIDITY_RETURN_NULL(c, !dev || *dev, PA_ERR_INVALID);
-    PA_CHECK_VALIDITY_RETURN_NULL(c, p, PA_ERR_INVALID);
     PA_CHECK_VALIDITY_RETURN_NULL(c, c->version >= 13, PA_ERR_NOTSUPPORTED);
 
     o = pa_operation_new(c, NULL, (pa_operation_cb_t) cb, userdata);
@@ -233,7 +232,14 @@ pa_operation *pa_context_play_sample_with_proplist(pa_context *c, const char *na
 
     pa_tagstruct_putu32(t, volume);
     pa_tagstruct_puts(t, name);
-    pa_tagstruct_put_proplist(t, p);
+
+    if (p)
+        pa_tagstruct_put_proplist(t, p);
+    else {
+        p = pa_proplist_new();
+        pa_tagstruct_put_proplist(t, p);
+        pa_proplist_free(p);
+    }
 
     pa_pstream_send_tagstruct(c->pstream, t);
     pa_pdispatch_register_reply(c->pdispatch, tag, DEFAULT_TIMEOUT, play_sample_with_proplist_ack_callback, pa_operation_ref(o), (pa_free_cb_t) pa_operation_unref);

commit 508c462841fd087528649ed1ca3646363387bb5d
Merge: 08a4d57 7234994
Author: Lennart Poettering <lennart at poettering.net>
Date:   Mon Sep 7 22:44:16 2009 +0200

    Merge remote branch 'wtay/optimize'


commit b2606cf641f01f688dcb05abcfef3ba003e74efb
Author: Lennart Poettering <lennart at poettering.net>
Date:   Mon Sep 7 23:34:31 2009 +0200

    i18n: move \r out of translatable string
    
    https://bugzilla.redhat.com/show_bug.cgi?id=521552

diff --git a/src/utils/pacat.c b/src/utils/pacat.c
index 9264a06..0a369bc 100644
--- a/src/utils/pacat.c
+++ b/src/utils/pacat.c
@@ -574,9 +574,10 @@ static void stream_update_timing_callback(pa_stream *s, int success, void *userd
         return;
     }
 
-    pa_log(_("Time: %0.3f sec; Latency: %0.0f usec.  \r"),
+    fprintf(stderr, _("Time: %0.3f sec; Latency: %0.0f usec."),
             (float) usec / 1000000,
             (float) l * (negative?-1.0f:1.0f));
+    fprintf(stderr, "        \r");
 }
 
 /* Someone requested that the latency is shown */

commit f5046759cdd72daf5ba3b31c9dfc7b8d5be6bc9b
Author: Lennart Poettering <lennart at poettering.net>
Date:   Tue Sep 8 23:46:23 2009 +0200

    llvm-clang-analyzer: drop a few unnecessary assignments and other trivial fixes

diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c
index 61c92cd..9eb7b46 100644
--- a/src/modules/alsa/alsa-mixer.c
+++ b/src/modules/alsa/alsa-mixer.c
@@ -2889,7 +2889,7 @@ static void profile_set_add_auto_pair(
     else
         name = pa_sprintf_malloc("input:%s", n->name);
 
-    if ((p = pa_hashmap_get(ps->profiles, name))) {
+    if (pa_hashmap_get(ps->profiles, name)) {
         pa_xfree(name);
         return;
     }
diff --git a/src/modules/alsa/alsa-sink.c b/src/modules/alsa/alsa-sink.c
index 195bdf6..63a3e90 100644
--- a/src/modules/alsa/alsa-sink.c
+++ b/src/modules/alsa/alsa-sink.c
@@ -1638,7 +1638,7 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca
     const char *dev_id = NULL;
     pa_sample_spec ss, requested_ss;
     pa_channel_map map;
-    uint32_t nfrags, hwbuf_size, frag_size, tsched_size, tsched_watermark;
+    uint32_t nfrags, frag_size, tsched_size, tsched_watermark;
     snd_pcm_uframes_t period_frames, tsched_frames;
     size_t frame_size;
     pa_bool_t use_mmap = TRUE, b, use_tsched = TRUE, d, ignore_dB = FALSE;
@@ -1673,7 +1673,6 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca
         goto fail;
     }
 
-    hwbuf_size = frag_size * nfrags;
     period_frames = frag_size/frame_size;
     tsched_frames = tsched_size/frame_size;
 
diff --git a/src/modules/alsa/alsa-source.c b/src/modules/alsa/alsa-source.c
index f42d354..64f8980 100644
--- a/src/modules/alsa/alsa-source.c
+++ b/src/modules/alsa/alsa-source.c
@@ -1483,7 +1483,7 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p
     const char *dev_id = NULL;
     pa_sample_spec ss, requested_ss;
     pa_channel_map map;
-    uint32_t nfrags, hwbuf_size, frag_size, tsched_size, tsched_watermark;
+    uint32_t nfrags, frag_size, tsched_size, tsched_watermark;
     snd_pcm_uframes_t period_frames, tsched_frames;
     size_t frame_size;
     pa_bool_t use_mmap = TRUE, b, use_tsched = TRUE, d, ignore_dB = FALSE;
@@ -1518,7 +1518,6 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p
         goto fail;
     }
 
-    hwbuf_size = frag_size * nfrags;
     period_frames = frag_size/frame_size;
     tsched_frames = tsched_size/frame_size;
 
diff --git a/src/modules/alsa/alsa-util.c b/src/modules/alsa/alsa-util.c
index a47a895..4d75c63 100644
--- a/src/modules/alsa/alsa-util.c
+++ b/src/modules/alsa/alsa-util.c
@@ -900,7 +900,7 @@ void pa_alsa_init_proplist_ctl(pa_proplist *p, const char *name) {
     snd_ctl_card_info_alloca(&info);
 
     if ((err = snd_ctl_open(&ctl, name, 0)) < 0) {
-        pa_log_warn("Error opening low-level control device '%s'", name);
+        pa_log_warn("Error opening low-level control device '%s': %s", name, snd_strerror(err));
         return;
     }
 
diff --git a/src/modules/module-hal-detect.c b/src/modules/module-hal-detect.c
index 6034d0e..1851913 100644
--- a/src/modules/module-hal-detect.c
+++ b/src/modules/module-hal-detect.c
@@ -435,9 +435,7 @@ static int hal_device_add_all(struct userdata *u) {
         int i;
 
         for (i = 0; i < n; i++) {
-            struct device *d;
-
-            if ((d = hal_device_add(u, udis[i]))) {
+            if (hal_device_add(u, udis[i])) {
                 count++;
                 pa_log_debug("Loaded device %s", udis[i]);
             } else
diff --git a/src/modules/module-tunnel.c b/src/modules/module-tunnel.c
index 5ccb81d..af4b8b2 100644
--- a/src/modules/module-tunnel.c
+++ b/src/modules/module-tunnel.c
@@ -332,7 +332,7 @@ static void command_moved(pa_pdispatch *pd,  uint32_t command,  uint32_t tag, pa
 
 static void command_stream_buffer_attr_changed(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa_tagstruct *t, void *userdata) {
     struct userdata *u = userdata;
-    uint32_t channel, maxlength, tlength, fragsize, prebuf, minreq;
+    uint32_t channel, maxlength, tlength = 0, fragsize, prebuf, minreq;
     pa_usec_t usec;
 
     pa_assert(pd);
@@ -1097,7 +1097,7 @@ static void sink_input_info_cb(pa_pdispatch *pd, uint32_t command,  uint32_t tag
     uint32_t idx, owner_module, client, sink;
     pa_usec_t buffer_usec, sink_usec;
     const char *name, *driver, *resample_method;
-    pa_bool_t mute;
+    pa_bool_t mute = FALSE;
     pa_sample_spec sample_spec;
     pa_channel_map channel_map;
     pa_cvolume volume;
@@ -1345,12 +1345,11 @@ static void command_subscribe_event(pa_pdispatch *pd,  uint32_t command,  uint32
 /* Called from main context */
 static void start_subscribe(struct userdata *u) {
     pa_tagstruct *t;
-    uint32_t tag;
     pa_assert(u);
 
     t = pa_tagstruct_new(NULL, 0);
     pa_tagstruct_putu32(t, PA_COMMAND_SUBSCRIBE);
-    pa_tagstruct_putu32(t, tag = u->ctag++);
+    pa_tagstruct_putu32(t, u->ctag++);
     pa_tagstruct_putu32(t, PA_SUBSCRIPTION_MASK_SERVER|
 #ifdef TUNNEL_SINK
                         PA_SUBSCRIPTION_MASK_SINK_INPUT|PA_SUBSCRIPTION_MASK_SINK
@@ -1526,7 +1525,7 @@ static void setup_complete_callback(pa_pdispatch *pd, uint32_t command, uint32_t
 
     reply = pa_tagstruct_new(NULL, 0);
     pa_tagstruct_putu32(reply, PA_COMMAND_SET_CLIENT_NAME);
-    pa_tagstruct_putu32(reply, tag = u->ctag++);
+    pa_tagstruct_putu32(reply, u->ctag++);
 
     if (u->version >= 13) {
         pa_proplist *pl;
@@ -1753,7 +1752,6 @@ static void on_connection(pa_socket_client *sc, pa_iochannel *io, void *userdata
 static void sink_set_volume(pa_sink *sink) {
     struct userdata *u;
     pa_tagstruct *t;
-    uint32_t tag;
 
     pa_assert(sink);
     u = sink->userdata;
@@ -1761,7 +1759,7 @@ static void sink_set_volume(pa_sink *sink) {
 
     t = pa_tagstruct_new(NULL, 0);
     pa_tagstruct_putu32(t, PA_COMMAND_SET_SINK_INPUT_VOLUME);
-    pa_tagstruct_putu32(t, tag = u->ctag++);
+    pa_tagstruct_putu32(t, u->ctag++);
     pa_tagstruct_putu32(t, u->device_index);
     pa_tagstruct_put_cvolume(t, &sink->real_volume);
     pa_pstream_send_tagstruct(u->pstream, t);
@@ -1771,7 +1769,6 @@ static void sink_set_volume(pa_sink *sink) {
 static void sink_set_mute(pa_sink *sink) {
     struct userdata *u;
     pa_tagstruct *t;
-    uint32_t tag;
 
     pa_assert(sink);
     u = sink->userdata;
@@ -1782,7 +1779,7 @@ static void sink_set_mute(pa_sink *sink) {
 
     t = pa_tagstruct_new(NULL, 0);
     pa_tagstruct_putu32(t, PA_COMMAND_SET_SINK_INPUT_MUTE);
-    pa_tagstruct_putu32(t, tag = u->ctag++);
+    pa_tagstruct_putu32(t, u->ctag++);
     pa_tagstruct_putu32(t, u->device_index);
     pa_tagstruct_put_boolean(t, !!sink->muted);
     pa_pstream_send_tagstruct(u->pstream, t);
diff --git a/src/modules/raop/base64.c b/src/modules/raop/base64.c
index e1cbed0..5b06103 100644
--- a/src/modules/raop/base64.c
+++ b/src/modules/raop/base64.c
@@ -57,7 +57,6 @@ int pa_base64_encode(const void *data, int size, char **str)
 
     p = s = pa_xnew(char, size * 4 / 3 + 4);
     q = (const unsigned char *) data;
-    i = 0;
     for (i = 0; i < size;) {
         c = q[i++];
         c *= 256;
diff --git a/src/modules/x11/module-x11-publish.c b/src/modules/x11/module-x11-publish.c
index 2c7fdc1..7ee1b6d 100644
--- a/src/modules/x11/module-x11-publish.c
+++ b/src/modules/x11/module-x11-publish.c
@@ -90,7 +90,7 @@ static void publish_servers(struct userdata *u, pa_strlist *l) {
 
         l = pa_strlist_reverse(l);
         s = pa_strlist_tostring(l);
-        l = pa_strlist_reverse(l);
+        pa_strlist_reverse(l);
 
         pa_x11_set_prop(pa_x11_wrapper_get_display(u->x11_wrapper), "PULSE_SERVER", s);
         pa_xfree(s);
diff --git a/src/pulse/utf8.c b/src/pulse/utf8.c
index 6b58bde..9dddf4a 100644
--- a/src/pulse/utf8.c
+++ b/src/pulse/utf8.c
@@ -120,10 +120,8 @@ static char* utf8_validate(const char *str, char *output) {
                 size = 4;
                 min = (1 << 16);
                 val = (uint32_t) (*p & 0x07);
-            } else {
-                size = 1;
+            } else
                 goto error;
-            }
 
             p++;
             if (!is_continuation_char(*p))
diff --git a/src/pulse/volume.c b/src/pulse/volume.c
index 47bccad..2d2bba2 100644
--- a/src/pulse/volume.c
+++ b/src/pulse/volume.c
@@ -155,7 +155,7 @@ pa_volume_t pa_cvolume_min(const pa_cvolume *a) {
 
 pa_volume_t pa_cvolume_max_mask(const pa_cvolume *a, const pa_channel_map *cm, pa_channel_position_mask_t mask) {
     pa_volume_t m = PA_VOLUME_MUTED;
-    unsigned c, n;
+    unsigned c;
 
     pa_assert(a);
 
@@ -164,7 +164,7 @@ pa_volume_t pa_cvolume_max_mask(const pa_cvolume *a, const pa_channel_map *cm, p
 
     pa_return_val_if_fail(pa_cvolume_compatible_with_channel_map(a, cm), PA_VOLUME_MUTED);
 
-    for (c = n = 0; c < a->channels; c++) {
+    for (c = 0; c < a->channels; c++) {
 
         if (!(PA_CHANNEL_POSITION_MASK(cm->map[c]) & mask))
             continue;
@@ -178,7 +178,7 @@ pa_volume_t pa_cvolume_max_mask(const pa_cvolume *a, const pa_channel_map *cm, p
 
 pa_volume_t pa_cvolume_min_mask(const pa_cvolume *a, const pa_channel_map *cm, pa_channel_position_mask_t mask) {
     pa_volume_t m = PA_VOLUME_MAX;
-    unsigned c, n;
+    unsigned c;
 
     pa_assert(a);
 
@@ -187,7 +187,7 @@ pa_volume_t pa_cvolume_min_mask(const pa_cvolume *a, const pa_channel_map *cm, p
 
     pa_return_val_if_fail(pa_cvolume_compatible_with_channel_map(a, cm), PA_VOLUME_MUTED);
 
-    for (c = n = 0; c < a->channels; c++) {
+    for (c = 0; c < a->channels; c++) {
 
         if (!(PA_CHANNEL_POSITION_MASK(cm->map[c]) & mask))
             continue;
diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c
index 1daa46e..d64c738 100644
--- a/src/pulsecore/core-util.c
+++ b/src/pulsecore/core-util.c
@@ -591,13 +591,13 @@ static int set_scheduler(int rtprio) {
     sp.sched_priority = rtprio;
 
 #ifdef SCHED_RESET_ON_FORK
-    if ((r = pthread_setschedparam(pthread_self(), SCHED_RR|SCHED_RESET_ON_FORK, &sp)) == 0) {
+    if (pthread_setschedparam(pthread_self(), SCHED_RR|SCHED_RESET_ON_FORK, &sp) == 0) {
         pa_log_debug("SCHED_RR|SCHED_RESET_ON_FORK worked.");
         return 0;
     }
 #endif
 
-    if ((r = pthread_setschedparam(pthread_self(), SCHED_RR, &sp)) == 0) {
+    if (pthread_setschedparam(pthread_self(), SCHED_RR, &sp) == 0) {
         pa_log_debug("SCHED_RR worked.");
         return 0;
     }
@@ -786,7 +786,6 @@ int pa_match(const char *expr, const char *v) {
 /* Try to parse a boolean string value.*/
 int pa_parse_boolean(const char *v) {
     const char *expr;
-    int r;
     pa_assert(v);
 
     /* First we check language independant */
@@ -798,12 +797,12 @@ int pa_parse_boolean(const char *v) {
     /* And then we check language dependant */
     if ((expr = nl_langinfo(YESEXPR)))
         if (expr[0])
-            if ((r = pa_match(expr, v)) > 0)
+            if (pa_match(expr, v) > 0)
                 return 1;
 
     if ((expr = nl_langinfo(NOEXPR)))
         if (expr[0])
-            if ((r = pa_match(expr, v)) > 0)
+            if (pa_match(expr, v) > 0)
                 return 0;
 
     errno = EINVAL;
@@ -1195,7 +1194,7 @@ char* pa_strip_nl(char *s) {
 
 /* Create a temporary lock file and lock it. */
 int pa_lock_lockfile(const char *fn) {
-    int fd = -1;
+    int fd;
     pa_assert(fn);
 
     for (;;) {
@@ -1238,8 +1237,6 @@ int pa_lock_lockfile(const char *fn) {
             fd = -1;
             goto fail;
         }
-
-        fd = -1;
     }
 
     return fd;
diff --git a/src/pulsecore/flist.c b/src/pulsecore/flist.c
index 6fb944f..7e5ee24 100644
--- a/src/pulsecore/flist.c
+++ b/src/pulsecore/flist.c
@@ -130,15 +130,22 @@ void pa_flist_free(pa_flist *l, pa_free_cb_t free_cb) {
 }
 
 int pa_flist_push(pa_flist*l, void *p) {
-    unsigned idx, n, len;
+    unsigned idx, n;
     pa_atomic_ptr_t*cells;
+#ifdef PROFILE
+    unsigned len;
+#endif
 
     pa_assert(l);
     pa_assert(p);
 
     cells = PA_FLIST_CELLS(l);
 
-    n = len = l->size + N_EXTRA_SCAN - (unsigned) pa_atomic_load(&l->length);
+    n = l->size + N_EXTRA_SCAN - (unsigned) pa_atomic_load(&l->length);
+
+#ifdef PROFILE
+    len = n;
+#endif
 
     _Y;
     idx = reduce(l, (unsigned) pa_atomic_load(&l->write_idx));
@@ -171,14 +178,21 @@ int pa_flist_push(pa_flist*l, void *p) {
 }
 
 void* pa_flist_pop(pa_flist*l) {
-    unsigned idx, len, n;
+    unsigned idx, n;
     pa_atomic_ptr_t *cells;
+#ifdef PROFILE
+    unsigned len;
+#endif
 
     pa_assert(l);
 
     cells = PA_FLIST_CELLS(l);
 
-    n = len = (unsigned) pa_atomic_load(&l->length) + N_EXTRA_SCAN;
+    n = (unsigned) pa_atomic_load(&l->length) + N_EXTRA_SCAN;
+
+#ifdef PROFILE
+    len = n;
+#endif
 
     _Y;
     idx = reduce(l, (unsigned) pa_atomic_load(&l->read_idx));
diff --git a/src/pulsecore/memtrap.c b/src/pulsecore/memtrap.c
index c647e50..373872c 100644
--- a/src/pulsecore/memtrap.c
+++ b/src/pulsecore/memtrap.c
@@ -200,13 +200,13 @@ pa_memtrap *pa_memtrap_update(pa_memtrap *m, const void *start, size_t size) {
         goto unlock;
 
     memtrap_unlink(m, j);
-    j = pa_aupdate_write_swap(aupdate);
+    pa_aupdate_write_swap(aupdate);
 
     m->start = (void*) start;
     m->size = size;
     pa_atomic_store(&m->bad, 0);
 
-    j = pa_aupdate_write_swap(aupdate);
+    pa_assert_se(pa_aupdate_write_swap(aupdate) == j);
     memtrap_link(m, j);
 
 unlock:
diff --git a/src/pulsecore/pid.c b/src/pulsecore/pid.c
index 0087846..996946c 100644
--- a/src/pulsecore/pid.c
+++ b/src/pulsecore/pid.c
@@ -81,7 +81,7 @@ static pid_t read_pid(const char *fn, int fd) {
 }
 
 static int open_pid_file(const char *fn, int mode) {
-    int fd = -1;
+    int fd;
 
     pa_assert(fn);
 
@@ -123,8 +123,6 @@ static int open_pid_file(const char *fn, int mode) {
             fd = -1;
             goto fail;
         }
-
-        fd = -1;
     }
 
     return fd;
diff --git a/src/pulsecore/protocol-esound.c b/src/pulsecore/protocol-esound.c
index 480af6d..2326eb3 100644
--- a/src/pulsecore/protocol-esound.c
+++ b/src/pulsecore/protocol-esound.c
@@ -771,7 +771,6 @@ static int esd_proto_stream_pan(connection *c, esd_proto_t request, const void *
 
     memcpy(&rvolume, data, sizeof(uint32_t));
     rvolume = PA_MAYBE_UINT32_SWAP(c->swap_byte_order, rvolume);
-    data = (const char*)data + sizeof(uint32_t);
 
     if ((conn = pa_idxset_get_by_index(c->protocol->connections, idx)) && conn->sink_input) {
         pa_cvolume volume;
@@ -809,7 +808,6 @@ static int esd_proto_sample_pan(connection *c, esd_proto_t request, const void *
 
     memcpy(&rvolume, data, sizeof(uint32_t));
     rvolume = PA_MAYBE_UINT32_SWAP(c->swap_byte_order, rvolume);
-    data = (const char*)data + sizeof(uint32_t);
 
     volume.values[0] = (lvolume*PA_VOLUME_NORM)/ESD_VOLUME_BASE;
     volume.values[1] = (rvolume*PA_VOLUME_NORM)/ESD_VOLUME_BASE;
@@ -1123,7 +1121,7 @@ static int do_read(connection *c) {
         ssize_t r;
         size_t l;
         void *p;
-        size_t space;
+        size_t space = 0;
 
         pa_assert(c->input_memblockq);
 
diff --git a/src/pulsecore/protocol-native.c b/src/pulsecore/protocol-native.c
index d961dba..0215c23 100644
--- a/src/pulsecore/protocol-native.c
+++ b/src/pulsecore/protocol-native.c
@@ -628,7 +628,6 @@ static record_stream* record_stream_new(
 
     record_stream *s;
     pa_source_output *source_output = NULL;
-    size_t base;
     pa_source_output_new_data data;
 
     pa_assert(c);
@@ -682,7 +681,7 @@ static record_stream* record_stream_new(
             0,
             s->buffer_attr.maxlength,
             0,
-            base = pa_frame_size(&source_output->sample_spec),
+            pa_frame_size(&source_output->sample_spec),
             1,
             0,
             0,
diff --git a/src/pulsecore/protocol-simple.c b/src/pulsecore/protocol-simple.c
index d66db4b..a9f7389 100644
--- a/src/pulsecore/protocol-simple.c
+++ b/src/pulsecore/protocol-simple.c
@@ -154,7 +154,7 @@ static int do_read(connection *c) {
     ssize_t r;
     size_t l;
     void *p;
-    size_t space;
+    size_t space = 0;
 
     connection_assert_ref(c);
 
diff --git a/src/pulsecore/sink-input.c b/src/pulsecore/sink-input.c
index adda2af..5f79ab1 100644
--- a/src/pulsecore/sink-input.c
+++ b/src/pulsecore/sink-input.c
@@ -1152,7 +1152,6 @@ pa_bool_t pa_sink_input_may_move_to(pa_sink_input *i, pa_sink *dest) {
 /* Called from main context */
 int pa_sink_input_start_move(pa_sink_input *i) {
     pa_source_output *o, *p = NULL;
-    pa_sink *origin;
     int r;
 
     pa_sink_input_assert_ref(i);
@@ -1166,8 +1165,6 @@ int pa_sink_input_start_move(pa_sink_input *i) {
     if ((r = pa_hook_fire(&i->core->hooks[PA_CORE_HOOK_SINK_INPUT_MOVE_START], i)) < 0)
         return r;
 
-    origin = i->sink;
-
     /* Kill directly connected outputs */
     while ((o = pa_idxset_first(i->direct_outputs, NULL))) {
         pa_assert(o != p);
diff --git a/src/pulsecore/socket-client.c b/src/pulsecore/socket-client.c
index 2453515..c9cfdbe 100644
--- a/src/pulsecore/socket-client.c
+++ b/src/pulsecore/socket-client.c
@@ -202,8 +202,6 @@ static void connect_io_cb(pa_mainloop_api*m, pa_io_event *e, int fd, pa_io_event
 }
 
 static int do_connect(pa_socket_client *c, const struct sockaddr *sa, socklen_t len) {
-    int r;
-
     pa_assert(c);
     pa_assert(PA_REFCNT_VALUE(c) >= 1);
     pa_assert(sa);
@@ -211,7 +209,7 @@ static int do_connect(pa_socket_client *c, const struct sockaddr *sa, socklen_t
 
     pa_make_fd_nonblock(c->fd);
 
-    if ((r = connect(c->fd, sa, len)) < 0) {
+    if (connect(c->fd, sa, len) < 0) {
 #ifdef OS_IS_WIN32
         if (WSAGetLastError() != EWOULDBLOCK) {
             pa_log_debug("connect(): %d", WSAGetLastError());
diff --git a/src/utils/pacat.c b/src/utils/pacat.c
index 0a369bc..d6c04db 100644
--- a/src/utils/pacat.c
+++ b/src/utils/pacat.c
@@ -406,7 +406,6 @@ static void context_state_callback(pa_context *c, void *userdata) {
             break;
 
         case PA_CONTEXT_READY: {
-            int r;
             pa_buffer_attr buffer_attr;
 
             pa_assert(c);
@@ -443,13 +442,13 @@ static void context_state_callback(pa_context *c, void *userdata) {
 
             if (mode == PLAYBACK) {
                 pa_cvolume cv;
-                if ((r = pa_stream_connect_playback(stream, device, latency > 0 ? &buffer_attr : NULL, flags, volume_is_set ? pa_cvolume_set(&cv, sample_spec.channels, volume) : NULL, NULL)) < 0) {
+                if (pa_stream_connect_playback(stream, device, latency > 0 ? &buffer_attr : NULL, flags, volume_is_set ? pa_cvolume_set(&cv, sample_spec.channels, volume) : NULL, NULL) < 0) {
                     pa_log(_("pa_stream_connect_playback() failed: %s"), pa_strerror(pa_context_errno(c)));
                     goto fail;
                 }
 
             } else {
-                if ((r = pa_stream_connect_record(stream, device, latency > 0 ? &buffer_attr : NULL, flags)) < 0) {
+                if (pa_stream_connect_record(stream, device, latency > 0 ? &buffer_attr : NULL, flags) < 0) {
                     pa_log(_("pa_stream_connect_record() failed: %s"), pa_strerror(pa_context_errno(c)));
                     goto fail;
                 }

commit 382eced35de93cba8098610f3990c16ae35b6ea0
Author: Lennart Poettering <lennart at poettering.net>
Date:   Tue Sep 8 23:47:23 2009 +0200

    alsa-sink: init after_avail earlier (llvm-clang-analyzer)

diff --git a/src/modules/alsa/alsa-sink.c b/src/modules/alsa/alsa-sink.c
index 63a3e90..883b32a 100644
--- a/src/modules/alsa/alsa-sink.c
+++ b/src/modules/alsa/alsa-sink.c
@@ -656,6 +656,7 @@ static int unix_write(struct userdata *u, pa_usec_t *sleep_usec, pa_bool_t polle
         snd_pcm_sframes_t n;
         size_t n_bytes;
         int r;
+        pa_bool_t after_avail = TRUE;
 
         if (PA_UNLIKELY((n = pa_alsa_safe_avail(u->pcm_handle, u->hwbuf_size, &u->sink->sample_spec)) < 0)) {
 
@@ -710,7 +711,6 @@ static int unix_write(struct userdata *u, pa_usec_t *sleep_usec, pa_bool_t polle
         for (;;) {
             snd_pcm_sframes_t frames;
             void *p;
-            pa_bool_t after_avail = TRUE;
 
 /*         pa_log_debug("%lu frames to write", (unsigned long) frames); */
 

commit 1380f18e52db48f61fd8582c59e52281728f22b7
Author: Lennart Poettering <lennart at poettering.net>
Date:   Tue Sep 8 23:48:12 2009 +0200

    blueooth: actually honour 'room' variable (llvm-clang-analyzer)

diff --git a/src/modules/bluetooth/module-bluetooth-device.c b/src/modules/bluetooth/module-bluetooth-device.c
index b8a8804..4592fca 100644
--- a/src/modules/bluetooth/module-bluetooth-device.c
+++ b/src/modules/bluetooth/module-bluetooth-device.c
@@ -221,9 +221,7 @@ static int service_recv(struct userdata *u, bt_audio_msg_header_t *msg, size_t r
     pa_assert(u);
     pa_assert(u->service_fd >= 0);
     pa_assert(msg);
-
-    if (room <= 0)
-        room = BT_SUGGESTED_BUFFER_SIZE;
+    pa_assert(room >= sizeof(*msg));
 
     pa_log_debug("Trying to receive message from audio service...");
 
@@ -236,6 +234,11 @@ static int service_recv(struct userdata *u, bt_audio_msg_header_t *msg, size_t r
         return -1;
     }
 
+    if (msg->length > room) {
+        pa_log_error("Not enough room.");
+        return -1;
+    }
+
     /* Secondly, read the payload */
     if (msg->length > sizeof(*msg)) {
 

commit 157ec797dd53e1fb3d14f44c991064b0a2dee8e2
Author: Lennart Poettering <lennart at poettering.net>
Date:   Tue Sep 8 23:48:47 2009 +0200

    hal: check properly for failure of libhal_find_device_by_capability() (llvm-clang-analyzer)

diff --git a/src/modules/hal-util.c b/src/modules/hal-util.c
index e2a2d8d..2d59f51 100644
--- a/src/modules/hal-util.c
+++ b/src/modules/hal-util.c
@@ -65,7 +65,7 @@ int pa_hal_get_info(pa_core *core, pa_proplist *p, int card) {
         goto finish;
     }
 
-    if (!(udis = libhal_find_device_by_capability(hal, "sound", &n, &error)) < 0) {
+    if (!(udis = libhal_find_device_by_capability(hal, "sound", &n, &error))) {
         pa_log_error("Couldn't find devices: %s: %s", error.name, error.message);
         goto finish;
     }

commit f3be47f1e03b5970281527d95c7ee26de2fc6dde
Author: Lennart Poettering <lennart at poettering.net>
Date:   Tue Sep 8 23:49:10 2009 +0200

    rtsp: document that rtsp_exec() needs fixing (llvm-clang-analyzer)

diff --git a/src/modules/rtp/rtsp_client.c b/src/modules/rtp/rtsp_client.c
index ba657f7..915c107 100644
--- a/src/modules/rtp/rtsp_client.c
+++ b/src/modules/rtp/rtsp_client.c
@@ -456,6 +456,8 @@ static int rtsp_exec(pa_rtsp_client* c, const char* cmd,
     l = pa_iochannel_write(c->io, hdrs, strlen(hdrs));
     pa_xfree(hdrs);
 
+    /* FIXME: this is broken, not necessarily all bytes are written */
+
     return 0;
 }
 

commit 05506d7dc228f83d3ad0fccc831c493aec7f62be
Author: Lennart Poettering <lennart at poettering.net>
Date:   Tue Sep 8 23:49:42 2009 +0200

    utf8: minor simplification

diff --git a/src/pulse/utf8.c b/src/pulse/utf8.c
index 9dddf4a..fe7bcd2 100644
--- a/src/pulse/utf8.c
+++ b/src/pulse/utf8.c
@@ -148,12 +148,9 @@ ONE_REMAINING:
 
             if (o) {
                 memcpy(o, last, (size_t) size);
-                o += size - 1;
+                o += size;
             }
 
-            if (o)
-                o++;
-
             continue;
 
 error:

commit 5fd751fc2ee44db50c26adc6d1881508c1ab04f5
Author: Lennart Poettering <lennart at poettering.net>
Date:   Tue Sep 8 23:50:14 2009 +0200

    cli-command: modernizations

diff --git a/src/pulsecore/cli-command.c b/src/pulsecore/cli-command.c
index 143db3b..3941cc8 100644
--- a/src/pulsecore/cli-command.c
+++ b/src/pulsecore/cli-command.c
@@ -1549,7 +1549,7 @@ static int pa_cli_command_dump(pa_core *c, pa_tokenizer *t, pa_strbuf *buf, pa_b
     pa_sink *sink;
     pa_source *source;
     pa_card *card;
-    int nl;
+    pa_bool_t nl;
     uint32_t idx;
     char txt[256];
     time_t now;
@@ -1567,7 +1567,7 @@ static int pa_cli_command_dump(pa_core *c, pa_tokenizer *t, pa_strbuf *buf, pa_b
     pa_strbuf_printf(buf, "### Configuration dump generated at %s\n", ctime(&now));
 #endif
 
-    for (m = pa_idxset_first(c->modules, &idx); m; m = pa_idxset_next(c->modules, &idx)) {
+    PA_IDXSET_FOREACH(m, c->modules, idx) {
 
         pa_strbuf_printf(buf, "load-module %s", m->name);
 
@@ -1577,13 +1577,12 @@ static int pa_cli_command_dump(pa_core *c, pa_tokenizer *t, pa_strbuf *buf, pa_b
         pa_strbuf_puts(buf, "\n");
     }
 
-    nl = 0;
-
-    for (sink = pa_idxset_first(c->sinks, &idx); sink; sink = pa_idxset_next(c->sinks, &idx)) {
+    nl = FALSE;
+    PA_IDXSET_FOREACH(sink, c->sinks, idx) {
 
         if (!nl) {
             pa_strbuf_puts(buf, "\n");
-            nl = 1;
+            nl = TRUE;
         }
 
         pa_strbuf_printf(buf, "set-sink-volume %s 0x%03x\n", sink->name, pa_cvolume_max(pa_sink_get_volume(sink, FALSE)));
@@ -1591,11 +1590,12 @@ static int pa_cli_command_dump(pa_core *c, pa_tokenizer *t, pa_strbuf *buf, pa_b
         pa_strbuf_printf(buf, "suspend-sink %s %s\n", sink->name, pa_yes_no(pa_sink_get_state(sink) == PA_SINK_SUSPENDED));
     }
 
-    for (source = pa_idxset_first(c->sources, &idx); source; source = pa_idxset_next(c->sources, &idx)) {
+    nl = FALSE;
+    PA_IDXSET_FOREACH(source, c->sources, idx) {
 
         if (!nl) {
             pa_strbuf_puts(buf, "\n");
-            nl = 1;
+            nl = TRUE;
         }
 
         pa_strbuf_printf(buf, "set-source-volume %s 0x%03x\n", source->name, pa_cvolume_max(pa_source_get_volume(source, FALSE)));
@@ -1603,32 +1603,32 @@ static int pa_cli_command_dump(pa_core *c, pa_tokenizer *t, pa_strbuf *buf, pa_b
         pa_strbuf_printf(buf, "suspend-source %s %s\n", source->name, pa_yes_no(pa_source_get_state(source) == PA_SOURCE_SUSPENDED));
     }
 
-    for (card = pa_idxset_first(c->cards, &idx); card; card = pa_idxset_next(c->cards, &idx)) {
+    nl = FALSE;
+    PA_IDXSET_FOREACH(card, c->cards, idx) {
 
         if (!nl) {
             pa_strbuf_puts(buf, "\n");
-            nl = 1;
+            nl = TRUE;
         }
 
         if (card->active_profile)
             pa_strbuf_printf(buf, "set-card-profile %s %s\n", card->name, card->active_profile->name);
     }
 
-    nl = 0;
-
+    nl = FALSE;
     if ((sink = pa_namereg_get_default_sink(c))) {
         if (!nl) {
             pa_strbuf_puts(buf, "\n");
-            nl = 1;
+            nl = TRUE;
         }
+
         pa_strbuf_printf(buf, "set-default-sink %s\n", sink->name);
     }
 
     if ((source = pa_namereg_get_default_source(c))) {
-        if (!nl) {
+        if (!nl)
             pa_strbuf_puts(buf, "\n");
-            nl = 1;
-        }
+
         pa_strbuf_printf(buf, "set-default-source %s\n", source->name);
     }
 

commit 3c9a09bc45608eb333e67bd44c3b69049f4d4ed7
Author: Lennart Poettering <lennart at poettering.net>
Date:   Tue Sep 8 23:51:00 2009 +0200

    cli-command: don't necessarily ovveride failure code of files (llvm-clang-analyzer)

diff --git a/src/pulsecore/cli-command.c b/src/pulsecore/cli-command.c
index 3941cc8..b57919a 100644
--- a/src/pulsecore/cli-command.c
+++ b/src/pulsecore/cli-command.c
@@ -1813,8 +1813,6 @@ int pa_cli_command_execute_file(pa_core *c, const char *fn, pa_strbuf *buf, pa_b
 
     ret = pa_cli_command_execute_file_stream(c, f, buf, fail);
 
-    ret = 0;
-
 fail:
     if (f)
         fclose(f);

commit 1516b7c047464e406ec983f10dcd3b854c4f3331
Author: Lennart Poettering <lennart at poettering.net>
Date:   Tue Sep 8 23:51:39 2009 +0200

    conf-parser: properly initialize variable we free() later (llvm-clang-analyzer)

diff --git a/src/pulsecore/conf-parser.c b/src/pulsecore/conf-parser.c
index b4ab23c..dd4a99e 100644
--- a/src/pulsecore/conf-parser.c
+++ b/src/pulsecore/conf-parser.c
@@ -113,7 +113,7 @@ static int parse_line(const char *filename, unsigned line, char **section, const
         return 0;
 
     if (pa_startswith(b, ".include ")) {
-        char *path, *fn;
+        char *path = NULL, *fn;
         int r;
 
         fn = strip(b+9);

commit 31ae7deefa72288b0c250b3ddc68c39e8eb840eb
Author: Lennart Poettering <lennart at poettering.net>
Date:   Tue Sep 8 23:52:58 2009 +0200

    core-util: properly fill in exception array for pa_reset_sigs() (llvm-clang-analyzer)

diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c
index d64c738..7a9f458 100644
--- a/src/pulsecore/core-util.c
+++ b/src/pulsecore/core-util.c
@@ -2404,7 +2404,7 @@ int pa_reset_sigs(int except, ...) {
         p[i++] = except;
 
         while ((sig = va_arg(ap, int)) >= 0)
-            sig = p[i++];
+            p[i++] = sig;
     }
     p[i] = -1;
 

commit 31d1d9088e18b9d59a259230e0e49e6a5908586a
Author: Lennart Poettering <lennart at poettering.net>
Date:   Tue Sep 8 23:53:28 2009 +0200

    protocol-native: log explicitly when someone asks us to quit

diff --git a/src/pulsecore/protocol-native.c b/src/pulsecore/protocol-native.c
index 0215c23..17aee4b 100644
--- a/src/pulsecore/protocol-native.c
+++ b/src/pulsecore/protocol-native.c
@@ -2273,6 +2273,8 @@ static void command_exit(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa_ta
     ret = pa_core_exit(c->protocol->core, FALSE, 0);
     CHECK_VALIDITY(c->pstream, ret >= 0, tag, PA_ERR_ACCESS);
 
+    pa_log_debug("Client %s asks us to terminate.", pa_strnull(pa_proplist_gets(c->client->proplist, PA_PROP_APPLICATION_PROCESS_BINARY)));
+
     pa_pstream_send_simple_ack(c->pstream, tag); /* nonsense */
 }
 

commit 49bc6bcf084d143d490c83e0021c447dbf0a6be9
Author: Lennart Poettering <lennart at poettering.net>
Date:   Tue Sep 8 23:53:56 2009 +0200

    stripnul: initialize 'found' bool properly (llvm-clang-analyzer)

diff --git a/src/tests/stripnul.c b/src/tests/stripnul.c
index 1d8c493..d677ad2 100644
--- a/src/tests/stripnul.c
+++ b/src/tests/stripnul.c
@@ -31,7 +31,7 @@
 int main(int argc, char *argv[]) {
     FILE *i, *o;
     size_t granularity;
-    pa_bool_t found;
+    pa_bool_t found = FALSE;
     uint8_t *zero;
 
     pa_assert_se(argc >= 2);

commit b51f5e58cc4ebbb5b4343c031ed9e37c352f81a6
Author: Lennart Poettering <lennart at poettering.net>
Date:   Tue Sep 8 23:54:31 2009 +0200

    pacat: don't convert stream name twice (llvm-clang-analyzer)

diff --git a/src/utils/pacat.c b/src/utils/pacat.c
index d6c04db..781bfa3 100644
--- a/src/utils/pacat.c
+++ b/src/utils/pacat.c
@@ -768,7 +768,6 @@ int main(int argc, char *argv[]) {
 
             case ARG_STREAM_NAME: {
                 char *t;
-                t = pa_locale_to_utf8(optarg);
 
                 if (!(t = pa_locale_to_utf8(optarg)) ||
                     pa_proplist_sets(proplist, PA_PROP_MEDIA_NAME, t) < 0) {

commit 7cc100d9e1d7093da44c8c83cbf61bb8c6000d9a
Author: Lennart Poettering <lennart at poettering.net>
Date:   Tue Sep 8 23:54:53 2009 +0200

    padsp: properly return return values (llvm-clang-analyzer)

diff --git a/src/utils/padsp.c b/src/utils/padsp.c
index 882522c..41bfd74 100644
--- a/src/utils/padsp.c
+++ b/src/utils/padsp.c
@@ -1821,7 +1821,7 @@ fail:
 
     pa_threaded_mainloop_unlock(i->mainloop);
 
-    return 0;
+    return r;
 }
 
 static int dsp_trigger(fd_info *i) {
@@ -1864,7 +1864,7 @@ fail:
 
     pa_threaded_mainloop_unlock(i->mainloop);
 
-    return 0;
+    return r;
 }
 
 static int dsp_cork(fd_info *i, pa_stream *s, int b) {
@@ -1902,7 +1902,7 @@ fail:
 
     pa_threaded_mainloop_unlock(i->mainloop);
 
-    return 0;
+    return r;
 }
 
 static int dsp_ioctl(fd_info *i, unsigned long request, void*argp, int *_errno) {

commit 12df6860ad1103bf1e90fee4501568e45c882ee2
Author: Lennart Poettering <lennart at poettering.net>
Date:   Wed Sep 9 02:41:34 2009 +0200

    ratelimit: allow non-static ratelimit structs

diff --git a/src/pulsecore/ratelimit.h b/src/pulsecore/ratelimit.h
index ec3b5a3..9857a29 100644
--- a/src/pulsecore/ratelimit.h
+++ b/src/pulsecore/ratelimit.h
@@ -26,21 +26,31 @@
 #include <pulsecore/macro.h>
 
 typedef struct pa_ratelimit {
-    const pa_usec_t interval;
-    const unsigned burst;
+    pa_usec_t interval;
+    unsigned burst;
     unsigned n_printed, n_missed;
     pa_usec_t begin;
 } pa_ratelimit;
 
 #define PA_DEFINE_RATELIMIT(_name, _interval, _burst)   \
     pa_ratelimit _name = {                              \
-        .interval = _interval,                          \
-        .burst = _burst,                                \
+        .interval = (_interval),                        \
+        .burst = (_burst),                              \
         .n_printed = 0,                                 \
         .n_missed = 0,                                  \
         .begin = 0                                      \
     }
 
+#define PA_INIT_RATELIMIT(v, _interval, _burst)         \
+    do {                                                \
+        pa_ratelimit *r = &(v);                         \
+        r->interval = (_interval);                      \
+        r->burst = (_burst);                            \
+        r->n_printed = 0;                               \
+        r->n_missed = 0;                                \
+        r->begin = 0;                                   \
+    } while (FALSE);
+
 pa_bool_t pa_ratelimit_test(pa_ratelimit *r);
 
 #endif

commit c2f1994968e71f0f0a6c1f44bd8ec40edf1b6434
Author: Lennart Poettering <lennart at poettering.net>
Date:   Wed Sep 9 02:41:58 2009 +0200

    udev: ratelimit device initializations

diff --git a/src/modules/module-udev-detect.c b/src/modules/module-udev-detect.c
index b41b9c0..1b1e9c1 100644
--- a/src/modules/module-udev-detect.c
+++ b/src/modules/module-udev-detect.c
@@ -29,10 +29,13 @@
 #include <sys/inotify.h>
 #include <libudev.h>
 
+#include <pulse/timeval.h>
+
 #include <pulsecore/modargs.h>
 #include <pulsecore/core-error.h>
 #include <pulsecore/core-util.h>
 #include <pulsecore/namereg.h>
+#include <pulsecore/ratelimit.h>
 
 #include "module-udev-detect-symdef.h"
 
@@ -50,6 +53,7 @@ struct device {
     char *card_name;
     char *args;
     uint32_t module;
+    pa_ratelimit ratelimit;
 };
 
 struct userdata {
@@ -110,6 +114,9 @@ static pa_bool_t is_card_busy(const char *id) {
 
     pa_assert(id);
 
+    /* This simply uses /proc/asound/card.../pcm.../sub.../status to
+     * check whether there is still a process using this audio device. */
+
     card_path = pa_sprintf_malloc("/proc/asound/card%s", id);
 
     if (!(card_dir = opendir(card_path))) {
@@ -234,14 +241,41 @@ static void verify_access(struct userdata *u, struct device *d) {
             pa_log_debug("%s is busy: %s", d->path, pa_yes_no(busy));
 
             if (!busy) {
-                pa_log_debug("Loading module-alsa-card with arguments '%s'", d->args);
-                m = pa_module_load(u->core, "module-alsa-card", d->args);
 
-                if (m) {
-                    d->module = m->index;
-                    pa_log_info("Card %s (%s) module loaded.", d->path, d->card_name);
+                /* So, why do we rate limit here? It's certainly ugly,
+                 * but there seems to be no other way. Problem is
+                 * this: if we are unable to configure/probe an audio
+                 * device after opening it we will close it again and
+                 * the module initialization will fail. This will then
+                 * cause an inotify event on the device node which
+                 * will be forwarded to us. We then try to reopen the
+                 * audio device again, practically entering a busy
+                 * loop.
+                 *
+                 * A clean fix would be if we would be able to ignore
+                 * our own inotify close events. However, inotify
+                 * lacks such functionality. Also, during probing of
+                 * the device we cannot really distuingish between
+                 * other processes causing EBUSY or ourselves, which
+                 * means we have no way to figure out if the probing
+                 * during opening was canceled by a "try again"
+                 * failure or a "fatal" failure. */
+
+                if (pa_ratelimit_test(&d->ratelimit)) {
+                    pa_log_debug("Loading module-alsa-card with arguments '%s'", d->args);
+                    m = pa_module_load(u->core, "module-alsa-card", d->args);
+
+                    if (m) {
+                        d->module = m->index;
+                        pa_log_info("Card %s (%s) module loaded.", d->path, d->card_name);
+                    } else
+                        pa_log_info("Card %s (%s) failed to load module.", d->path, d->card_name);
                 } else
-                    pa_log_info("Card %s (%s) failed to load module.", d->path, d->card_name);
+                    pa_log_warn("Tried to configure %s (%s) more often than %u times in %llus",
+                                d->path,
+                                d->card_name,
+                                d->ratelimit.burst,
+                                (long long unsigned) (d->ratelimit.interval / PA_USEC_PER_SEC));
             }
         }
 
@@ -277,6 +311,7 @@ static void card_changed(struct userdata *u, struct udev_device *dev) {
     d = pa_xnew0(struct device, 1);
     d->path = pa_xstrdup(path);
     d->module = PA_INVALID_INDEX;
+    PA_INIT_RATELIMIT(d->ratelimit, 10*PA_USEC_PER_SEC, 5);
 
     if (!(t = udev_device_get_property_value(dev, "PULSE_NAME")))
         if (!(t = udev_device_get_property_value(dev, "ID_ID")))

commit 1f0904b800d9d69698e79ce0435a2777d5f7ec27
Author: Lennart Poettering <lennart at poettering.net>
Date:   Wed Sep 9 04:27:16 2009 +0200

    sample-util: add pa_convert_size() call for converting sizes between two sample specs

diff --git a/src/pulsecore/sample-util.c b/src/pulsecore/sample-util.c
index 5fae192..a26dc87 100644
--- a/src/pulsecore/sample-util.c
+++ b/src/pulsecore/sample-util.c
@@ -1056,3 +1056,13 @@ void pa_memchunk_sine(pa_memchunk *c, pa_mempool *pool, unsigned rate, unsigned
     calc_sine(p, c->length, freq * l / rate);
     pa_memblock_release(c->memblock);
 }
+
+size_t pa_convert_size(size_t size, const pa_sample_spec *from, const pa_sample_spec *to) {
+    pa_usec_t usec;
+
+    pa_assert(from);
+    pa_assert(to);
+
+    usec = pa_bytes_to_usec_round_up(size, from);
+    return pa_usec_to_bytes_round_up(usec, to);
+}
diff --git a/src/pulsecore/sample-util.h b/src/pulsecore/sample-util.h
index 34df5cf..d0235d6 100644
--- a/src/pulsecore/sample-util.h
+++ b/src/pulsecore/sample-util.h
@@ -91,6 +91,8 @@ typedef void (*pa_do_volume_func_t) (void *samples, void *volumes, unsigned chan
 pa_do_volume_func_t pa_get_volume_func(pa_sample_format_t f);
 void pa_set_volume_func(pa_sample_format_t f, pa_do_volume_func_t func);
 
+size_t pa_convert_size(size_t size, const pa_sample_spec *from, const pa_sample_spec *to);
+
 #define PA_CHANNEL_POSITION_MASK_LEFT                                   \
     (PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_FRONT_LEFT)           \
      | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_REAR_LEFT)          \

commit 71e066c873e5bd31bd446ac0f8d0e97cc0b12ace
Author: Lennart Poettering <lennart at poettering.net>
Date:   Wed Sep 9 04:28:22 2009 +0200

    simd: be more precise which SIMD optimizations we activate

diff --git a/src/pulsecore/remap_mmx.c b/src/pulsecore/remap_mmx.c
index 79e4f1f..d358a58 100644
--- a/src/pulsecore/remap_mmx.c
+++ b/src/pulsecore/remap_mmx.c
@@ -150,8 +150,12 @@ static void init_remap_mmx (pa_remap_t *m) {
 
 void pa_remap_func_init_mmx (pa_cpu_x86_flag_t flags) {
 #if defined (__i386__) || defined (__amd64__)
-    pa_log_info("Initialising MMX optimized remappers.");
 
-    pa_set_init_remap_func ((pa_init_remap_func_t) init_remap_mmx);
+    if (flags & PA_CPU_X86_MMX) {
+        pa_log_info("Initialising MMX optimized remappers.");
+
+        pa_set_init_remap_func ((pa_init_remap_func_t) init_remap_mmx);
+    }
+
 #endif /* defined (__i386__) || defined (__amd64__) */
 }
diff --git a/src/pulsecore/remap_sse.c b/src/pulsecore/remap_sse.c
index dac072e..0ccf316 100644
--- a/src/pulsecore/remap_sse.c
+++ b/src/pulsecore/remap_sse.c
@@ -149,9 +149,11 @@ static void init_remap_sse2 (pa_remap_t *m) {
 
 void pa_remap_func_init_sse (pa_cpu_x86_flag_t flags) {
 #if defined (__i386__) || defined (__amd64__)
-    pa_log_info("Initialising SSE optimized remappers.");
 
-    if (flags & PA_CPU_X86_SSE2)
-      pa_set_init_remap_func ((pa_init_remap_func_t) init_remap_sse2);
+    if (flags & PA_CPU_X86_SSE2) {
+        pa_log_info("Initialising SSE2 optimized remappers.");
+        pa_set_init_remap_func ((pa_init_remap_func_t) init_remap_sse2);
+    }
+
 #endif /* defined (__i386__) || defined (__amd64__) */
 }
diff --git a/src/pulsecore/sconv_sse.c b/src/pulsecore/sconv_sse.c
index 7c3aa19..3737af2 100644
--- a/src/pulsecore/sconv_sse.c
+++ b/src/pulsecore/sconv_sse.c
@@ -218,16 +218,18 @@ static void run_test (void) {
 
 void pa_convert_func_init_sse (pa_cpu_x86_flag_t flags) {
 #if defined (__i386__) || defined (__amd64__)
-    pa_log_info("Initialising SSE optimized conversions.");
 
 #ifdef RUN_TEST
     run_test ();
 #endif
 
-    if (flags & PA_CPU_X86_SSE2)
-      pa_set_convert_from_float32ne_function (PA_SAMPLE_S16LE, (pa_convert_func_t) pa_sconv_s16le_from_f32ne_sse2);
-    else
-      pa_set_convert_from_float32ne_function (PA_SAMPLE_S16LE, (pa_convert_func_t) pa_sconv_s16le_from_f32ne_sse);
+    if (flags & PA_CPU_X86_SSE2) {
+        pa_log_info("Initialising SSE2 optimized conversions.");
+        pa_set_convert_from_float32ne_function (PA_SAMPLE_S16LE, (pa_convert_func_t) pa_sconv_s16le_from_f32ne_sse2);
+    } else {
+        pa_log_info("Initialising SSE optimized conversions.");
+        pa_set_convert_from_float32ne_function (PA_SAMPLE_S16LE, (pa_convert_func_t) pa_sconv_s16le_from_f32ne_sse);
+    }
 
 #endif /* defined (__i386__) || defined (__amd64__) */
 }
diff --git a/src/pulsecore/svolume_mmx.c b/src/pulsecore/svolume_mmx.c
index 8510b0c..74918e7 100644
--- a/src/pulsecore/svolume_mmx.c
+++ b/src/pulsecore/svolume_mmx.c
@@ -301,13 +301,16 @@ static void run_test (void) {
 
 void pa_volume_func_init_mmx (pa_cpu_x86_flag_t flags) {
 #if defined (__i386__) || defined (__amd64__)
-    pa_log_info("Initialising MMX optimized functions.");
 
 #ifdef RUN_TEST
     run_test ();
 #endif
 
-    pa_set_volume_func (PA_SAMPLE_S16NE,     (pa_do_volume_func_t) pa_volume_s16ne_mmx);
-    pa_set_volume_func (PA_SAMPLE_S16RE,     (pa_do_volume_func_t) pa_volume_s16re_mmx);
+    if (flags & PA_CPU_X86_MMX) {
+        pa_log_info("Initialising MMX optimized functions.");
+
+        pa_set_volume_func (PA_SAMPLE_S16NE, (pa_do_volume_func_t) pa_volume_s16ne_mmx);
+        pa_set_volume_func (PA_SAMPLE_S16RE, (pa_do_volume_func_t) pa_volume_s16re_mmx);
+    }
 #endif /* defined (__i386__) || defined (__amd64__) */
 }
diff --git a/src/pulsecore/svolume_sse.c b/src/pulsecore/svolume_sse.c
index d9dcf47..bbd73a9 100644
--- a/src/pulsecore/svolume_sse.c
+++ b/src/pulsecore/svolume_sse.c
@@ -302,15 +302,16 @@ static void run_test (void) {
 
 void pa_volume_func_init_sse (pa_cpu_x86_flag_t flags) {
 #if defined (__i386__) || defined (__amd64__)
-    pa_log_info("Initialising SSE optimized functions.");
 
 #ifdef RUN_TEST
     run_test ();
 #endif
 
     if (flags & PA_CPU_X86_SSE2) {
-      pa_set_volume_func (PA_SAMPLE_S16NE,     (pa_do_volume_func_t) pa_volume_s16ne_sse2);
-      pa_set_volume_func (PA_SAMPLE_S16RE,     (pa_do_volume_func_t) pa_volume_s16re_sse2);
+        pa_log_info("Initialising SSE2 optimized functions.");
+
+        pa_set_volume_func (PA_SAMPLE_S16NE, (pa_do_volume_func_t) pa_volume_s16ne_sse2);
+        pa_set_volume_func (PA_SAMPLE_S16RE, (pa_do_volume_func_t) pa_volume_s16re_sse2);
     }
 #endif /* defined (__i386__) || defined (__amd64__) */
 }

commit 557c4295107dc7374c850b0bd5331dd35e8fdd0f
Author: Lennart Poettering <lennart at poettering.net>
Date:   Wed Sep 9 04:28:52 2009 +0200

    alsa: rework buffer/period configuration
    
    - As discussed on alsa-devel it's probably better to initialize the
      buffer size first, followed by the period size. If that fails try the
      other way round. If that fails try to configure only buffer size. If
      that fails try to configure only period size. Finally, try to
      configure neither.
    
    - Don't require integral periods anymore.
    
    Both of these changes should help improving compatibility with various
    weirder sound devices, such as TV cards.

diff --git a/src/modules/alsa/alsa-sink.c b/src/modules/alsa/alsa-sink.c
index 883b32a..c4ff10d 100644
--- a/src/modules/alsa/alsa-sink.c
+++ b/src/modules/alsa/alsa-sink.c
@@ -116,7 +116,6 @@ struct userdata {
 
     pa_usec_t watermark_dec_not_before;
 
-    unsigned nfragments;
     pa_memchunk memchunk;
 
     char *device_name;  /* name of the PCM device */
@@ -943,8 +942,7 @@ static int unsuspend(struct userdata *u) {
     pa_sample_spec ss;
     int err;
     pa_bool_t b, d;
-    unsigned nfrags;
-    snd_pcm_uframes_t period_size;
+    snd_pcm_uframes_t period_size, buffer_size;
 
     pa_assert(u);
     pa_assert(!u->pcm_handle);
@@ -961,12 +959,12 @@ static int unsuspend(struct userdata *u) {
     }
 
     ss = u->sink->sample_spec;
-    nfrags = u->nfragments;
     period_size = u->fragment_size / u->frame_size;
+    buffer_size = u->hwbuf_size / u->frame_size;
     b = u->use_mmap;
     d = u->use_tsched;
 
-    if ((err = pa_alsa_set_hw_params(u->pcm_handle, &ss, &nfrags, &period_size, u->hwbuf_size / u->frame_size, &b, &d, TRUE)) < 0) {
+    if ((err = pa_alsa_set_hw_params(u->pcm_handle, &ss, &period_size, &buffer_size, 0, &b, &d, TRUE)) < 0) {
         pa_log("Failed to set hardware parameters: %s", pa_alsa_strerror(err));
         goto fail;
     }
@@ -981,10 +979,11 @@ static int unsuspend(struct userdata *u) {
         goto fail;
     }
 
-    if (nfrags != u->nfragments || period_size*u->frame_size != u->fragment_size) {
-        pa_log_warn("Resume failed, couldn't restore original fragment settings. (Old: %lu*%lu, New %lu*%lu)",
-                    (unsigned long) u->nfragments, (unsigned long) u->fragment_size,
-                    (unsigned long) nfrags, period_size * u->frame_size);
+    if (period_size*u->frame_size != u->fragment_size ||
+        buffer_size*u->frame_size != u->hwbuf_size) {
+        pa_log_warn("Resume failed, couldn't restore original fragment settings. (Old: %lu/%lu, New %lu/%lu)",
+                    (unsigned long) u->hwbuf_size, (unsigned long) u->fragment_size,
+                    (unsigned long) (buffer_size*u->fragment_size), (unsigned long) (period_size*u->frame_size));
         goto fail;
     }
 
@@ -1638,8 +1637,8 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca
     const char *dev_id = NULL;
     pa_sample_spec ss, requested_ss;
     pa_channel_map map;
-    uint32_t nfrags, frag_size, tsched_size, tsched_watermark;
-    snd_pcm_uframes_t period_frames, tsched_frames;
+    uint32_t nfrags, frag_size, buffer_size, tsched_size, tsched_watermark;
+    snd_pcm_uframes_t period_frames, buffer_frames, tsched_frames;
     size_t frame_size;
     pa_bool_t use_mmap = TRUE, b, use_tsched = TRUE, d, ignore_dB = FALSE;
     pa_sink_new_data data;
@@ -1673,7 +1672,10 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca
         goto fail;
     }
 
+    buffer_size = nfrags * frag_size;
+
     period_frames = frag_size/frame_size;
+    buffer_frames = buffer_size/frame_size;
     tsched_frames = tsched_size/frame_size;
 
     if (pa_modargs_get_value_boolean(ma, "mmap", &use_mmap) < 0) {
@@ -1740,7 +1742,7 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca
                       &u->device_name,
                       &ss, &map,
                       SND_PCM_STREAM_PLAYBACK,
-                      &nfrags, &period_frames, tsched_frames,
+                      &period_frames, &buffer_frames, tsched_frames,
                       &b, &d, mapping)))
 
             goto fail;
@@ -1755,7 +1757,7 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca
                       &u->device_name,
                       &ss, &map,
                       SND_PCM_STREAM_PLAYBACK,
-                      &nfrags, &period_frames, tsched_frames,
+                      &period_frames, &buffer_frames, tsched_frames,
                       &b, &d, profile_set, &mapping)))
 
             goto fail;
@@ -1767,7 +1769,7 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca
                       &u->device_name,
                       &ss, &map,
                       SND_PCM_STREAM_PLAYBACK,
-                      &nfrags, &period_frames, tsched_frames,
+                      &period_frames, &buffer_frames, tsched_frames,
                       &b, &d, FALSE)))
             goto fail;
     }
@@ -1819,7 +1821,7 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca
 
     pa_alsa_init_proplist_pcm(m->core, data.proplist, u->pcm_handle);
     pa_proplist_sets(data.proplist, PA_PROP_DEVICE_STRING, u->device_name);
-    pa_proplist_setf(data.proplist, PA_PROP_DEVICE_BUFFERING_BUFFER_SIZE, "%lu", (unsigned long) (period_frames * frame_size * nfrags));
+    pa_proplist_setf(data.proplist, PA_PROP_DEVICE_BUFFERING_BUFFER_SIZE, "%lu", (unsigned long) (buffer_frames * frame_size));
     pa_proplist_setf(data.proplist, PA_PROP_DEVICE_BUFFERING_FRAGMENT_SIZE, "%lu", (unsigned long) (period_frames * frame_size));
     pa_proplist_sets(data.proplist, PA_PROP_DEVICE_ACCESS_MODE, u->use_tsched ? "mmap+timer" : (u->use_mmap ? "mmap" : "serial"));
 
@@ -1860,13 +1862,15 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca
     pa_sink_set_rtpoll(u->sink, u->rtpoll);
 
     u->frame_size = frame_size;
-    u->fragment_size = frag_size = (uint32_t) (period_frames * frame_size);
-    u->nfragments = nfrags;
-    u->hwbuf_size = u->fragment_size * nfrags;
+    u->fragment_size = frag_size = (size_t) (period_frames * frame_size);
+    u->hwbuf_size = buffer_size = (size_t) (buffer_frames * frame_size);
     pa_cvolume_mute(&u->hardware_volume, u->sink->sample_spec.channels);
 
-    pa_log_info("Using %u fragments of size %lu bytes, buffer time is %0.2fms",
-                nfrags, (long unsigned) u->fragment_size,
+    pa_log_info("Using %0.1f fragments of size %lu bytes (%0.2fms), buffer size is %lu bytes (%0.2fms)",
+                (double) u->hwbuf_size / (double) u->fragment_size,
+                (long unsigned) u->fragment_size,
+                (double) pa_bytes_to_usec(u->fragment_size, &ss) / PA_USEC_PER_MSEC,
+                (long unsigned) u->hwbuf_size,
                 (double) pa_bytes_to_usec(u->hwbuf_size, &ss) / PA_USEC_PER_MSEC);
 
     pa_sink_set_max_request(u->sink, u->hwbuf_size);
diff --git a/src/modules/alsa/alsa-source.c b/src/modules/alsa/alsa-source.c
index 64f8980..5f89d88 100644
--- a/src/modules/alsa/alsa-source.c
+++ b/src/modules/alsa/alsa-source.c
@@ -111,8 +111,6 @@ struct userdata {
 
     pa_usec_t watermark_dec_not_before;
 
-    unsigned nfragments;
-
     char *device_name;
     char *control_device;
 
@@ -891,8 +889,7 @@ static int unsuspend(struct userdata *u) {
     pa_sample_spec ss;
     int err;
     pa_bool_t b, d;
-    unsigned nfrags;
-    snd_pcm_uframes_t period_size;
+    snd_pcm_uframes_t period_size, buffer_size;
 
     pa_assert(u);
     pa_assert(!u->pcm_handle);
@@ -909,12 +906,12 @@ static int unsuspend(struct userdata *u) {
     }
 
     ss = u->source->sample_spec;
-    nfrags = u->nfragments;
     period_size = u->fragment_size / u->frame_size;
+    buffer_size = u->hwbuf_size / u->frame_size;
     b = u->use_mmap;
     d = u->use_tsched;
 
-    if ((err = pa_alsa_set_hw_params(u->pcm_handle, &ss, &nfrags, &period_size, u->hwbuf_size / u->frame_size, &b, &d, TRUE)) < 0) {
+    if ((err = pa_alsa_set_hw_params(u->pcm_handle, &ss, &period_size, &buffer_size, 0, &b, &d, TRUE)) < 0) {
         pa_log("Failed to set hardware parameters: %s", pa_alsa_strerror(err));
         goto fail;
     }
@@ -929,10 +926,11 @@ static int unsuspend(struct userdata *u) {
         goto fail;
     }
 
-    if (nfrags != u->nfragments || period_size*u->frame_size != u->fragment_size) {
-        pa_log_warn("Resume failed, couldn't restore original fragment settings. (Old: %lu*%lu, New %lu*%lu)",
-                    (unsigned long) u->nfragments, (unsigned long) u->fragment_size,
-                    (unsigned long) nfrags, period_size * u->frame_size);
+    if (period_size*u->frame_size != u->fragment_size ||
+        buffer_size*u->frame_size != u->hwbuf_size) {
+        pa_log_warn("Resume failed, couldn't restore original fragment settings. (Old: %lu/%lu, New %lu/%lu)",
+                    (unsigned long) u->hwbuf_size, (unsigned long) u->fragment_size,
+                    (unsigned long) (buffer_size*u->fragment_size), (unsigned long) (period_size*u->frame_size));
         goto fail;
     }
 
@@ -1483,8 +1481,8 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p
     const char *dev_id = NULL;
     pa_sample_spec ss, requested_ss;
     pa_channel_map map;
-    uint32_t nfrags, frag_size, tsched_size, tsched_watermark;
-    snd_pcm_uframes_t period_frames, tsched_frames;
+    uint32_t nfrags, frag_size, buffer_size, tsched_size, tsched_watermark;
+    snd_pcm_uframes_t period_frames, buffer_frames, tsched_frames;
     size_t frame_size;
     pa_bool_t use_mmap = TRUE, b, use_tsched = TRUE, d, ignore_dB = FALSE;
     pa_source_new_data data;
@@ -1518,7 +1516,10 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p
         goto fail;
     }
 
+    buffer_size = nfrags * frag_size;
+
     period_frames = frag_size/frame_size;
+    buffer_frames = buffer_size/frame_size;
     tsched_frames = tsched_size/frame_size;
 
     if (pa_modargs_get_value_boolean(ma, "mmap", &use_mmap) < 0) {
@@ -1584,7 +1585,7 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p
                       &u->device_name,
                       &ss, &map,
                       SND_PCM_STREAM_CAPTURE,
-                      &nfrags, &period_frames, tsched_frames,
+                      &period_frames, &buffer_frames, tsched_frames,
                       &b, &d, mapping)))
             goto fail;
 
@@ -1598,7 +1599,7 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p
                       &u->device_name,
                       &ss, &map,
                       SND_PCM_STREAM_CAPTURE,
-                      &nfrags, &period_frames, tsched_frames,
+                      &period_frames, &buffer_frames, tsched_frames,
                       &b, &d, profile_set, &mapping)))
             goto fail;
 
@@ -1609,7 +1610,7 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p
                       &u->device_name,
                       &ss, &map,
                       SND_PCM_STREAM_CAPTURE,
-                      &nfrags, &period_frames, tsched_frames,
+                      &period_frames, &buffer_frames, tsched_frames,
                       &b, &d, FALSE)))
             goto fail;
     }
@@ -1661,7 +1662,7 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p
 
     pa_alsa_init_proplist_pcm(m->core, data.proplist, u->pcm_handle);
     pa_proplist_sets(data.proplist, PA_PROP_DEVICE_STRING, u->device_name);
-    pa_proplist_setf(data.proplist, PA_PROP_DEVICE_BUFFERING_BUFFER_SIZE, "%lu", (unsigned long) (period_frames * frame_size * nfrags));
+    pa_proplist_setf(data.proplist, PA_PROP_DEVICE_BUFFERING_BUFFER_SIZE, "%lu", (unsigned long) (buffer_frames * frame_size));
     pa_proplist_setf(data.proplist, PA_PROP_DEVICE_BUFFERING_FRAGMENT_SIZE, "%lu", (unsigned long) (period_frames * frame_size));
     pa_proplist_sets(data.proplist, PA_PROP_DEVICE_ACCESS_MODE, u->use_tsched ? "mmap+timer" : (u->use_mmap ? "mmap" : "serial"));
 
@@ -1702,13 +1703,15 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p
     pa_source_set_rtpoll(u->source, u->rtpoll);
 
     u->frame_size = frame_size;
-    u->fragment_size = frag_size = (uint32_t) (period_frames * frame_size);
-    u->nfragments = nfrags;
-    u->hwbuf_size = u->fragment_size * nfrags;
+    u->fragment_size = frag_size = (size_t) (period_frames * frame_size);
+    u->hwbuf_size = buffer_size = (size_t) (buffer_frames * frame_size);
     pa_cvolume_mute(&u->hardware_volume, u->source->sample_spec.channels);
 
-    pa_log_info("Using %u fragments of size %lu bytes, buffer time is %0.2fms",
-                nfrags, (long unsigned) u->fragment_size,
+    pa_log_info("Using %0.1f fragments of size %lu bytes (%0.2fms), buffer size is %lu bytes (%0.2fms)",
+                (double) u->hwbuf_size / (double) u->fragment_size,
+                (long unsigned) u->fragment_size,
+                (double) pa_bytes_to_usec(u->fragment_size, &ss) / PA_USEC_PER_MSEC,
+                (long unsigned) u->hwbuf_size,
                 (double) pa_bytes_to_usec(u->hwbuf_size, &ss) / PA_USEC_PER_MSEC);
 
     if (u->use_tsched) {
diff --git a/src/modules/alsa/alsa-util.c b/src/modules/alsa/alsa-util.c
index 4d75c63..9147452 100644
--- a/src/modules/alsa/alsa-util.c
+++ b/src/modules/alsa/alsa-util.c
@@ -93,6 +93,7 @@ static int set_format(snd_pcm_t *pcm_handle, snd_pcm_hw_params_t *hwparams, pa_s
     int ret;
 
     pa_assert(pcm_handle);
+    pa_assert(hwparams);
     pa_assert(f);
 
     if ((ret = snd_pcm_hw_params_set_format(pcm_handle, hwparams, format_trans[*f])) >= 0)
@@ -148,33 +149,71 @@ try_auto:
     return -1;
 }
 
+static int set_period_size(snd_pcm_t *pcm_handle, snd_pcm_hw_params_t *hwparams, snd_pcm_uframes_t size) {
+    snd_pcm_uframes_t s;
+    int d, ret;
+
+    pa_assert(pcm_handle);
+    pa_assert(hwparams);
+
+    s = size;
+    d = 0;
+    if (snd_pcm_hw_params_set_period_size_near(pcm_handle, hwparams, &s, &d) < 0) {
+        s = size;
+        d = -1;
+        if (snd_pcm_hw_params_set_period_size_near(pcm_handle, hwparams, &s, &d) < 0) {
+            s = size;
+            d = 1;
+            if ((ret = snd_pcm_hw_params_set_period_size_near(pcm_handle, hwparams, &s, &d)) < 0) {
+                pa_log_info("snd_pcm_hw_params_set_period_size_near() failed: %s", pa_alsa_strerror(ret));
+                return ret;
+            }
+        }
+    }
+
+    return 0;
+}
+
+static int set_buffer_size(snd_pcm_t *pcm_handle, snd_pcm_hw_params_t *hwparams, snd_pcm_uframes_t size) {
+    int ret;
+
+    pa_assert(pcm_handle);
+    pa_assert(hwparams);
+
+    if ((ret = snd_pcm_hw_params_set_buffer_size_near(pcm_handle, hwparams, &size)) < 0) {
+        pa_log_info("snd_pcm_hw_params_set_buffer_size_near() failed: %s", pa_alsa_strerror(ret));
+        return ret;
+    }
+
+    return 0;
+}
+
 /* Set the hardware parameters of the given ALSA device. Returns the
  * selected fragment settings in *period and *period_size */
 int pa_alsa_set_hw_params(
         snd_pcm_t *pcm_handle,
         pa_sample_spec *ss,
-        uint32_t *periods,
         snd_pcm_uframes_t *period_size,
+        snd_pcm_uframes_t *buffer_size,
         snd_pcm_uframes_t tsched_size,
         pa_bool_t *use_mmap,
         pa_bool_t *use_tsched,
         pa_bool_t require_exact_channel_number) {
 
     int ret = -1;
+    snd_pcm_hw_params_t *hwparams, *hwparams_copy;
+    int dir;
     snd_pcm_uframes_t _period_size = period_size ? *period_size : 0;
-    unsigned int _periods = periods ? *periods : 0;
-    unsigned int r = ss->rate;
-    unsigned int c = ss->channels;
-    pa_sample_format_t f = ss->format;
-    snd_pcm_hw_params_t *hwparams;
+    snd_pcm_uframes_t _buffer_size = buffer_size ? *buffer_size : 0;
     pa_bool_t _use_mmap = use_mmap && *use_mmap;
     pa_bool_t _use_tsched = use_tsched && *use_tsched;
-    int dir;
+    pa_sample_spec _ss = *ss;
 
     pa_assert(pcm_handle);
     pa_assert(ss);
 
     snd_pcm_hw_params_alloca(&hwparams);
+    snd_pcm_hw_params_alloca(&hwparams_copy);
 
     if ((ret = snd_pcm_hw_params_any(pcm_handle, hwparams)) < 0) {
         pa_log_debug("snd_pcm_hw_params_any() failed: %s", pa_alsa_strerror(ret));
@@ -208,114 +247,140 @@ int pa_alsa_set_hw_params(
     if (!_use_mmap)
         _use_tsched = FALSE;
 
-    if ((ret = set_format(pcm_handle, hwparams, &f)) < 0)
+    if ((ret = set_format(pcm_handle, hwparams, &_ss.format)) < 0)
         goto finish;
 
-    if ((ret = snd_pcm_hw_params_set_rate_near(pcm_handle, hwparams, &r, NULL)) < 0) {
+    if ((ret = snd_pcm_hw_params_set_rate_near(pcm_handle, hwparams, &_ss.rate, NULL)) < 0) {
         pa_log_debug("snd_pcm_hw_params_set_rate_near() failed: %s", pa_alsa_strerror(ret));
         goto finish;
     }
 
     if (require_exact_channel_number) {
-        if ((ret = snd_pcm_hw_params_set_channels(pcm_handle, hwparams, c)) < 0) {
-            pa_log_debug("snd_pcm_hw_params_set_channels(%u) failed: %s", c, pa_alsa_strerror(ret));
+        if ((ret = snd_pcm_hw_params_set_channels(pcm_handle, hwparams, _ss.channels)) < 0) {
+            pa_log_debug("snd_pcm_hw_params_set_channels(%u) failed: %s", _ss.channels, pa_alsa_strerror(ret));
             goto finish;
         }
     } else {
+        unsigned int c = _ss.channels;
+
         if ((ret = snd_pcm_hw_params_set_channels_near(pcm_handle, hwparams, &c)) < 0) {
-            pa_log_debug("snd_pcm_hw_params_set_channels_near(%u) failed: %s", c, pa_alsa_strerror(ret));
+            pa_log_debug("snd_pcm_hw_params_set_channels_near(%u) failed: %s", _ss.channels, pa_alsa_strerror(ret));
             goto finish;
         }
-    }
 
-    if ((ret = snd_pcm_hw_params_set_periods_integer(pcm_handle, hwparams)) < 0) {
-        pa_log_debug("snd_pcm_hw_params_set_periods_integer() failed: %s", pa_alsa_strerror(ret));
-        goto finish;
+        _ss.channels = c;
     }
 
-    if (_period_size > 0 && tsched_size > 0 && _periods > 0) {
-        snd_pcm_uframes_t buffer_size;
-        unsigned int p;
+    if (_use_tsched && tsched_size > 0) {
+        _buffer_size = pa_convert_size(tsched_size, ss, &_ss);
+        _period_size = _buffer_size;
+    } else {
+        _period_size = pa_convert_size(_period_size, ss, &_ss);
+        _buffer_size = pa_convert_size(_buffer_size, ss, &_ss);
+    }
 
-        /* Adjust the buffer sizes, if we didn't get the rate we were asking for */
-        _period_size = (snd_pcm_uframes_t) (((uint64_t) _period_size * r) / ss->rate);
-        tsched_size = (snd_pcm_uframes_t) (((uint64_t) tsched_size * r) / ss->rate);
+    if (_buffer_size > 0 || _period_size > 0) {
+        snd_pcm_uframes_t max_frames = 0;
 
-        if (_use_tsched) {
-            buffer_size = 0;
+        if ((ret = snd_pcm_hw_params_get_buffer_size_max(hwparams, &max_frames)) < 0)
+            pa_log_warn("snd_pcm_hw_params_get_buffer_size_max() failed: %s", pa_alsa_strerror(ret));
+        else
+            pa_log_debug("Maximum hw buffer size is %lu ms", (long unsigned) max_frames * PA_MSEC_PER_SEC / _ss.rate);
 
-            if ((ret = snd_pcm_hw_params_get_buffer_size_max(hwparams, &buffer_size)) < 0)
-                pa_log_warn("snd_pcm_hw_params_get_buffer_size_max() failed: %s", pa_alsa_strerror(ret));
-            else
-                pa_log_debug("Maximum hw buffer size is %u ms", (unsigned) buffer_size * 1000 / r);
+        /* Some ALSA drivers really don't like if we set the buffer
+         * size first and the number of periods second. (which would
+         * make a lot more sense to me) So, try a few combinations
+         * before we give up. */
+
+        if (_buffer_size > 0 && _period_size > 0) {
+            snd_pcm_hw_params_copy(hwparams_copy, hwparams);
+
+            /* First try: set buffer size first, followed by period size */
+            if (set_buffer_size(pcm_handle, hwparams_copy, _buffer_size) >= 0 &&
+                set_period_size(pcm_handle, hwparams_copy, _period_size) >= 0 &&
+                snd_pcm_hw_params(pcm_handle, hwparams_copy) >= 0) {
+                pa_log_debug("Set buffer size first, period size second.");
+                goto success;
+            }
 
-            _period_size = tsched_size;
-            _periods = 1;
+            /* Second try: set period size first, followed by buffer size */
+            if (set_period_size(pcm_handle, hwparams_copy, _period_size) >= 0 &&
+                set_buffer_size(pcm_handle, hwparams_copy, _buffer_size) >= 0 &&
+                snd_pcm_hw_params(pcm_handle, hwparams_copy) >= 0) {
+                pa_log_debug("Set period size first, buffer size second.");
+                goto success;
+            }
         }
 
-        /* Some ALSA drivers really don't like if we set the buffer
-         * size first and the number of periods second. (which would
-         * make a lot more sense to me) So, follow this rule and
-         * adjust the periods first and the buffer size second */
-
-        /* First we pass 0 as direction to get exactly what we
-         * asked for. That this is necessary is presumably a bug
-         * in ALSA. All in all this is mostly a hint to ALSA, so
-         * we don't care if this fails. */
-
-        p = _periods;
-        dir = 0;
-        if (snd_pcm_hw_params_set_periods_near(pcm_handle, hwparams, &p, &dir) < 0) {
-            p = _periods;
-            dir = 1;
-            if (snd_pcm_hw_params_set_periods_near(pcm_handle, hwparams, &p, &dir) < 0) {
-                p = _periods;
-                dir = -1;
-                if ((ret = snd_pcm_hw_params_set_periods_near(pcm_handle, hwparams, &p, &dir)) < 0)
-                    pa_log_info("snd_pcm_hw_params_set_periods_near() failed: %s", pa_alsa_strerror(ret));
+        if (_buffer_size > 0) {
+            snd_pcm_hw_params_copy(hwparams_copy, hwparams);
+
+            /* Third try: set only buffer size */
+            if (set_buffer_size(pcm_handle, hwparams_copy, _buffer_size) >= 0 &&
+                snd_pcm_hw_params(pcm_handle, hwparams_copy) >= 0) {
+                pa_log_debug("Set only buffer size second.");
+                goto success;
             }
         }
 
-        /* Now set the buffer size */
-        buffer_size = _periods * _period_size;
-        if ((ret = snd_pcm_hw_params_set_buffer_size_near(pcm_handle, hwparams, &buffer_size)) < 0)
-            pa_log_info("snd_pcm_hw_params_set_buffer_size_near() failed: %s", pa_alsa_strerror(ret));
+        if (_period_size > 0) {
+            snd_pcm_hw_params_copy(hwparams_copy, hwparams);
+
+            /* Fourth try: set only period size */
+            if (set_period_size(pcm_handle, hwparams_copy, _period_size) >= 0 &&
+                snd_pcm_hw_params(pcm_handle, hwparams_copy) >= 0) {
+                pa_log_debug("Set only period size second.");
+                goto success;
+            }
+        }
     }
 
-    if  ((ret = snd_pcm_hw_params(pcm_handle, hwparams)) < 0)
+    pa_log_debug("Set neither period nor buffer size.");
+
+    /* Last chance, set nothing */
+    if  ((ret = snd_pcm_hw_params(pcm_handle, hwparams)) < 0) {
+        pa_log_info("snd_pcm_hw_params failed: %s", pa_alsa_strerror(ret));
         goto finish;
+    }
+
+success:
 
-    if (ss->rate != r)
-        pa_log_info("Device %s doesn't support %u Hz, changed to %u Hz.", snd_pcm_name(pcm_handle), ss->rate, r);
+    if (ss->rate != _ss.rate)
+        pa_log_info("Device %s doesn't support %u Hz, changed to %u Hz.", snd_pcm_name(pcm_handle), ss->rate, _ss.rate);
 
-    if (ss->channels != c)
-        pa_log_info("Device %s doesn't support %u channels, changed to %u.", snd_pcm_name(pcm_handle), ss->channels, c);
+    if (ss->channels != _ss.channels)
+        pa_log_info("Device %s doesn't support %u channels, changed to %u.", snd_pcm_name(pcm_handle), ss->channels, _ss.channels);
 
-    if (ss->format != f)
-        pa_log_info("Device %s doesn't support sample format %s, changed to %s.", snd_pcm_name(pcm_handle), pa_sample_format_to_string(ss->format), pa_sample_format_to_string(f));
+    if (ss->format != _ss.format)
+        pa_log_info("Device %s doesn't support sample format %s, changed to %s.", snd_pcm_name(pcm_handle), pa_sample_format_to_string(ss->format), pa_sample_format_to_string(_ss.format));
 
     if ((ret = snd_pcm_prepare(pcm_handle)) < 0) {
         pa_log_info("snd_pcm_prepare() failed: %s", pa_alsa_strerror(ret));
         goto finish;
     }
 
+    if ((ret = snd_pcm_hw_params_current(pcm_handle, hwparams)) < 0) {
+        pa_log_info("snd_pcm_hw_params_current() failed: %s", pa_alsa_strerror(ret));
+        goto finish;
+    }
+
     if ((ret = snd_pcm_hw_params_get_period_size(hwparams, &_period_size, &dir)) < 0 ||
-        (ret = snd_pcm_hw_params_get_periods(hwparams, &_periods, &dir)) < 0) {
-        pa_log_info("snd_pcm_hw_params_get_period{s|_size}() failed: %s", pa_alsa_strerror(ret));
+        (ret = snd_pcm_hw_params_get_buffer_size(hwparams, &_buffer_size)) < 0) {
+        pa_log_info("snd_pcm_hw_params_get_{period|buffer}_size() failed: %s", pa_alsa_strerror(ret));
         goto finish;
     }
 
     /* If the sample rate deviates too much, we need to resample */
-    if (r < ss->rate*.95 || r > ss->rate*1.05)
-        ss->rate = r;
-    ss->channels = (uint8_t) c;
-    ss->format = f;
+    if (_ss.rate < ss->rate*.95 || _ss.rate > ss->rate*1.05)
+        ss->rate = _ss.rate;
+    ss->channels = _ss.channels;
+    ss->format = _ss.format;
 
-    pa_assert(_periods > 0);
     pa_assert(_period_size > 0);
+    pa_assert(_buffer_size > 0);
 
-    if (periods)
-        *periods = _periods;
+    if (buffer_size)
+        *buffer_size = _buffer_size;
 
     if (period_size)
         *period_size = _period_size;
@@ -393,8 +458,8 @@ snd_pcm_t *pa_alsa_open_by_device_id_auto(
         pa_sample_spec *ss,
         pa_channel_map* map,
         int mode,
-        uint32_t *nfrags,
         snd_pcm_uframes_t *period_size,
+        snd_pcm_uframes_t *buffer_size,
         snd_pcm_uframes_t tsched_size,
         pa_bool_t *use_mmap,
         pa_bool_t *use_tsched,
@@ -410,8 +475,6 @@ snd_pcm_t *pa_alsa_open_by_device_id_auto(
     pa_assert(dev);
     pa_assert(ss);
     pa_assert(map);
-    pa_assert(nfrags);
-    pa_assert(period_size);
     pa_assert(ps);
 
     /* First we try to find a device string with a superset of the
@@ -433,8 +496,8 @@ snd_pcm_t *pa_alsa_open_by_device_id_auto(
                 ss,
                 map,
                 mode,
-                nfrags,
                 period_size,
+                buffer_size,
                 tsched_size,
                 use_mmap,
                 use_tsched,
@@ -460,8 +523,8 @@ snd_pcm_t *pa_alsa_open_by_device_id_auto(
                 ss,
                 map,
                 mode,
-                nfrags,
                 period_size,
+                buffer_size,
                 tsched_size,
                 use_mmap,
                 use_tsched,
@@ -478,7 +541,18 @@ snd_pcm_t *pa_alsa_open_by_device_id_auto(
     /* OK, we didn't find any good device, so let's try the raw hw: stuff */
     d = pa_sprintf_malloc("hw:%s", dev_id);
     pa_log_debug("Trying %s as last resort...", d);
-    pcm_handle = pa_alsa_open_by_device_string(d, dev, ss, map, mode, nfrags, period_size, tsched_size, use_mmap, use_tsched, FALSE);
+    pcm_handle = pa_alsa_open_by_device_string(
+            d,
+            dev,
+            ss,
+            map,
+            mode,
+            period_size,
+            buffer_size,
+            tsched_size,
+            use_mmap,
+            use_tsched,
+            FALSE);
     pa_xfree(d);
 
     if (pcm_handle && mapping)
@@ -493,8 +567,8 @@ snd_pcm_t *pa_alsa_open_by_device_id_mapping(
         pa_sample_spec *ss,
         pa_channel_map* map,
         int mode,
-        uint32_t *nfrags,
         snd_pcm_uframes_t *period_size,
+        snd_pcm_uframes_t *buffer_size,
         snd_pcm_uframes_t tsched_size,
         pa_bool_t *use_mmap,
         pa_bool_t *use_tsched,
@@ -508,8 +582,6 @@ snd_pcm_t *pa_alsa_open_by_device_id_mapping(
     pa_assert(dev);
     pa_assert(ss);
     pa_assert(map);
-    pa_assert(nfrags);
-    pa_assert(period_size);
     pa_assert(m);
 
     try_ss.channels = m->channel_map.channels;
@@ -524,8 +596,8 @@ snd_pcm_t *pa_alsa_open_by_device_id_mapping(
             &try_ss,
             &try_map,
             mode,
-            nfrags,
             period_size,
+            buffer_size,
             tsched_size,
             use_mmap,
             use_tsched,
@@ -547,8 +619,8 @@ snd_pcm_t *pa_alsa_open_by_device_string(
         pa_sample_spec *ss,
         pa_channel_map* map,
         int mode,
-        uint32_t *nfrags,
         snd_pcm_uframes_t *period_size,
+        snd_pcm_uframes_t *buffer_size,
         snd_pcm_uframes_t tsched_size,
         pa_bool_t *use_mmap,
         pa_bool_t *use_tsched,
@@ -579,7 +651,15 @@ snd_pcm_t *pa_alsa_open_by_device_string(
 
         pa_log_debug("Managed to open %s", d);
 
-        if ((err = pa_alsa_set_hw_params(pcm_handle, ss, nfrags, period_size, tsched_size, use_mmap, use_tsched, require_exact_channel_number)) < 0) {
+        if ((err = pa_alsa_set_hw_params(
+                     pcm_handle,
+                     ss,
+                     period_size,
+                     buffer_size,
+                     tsched_size,
+                     use_mmap,
+                     use_tsched,
+                     require_exact_channel_number)) < 0) {
 
             if (!reformat) {
                 reformat = TRUE;
@@ -632,8 +712,8 @@ snd_pcm_t *pa_alsa_open_by_template(
         pa_sample_spec *ss,
         pa_channel_map* map,
         int mode,
-        uint32_t *nfrags,
         snd_pcm_uframes_t *period_size,
+        snd_pcm_uframes_t *buffer_size,
         snd_pcm_uframes_t tsched_size,
         pa_bool_t *use_mmap,
         pa_bool_t *use_tsched,
@@ -653,8 +733,8 @@ snd_pcm_t *pa_alsa_open_by_template(
                 ss,
                 map,
                 mode,
-                nfrags,
                 period_size,
+                buffer_size,
                 tsched_size,
                 use_mmap,
                 use_tsched,
diff --git a/src/modules/alsa/alsa-util.h b/src/modules/alsa/alsa-util.h
index 830a922..265cd28 100644
--- a/src/modules/alsa/alsa-util.h
+++ b/src/modules/alsa/alsa-util.h
@@ -42,8 +42,8 @@
 int pa_alsa_set_hw_params(
         snd_pcm_t *pcm_handle,
         pa_sample_spec *ss,                /* modified at return */
-        uint32_t *periods,                 /* modified at return */
         snd_pcm_uframes_t *period_size,    /* modified at return */
+        snd_pcm_uframes_t *buffer_size,    /* modified at return */
         snd_pcm_uframes_t tsched_size,
         pa_bool_t *use_mmap,               /* modified at return */
         pa_bool_t *use_tsched,             /* modified at return */
@@ -60,8 +60,8 @@ snd_pcm_t *pa_alsa_open_by_device_id_auto(
         pa_sample_spec *ss,               /* modified at return */
         pa_channel_map* map,              /* modified at return */
         int mode,
-        uint32_t *nfrags,                 /* modified at return */
         snd_pcm_uframes_t *period_size,   /* modified at return */
+        snd_pcm_uframes_t *buffer_size,   /* modified at return */
         snd_pcm_uframes_t tsched_size,
         pa_bool_t *use_mmap,              /* modified at return */
         pa_bool_t *use_tsched,            /* modified at return */
@@ -75,8 +75,8 @@ snd_pcm_t *pa_alsa_open_by_device_id_mapping(
         pa_sample_spec *ss,               /* modified at return */
         pa_channel_map* map,              /* modified at return */
         int mode,
-        uint32_t *nfrags,                 /* modified at return */
         snd_pcm_uframes_t *period_size,   /* modified at return */
+        snd_pcm_uframes_t *buffer_size,   /* modified at return */
         snd_pcm_uframes_t tsched_size,
         pa_bool_t *use_mmap,              /* modified at return */
         pa_bool_t *use_tsched,            /* modified at return */
@@ -89,8 +89,8 @@ snd_pcm_t *pa_alsa_open_by_device_string(
         pa_sample_spec *ss,               /* modified at return */
         pa_channel_map* map,              /* modified at return */
         int mode,
-        uint32_t *nfrags,                 /* modified at return */
         snd_pcm_uframes_t *period_size,   /* modified at return */
+        snd_pcm_uframes_t *buffer_size,   /* modified at return */
         snd_pcm_uframes_t tsched_size,
         pa_bool_t *use_mmap,              /* modified at return */
         pa_bool_t *use_tsched,            /* modified at return */
@@ -104,8 +104,8 @@ snd_pcm_t *pa_alsa_open_by_template(
         pa_sample_spec *ss,               /* modified at return */
         pa_channel_map* map,              /* modified at return */
         int mode,
-        uint32_t *nfrags,                 /* modified at return */
         snd_pcm_uframes_t *period_size,   /* modified at return */
+        snd_pcm_uframes_t *buffer_size,   /* modified at return */
         snd_pcm_uframes_t tsched_size,
         pa_bool_t *use_mmap,              /* modified at return */
         pa_bool_t *use_tsched,            /* modified at return */

commit 84ade2140ed44bf241eda494d0970390e48b21d3
Author: Lennart Poettering <lennart at poettering.net>
Date:   Wed Sep 9 04:44:51 2009 +0200

    alsa: pass SND_PCM_NONBLOCK when opening device during unsuspend, the same way we do it for initial opening

diff --git a/src/modules/alsa/alsa-sink.c b/src/modules/alsa/alsa-sink.c
index c4ff10d..7fe7783 100644
--- a/src/modules/alsa/alsa-sink.c
+++ b/src/modules/alsa/alsa-sink.c
@@ -950,7 +950,7 @@ static int unsuspend(struct userdata *u) {
     pa_log_info("Trying resume...");
 
     if ((err = snd_pcm_open(&u->pcm_handle, u->device_name, SND_PCM_STREAM_PLAYBACK,
-                            /*SND_PCM_NONBLOCK|*/
+                            SND_PCM_NONBLOCK|
                             SND_PCM_NO_AUTO_RESAMPLE|
                             SND_PCM_NO_AUTO_CHANNELS|
                             SND_PCM_NO_AUTO_FORMAT)) < 0) {
diff --git a/src/modules/alsa/alsa-source.c b/src/modules/alsa/alsa-source.c
index 5f89d88..a7f2a01 100644
--- a/src/modules/alsa/alsa-source.c
+++ b/src/modules/alsa/alsa-source.c
@@ -897,7 +897,7 @@ static int unsuspend(struct userdata *u) {
     pa_log_info("Trying resume...");
 
     if ((err = snd_pcm_open(&u->pcm_handle, u->device_name, SND_PCM_STREAM_CAPTURE,
-                            /*SND_PCM_NONBLOCK|*/
+                            SND_PCM_NONBLOCK|
                             SND_PCM_NO_AUTO_RESAMPLE|
                             SND_PCM_NO_AUTO_CHANNELS|
                             SND_PCM_NO_AUTO_FORMAT)) < 0) {

commit 8364b959b452a2b9e3f230705feb176a1fa6de06
Author: Lennart Poettering <lennart at poettering.net>
Date:   Wed Sep 9 23:56:51 2009 +0200

    alsa: when probing for profiles configure buffer/period sizes since some broken drivers apparently need that

diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c
index 9eb7b46..685169b 100644
--- a/src/modules/alsa/alsa-mixer.c
+++ b/src/modules/alsa/alsa-mixer.c
@@ -3145,7 +3145,13 @@ fail:
     return NULL;
 }
 
-void pa_alsa_profile_set_probe(pa_alsa_profile_set *ps, const char *dev_id, const pa_sample_spec *ss) {
+void pa_alsa_profile_set_probe(
+        pa_alsa_profile_set *ps,
+        const char *dev_id,
+        const pa_sample_spec *ss,
+        unsigned default_n_fragments,
+        unsigned default_fragment_size_msec) {
+
     void *state;
     pa_alsa_profile *p, *last = NULL;
     pa_alsa_mapping *m;
@@ -3160,6 +3166,7 @@ void pa_alsa_profile_set_probe(pa_alsa_profile_set *ps, const char *dev_id, cons
     PA_HASHMAP_FOREACH(p, ps->profiles, state) {
         pa_sample_spec try_ss;
         pa_channel_map try_map;
+        snd_pcm_uframes_t try_period_size, try_buffer_size;
         uint32_t idx;
 
         /* Is this already marked that it is supported? (i.e. from the config file) */
@@ -3213,13 +3220,18 @@ void pa_alsa_profile_set_probe(pa_alsa_profile_set *ps, const char *dev_id, cons
                 try_ss = *ss;
                 try_ss.channels = try_map.channels;
 
+                try_period_size =
+                    pa_usec_to_bytes(default_fragment_size_msec * PA_USEC_PER_MSEC, &try_ss) /
+                    pa_frame_size(&try_ss);
+                try_buffer_size = default_n_fragments * try_period_size;
+
                 if (!(m ->output_pcm = pa_alsa_open_by_template(
                               m->device_strings,
                               dev_id,
                               NULL,
                               &try_ss, &try_map,
                               SND_PCM_STREAM_PLAYBACK,
-                              NULL, NULL, 0, NULL, NULL,
+                              &try_period_size, &try_buffer_size, 0, NULL, NULL,
                               TRUE))) {
                     p->supported = FALSE;
                     break;
@@ -3237,13 +3249,18 @@ void pa_alsa_profile_set_probe(pa_alsa_profile_set *ps, const char *dev_id, cons
                 try_ss = *ss;
                 try_ss.channels = try_map.channels;
 
+                try_period_size =
+                    pa_usec_to_bytes(default_fragment_size_msec*PA_USEC_PER_MSEC, &try_ss) /
+                    pa_frame_size(&try_ss);
+                try_buffer_size = default_n_fragments * try_period_size;
+
                 if (!(m ->input_pcm = pa_alsa_open_by_template(
                               m->device_strings,
                               dev_id,
                               NULL,
                               &try_ss, &try_map,
                               SND_PCM_STREAM_CAPTURE,
-                              NULL, NULL, 0, NULL, NULL,
+                              &try_period_size, &try_buffer_size, 0, NULL, NULL,
                               TRUE))) {
                     p->supported = FALSE;
                     break;
diff --git a/src/modules/alsa/alsa-mixer.h b/src/modules/alsa/alsa-mixer.h
index 7678818..a0d4fcb 100644
--- a/src/modules/alsa/alsa-mixer.h
+++ b/src/modules/alsa/alsa-mixer.h
@@ -269,7 +269,7 @@ void pa_alsa_mapping_dump(pa_alsa_mapping *m);
 void pa_alsa_profile_dump(pa_alsa_profile *p);
 
 pa_alsa_profile_set* pa_alsa_profile_set_new(const char *fname, const pa_channel_map *bonus);
-void pa_alsa_profile_set_probe(pa_alsa_profile_set *ps, const char *dev_id, const pa_sample_spec *ss);
+void pa_alsa_profile_set_probe(pa_alsa_profile_set *ps, const char *dev_id, const pa_sample_spec *ss, unsigned default_n_fragments, unsigned default_fragment_size_msec);
 void pa_alsa_profile_set_free(pa_alsa_profile_set *s);
 void pa_alsa_profile_set_dump(pa_alsa_profile_set *s);
 
diff --git a/src/modules/alsa/module-alsa-card.c b/src/modules/alsa/module-alsa-card.c
index 55f6a6e..6bea33d 100644
--- a/src/modules/alsa/module-alsa-card.c
+++ b/src/modules/alsa/module-alsa-card.c
@@ -329,7 +329,7 @@ int pa__init(pa_module *m) {
     if (!u->profile_set)
         goto fail;
 
-    pa_alsa_profile_set_probe(u->profile_set, u->device_id, &m->core->default_sample_spec);
+    pa_alsa_profile_set_probe(u->profile_set, u->device_id, &m->core->default_sample_spec, m->core->default_n_fragments, m->core->default_fragment_size_msec);
 
     pa_card_new_data_init(&data);
     data.driver = __FILE__;

commit d5f43bd4c6a7eecff7bc0c4ff1be9152b33cb1e0
Author: Lennart Poettering <lennart at poettering.net>
Date:   Wed Sep 9 23:57:49 2009 +0200

    alsa: disable tsched for software devices before we configure the buffer metrics so that we don't accidently set a buffer size that is suitable for tsched where we don't use tsched

diff --git a/src/modules/alsa/alsa-sink.c b/src/modules/alsa/alsa-sink.c
index 7fe7783..76cbe46 100644
--- a/src/modules/alsa/alsa-sink.c
+++ b/src/modules/alsa/alsa-sink.c
@@ -1795,11 +1795,6 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca
         u->use_tsched = use_tsched = FALSE;
     }
 
-    if (use_tsched && !pa_alsa_pcm_is_hw(u->pcm_handle)) {
-        pa_log_info("Device is not a hardware device, disabling timer-based scheduling.");
-        u->use_tsched = use_tsched = FALSE;
-    }
-
     if (u->use_mmap)
         pa_log_info("Successfully enabled mmap() mode.");
 
diff --git a/src/modules/alsa/alsa-source.c b/src/modules/alsa/alsa-source.c
index a7f2a01..88f2d8a 100644
--- a/src/modules/alsa/alsa-source.c
+++ b/src/modules/alsa/alsa-source.c
@@ -1636,11 +1636,6 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p
         u->use_tsched = use_tsched = FALSE;
     }
 
-    if (use_tsched && !pa_alsa_pcm_is_hw(u->pcm_handle)) {
-        pa_log_info("Device is not a hardware device, disabling timer-based scheduling.");
-        u->use_tsched = use_tsched = FALSE;
-    }
-
     if (u->use_mmap)
         pa_log_info("Successfully enabled mmap() mode.");
 
diff --git a/src/modules/alsa/alsa-util.c b/src/modules/alsa/alsa-util.c
index 9147452..f934285 100644
--- a/src/modules/alsa/alsa-util.c
+++ b/src/modules/alsa/alsa-util.c
@@ -189,7 +189,7 @@ static int set_buffer_size(snd_pcm_t *pcm_handle, snd_pcm_hw_params_t *hwparams,
 }
 
 /* Set the hardware parameters of the given ALSA device. Returns the
- * selected fragment settings in *period and *period_size */
+ * selected fragment settings in *buffer_size and *period_size. If tsched mode can be enabled */
 int pa_alsa_set_hw_params(
         snd_pcm_t *pcm_handle,
         pa_sample_spec *ss,
@@ -247,6 +247,9 @@ int pa_alsa_set_hw_params(
     if (!_use_mmap)
         _use_tsched = FALSE;
 
+    if (!pa_alsa_pcm_is_hw(pcm_handle))
+        _use_tsched = FALSE;
+
     if ((ret = set_format(pcm_handle, hwparams, &_ss.format)) < 0)
         goto finish;
 

commit 43c3164b701ca4a908f6c039e43e84540aa6a6a2
Merge: d5f43bd 6c385eb
Author: Lennart Poettering <lennart at poettering.net>
Date:   Thu Sep 10 01:42:58 2009 +0200

    Merge remote branch 'origin/master-tx'


commit 9c65e5bcf63480669f5e5a5054835c390f0a6d5c
Author: Lennart Poettering <lennart at poettering.net>
Date:   Thu Sep 10 01:44:08 2009 +0200

    add ml to LINGUAS

diff --git a/po/LINGUAS b/po/LINGUAS
index a15a7b0..f25bd6b 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -13,6 +13,7 @@ hi
 it
 kn
 ko
+ml
 mr
 nl
 or

commit b2de8d8b4b707e63bac4ba14a167d56d8b44fb89
Author: Lennart Poettering <lennart at poettering.net>
Date:   Thu Sep 10 01:47:22 2009 +0200

    i18n: get rid of ko.po/ru.po since they contain exactly 0 translated strings

diff --git a/po/LINGUAS b/po/LINGUAS
index f25bd6b..72a770f 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -12,7 +12,6 @@ gu
 hi
 it
 kn
-ko
 ml
 mr
 nl
@@ -21,7 +20,6 @@ pa
 pl
 pt
 pt_BR
-ru
 sr
 sr at latin
 sv
diff --git a/po/ko.po b/po/ko.po
deleted file mode 100644
index 1c801b1..0000000
--- a/po/ko.po
+++ /dev/null
@@ -1,2010 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-03 03:04+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2629
-#, c-format
-msgid "%s %s"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:1023
-#, c-format
-msgid ""
-"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
-"ms).\n"
-"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
-"to the ALSA developers."
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:1064
-#, c-format
-msgid ""
-"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
-"lu ms).\n"
-"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
-"to the ALSA developers."
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:1111
-#, c-format
-msgid ""
-"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
-"(%lu ms).\n"
-"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
-"to the ALSA developers."
-msgstr ""
-
-#: ../src/modules/module-ladspa-sink.c:49
-msgid "Virtual LADSPA sink"
-msgstr ""
-
-#: ../src/modules/module-ladspa-sink.c:53
-msgid ""
-"sink_name=<name for the sink> sink_properties=<properties for the sink> "
-"master=<name of sink to filter> format=<sample format> rate=<sample rate> "
-"channels=<number of channels> channel_map=<channel map> plugin=<ladspa "
-"plugin name> label=<ladspa plugin label> control=<comma seperated list of "
-"input control values>"
-msgstr ""
-
-#: ../src/pulsecore/sink.c:2613
-msgid "Internal Audio"
-msgstr ""
-
-#: ../src/pulsecore/sink.c:2618
-msgid "Modem"
-msgstr ""
-
-#: ../src/daemon/ltdl-bind-now.c:124
-msgid "Failed to find original lt_dlopen loader."
-msgstr ""
-
-#: ../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/main.c:141
-#, c-format
-msgid "Got signal %s."
-msgstr ""
-
-#: ../src/daemon/main.c:168
-msgid "Exiting."
-msgstr ""
-
-#: ../src/daemon/main.c:186
-#, c-format
-msgid "Failed to find user '%s'."
-msgstr ""
-
-#: ../src/daemon/main.c:191
-#, c-format
-msgid "Failed to find group '%s'."
-msgstr ""
-
-#: ../src/daemon/main.c:195
-#, c-format
-msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)."
-msgstr ""
-
-#: ../src/daemon/main.c:200
-#, c-format
-msgid "GID of user '%s' and of group '%s' don't match."
-msgstr ""
-
-#: ../src/daemon/main.c:205
-#, c-format
-msgid "Home directory of user '%s' is not '%s', ignoring."
-msgstr ""
-
-#: ../src/daemon/main.c:208 ../src/daemon/main.c:213
-#, c-format
-msgid "Failed to create '%s': %s"
-msgstr ""
-
-#: ../src/daemon/main.c:220
-#, c-format
-msgid "Failed to change group list: %s"
-msgstr ""
-
-#: ../src/daemon/main.c:236
-#, c-format
-msgid "Failed to change GID: %s"
-msgstr ""
-
-#: ../src/daemon/main.c:252
-#, c-format
-msgid "Failed to change UID: %s"
-msgstr ""
-
-#: ../src/daemon/main.c:271
-msgid "Successfully dropped root privileges."
-msgstr ""
-
-#: ../src/daemon/main.c:279
-msgid "System wide mode unsupported on this platform."
-msgstr ""
-
-#: ../src/daemon/main.c:297
-#, c-format
-msgid "setrlimit(%s, (%u, %u)) failed: %s"
-msgstr ""
-
-#: ../src/daemon/main.c:469
-msgid "Failed to parse command line."
-msgstr ""
-
-#: ../src/daemon/main.c:536
-msgid "Daemon not running"
-msgstr ""
-
-#: ../src/daemon/main.c:538
-#, c-format
-msgid "Daemon running as PID %u"
-msgstr ""
-
-#: ../src/daemon/main.c:548
-#, c-format
-msgid "Failed to kill daemon: %s"
-msgstr ""
-
-#: ../src/daemon/main.c:566
-msgid ""
-"This program is not intended to be run as root (unless --system is "
-"specified)."
-msgstr ""
-
-#: ../src/daemon/main.c:568
-msgid "Root privileges required."
-msgstr ""
-
-#: ../src/daemon/main.c:573
-msgid "--start not supported for system instances."
-msgstr ""
-
-#: ../src/daemon/main.c:578
-msgid "Running in system mode, but --disallow-exit not set!"
-msgstr ""
-
-#: ../src/daemon/main.c:581
-msgid "Running in system mode, but --disallow-module-loading not set!"
-msgstr ""
-
-#: ../src/daemon/main.c:584
-msgid "Running in system mode, forcibly disabling SHM mode!"
-msgstr ""
-
-#: ../src/daemon/main.c:589
-msgid "Running in system mode, forcibly disabling exit idle time!"
-msgstr ""
-
-#: ../src/daemon/main.c:616
-msgid "Failed to acquire stdio."
-msgstr ""
-
-#: ../src/daemon/main.c:622
-#, c-format
-msgid "pipe failed: %s"
-msgstr ""
-
-#: ../src/daemon/main.c:627
-#, c-format
-msgid "fork() failed: %s"
-msgstr ""
-
-#: ../src/daemon/main.c:641 ../src/utils/pacat.c:505
-#, c-format
-msgid "read() failed: %s"
-msgstr ""
-
-#: ../src/daemon/main.c:647
-msgid "Daemon startup failed."
-msgstr ""
-
-#: ../src/daemon/main.c:649
-msgid "Daemon startup successful."
-msgstr ""
-
-#: ../src/daemon/main.c:726
-#, c-format
-msgid "This is PulseAudio %s"
-msgstr ""
-
-#: ../src/daemon/main.c:727
-#, c-format
-msgid "Compilation host: %s"
-msgstr ""
-
-#: ../src/daemon/main.c:728
-#, c-format
-msgid "Compilation CFLAGS: %s"
-msgstr ""
-
-#: ../src/daemon/main.c:731
-#, c-format
-msgid "Running on host: %s"
-msgstr ""
-
-#: ../src/daemon/main.c:734
-#, c-format
-msgid "Found %u CPUs."
-msgstr ""
-
-#: ../src/daemon/main.c:736
-#, c-format
-msgid "Page size is %lu bytes"
-msgstr ""
-
-#: ../src/daemon/main.c:739
-msgid "Compiled with Valgrind support: yes"
-msgstr ""
-
-#: ../src/daemon/main.c:741
-msgid "Compiled with Valgrind support: no"
-msgstr ""
-
-#: ../src/daemon/main.c:744
-#, c-format
-msgid "Running in valgrind mode: %s"
-msgstr ""
-
-#: ../src/daemon/main.c:747
-msgid "Optimized build: yes"
-msgstr ""
-
-#: ../src/daemon/main.c:749
-msgid "Optimized build: no"
-msgstr ""
-
-#: ../src/daemon/main.c:753
-msgid "NDEBUG defined, all asserts disabled."
-msgstr ""
-
-#: ../src/daemon/main.c:755
-msgid "FASTPATH defined, only fast path asserts disabled."
-msgstr ""
-
-#: ../src/daemon/main.c:757
-msgid "All asserts enabled."
-msgstr ""
-
-#: ../src/daemon/main.c:761
-msgid "Failed to get machine ID"
-msgstr ""
-
-#: ../src/daemon/main.c:764
-#, c-format
-msgid "Machine ID is %s."
-msgstr ""
-
-#: ../src/daemon/main.c:768
-#, c-format
-msgid "Session ID is %s."
-msgstr ""
-
-#: ../src/daemon/main.c:774
-#, c-format
-msgid "Using runtime directory %s."
-msgstr ""
-
-#: ../src/daemon/main.c:779
-#, c-format
-msgid "Using state directory %s."
-msgstr ""
-
-#: ../src/daemon/main.c:782
-#, c-format
-msgid "Using modules directory %s."
-msgstr ""
-
-#: ../src/daemon/main.c:784
-#, c-format
-msgid "Running in system mode: %s"
-msgstr ""
-
-#: ../src/daemon/main.c:787
-msgid ""
-"OK, so you are running PA in system mode. Please note that you most likely "
-"shouldn't be doing that.\n"
-"If you do it nonetheless then it's your own fault if things don't work as "
-"expected.\n"
-"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an "
-"explanation why system mode is usually a bad idea."
-msgstr ""
-
-#: ../src/daemon/main.c:804
-msgid "pa_pid_file_create() failed."
-msgstr ""
-
-#: ../src/daemon/main.c:814
-msgid "Fresh high-resolution timers available! Bon appetit!"
-msgstr ""
-
-#: ../src/daemon/main.c:816
-msgid ""
-"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
-"resolution timers enabled!"
-msgstr ""
-
-#: ../src/daemon/main.c:839
-msgid "pa_core_new() failed."
-msgstr ""
-
-#: ../src/daemon/main.c:899
-msgid "Failed to initialize daemon."
-msgstr ""
-
-#: ../src/daemon/main.c:904
-msgid "Daemon startup without any loaded modules, refusing to work."
-msgstr ""
-
-#: ../src/daemon/main.c:921
-msgid "Daemon startup complete."
-msgstr ""
-
-#: ../src/daemon/main.c:927
-msgid "Daemon shutdown initiated."
-msgstr ""
-
-#: ../src/daemon/main.c:949
-msgid "Daemon terminated."
-msgstr ""
-
-#: ../src/daemon/cmdline.c:115
-#, c-format
-msgid ""
-"%s [options]\n"
-"\n"
-"COMMANDS:\n"
-"  -h, --help                            Show this help\n"
-"      --version                         Show version\n"
-"      --dump-conf                       Dump default configuration\n"
-"      --dump-modules                    Dump list of available modules\n"
-"      --dump-resample-methods           Dump available resample methods\n"
-"      --cleanup-shm                     Cleanup stale shared memory "
-"segments\n"
-"      --start                           Start the daemon if it is not "
-"running\n"
-"  -k  --kill                            Kill a running daemon\n"
-"      --check                           Check for a running daemon (only "
-"returns exit code)\n"
-"\n"
-"OPTIONS:\n"
-"      --system[=BOOL]                   Run as system-wide instance\n"
-"  -D, --daemonize[=BOOL]                Daemonize after startup\n"
-"      --fail[=BOOL]                     Quit when startup fails\n"
-"      --high-priority[=BOOL]            Try to set high nice level\n"
-"                                        (only available as root, when SUID "
-"or\n"
-"                                        with elevated RLIMIT_NICE)\n"
-"      --realtime[=BOOL]                 Try to enable realtime scheduling\n"
-"                                        (only available as root, when SUID "
-"or\n"
-"                                        with elevated RLIMIT_RTPRIO)\n"
-"      --disallow-module-loading[=BOOL]  Disallow module user requested "
-"module\n"
-"                                        loading/unloading after startup\n"
-"      --disallow-exit[=BOOL]            Disallow user requested exit\n"
-"      --exit-idle-time=SECS             Terminate the daemon when idle and "
-"this\n"
-"                                        time passed\n"
-"      --module-idle-time=SECS           Unload autoloaded modules when idle "
-"and\n"
-"                                        this time passed\n"
-"      --scache-idle-time=SECS           Unload autoloaded samples when idle "
-"and\n"
-"                                        this time passed\n"
-"      --log-level[=LEVEL]               Increase or set verbosity level\n"
-"  -v                                    Increase the verbosity level\n"
-"      --log-target={auto,syslog,stderr} Specify the log target\n"
-"      --log-meta[=BOOL]                 Include code location in log "
-"messages\n"
-"      --log-time[=BOOL]                 Include timestamps in log messages\n"
-"      --log-backtrace=FRAMES            Include a backtrace in log messages\n"
-"  -p, --dl-search-path=PATH             Set the search path for dynamic "
-"shared\n"
-"                                        objects (plugins)\n"
-"      --resample-method=METHOD          Use the specified resampling method\n"
-"                                        (See --dump-resample-methods for\n"
-"                                        possible values)\n"
-"      --use-pid-file[=BOOL]             Create a PID file\n"
-"      --no-cpu-limit[=BOOL]             Do not install CPU load limiter on\n"
-"                                        platforms that support it.\n"
-"      --disable-shm[=BOOL]              Disable shared memory support.\n"
-"\n"
-"STARTUP SCRIPT:\n"
-"  -L, --load=\"MODULE ARGUMENTS\"         Load the specified plugin module "
-"with\n"
-"                                        the specified argument\n"
-"  -F, --file=FILENAME                   Run the specified script\n"
-"  -C                                    Open a command line on the running "
-"TTY\n"
-"                                        after startup\n"
-"\n"
-"  -n                                    Don't load default script file\n"
-msgstr ""
-
-#: ../src/daemon/cmdline.c:247
-msgid "--daemonize expects boolean argument"
-msgstr ""
-
-#: ../src/daemon/cmdline.c:254
-msgid "--fail expects boolean argument"
-msgstr ""
-
-#: ../src/daemon/cmdline.c:264
-msgid ""
-"--log-level expects log level argument (either numeric in range 0..4 or one "
-"of debug, info, notice, warn, error)."
-msgstr ""
-
-#: ../src/daemon/cmdline.c:276
-msgid "--high-priority expects boolean argument"
-msgstr ""
-
-#: ../src/daemon/cmdline.c:283
-msgid "--realtime expects boolean argument"
-msgstr ""
-
-#: ../src/daemon/cmdline.c:290
-msgid "--disallow-module-loading expects boolean argument"
-msgstr ""
-
-#: ../src/daemon/cmdline.c:297
-msgid "--disallow-exit expects boolean argument"
-msgstr ""
-
-#: ../src/daemon/cmdline.c:304
-msgid "--use-pid-file expects boolean argument"
-msgstr ""
-
-#: ../src/daemon/cmdline.c:321
-msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'."
-msgstr ""
-
-#: ../src/daemon/cmdline.c:328
-msgid "--log-time expects boolean argument"
-msgstr ""
-
-#: ../src/daemon/cmdline.c:335
-msgid "--log-meta expects boolean argument"
-msgstr ""
-
-#: ../src/daemon/cmdline.c:354
-#, c-format
-msgid "Invalid resample method '%s'."
-msgstr ""
-
-#: ../src/daemon/cmdline.c:361
-msgid "--system expects boolean argument"
-msgstr ""
-
-#: ../src/daemon/cmdline.c:368
-msgid "--no-cpu-limit expects boolean argument"
-msgstr ""
-
-#: ../src/daemon/cmdline.c:375
-msgid "--disable-shm expects boolean argument"
-msgstr ""
-
-#: ../src/daemon/dumpmodules.c:60
-#, c-format
-msgid "Name: %s\n"
-msgstr ""
-
-#: ../src/daemon/dumpmodules.c:63
-#, c-format
-msgid "No module information available\n"
-msgstr ""
-
-#: ../src/daemon/dumpmodules.c:66
-#, c-format
-msgid "Version: %s\n"
-msgstr ""
-
-#: ../src/daemon/dumpmodules.c:68
-#, c-format
-msgid "Description: %s\n"
-msgstr ""
-
-#: ../src/daemon/dumpmodules.c:70
-#, c-format
-msgid "Author: %s\n"
-msgstr ""
-
-#: ../src/daemon/dumpmodules.c:72
-#, c-format
-msgid "Usage: %s\n"
-msgstr ""
-
-#: ../src/daemon/dumpmodules.c:73
-#, c-format
-msgid "Load Once: %s\n"
-msgstr ""
-
-#: ../src/daemon/dumpmodules.c:75
-#, c-format
-msgid "DEPRECATION WARNING: %s\n"
-msgstr ""
-
-#: ../src/daemon/dumpmodules.c:79
-#, c-format
-msgid "Path: %s\n"
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:232
-#, c-format
-msgid "[%s:%u] Invalid log target '%s'."
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:248
-#, c-format
-msgid "[%s:%u] Invalid log level '%s'."
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:264
-#, c-format
-msgid "[%s:%u] Invalid resample method '%s'."
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:287
-#, c-format
-msgid "[%s:%u] Invalid rlimit '%s'."
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:294
-#, c-format
-msgid "[%s:%u] rlimit not supported on this platform."
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:310
-#, c-format
-msgid "[%s:%u] Invalid sample format '%s'."
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:328
-#, c-format
-msgid "[%s:%u] Invalid sample rate '%s'."
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:352
-#, c-format
-msgid "[%s:%u] Invalid sample channels '%s'."
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:370
-#, c-format
-msgid "[%s:%u] Invalid channel map '%s'."
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:388
-#, c-format
-msgid "[%s:%u] Invalid number of fragments '%s'."
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:406
-#, c-format
-msgid "[%s:%u] Invalid fragment size '%s'."
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:424
-#, c-format
-msgid "[%s:%u] Invalid nice level '%s'."
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:546
-#, c-format
-msgid "Failed to open configuration file: %s"
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:562
-msgid ""
-"The specified default channel map has a different number of channels than "
-"the specified default number of channels."
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:638
-#, c-format
-msgid "### Read from configuration file: %s ###\n"
-msgstr ""
-
-#: ../src/daemon/caps.c:62
-msgid "Cleaning up privileges."
-msgstr ""
-
-#: ../src/daemon/pulseaudio.desktop.in.h:1
-msgid "PulseAudio Sound System"
-msgstr ""
-
-#: ../src/daemon/pulseaudio.desktop.in.h:2
-msgid "Start the PulseAudio Sound System"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:757
-msgid "Mono"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:107
-msgid "Front Center"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:108
-msgid "Front Left"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:109
-msgid "Front Right"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:111
-msgid "Rear Center"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:112
-msgid "Rear Left"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:113
-msgid "Rear Right"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:115
-msgid "Low Frequency Emmiter"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:117
-msgid "Front Left-of-center"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:118
-msgid "Front Right-of-center"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:120
-msgid "Side Left"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:121
-msgid "Side Right"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:123
-msgid "Auxiliary 0"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:124
-msgid "Auxiliary 1"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:125
-msgid "Auxiliary 2"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:126
-msgid "Auxiliary 3"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:127
-msgid "Auxiliary 4"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:128
-msgid "Auxiliary 5"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:129
-msgid "Auxiliary 6"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:130
-msgid "Auxiliary 7"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:131
-msgid "Auxiliary 8"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:132
-msgid "Auxiliary 9"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:133
-msgid "Auxiliary 10"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:134
-msgid "Auxiliary 11"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:135
-msgid "Auxiliary 12"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:136
-msgid "Auxiliary 13"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:137
-msgid "Auxiliary 14"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:138
-msgid "Auxiliary 15"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:139
-msgid "Auxiliary 16"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:140
-msgid "Auxiliary 17"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:141
-msgid "Auxiliary 18"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:142
-msgid "Auxiliary 19"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:143
-msgid "Auxiliary 20"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:144
-msgid "Auxiliary 21"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:145
-msgid "Auxiliary 22"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:146
-msgid "Auxiliary 23"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:147
-msgid "Auxiliary 24"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:148
-msgid "Auxiliary 25"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:149
-msgid "Auxiliary 26"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:150
-msgid "Auxiliary 27"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:151
-msgid "Auxiliary 28"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:152
-msgid "Auxiliary 29"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:153
-msgid "Auxiliary 30"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:154
-msgid "Auxiliary 31"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:156
-msgid "Top Center"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:158
-msgid "Top Front Center"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:159
-msgid "Top Front Left"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:160
-msgid "Top Front Right"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:162
-msgid "Top Rear Center"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:163
-msgid "Top Rear Left"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:164
-msgid "Top Rear Right"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:484 ../src/pulse/sample.c:170
-#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:311
-#: ../src/pulse/volume.c:331 ../src/pulse/volume.c:361
-msgid "(invalid)"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:761
-msgid "Stereo"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:766
-msgid "Surround 4.0"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:772
-msgid "Surround 4.1"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:778
-msgid "Surround 5.0"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:784
-msgid "Surround 5.1"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:791
-msgid "Surround 7.1"
-msgstr ""
-
-#: ../src/pulse/error.c:43
-msgid "OK"
-msgstr ""
-
-#: ../src/pulse/error.c:44
-msgid "Access denied"
-msgstr ""
-
-#: ../src/pulse/error.c:45
-msgid "Unknown command"
-msgstr ""
-
-#: ../src/pulse/error.c:46
-msgid "Invalid argument"
-msgstr ""
-
-#: ../src/pulse/error.c:47
-msgid "Entity exists"
-msgstr ""
-
-#: ../src/pulse/error.c:48
-msgid "No such entity"
-msgstr ""
-
-#: ../src/pulse/error.c:49
-msgid "Connection refused"
-msgstr ""
-
-#: ../src/pulse/error.c:50
-msgid "Protocol error"
-msgstr ""
-
-#: ../src/pulse/error.c:51
-msgid "Timeout"
-msgstr ""
-
-#: ../src/pulse/error.c:52
-msgid "No authorization key"
-msgstr ""
-
-#: ../src/pulse/error.c:53
-msgid "Internal error"
-msgstr ""
-
-#: ../src/pulse/error.c:54
-msgid "Connection terminated"
-msgstr ""
-
-#: ../src/pulse/error.c:55
-msgid "Entity killed"
-msgstr ""
-
-#: ../src/pulse/error.c:56
-msgid "Invalid server"
-msgstr ""
-
-#: ../src/pulse/error.c:57
-msgid "Module initalization failed"
-msgstr ""
-
-#: ../src/pulse/error.c:58
-msgid "Bad state"
-msgstr ""
-
-#: ../src/pulse/error.c:59
-msgid "No data"
-msgstr ""
-
-#: ../src/pulse/error.c:60
-msgid "Incompatible protocol version"
-msgstr ""
-
-#: ../src/pulse/error.c:61
-msgid "Too large"
-msgstr ""
-
-#: ../src/pulse/error.c:62
-msgid "Not supported"
-msgstr ""
-
-#: ../src/pulse/error.c:63
-msgid "Unknown error code"
-msgstr ""
-
-#: ../src/pulse/error.c:64
-msgid "No such extension"
-msgstr ""
-
-#: ../src/pulse/error.c:65
-msgid "Obsolete functionality"
-msgstr ""
-
-#: ../src/pulse/error.c:66
-msgid "Missing implementation"
-msgstr ""
-
-#: ../src/pulse/error.c:67
-msgid "Client forked"
-msgstr ""
-
-#: ../src/pulse/sample.c:172
-#, c-format
-msgid "%s %uch %uHz"
-msgstr ""
-
-#: ../src/pulse/sample.c:184
-#, c-format
-msgid "%0.1f GiB"
-msgstr ""
-
-#: ../src/pulse/sample.c:186
-#, c-format
-msgid "%0.1f MiB"
-msgstr ""
-
-#: ../src/pulse/sample.c:188
-#, c-format
-msgid "%0.1f KiB"
-msgstr ""
-
-#: ../src/pulse/sample.c:190
-#, c-format
-msgid "%u B"
-msgstr ""
-
-#: ../src/pulse/client-conf-x11.c:55 ../src/utils/pax11publish.c:100
-msgid "XOpenDisplay() failed"
-msgstr ""
-
-#: ../src/pulse/client-conf-x11.c:93
-msgid "Failed to parse cookie data"
-msgstr ""
-
-#: ../src/pulse/client-conf.c:111
-#, c-format
-msgid "Failed to open configuration file '%s': %s"
-msgstr ""
-
-#: ../src/pulse/context.c:550
-msgid "No cookie loaded. Attempting to connect without."
-msgstr ""
-
-#: ../src/pulse/context.c:693
-#, c-format
-msgid "fork(): %s"
-msgstr ""
-
-#: ../src/pulse/context.c:748
-#, c-format
-msgid "waitpid(): %s"
-msgstr ""
-
-#: ../src/pulse/context.c:1435
-#, c-format
-msgid "Received message for unknown extension '%s'"
-msgstr ""
-
-#: ../src/utils/pacat.c:108
-#, c-format
-msgid "Failed to drain stream: %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:113
-msgid "Playback stream drained."
-msgstr ""
-
-#: ../src/utils/pacat.c:123
-msgid "Draining connection to server."
-msgstr ""
-
-#: ../src/utils/pacat.c:136
-#, c-format
-msgid "pa_stream_drain(): %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:159
-#, c-format
-msgid "pa_stream_write() failed: %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:197
-#, c-format
-msgid "pa_stream_begin_write() failed: %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:237 ../src/utils/pacat.c:267
-#, c-format
-msgid "pa_stream_peek() failed: %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:307
-msgid "Stream successfully created."
-msgstr ""
-
-#: ../src/utils/pacat.c:310
-#, c-format
-msgid "pa_stream_get_buffer_attr() failed: %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:314
-#, c-format
-msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u"
-msgstr ""
-
-#: ../src/utils/pacat.c:317
-#, c-format
-msgid "Buffer metrics: maxlength=%u, fragsize=%u"
-msgstr ""
-
-#: ../src/utils/pacat.c:321
-#, c-format
-msgid "Using sample spec '%s', channel map '%s'."
-msgstr ""
-
-#: ../src/utils/pacat.c:325
-#, c-format
-msgid "Connected to device %s (%u, %ssuspended)."
-msgstr ""
-
-#: ../src/utils/pacat.c:335
-#, c-format
-msgid "Stream error: %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:345
-#, c-format
-msgid "Stream device suspended.%s"
-msgstr ""
-
-#: ../src/utils/pacat.c:347
-#, c-format
-msgid "Stream device resumed.%s"
-msgstr ""
-
-#: ../src/utils/pacat.c:355
-#, c-format
-msgid "Stream underrun.%s"
-msgstr ""
-
-#: ../src/utils/pacat.c:362
-#, c-format
-msgid "Stream overrun.%s"
-msgstr ""
-
-#: ../src/utils/pacat.c:369
-#, c-format
-msgid "Stream started.%s"
-msgstr ""
-
-#: ../src/utils/pacat.c:376
-#, c-format
-msgid "Stream moved to device %s (%u, %ssuspended).%s"
-msgstr ""
-
-#: ../src/utils/pacat.c:376
-msgid "not "
-msgstr ""
-
-#: ../src/utils/pacat.c:383
-#, c-format
-msgid "Stream buffer attributes changed.%s"
-msgstr ""
-
-#: ../src/utils/pacat.c:416
-#, c-format
-msgid "Connection established.%s"
-msgstr ""
-
-#: ../src/utils/pacat.c:419
-#, c-format
-msgid "pa_stream_new() failed: %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:447
-#, c-format
-msgid "pa_stream_connect_playback() failed: %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:453
-#, c-format
-msgid "pa_stream_connect_record() failed: %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:467 ../src/utils/pactl.c:857
-#, c-format
-msgid "Connection failure: %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:500
-msgid "Got EOF."
-msgstr ""
-
-#: ../src/utils/pacat.c:537
-#, c-format
-msgid "write() failed: %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:558
-msgid "Got signal, exiting."
-msgstr ""
-
-#: ../src/utils/pacat.c:572
-#, c-format
-msgid "Failed to get latency: %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:577
-#, c-format
-msgid "Time: %0.3f sec; Latency: %0.0f usec.  \r"
-msgstr ""
-
-#: ../src/utils/pacat.c:595
-#, c-format
-msgid "pa_stream_update_timing_info() failed: %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:605
-#, c-format
-msgid ""
-"%s [options]\n"
-"\n"
-"  -h, --help                            Show this help\n"
-"      --version                         Show version\n"
-"\n"
-"  -r, --record                          Create a connection for recording\n"
-"  -p, --playback                        Create a connection for playback\n"
-"\n"
-"  -v, --verbose                         Enable verbose operations\n"
-"\n"
-"  -s, --server=SERVER                   The name of the server to connect "
-"to\n"
-"  -d, --device=DEVICE                   The name of the sink/source to "
-"connect to\n"
-"  -n, --client-name=NAME                How to call this client on the "
-"server\n"
-"      --stream-name=NAME                How to call this stream on the "
-"server\n"
-"      --volume=VOLUME                   Specify the initial (linear) volume "
-"in range 0...65536\n"
-"      --rate=SAMPLERATE                 The sample rate in Hz (defaults to "
-"44100)\n"
-"      --format=SAMPLEFORMAT             The sample type, one of s16le, "
-"s16be, u8, float32le,\n"
-"                                        float32be, ulaw, alaw, s32le, s32be, "
-"s24le, s24be,\n"
-"                                        s24-32le, s24-32be (defaults to "
-"s16ne)\n"
-"      --channels=CHANNELS               The number of channels, 1 for mono, "
-"2 for stereo\n"
-"                                        (defaults to 2)\n"
-"      --channel-map=CHANNELMAP          Channel map to use instead of the "
-"default\n"
-"      --fix-format                      Take the sample format from the sink "
-"the stream is\n"
-"                                        being connected to.\n"
-"      --fix-rate                        Take the sampling rate from the sink "
-"the stream is\n"
-"                                        being connected to.\n"
-"      --fix-channels                    Take the number of channels and the "
-"channel map\n"
-"                                        from the sink the stream is being "
-"connected to.\n"
-"      --no-remix                        Don't upmix or downmix channels.\n"
-"      --no-remap                        Map channels by index instead of "
-"name.\n"
-"      --latency=BYTES                   Request the specified latency in "
-"bytes.\n"
-"      --process-time=BYTES              Request the specified process time "
-"per request in bytes.\n"
-"      --property=PROPERTY=VALUE         Set the specified property to the "
-"specified value.\n"
-"      --raw                             Record/play raw PCM data.\n"
-"      --file-format=FFORMAT             Record/play formatted PCM data.\n"
-"      --list-file-formats               List available file formats.\n"
-msgstr ""
-
-#: ../src/utils/pacat.c:727
-#, c-format
-msgid ""
-"pacat %s\n"
-"Compiled with libpulse %s\n"
-"Linked with libpulse %s\n"
-msgstr ""
-
-#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:953
-#, c-format
-msgid "Invalid client name '%s'"
-msgstr ""
-
-#: ../src/utils/pacat.c:776
-#, c-format
-msgid "Invalid stream name '%s'"
-msgstr ""
-
-#: ../src/utils/pacat.c:813
-#, c-format
-msgid "Invalid channel map '%s'"
-msgstr ""
-
-#: ../src/utils/pacat.c:842
-#, c-format
-msgid "Invalid latency specification '%s'"
-msgstr ""
-
-#: ../src/utils/pacat.c:849
-#, c-format
-msgid "Invalid process time specification '%s'"
-msgstr ""
-
-#: ../src/utils/pacat.c:861
-#, c-format
-msgid "Invalid property '%s'"
-msgstr ""
-
-#: ../src/utils/pacat.c:878
-#, c-format
-msgid "Unknown file format %s."
-msgstr ""
-
-#: ../src/utils/pacat.c:897
-msgid "Invalid sample specification"
-msgstr ""
-
-#: ../src/utils/pacat.c:907
-#, c-format
-msgid "open(): %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:912
-#, c-format
-msgid "dup2(): %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:919
-msgid "Too many arguments."
-msgstr ""
-
-#: ../src/utils/pacat.c:930
-msgid "Failed to generate sample specification for file."
-msgstr ""
-
-#: ../src/utils/pacat.c:950
-msgid "Failed to open audio file."
-msgstr ""
-
-#: ../src/utils/pacat.c:956
-msgid ""
-"Warning: specified sample specification will be overwritten with "
-"specification from file."
-msgstr ""
-
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:997
-msgid "Failed to determine sample specification from file."
-msgstr ""
-
-#: ../src/utils/pacat.c:968
-msgid "Warning: Failed to determine channel map from file."
-msgstr ""
-
-#: ../src/utils/pacat.c:979
-msgid "Channel map doesn't match sample specification"
-msgstr ""
-
-#: ../src/utils/pacat.c:990
-msgid "Warning: failed to write channel map to file."
-msgstr ""
-
-#: ../src/utils/pacat.c:1005
-#, c-format
-msgid ""
-"Opening a %s stream with sample specification '%s' and channel map '%s'."
-msgstr ""
-
-#: ../src/utils/pacat.c:1006
-msgid "recording"
-msgstr ""
-
-#: ../src/utils/pacat.c:1006
-msgid "playback"
-msgstr ""
-
-#: ../src/utils/pacat.c:1032 ../src/utils/pactl.c:1267
-msgid "pa_mainloop_new() failed."
-msgstr ""
-
-#: ../src/utils/pacat.c:1051
-msgid "io_new() failed."
-msgstr ""
-
-#: ../src/utils/pacat.c:1058 ../src/utils/pactl.c:1279
-msgid "pa_context_new() failed."
-msgstr ""
-
-#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1285
-#, c-format
-msgid "pa_context_connect() failed: %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:1072
-msgid "pa_context_rttime_new() failed."
-msgstr ""
-
-#: ../src/utils/pacat.c:1079 ../src/utils/pactl.c:1290
-msgid "pa_mainloop_run() failed."
-msgstr ""
-
-#: ../src/utils/pasuspender.c:81
-#, c-format
-msgid "fork(): %s\n"
-msgstr ""
-
-#: ../src/utils/pasuspender.c:92
-#, c-format
-msgid "execvp(): %s\n"
-msgstr ""
-
-#: ../src/utils/pasuspender.c:109
-#, c-format
-msgid "Failure to suspend: %s\n"
-msgstr ""
-
-#: ../src/utils/pasuspender.c:124
-#, c-format
-msgid "Failure to resume: %s\n"
-msgstr ""
-
-#: ../src/utils/pasuspender.c:147
-#, c-format
-msgid "WARNING: Sound server is not local, not suspending.\n"
-msgstr ""
-
-#: ../src/utils/pasuspender.c:159
-#, c-format
-msgid "Connection failure: %s\n"
-msgstr ""
-
-#: ../src/utils/pasuspender.c:176
-#, c-format
-msgid "Got SIGINT, exiting.\n"
-msgstr ""
-
-#: ../src/utils/pasuspender.c:194
-#, c-format
-msgid "WARNING: Child process terminated by signal %u\n"
-msgstr ""
-
-#: ../src/utils/pasuspender.c:212
-#, c-format
-msgid ""
-"%s [options] ... \n"
-"\n"
-"  -h, --help                            Show this help\n"
-"      --version                         Show version\n"
-"  -s, --server=SERVER                   The name of the server to connect "
-"to\n"
-"\n"
-msgstr ""
-
-#: ../src/utils/pasuspender.c:248
-#, c-format
-msgid ""
-"pasuspender %s\n"
-"Compiled with libpulse %s\n"
-"Linked with libpulse %s\n"
-msgstr ""
-
-#: ../src/utils/pasuspender.c:277
-#, c-format
-msgid "pa_mainloop_new() failed.\n"
-msgstr ""
-
-#: ../src/utils/pasuspender.c:290
-#, c-format
-msgid "pa_context_new() failed.\n"
-msgstr ""
-
-#: ../src/utils/pasuspender.c:298
-#, c-format
-msgid "pa_mainloop_run() failed.\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:135
-#, c-format
-msgid "Failed to get statistics: %s"
-msgstr ""
-
-#: ../src/utils/pactl.c:141
-#, c-format
-msgid "Currently in use: %u blocks containing %s bytes total.\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:144
-#, c-format
-msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:147
-#, c-format
-msgid "Sample cache size: %s\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:156
-#, c-format
-msgid "Failed to get server information: %s"
-msgstr ""
-
-#: ../src/utils/pactl.c:164
-#, c-format
-msgid ""
-"User name: %s\n"
-"Host Name: %s\n"
-"Server Name: %s\n"
-"Server Version: %s\n"
-"Default Sample Specification: %s\n"
-"Default Channel Map: %s\n"
-"Default Sink: %s\n"
-"Default Source: %s\n"
-"Cookie: %08x\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:205
-#, c-format
-msgid "Failed to get sink information: %s"
-msgstr ""
-
-#: ../src/utils/pactl.c:221
-#, c-format
-msgid ""
-"Sink #%u\n"
-"\tState: %s\n"
-"\tName: %s\n"
-"\tDescription: %s\n"
-"\tDriver: %s\n"
-"\tSample Specification: %s\n"
-"\tChannel Map: %s\n"
-"\tOwner Module: %u\n"
-"\tMute: %s\n"
-"\tVolume: %s%s%s\n"
-"\t        balance %0.2f\n"
-"\tBase Volume: %s%s%s\n"
-"\tMonitor Source: %s\n"
-"\tLatency: %0.0f usec, configured %0.0f usec\n"
-"\tFlags: %s%s%s%s%s%s\n"
-"\tProperties:\n"
-"\t\t%s\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:268 ../src/utils/pactl.c:360
-#, c-format
-msgid "\tPorts:\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:274 ../src/utils/pactl.c:366
-#, c-format
-msgid "\tActive Port: %s\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:297
-#, c-format
-msgid "Failed to get source information: %s"
-msgstr ""
-
-#: ../src/utils/pactl.c:313
-#, c-format
-msgid ""
-"Source #%u\n"
-"\tState: %s\n"
-"\tName: %s\n"
-"\tDescription: %s\n"
-"\tDriver: %s\n"
-"\tSample Specification: %s\n"
-"\tChannel Map: %s\n"
-"\tOwner Module: %u\n"
-"\tMute: %s\n"
-"\tVolume: %s%s%s\n"
-"\t        balance %0.2f\n"
-"\tBase Volume: %s%s%s\n"
-"\tMonitor of Sink: %s\n"
-"\tLatency: %0.0f usec, configured %0.0f usec\n"
-"\tFlags: %s%s%s%s%s%s\n"
-"\tProperties:\n"
-"\t\t%s\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:345 ../src/utils/pactl.c:401 ../src/utils/pactl.c:436
-#: ../src/utils/pactl.c:473 ../src/utils/pactl.c:532 ../src/utils/pactl.c:533
-#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:587 ../src/utils/pactl.c:588
-#: ../src/utils/pactl.c:594 ../src/utils/pactl.c:637 ../src/utils/pactl.c:638
-#: ../src/utils/pactl.c:645
-msgid "n/a"
-msgstr ""
-
-#: ../src/utils/pactl.c:375
-#, c-format
-msgid "Failed to get module information: %s"
-msgstr ""
-
-#: ../src/utils/pactl.c:393
-#, c-format
-msgid ""
-"Module #%u\n"
-"\tName: %s\n"
-"\tArgument: %s\n"
-"\tUsage counter: %s\n"
-"\tProperties:\n"
-"\t\t%s\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:412
-#, c-format
-msgid "Failed to get client information: %s"
-msgstr ""
-
-#: ../src/utils/pactl.c:430
-#, c-format
-msgid ""
-"Client #%u\n"
-"\tDriver: %s\n"
-"\tOwner Module: %s\n"
-"\tProperties:\n"
-"\t\t%s\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:447
-#, c-format
-msgid "Failed to get card information: %s"
-msgstr ""
-
-#: ../src/utils/pactl.c:465
-#, c-format
-msgid ""
-"Card #%u\n"
-"\tName: %s\n"
-"\tDriver: %s\n"
-"\tOwner Module: %s\n"
-"\tProperties:\n"
-"\t\t%s\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:479
-#, c-format
-msgid "\tProfiles:\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:485
-#, c-format
-msgid "\tActive Profile: %s\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:496
-#, c-format
-msgid "Failed to get sink input information: %s"
-msgstr ""
-
-#: ../src/utils/pactl.c:515
-#, c-format
-msgid ""
-"Sink Input #%u\n"
-"\tDriver: %s\n"
-"\tOwner Module: %s\n"
-"\tClient: %s\n"
-"\tSink: %u\n"
-"\tSample Specification: %s\n"
-"\tChannel Map: %s\n"
-"\tMute: %s\n"
-"\tVolume: %s\n"
-"\t        %s\n"
-"\t        balance %0.2f\n"
-"\tBuffer Latency: %0.0f usec\n"
-"\tSink Latency: %0.0f usec\n"
-"\tResample method: %s\n"
-"\tProperties:\n"
-"\t\t%s\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:554
-#, c-format
-msgid "Failed to get source output information: %s"
-msgstr ""
-
-#: ../src/utils/pactl.c:574
-#, c-format
-msgid ""
-"Source Output #%u\n"
-"\tDriver: %s\n"
-"\tOwner Module: %s\n"
-"\tClient: %s\n"
-"\tSource: %u\n"
-"\tSample Specification: %s\n"
-"\tChannel Map: %s\n"
-"\tBuffer Latency: %0.0f usec\n"
-"\tSource Latency: %0.0f usec\n"
-"\tResample method: %s\n"
-"\tProperties:\n"
-"\t\t%s\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:605
-#, c-format
-msgid "Failed to get sample information: %s"
-msgstr ""
-
-#: ../src/utils/pactl.c:623
-#, c-format
-msgid ""
-"Sample #%u\n"
-"\tName: %s\n"
-"\tSample Specification: %s\n"
-"\tChannel Map: %s\n"
-"\tVolume: %s\n"
-"\t        %s\n"
-"\t        balance %0.2f\n"
-"\tDuration: %0.1fs\n"
-"\tSize: %s\n"
-"\tLazy: %s\n"
-"\tFilename: %s\n"
-"\tProperties:\n"
-"\t\t%s\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:653 ../src/utils/pactl.c:663
-#, c-format
-msgid "Failure: %s"
-msgstr ""
-
-#: ../src/utils/pactl.c:687
-#, c-format
-msgid "Failed to upload sample: %s"
-msgstr ""
-
-#: ../src/utils/pactl.c:704
-msgid "Premature end of file"
-msgstr ""
-
-#: ../src/utils/pactl.c:863
-msgid "Got SIGINT, exiting."
-msgstr ""
-
-#: ../src/utils/pactl.c:869
-#, c-format
-msgid ""
-"%s [options] stat\n"
-"%s [options] list\n"
-"%s [options] exit\n"
-"%s [options] upload-sample FILENAME [NAME]\n"
-"%s [options] play-sample NAME [SINK]\n"
-"%s [options] remove-sample NAME\n"
-"%s [options] move-sink-input SINKINPUT SINK\n"
-"%s [options] move-source-output SOURCEOUTPUT SOURCE\n"
-"%s [options] load-module NAME [ARGS ...]\n"
-"%s [options] unload-module MODULE\n"
-"%s [options] suspend-sink SINK 1|0\n"
-"%s [options] suspend-source SOURCE 1|0\n"
-"%s [options] set-card-profile CARD PROFILE\n"
-"%s [options] set-sink-port SINK PORT\n"
-"%s [options] set-source-port SOURCE PORT\n"
-"%s [options] set-sink-volume SINK VOLUME\n"
-"%s [options] set-source-volume SOURCE VOLUME\n"
-"%s [options] set-sink-input-volume SINKINPUT VOLUME\n"
-"%s [options] set-sink-mute SINK 1|0\n"
-"%s [options] set-source-mute SOURCE 1|0\n"
-"%s [options] set-sink-input-mute SINKINPUT 1|0\n"
-"\n"
-"  -h, --help                            Show this help\n"
-"      --version                         Show version\n"
-"\n"
-"  -s, --server=SERVER                   The name of the server to connect "
-"to\n"
-"  -n, --client-name=NAME                How to call this client on the "
-"server\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:933
-#, c-format
-msgid ""
-"pactl %s\n"
-"Compiled with libpulse %s\n"
-"Linked with libpulse %s\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:979
-msgid "Please specify a sample file to load"
-msgstr ""
-
-#: ../src/utils/pactl.c:992
-msgid "Failed to open sound file."
-msgstr ""
-
-#: ../src/utils/pactl.c:1004
-msgid "Warning: Failed to determine sample specification from file."
-msgstr ""
-
-#: ../src/utils/pactl.c:1014
-msgid "You have to specify a sample name to play"
-msgstr ""
-
-#: ../src/utils/pactl.c:1026
-msgid "You have to specify a sample name to remove"
-msgstr ""
-
-#: ../src/utils/pactl.c:1035
-msgid "You have to specify a sink input index and a sink"
-msgstr ""
-
-#: ../src/utils/pactl.c:1045
-msgid "You have to specify a source output index and a source"
-msgstr ""
-
-#: ../src/utils/pactl.c:1060
-msgid "You have to specify a module name and arguments."
-msgstr ""
-
-#: ../src/utils/pactl.c:1080
-msgid "You have to specify a module index"
-msgstr ""
-
-#: ../src/utils/pactl.c:1090
-msgid ""
-"You may not specify more than one sink. You have to specify a boolean value."
-msgstr ""
-
-#: ../src/utils/pactl.c:1103
-msgid ""
-"You may not specify more than one source. You have to specify a boolean "
-"value."
-msgstr ""
-
-#: ../src/utils/pactl.c:1115
-msgid "You have to specify a card name/index and a profile name"
-msgstr ""
-
-#: ../src/utils/pactl.c:1126
-msgid "You have to specify a sink name/index and a port name"
-msgstr ""
-
-#: ../src/utils/pactl.c:1137
-msgid "You have to specify a source name/index and a port name"
-msgstr ""
-
-#: ../src/utils/pactl.c:1149
-msgid "You have to specify a sink name/index and a volume"
-msgstr ""
-
-#: ../src/utils/pactl.c:1154 ../src/utils/pactl.c:1171
-#: ../src/utils/pactl.c:1193 ../src/utils/pactl.c:1209
-#: ../src/utils/pactl.c:1226 ../src/utils/pactl.c:1248
-msgid "Invalid volume specification"
-msgstr ""
-
-#: ../src/utils/pactl.c:1166
-msgid "You have to specify a source name/index and a volume"
-msgstr ""
-
-#: ../src/utils/pactl.c:1183
-msgid "You have to specify a sink input index and a volume"
-msgstr ""
-
-#: ../src/utils/pactl.c:1188
-msgid "Invalid sink input index"
-msgstr ""
-
-#: ../src/utils/pactl.c:1204
-msgid "You have to specify a sink name/index and a mute boolean"
-msgstr ""
-
-#: ../src/utils/pactl.c:1221
-msgid "You have to specify a source name/index and a mute boolean"
-msgstr ""
-
-#: ../src/utils/pactl.c:1238
-msgid "You have to specify a sink input index and a mute boolean"
-msgstr ""
-
-#: ../src/utils/pactl.c:1243
-msgid "Invalid sink input index specification"
-msgstr ""
-
-#: ../src/utils/pactl.c:1262
-msgid "No valid command specified."
-msgstr ""
-
-#: ../src/utils/pax11publish.c:61
-#, c-format
-msgid ""
-"%s [-D display] [-S server] [-O sink] [-I source] [-c file]  [-d|-e|-i|-r]\n"
-"\n"
-" -d    Show current PulseAudio data attached to X11 display (default)\n"
-" -e    Export local PulseAudio data to X11 display\n"
-" -i    Import PulseAudio data from X11 display to local environment "
-"variables and cookie file.\n"
-" -r    Remove PulseAudio data from X11 display\n"
-msgstr ""
-
-#: ../src/utils/pax11publish.c:94
-#, c-format
-msgid "Failed to parse command line.\n"
-msgstr ""
-
-#: ../src/utils/pax11publish.c:108
-#, c-format
-msgid "Server: %s\n"
-msgstr ""
-
-#: ../src/utils/pax11publish.c:110
-#, c-format
-msgid "Source: %s\n"
-msgstr ""
-
-#: ../src/utils/pax11publish.c:112
-#, c-format
-msgid "Sink: %s\n"
-msgstr ""
-
-#: ../src/utils/pax11publish.c:114
-#, c-format
-msgid "Cookie: %s\n"
-msgstr ""
-
-#: ../src/utils/pax11publish.c:132
-#, c-format
-msgid "Failed to parse cookie data\n"
-msgstr ""
-
-#: ../src/utils/pax11publish.c:137
-#, c-format
-msgid "Failed to save cookie data\n"
-msgstr ""
-
-#: ../src/utils/pax11publish.c:152
-#, c-format
-msgid "Failed to load client configuration file.\n"
-msgstr ""
-
-#: ../src/utils/pax11publish.c:157
-#, c-format
-msgid "Failed to read environment configuration data.\n"
-msgstr ""
-
-#: ../src/utils/pax11publish.c:174
-#, c-format
-msgid "Failed to get FQDN.\n"
-msgstr ""
-
-#: ../src/utils/pax11publish.c:194
-#, c-format
-msgid "Failed to load cookie data\n"
-msgstr ""
-
-#: ../src/utils/pax11publish.c:211
-#, c-format
-msgid "Not yet implemented.\n"
-msgstr ""
-
-#: ../src/utils/pacmd.c:69
-msgid "No PulseAudio daemon running, or not running as session daemon."
-msgstr ""
-
-#: ../src/utils/pacmd.c:74
-#, c-format
-msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s"
-msgstr ""
-
-#: ../src/utils/pacmd.c:91
-#, c-format
-msgid "connect(): %s"
-msgstr ""
-
-#: ../src/utils/pacmd.c:99
-msgid "Failed to kill PulseAudio daemon."
-msgstr ""
-
-#: ../src/utils/pacmd.c:107
-msgid "Daemon not responding."
-msgstr ""
-
-#: ../src/utils/pacmd.c:161
-#, c-format
-msgid "poll(): %s"
-msgstr ""
-
-#: ../src/utils/pacmd.c:171 ../src/utils/pacmd.c:188
-#, c-format
-msgid "read(): %s"
-msgstr ""
-
-#: ../src/utils/pacmd.c:207 ../src/utils/pacmd.c:223
-#, c-format
-msgid "write(): %s"
-msgstr ""
-
-#: ../src/pulsecore/lock-autospawn.c:136 ../src/pulsecore/lock-autospawn.c:219
-msgid "Cannot access autospawn lock."
-msgstr ""
-
-#: ../src/modules/alsa/alsa-sink.c:531 ../src/modules/alsa/alsa-sink.c:689
-#, c-format
-msgid ""
-"ALSA woke us up to write new data to the device, but there was actually "
-"nothing to write!\n"
-"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
-"to the ALSA developers.\n"
-"We were woken up with POLLOUT set -- however a subsequent snd_pcm_avail() "
-"returned 0 or another value < min_avail."
-msgstr ""
-
-#: ../src/modules/alsa/alsa-source.c:508 ../src/modules/alsa/alsa-source.c:658
-#, c-format
-msgid ""
-"ALSA woke us up to read new data from the device, but there was actually "
-"nothing to read!\n"
-"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
-"to the ALSA developers.\n"
-"We were woken up with POLLIN set -- however a subsequent snd_pcm_avail() "
-"returned 0 or another value < min_avail."
-msgstr ""
-
-#: ../src/modules/alsa/module-alsa-card.c:152
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2225
-msgid "Off"
-msgstr ""
-
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2181
-msgid "High Fidelity Playback (A2DP)"
-msgstr ""
-
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2195
-msgid "High Fidelity Capture (A2DP)"
-msgstr ""
-
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2210
-msgid "Telephony Duplex (HSP/HFP)"
-msgstr ""
-
-#: ../src/modules/reserve-wrap.c:151
-msgid "PulseAudio Sound Server"
-msgstr ""
diff --git a/po/ru.po b/po/ru.po
deleted file mode 100644
index 1c801b1..0000000
--- a/po/ru.po
+++ /dev/null
@@ -1,2010 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-03 03:04+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2629
-#, c-format
-msgid "%s %s"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:1023
-#, c-format
-msgid ""
-"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
-"ms).\n"
-"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
-"to the ALSA developers."
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:1064
-#, c-format
-msgid ""
-"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
-"lu ms).\n"
-"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
-"to the ALSA developers."
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:1111
-#, c-format
-msgid ""
-"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
-"(%lu ms).\n"
-"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
-"to the ALSA developers."
-msgstr ""
-
-#: ../src/modules/module-ladspa-sink.c:49
-msgid "Virtual LADSPA sink"
-msgstr ""
-
-#: ../src/modules/module-ladspa-sink.c:53
-msgid ""
-"sink_name=<name for the sink> sink_properties=<properties for the sink> "
-"master=<name of sink to filter> format=<sample format> rate=<sample rate> "
-"channels=<number of channels> channel_map=<channel map> plugin=<ladspa "
-"plugin name> label=<ladspa plugin label> control=<comma seperated list of "
-"input control values>"
-msgstr ""
-
-#: ../src/pulsecore/sink.c:2613
-msgid "Internal Audio"
-msgstr ""
-
-#: ../src/pulsecore/sink.c:2618
-msgid "Modem"
-msgstr ""
-
-#: ../src/daemon/ltdl-bind-now.c:124
-msgid "Failed to find original lt_dlopen loader."
-msgstr ""
-
-#: ../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/main.c:141
-#, c-format
-msgid "Got signal %s."
-msgstr ""
-
-#: ../src/daemon/main.c:168
-msgid "Exiting."
-msgstr ""
-
-#: ../src/daemon/main.c:186
-#, c-format
-msgid "Failed to find user '%s'."
-msgstr ""
-
-#: ../src/daemon/main.c:191
-#, c-format
-msgid "Failed to find group '%s'."
-msgstr ""
-
-#: ../src/daemon/main.c:195
-#, c-format
-msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)."
-msgstr ""
-
-#: ../src/daemon/main.c:200
-#, c-format
-msgid "GID of user '%s' and of group '%s' don't match."
-msgstr ""
-
-#: ../src/daemon/main.c:205
-#, c-format
-msgid "Home directory of user '%s' is not '%s', ignoring."
-msgstr ""
-
-#: ../src/daemon/main.c:208 ../src/daemon/main.c:213
-#, c-format
-msgid "Failed to create '%s': %s"
-msgstr ""
-
-#: ../src/daemon/main.c:220
-#, c-format
-msgid "Failed to change group list: %s"
-msgstr ""
-
-#: ../src/daemon/main.c:236
-#, c-format
-msgid "Failed to change GID: %s"
-msgstr ""
-
-#: ../src/daemon/main.c:252
-#, c-format
-msgid "Failed to change UID: %s"
-msgstr ""
-
-#: ../src/daemon/main.c:271
-msgid "Successfully dropped root privileges."
-msgstr ""
-
-#: ../src/daemon/main.c:279
-msgid "System wide mode unsupported on this platform."
-msgstr ""
-
-#: ../src/daemon/main.c:297
-#, c-format
-msgid "setrlimit(%s, (%u, %u)) failed: %s"
-msgstr ""
-
-#: ../src/daemon/main.c:469
-msgid "Failed to parse command line."
-msgstr ""
-
-#: ../src/daemon/main.c:536
-msgid "Daemon not running"
-msgstr ""
-
-#: ../src/daemon/main.c:538
-#, c-format
-msgid "Daemon running as PID %u"
-msgstr ""
-
-#: ../src/daemon/main.c:548
-#, c-format
-msgid "Failed to kill daemon: %s"
-msgstr ""
-
-#: ../src/daemon/main.c:566
-msgid ""
-"This program is not intended to be run as root (unless --system is "
-"specified)."
-msgstr ""
-
-#: ../src/daemon/main.c:568
-msgid "Root privileges required."
-msgstr ""
-
-#: ../src/daemon/main.c:573
-msgid "--start not supported for system instances."
-msgstr ""
-
-#: ../src/daemon/main.c:578
-msgid "Running in system mode, but --disallow-exit not set!"
-msgstr ""
-
-#: ../src/daemon/main.c:581
-msgid "Running in system mode, but --disallow-module-loading not set!"
-msgstr ""
-
-#: ../src/daemon/main.c:584
-msgid "Running in system mode, forcibly disabling SHM mode!"
-msgstr ""
-
-#: ../src/daemon/main.c:589
-msgid "Running in system mode, forcibly disabling exit idle time!"
-msgstr ""
-
-#: ../src/daemon/main.c:616
-msgid "Failed to acquire stdio."
-msgstr ""
-
-#: ../src/daemon/main.c:622
-#, c-format
-msgid "pipe failed: %s"
-msgstr ""
-
-#: ../src/daemon/main.c:627
-#, c-format
-msgid "fork() failed: %s"
-msgstr ""
-
-#: ../src/daemon/main.c:641 ../src/utils/pacat.c:505
-#, c-format
-msgid "read() failed: %s"
-msgstr ""
-
-#: ../src/daemon/main.c:647
-msgid "Daemon startup failed."
-msgstr ""
-
-#: ../src/daemon/main.c:649
-msgid "Daemon startup successful."
-msgstr ""
-
-#: ../src/daemon/main.c:726
-#, c-format
-msgid "This is PulseAudio %s"
-msgstr ""
-
-#: ../src/daemon/main.c:727
-#, c-format
-msgid "Compilation host: %s"
-msgstr ""
-
-#: ../src/daemon/main.c:728
-#, c-format
-msgid "Compilation CFLAGS: %s"
-msgstr ""
-
-#: ../src/daemon/main.c:731
-#, c-format
-msgid "Running on host: %s"
-msgstr ""
-
-#: ../src/daemon/main.c:734
-#, c-format
-msgid "Found %u CPUs."
-msgstr ""
-
-#: ../src/daemon/main.c:736
-#, c-format
-msgid "Page size is %lu bytes"
-msgstr ""
-
-#: ../src/daemon/main.c:739
-msgid "Compiled with Valgrind support: yes"
-msgstr ""
-
-#: ../src/daemon/main.c:741
-msgid "Compiled with Valgrind support: no"
-msgstr ""
-
-#: ../src/daemon/main.c:744
-#, c-format
-msgid "Running in valgrind mode: %s"
-msgstr ""
-
-#: ../src/daemon/main.c:747
-msgid "Optimized build: yes"
-msgstr ""
-
-#: ../src/daemon/main.c:749
-msgid "Optimized build: no"
-msgstr ""
-
-#: ../src/daemon/main.c:753
-msgid "NDEBUG defined, all asserts disabled."
-msgstr ""
-
-#: ../src/daemon/main.c:755
-msgid "FASTPATH defined, only fast path asserts disabled."
-msgstr ""
-
-#: ../src/daemon/main.c:757
-msgid "All asserts enabled."
-msgstr ""
-
-#: ../src/daemon/main.c:761
-msgid "Failed to get machine ID"
-msgstr ""
-
-#: ../src/daemon/main.c:764
-#, c-format
-msgid "Machine ID is %s."
-msgstr ""
-
-#: ../src/daemon/main.c:768
-#, c-format
-msgid "Session ID is %s."
-msgstr ""
-
-#: ../src/daemon/main.c:774
-#, c-format
-msgid "Using runtime directory %s."
-msgstr ""
-
-#: ../src/daemon/main.c:779
-#, c-format
-msgid "Using state directory %s."
-msgstr ""
-
-#: ../src/daemon/main.c:782
-#, c-format
-msgid "Using modules directory %s."
-msgstr ""
-
-#: ../src/daemon/main.c:784
-#, c-format
-msgid "Running in system mode: %s"
-msgstr ""
-
-#: ../src/daemon/main.c:787
-msgid ""
-"OK, so you are running PA in system mode. Please note that you most likely "
-"shouldn't be doing that.\n"
-"If you do it nonetheless then it's your own fault if things don't work as "
-"expected.\n"
-"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an "
-"explanation why system mode is usually a bad idea."
-msgstr ""
-
-#: ../src/daemon/main.c:804
-msgid "pa_pid_file_create() failed."
-msgstr ""
-
-#: ../src/daemon/main.c:814
-msgid "Fresh high-resolution timers available! Bon appetit!"
-msgstr ""
-
-#: ../src/daemon/main.c:816
-msgid ""
-"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
-"resolution timers enabled!"
-msgstr ""
-
-#: ../src/daemon/main.c:839
-msgid "pa_core_new() failed."
-msgstr ""
-
-#: ../src/daemon/main.c:899
-msgid "Failed to initialize daemon."
-msgstr ""
-
-#: ../src/daemon/main.c:904
-msgid "Daemon startup without any loaded modules, refusing to work."
-msgstr ""
-
-#: ../src/daemon/main.c:921
-msgid "Daemon startup complete."
-msgstr ""
-
-#: ../src/daemon/main.c:927
-msgid "Daemon shutdown initiated."
-msgstr ""
-
-#: ../src/daemon/main.c:949
-msgid "Daemon terminated."
-msgstr ""
-
-#: ../src/daemon/cmdline.c:115
-#, c-format
-msgid ""
-"%s [options]\n"
-"\n"
-"COMMANDS:\n"
-"  -h, --help                            Show this help\n"
-"      --version                         Show version\n"
-"      --dump-conf                       Dump default configuration\n"
-"      --dump-modules                    Dump list of available modules\n"
-"      --dump-resample-methods           Dump available resample methods\n"
-"      --cleanup-shm                     Cleanup stale shared memory "
-"segments\n"
-"      --start                           Start the daemon if it is not "
-"running\n"
-"  -k  --kill                            Kill a running daemon\n"
-"      --check                           Check for a running daemon (only "
-"returns exit code)\n"
-"\n"
-"OPTIONS:\n"
-"      --system[=BOOL]                   Run as system-wide instance\n"
-"  -D, --daemonize[=BOOL]                Daemonize after startup\n"
-"      --fail[=BOOL]                     Quit when startup fails\n"
-"      --high-priority[=BOOL]            Try to set high nice level\n"
-"                                        (only available as root, when SUID "
-"or\n"
-"                                        with elevated RLIMIT_NICE)\n"
-"      --realtime[=BOOL]                 Try to enable realtime scheduling\n"
-"                                        (only available as root, when SUID "
-"or\n"
-"                                        with elevated RLIMIT_RTPRIO)\n"
-"      --disallow-module-loading[=BOOL]  Disallow module user requested "
-"module\n"
-"                                        loading/unloading after startup\n"
-"      --disallow-exit[=BOOL]            Disallow user requested exit\n"
-"      --exit-idle-time=SECS             Terminate the daemon when idle and "
-"this\n"
-"                                        time passed\n"
-"      --module-idle-time=SECS           Unload autoloaded modules when idle "
-"and\n"
-"                                        this time passed\n"
-"      --scache-idle-time=SECS           Unload autoloaded samples when idle "
-"and\n"
-"                                        this time passed\n"
-"      --log-level[=LEVEL]               Increase or set verbosity level\n"
-"  -v                                    Increase the verbosity level\n"
-"      --log-target={auto,syslog,stderr} Specify the log target\n"
-"      --log-meta[=BOOL]                 Include code location in log "
-"messages\n"
-"      --log-time[=BOOL]                 Include timestamps in log messages\n"
-"      --log-backtrace=FRAMES            Include a backtrace in log messages\n"
-"  -p, --dl-search-path=PATH             Set the search path for dynamic "
-"shared\n"
-"                                        objects (plugins)\n"
-"      --resample-method=METHOD          Use the specified resampling method\n"
-"                                        (See --dump-resample-methods for\n"
-"                                        possible values)\n"
-"      --use-pid-file[=BOOL]             Create a PID file\n"
-"      --no-cpu-limit[=BOOL]             Do not install CPU load limiter on\n"
-"                                        platforms that support it.\n"
-"      --disable-shm[=BOOL]              Disable shared memory support.\n"
-"\n"
-"STARTUP SCRIPT:\n"
-"  -L, --load=\"MODULE ARGUMENTS\"         Load the specified plugin module "
-"with\n"
-"                                        the specified argument\n"
-"  -F, --file=FILENAME                   Run the specified script\n"
-"  -C                                    Open a command line on the running "
-"TTY\n"
-"                                        after startup\n"
-"\n"
-"  -n                                    Don't load default script file\n"
-msgstr ""
-
-#: ../src/daemon/cmdline.c:247
-msgid "--daemonize expects boolean argument"
-msgstr ""
-
-#: ../src/daemon/cmdline.c:254
-msgid "--fail expects boolean argument"
-msgstr ""
-
-#: ../src/daemon/cmdline.c:264
-msgid ""
-"--log-level expects log level argument (either numeric in range 0..4 or one "
-"of debug, info, notice, warn, error)."
-msgstr ""
-
-#: ../src/daemon/cmdline.c:276
-msgid "--high-priority expects boolean argument"
-msgstr ""
-
-#: ../src/daemon/cmdline.c:283
-msgid "--realtime expects boolean argument"
-msgstr ""
-
-#: ../src/daemon/cmdline.c:290
-msgid "--disallow-module-loading expects boolean argument"
-msgstr ""
-
-#: ../src/daemon/cmdline.c:297
-msgid "--disallow-exit expects boolean argument"
-msgstr ""
-
-#: ../src/daemon/cmdline.c:304
-msgid "--use-pid-file expects boolean argument"
-msgstr ""
-
-#: ../src/daemon/cmdline.c:321
-msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'."
-msgstr ""
-
-#: ../src/daemon/cmdline.c:328
-msgid "--log-time expects boolean argument"
-msgstr ""
-
-#: ../src/daemon/cmdline.c:335
-msgid "--log-meta expects boolean argument"
-msgstr ""
-
-#: ../src/daemon/cmdline.c:354
-#, c-format
-msgid "Invalid resample method '%s'."
-msgstr ""
-
-#: ../src/daemon/cmdline.c:361
-msgid "--system expects boolean argument"
-msgstr ""
-
-#: ../src/daemon/cmdline.c:368
-msgid "--no-cpu-limit expects boolean argument"
-msgstr ""
-
-#: ../src/daemon/cmdline.c:375
-msgid "--disable-shm expects boolean argument"
-msgstr ""
-
-#: ../src/daemon/dumpmodules.c:60
-#, c-format
-msgid "Name: %s\n"
-msgstr ""
-
-#: ../src/daemon/dumpmodules.c:63
-#, c-format
-msgid "No module information available\n"
-msgstr ""
-
-#: ../src/daemon/dumpmodules.c:66
-#, c-format
-msgid "Version: %s\n"
-msgstr ""
-
-#: ../src/daemon/dumpmodules.c:68
-#, c-format
-msgid "Description: %s\n"
-msgstr ""
-
-#: ../src/daemon/dumpmodules.c:70
-#, c-format
-msgid "Author: %s\n"
-msgstr ""
-
-#: ../src/daemon/dumpmodules.c:72
-#, c-format
-msgid "Usage: %s\n"
-msgstr ""
-
-#: ../src/daemon/dumpmodules.c:73
-#, c-format
-msgid "Load Once: %s\n"
-msgstr ""
-
-#: ../src/daemon/dumpmodules.c:75
-#, c-format
-msgid "DEPRECATION WARNING: %s\n"
-msgstr ""
-
-#: ../src/daemon/dumpmodules.c:79
-#, c-format
-msgid "Path: %s\n"
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:232
-#, c-format
-msgid "[%s:%u] Invalid log target '%s'."
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:248
-#, c-format
-msgid "[%s:%u] Invalid log level '%s'."
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:264
-#, c-format
-msgid "[%s:%u] Invalid resample method '%s'."
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:287
-#, c-format
-msgid "[%s:%u] Invalid rlimit '%s'."
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:294
-#, c-format
-msgid "[%s:%u] rlimit not supported on this platform."
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:310
-#, c-format
-msgid "[%s:%u] Invalid sample format '%s'."
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:328
-#, c-format
-msgid "[%s:%u] Invalid sample rate '%s'."
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:352
-#, c-format
-msgid "[%s:%u] Invalid sample channels '%s'."
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:370
-#, c-format
-msgid "[%s:%u] Invalid channel map '%s'."
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:388
-#, c-format
-msgid "[%s:%u] Invalid number of fragments '%s'."
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:406
-#, c-format
-msgid "[%s:%u] Invalid fragment size '%s'."
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:424
-#, c-format
-msgid "[%s:%u] Invalid nice level '%s'."
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:546
-#, c-format
-msgid "Failed to open configuration file: %s"
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:562
-msgid ""
-"The specified default channel map has a different number of channels than "
-"the specified default number of channels."
-msgstr ""
-
-#: ../src/daemon/daemon-conf.c:638
-#, c-format
-msgid "### Read from configuration file: %s ###\n"
-msgstr ""
-
-#: ../src/daemon/caps.c:62
-msgid "Cleaning up privileges."
-msgstr ""
-
-#: ../src/daemon/pulseaudio.desktop.in.h:1
-msgid "PulseAudio Sound System"
-msgstr ""
-
-#: ../src/daemon/pulseaudio.desktop.in.h:2
-msgid "Start the PulseAudio Sound System"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:757
-msgid "Mono"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:107
-msgid "Front Center"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:108
-msgid "Front Left"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:109
-msgid "Front Right"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:111
-msgid "Rear Center"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:112
-msgid "Rear Left"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:113
-msgid "Rear Right"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:115
-msgid "Low Frequency Emmiter"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:117
-msgid "Front Left-of-center"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:118
-msgid "Front Right-of-center"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:120
-msgid "Side Left"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:121
-msgid "Side Right"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:123
-msgid "Auxiliary 0"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:124
-msgid "Auxiliary 1"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:125
-msgid "Auxiliary 2"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:126
-msgid "Auxiliary 3"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:127
-msgid "Auxiliary 4"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:128
-msgid "Auxiliary 5"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:129
-msgid "Auxiliary 6"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:130
-msgid "Auxiliary 7"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:131
-msgid "Auxiliary 8"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:132
-msgid "Auxiliary 9"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:133
-msgid "Auxiliary 10"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:134
-msgid "Auxiliary 11"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:135
-msgid "Auxiliary 12"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:136
-msgid "Auxiliary 13"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:137
-msgid "Auxiliary 14"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:138
-msgid "Auxiliary 15"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:139
-msgid "Auxiliary 16"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:140
-msgid "Auxiliary 17"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:141
-msgid "Auxiliary 18"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:142
-msgid "Auxiliary 19"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:143
-msgid "Auxiliary 20"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:144
-msgid "Auxiliary 21"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:145
-msgid "Auxiliary 22"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:146
-msgid "Auxiliary 23"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:147
-msgid "Auxiliary 24"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:148
-msgid "Auxiliary 25"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:149
-msgid "Auxiliary 26"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:150
-msgid "Auxiliary 27"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:151
-msgid "Auxiliary 28"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:152
-msgid "Auxiliary 29"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:153
-msgid "Auxiliary 30"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:154
-msgid "Auxiliary 31"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:156
-msgid "Top Center"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:158
-msgid "Top Front Center"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:159
-msgid "Top Front Left"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:160
-msgid "Top Front Right"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:162
-msgid "Top Rear Center"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:163
-msgid "Top Rear Left"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:164
-msgid "Top Rear Right"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:484 ../src/pulse/sample.c:170
-#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:311
-#: ../src/pulse/volume.c:331 ../src/pulse/volume.c:361
-msgid "(invalid)"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:761
-msgid "Stereo"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:766
-msgid "Surround 4.0"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:772
-msgid "Surround 4.1"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:778
-msgid "Surround 5.0"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:784
-msgid "Surround 5.1"
-msgstr ""
-
-#: ../src/pulse/channelmap.c:791
-msgid "Surround 7.1"
-msgstr ""
-
-#: ../src/pulse/error.c:43
-msgid "OK"
-msgstr ""
-
-#: ../src/pulse/error.c:44
-msgid "Access denied"
-msgstr ""
-
-#: ../src/pulse/error.c:45
-msgid "Unknown command"
-msgstr ""
-
-#: ../src/pulse/error.c:46
-msgid "Invalid argument"
-msgstr ""
-
-#: ../src/pulse/error.c:47
-msgid "Entity exists"
-msgstr ""
-
-#: ../src/pulse/error.c:48
-msgid "No such entity"
-msgstr ""
-
-#: ../src/pulse/error.c:49
-msgid "Connection refused"
-msgstr ""
-
-#: ../src/pulse/error.c:50
-msgid "Protocol error"
-msgstr ""
-
-#: ../src/pulse/error.c:51
-msgid "Timeout"
-msgstr ""
-
-#: ../src/pulse/error.c:52
-msgid "No authorization key"
-msgstr ""
-
-#: ../src/pulse/error.c:53
-msgid "Internal error"
-msgstr ""
-
-#: ../src/pulse/error.c:54
-msgid "Connection terminated"
-msgstr ""
-
-#: ../src/pulse/error.c:55
-msgid "Entity killed"
-msgstr ""
-
-#: ../src/pulse/error.c:56
-msgid "Invalid server"
-msgstr ""
-
-#: ../src/pulse/error.c:57
-msgid "Module initalization failed"
-msgstr ""
-
-#: ../src/pulse/error.c:58
-msgid "Bad state"
-msgstr ""
-
-#: ../src/pulse/error.c:59
-msgid "No data"
-msgstr ""
-
-#: ../src/pulse/error.c:60
-msgid "Incompatible protocol version"
-msgstr ""
-
-#: ../src/pulse/error.c:61
-msgid "Too large"
-msgstr ""
-
-#: ../src/pulse/error.c:62
-msgid "Not supported"
-msgstr ""
-
-#: ../src/pulse/error.c:63
-msgid "Unknown error code"
-msgstr ""
-
-#: ../src/pulse/error.c:64
-msgid "No such extension"
-msgstr ""
-
-#: ../src/pulse/error.c:65
-msgid "Obsolete functionality"
-msgstr ""
-
-#: ../src/pulse/error.c:66
-msgid "Missing implementation"
-msgstr ""
-
-#: ../src/pulse/error.c:67
-msgid "Client forked"
-msgstr ""
-
-#: ../src/pulse/sample.c:172
-#, c-format
-msgid "%s %uch %uHz"
-msgstr ""
-
-#: ../src/pulse/sample.c:184
-#, c-format
-msgid "%0.1f GiB"
-msgstr ""
-
-#: ../src/pulse/sample.c:186
-#, c-format
-msgid "%0.1f MiB"
-msgstr ""
-
-#: ../src/pulse/sample.c:188
-#, c-format
-msgid "%0.1f KiB"
-msgstr ""
-
-#: ../src/pulse/sample.c:190
-#, c-format
-msgid "%u B"
-msgstr ""
-
-#: ../src/pulse/client-conf-x11.c:55 ../src/utils/pax11publish.c:100
-msgid "XOpenDisplay() failed"
-msgstr ""
-
-#: ../src/pulse/client-conf-x11.c:93
-msgid "Failed to parse cookie data"
-msgstr ""
-
-#: ../src/pulse/client-conf.c:111
-#, c-format
-msgid "Failed to open configuration file '%s': %s"
-msgstr ""
-
-#: ../src/pulse/context.c:550
-msgid "No cookie loaded. Attempting to connect without."
-msgstr ""
-
-#: ../src/pulse/context.c:693
-#, c-format
-msgid "fork(): %s"
-msgstr ""
-
-#: ../src/pulse/context.c:748
-#, c-format
-msgid "waitpid(): %s"
-msgstr ""
-
-#: ../src/pulse/context.c:1435
-#, c-format
-msgid "Received message for unknown extension '%s'"
-msgstr ""
-
-#: ../src/utils/pacat.c:108
-#, c-format
-msgid "Failed to drain stream: %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:113
-msgid "Playback stream drained."
-msgstr ""
-
-#: ../src/utils/pacat.c:123
-msgid "Draining connection to server."
-msgstr ""
-
-#: ../src/utils/pacat.c:136
-#, c-format
-msgid "pa_stream_drain(): %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:159
-#, c-format
-msgid "pa_stream_write() failed: %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:197
-#, c-format
-msgid "pa_stream_begin_write() failed: %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:237 ../src/utils/pacat.c:267
-#, c-format
-msgid "pa_stream_peek() failed: %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:307
-msgid "Stream successfully created."
-msgstr ""
-
-#: ../src/utils/pacat.c:310
-#, c-format
-msgid "pa_stream_get_buffer_attr() failed: %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:314
-#, c-format
-msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u"
-msgstr ""
-
-#: ../src/utils/pacat.c:317
-#, c-format
-msgid "Buffer metrics: maxlength=%u, fragsize=%u"
-msgstr ""
-
-#: ../src/utils/pacat.c:321
-#, c-format
-msgid "Using sample spec '%s', channel map '%s'."
-msgstr ""
-
-#: ../src/utils/pacat.c:325
-#, c-format
-msgid "Connected to device %s (%u, %ssuspended)."
-msgstr ""
-
-#: ../src/utils/pacat.c:335
-#, c-format
-msgid "Stream error: %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:345
-#, c-format
-msgid "Stream device suspended.%s"
-msgstr ""
-
-#: ../src/utils/pacat.c:347
-#, c-format
-msgid "Stream device resumed.%s"
-msgstr ""
-
-#: ../src/utils/pacat.c:355
-#, c-format
-msgid "Stream underrun.%s"
-msgstr ""
-
-#: ../src/utils/pacat.c:362
-#, c-format
-msgid "Stream overrun.%s"
-msgstr ""
-
-#: ../src/utils/pacat.c:369
-#, c-format
-msgid "Stream started.%s"
-msgstr ""
-
-#: ../src/utils/pacat.c:376
-#, c-format
-msgid "Stream moved to device %s (%u, %ssuspended).%s"
-msgstr ""
-
-#: ../src/utils/pacat.c:376
-msgid "not "
-msgstr ""
-
-#: ../src/utils/pacat.c:383
-#, c-format
-msgid "Stream buffer attributes changed.%s"
-msgstr ""
-
-#: ../src/utils/pacat.c:416
-#, c-format
-msgid "Connection established.%s"
-msgstr ""
-
-#: ../src/utils/pacat.c:419
-#, c-format
-msgid "pa_stream_new() failed: %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:447
-#, c-format
-msgid "pa_stream_connect_playback() failed: %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:453
-#, c-format
-msgid "pa_stream_connect_record() failed: %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:467 ../src/utils/pactl.c:857
-#, c-format
-msgid "Connection failure: %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:500
-msgid "Got EOF."
-msgstr ""
-
-#: ../src/utils/pacat.c:537
-#, c-format
-msgid "write() failed: %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:558
-msgid "Got signal, exiting."
-msgstr ""
-
-#: ../src/utils/pacat.c:572
-#, c-format
-msgid "Failed to get latency: %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:577
-#, c-format
-msgid "Time: %0.3f sec; Latency: %0.0f usec.  \r"
-msgstr ""
-
-#: ../src/utils/pacat.c:595
-#, c-format
-msgid "pa_stream_update_timing_info() failed: %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:605
-#, c-format
-msgid ""
-"%s [options]\n"
-"\n"
-"  -h, --help                            Show this help\n"
-"      --version                         Show version\n"
-"\n"
-"  -r, --record                          Create a connection for recording\n"
-"  -p, --playback                        Create a connection for playback\n"
-"\n"
-"  -v, --verbose                         Enable verbose operations\n"
-"\n"
-"  -s, --server=SERVER                   The name of the server to connect "
-"to\n"
-"  -d, --device=DEVICE                   The name of the sink/source to "
-"connect to\n"
-"  -n, --client-name=NAME                How to call this client on the "
-"server\n"
-"      --stream-name=NAME                How to call this stream on the "
-"server\n"
-"      --volume=VOLUME                   Specify the initial (linear) volume "
-"in range 0...65536\n"
-"      --rate=SAMPLERATE                 The sample rate in Hz (defaults to "
-"44100)\n"
-"      --format=SAMPLEFORMAT             The sample type, one of s16le, "
-"s16be, u8, float32le,\n"
-"                                        float32be, ulaw, alaw, s32le, s32be, "
-"s24le, s24be,\n"
-"                                        s24-32le, s24-32be (defaults to "
-"s16ne)\n"
-"      --channels=CHANNELS               The number of channels, 1 for mono, "
-"2 for stereo\n"
-"                                        (defaults to 2)\n"
-"      --channel-map=CHANNELMAP          Channel map to use instead of the "
-"default\n"
-"      --fix-format                      Take the sample format from the sink "
-"the stream is\n"
-"                                        being connected to.\n"
-"      --fix-rate                        Take the sampling rate from the sink "
-"the stream is\n"
-"                                        being connected to.\n"
-"      --fix-channels                    Take the number of channels and the "
-"channel map\n"
-"                                        from the sink the stream is being "
-"connected to.\n"
-"      --no-remix                        Don't upmix or downmix channels.\n"
-"      --no-remap                        Map channels by index instead of "
-"name.\n"
-"      --latency=BYTES                   Request the specified latency in "
-"bytes.\n"
-"      --process-time=BYTES              Request the specified process time "
-"per request in bytes.\n"
-"      --property=PROPERTY=VALUE         Set the specified property to the "
-"specified value.\n"
-"      --raw                             Record/play raw PCM data.\n"
-"      --file-format=FFORMAT             Record/play formatted PCM data.\n"
-"      --list-file-formats               List available file formats.\n"
-msgstr ""
-
-#: ../src/utils/pacat.c:727
-#, c-format
-msgid ""
-"pacat %s\n"
-"Compiled with libpulse %s\n"
-"Linked with libpulse %s\n"
-msgstr ""
-
-#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:953
-#, c-format
-msgid "Invalid client name '%s'"
-msgstr ""
-
-#: ../src/utils/pacat.c:776
-#, c-format
-msgid "Invalid stream name '%s'"
-msgstr ""
-
-#: ../src/utils/pacat.c:813
-#, c-format
-msgid "Invalid channel map '%s'"
-msgstr ""
-
-#: ../src/utils/pacat.c:842
-#, c-format
-msgid "Invalid latency specification '%s'"
-msgstr ""
-
-#: ../src/utils/pacat.c:849
-#, c-format
-msgid "Invalid process time specification '%s'"
-msgstr ""
-
-#: ../src/utils/pacat.c:861
-#, c-format
-msgid "Invalid property '%s'"
-msgstr ""
-
-#: ../src/utils/pacat.c:878
-#, c-format
-msgid "Unknown file format %s."
-msgstr ""
-
-#: ../src/utils/pacat.c:897
-msgid "Invalid sample specification"
-msgstr ""
-
-#: ../src/utils/pacat.c:907
-#, c-format
-msgid "open(): %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:912
-#, c-format
-msgid "dup2(): %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:919
-msgid "Too many arguments."
-msgstr ""
-
-#: ../src/utils/pacat.c:930
-msgid "Failed to generate sample specification for file."
-msgstr ""
-
-#: ../src/utils/pacat.c:950
-msgid "Failed to open audio file."
-msgstr ""
-
-#: ../src/utils/pacat.c:956
-msgid ""
-"Warning: specified sample specification will be overwritten with "
-"specification from file."
-msgstr ""
-
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:997
-msgid "Failed to determine sample specification from file."
-msgstr ""
-
-#: ../src/utils/pacat.c:968
-msgid "Warning: Failed to determine channel map from file."
-msgstr ""
-
-#: ../src/utils/pacat.c:979
-msgid "Channel map doesn't match sample specification"
-msgstr ""
-
-#: ../src/utils/pacat.c:990
-msgid "Warning: failed to write channel map to file."
-msgstr ""
-
-#: ../src/utils/pacat.c:1005
-#, c-format
-msgid ""
-"Opening a %s stream with sample specification '%s' and channel map '%s'."
-msgstr ""
-
-#: ../src/utils/pacat.c:1006
-msgid "recording"
-msgstr ""
-
-#: ../src/utils/pacat.c:1006
-msgid "playback"
-msgstr ""
-
-#: ../src/utils/pacat.c:1032 ../src/utils/pactl.c:1267
-msgid "pa_mainloop_new() failed."
-msgstr ""
-
-#: ../src/utils/pacat.c:1051
-msgid "io_new() failed."
-msgstr ""
-
-#: ../src/utils/pacat.c:1058 ../src/utils/pactl.c:1279
-msgid "pa_context_new() failed."
-msgstr ""
-
-#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1285
-#, c-format
-msgid "pa_context_connect() failed: %s"
-msgstr ""
-
-#: ../src/utils/pacat.c:1072
-msgid "pa_context_rttime_new() failed."
-msgstr ""
-
-#: ../src/utils/pacat.c:1079 ../src/utils/pactl.c:1290
-msgid "pa_mainloop_run() failed."
-msgstr ""
-
-#: ../src/utils/pasuspender.c:81
-#, c-format
-msgid "fork(): %s\n"
-msgstr ""
-
-#: ../src/utils/pasuspender.c:92
-#, c-format
-msgid "execvp(): %s\n"
-msgstr ""
-
-#: ../src/utils/pasuspender.c:109
-#, c-format
-msgid "Failure to suspend: %s\n"
-msgstr ""
-
-#: ../src/utils/pasuspender.c:124
-#, c-format
-msgid "Failure to resume: %s\n"
-msgstr ""
-
-#: ../src/utils/pasuspender.c:147
-#, c-format
-msgid "WARNING: Sound server is not local, not suspending.\n"
-msgstr ""
-
-#: ../src/utils/pasuspender.c:159
-#, c-format
-msgid "Connection failure: %s\n"
-msgstr ""
-
-#: ../src/utils/pasuspender.c:176
-#, c-format
-msgid "Got SIGINT, exiting.\n"
-msgstr ""
-
-#: ../src/utils/pasuspender.c:194
-#, c-format
-msgid "WARNING: Child process terminated by signal %u\n"
-msgstr ""
-
-#: ../src/utils/pasuspender.c:212
-#, c-format
-msgid ""
-"%s [options] ... \n"
-"\n"
-"  -h, --help                            Show this help\n"
-"      --version                         Show version\n"
-"  -s, --server=SERVER                   The name of the server to connect "
-"to\n"
-"\n"
-msgstr ""
-
-#: ../src/utils/pasuspender.c:248
-#, c-format
-msgid ""
-"pasuspender %s\n"
-"Compiled with libpulse %s\n"
-"Linked with libpulse %s\n"
-msgstr ""
-
-#: ../src/utils/pasuspender.c:277
-#, c-format
-msgid "pa_mainloop_new() failed.\n"
-msgstr ""
-
-#: ../src/utils/pasuspender.c:290
-#, c-format
-msgid "pa_context_new() failed.\n"
-msgstr ""
-
-#: ../src/utils/pasuspender.c:298
-#, c-format
-msgid "pa_mainloop_run() failed.\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:135
-#, c-format
-msgid "Failed to get statistics: %s"
-msgstr ""
-
-#: ../src/utils/pactl.c:141
-#, c-format
-msgid "Currently in use: %u blocks containing %s bytes total.\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:144
-#, c-format
-msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:147
-#, c-format
-msgid "Sample cache size: %s\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:156
-#, c-format
-msgid "Failed to get server information: %s"
-msgstr ""
-
-#: ../src/utils/pactl.c:164
-#, c-format
-msgid ""
-"User name: %s\n"
-"Host Name: %s\n"
-"Server Name: %s\n"
-"Server Version: %s\n"
-"Default Sample Specification: %s\n"
-"Default Channel Map: %s\n"
-"Default Sink: %s\n"
-"Default Source: %s\n"
-"Cookie: %08x\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:205
-#, c-format
-msgid "Failed to get sink information: %s"
-msgstr ""
-
-#: ../src/utils/pactl.c:221
-#, c-format
-msgid ""
-"Sink #%u\n"
-"\tState: %s\n"
-"\tName: %s\n"
-"\tDescription: %s\n"
-"\tDriver: %s\n"
-"\tSample Specification: %s\n"
-"\tChannel Map: %s\n"
-"\tOwner Module: %u\n"
-"\tMute: %s\n"
-"\tVolume: %s%s%s\n"
-"\t        balance %0.2f\n"
-"\tBase Volume: %s%s%s\n"
-"\tMonitor Source: %s\n"
-"\tLatency: %0.0f usec, configured %0.0f usec\n"
-"\tFlags: %s%s%s%s%s%s\n"
-"\tProperties:\n"
-"\t\t%s\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:268 ../src/utils/pactl.c:360
-#, c-format
-msgid "\tPorts:\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:274 ../src/utils/pactl.c:366
-#, c-format
-msgid "\tActive Port: %s\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:297
-#, c-format
-msgid "Failed to get source information: %s"
-msgstr ""
-
-#: ../src/utils/pactl.c:313
-#, c-format
-msgid ""
-"Source #%u\n"
-"\tState: %s\n"
-"\tName: %s\n"
-"\tDescription: %s\n"
-"\tDriver: %s\n"
-"\tSample Specification: %s\n"
-"\tChannel Map: %s\n"
-"\tOwner Module: %u\n"
-"\tMute: %s\n"
-"\tVolume: %s%s%s\n"
-"\t        balance %0.2f\n"
-"\tBase Volume: %s%s%s\n"
-"\tMonitor of Sink: %s\n"
-"\tLatency: %0.0f usec, configured %0.0f usec\n"
-"\tFlags: %s%s%s%s%s%s\n"
-"\tProperties:\n"
-"\t\t%s\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:345 ../src/utils/pactl.c:401 ../src/utils/pactl.c:436
-#: ../src/utils/pactl.c:473 ../src/utils/pactl.c:532 ../src/utils/pactl.c:533
-#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:587 ../src/utils/pactl.c:588
-#: ../src/utils/pactl.c:594 ../src/utils/pactl.c:637 ../src/utils/pactl.c:638
-#: ../src/utils/pactl.c:645
-msgid "n/a"
-msgstr ""
-
-#: ../src/utils/pactl.c:375
-#, c-format
-msgid "Failed to get module information: %s"
-msgstr ""
-
-#: ../src/utils/pactl.c:393
-#, c-format
-msgid ""
-"Module #%u\n"
-"\tName: %s\n"
-"\tArgument: %s\n"
-"\tUsage counter: %s\n"
-"\tProperties:\n"
-"\t\t%s\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:412
-#, c-format
-msgid "Failed to get client information: %s"
-msgstr ""
-
-#: ../src/utils/pactl.c:430
-#, c-format
-msgid ""
-"Client #%u\n"
-"\tDriver: %s\n"
-"\tOwner Module: %s\n"
-"\tProperties:\n"
-"\t\t%s\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:447
-#, c-format
-msgid "Failed to get card information: %s"
-msgstr ""
-
-#: ../src/utils/pactl.c:465
-#, c-format
-msgid ""
-"Card #%u\n"
-"\tName: %s\n"
-"\tDriver: %s\n"
-"\tOwner Module: %s\n"
-"\tProperties:\n"
-"\t\t%s\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:479
-#, c-format
-msgid "\tProfiles:\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:485
-#, c-format
-msgid "\tActive Profile: %s\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:496
-#, c-format
-msgid "Failed to get sink input information: %s"
-msgstr ""
-
-#: ../src/utils/pactl.c:515
-#, c-format
-msgid ""
-"Sink Input #%u\n"
-"\tDriver: %s\n"
-"\tOwner Module: %s\n"
-"\tClient: %s\n"
-"\tSink: %u\n"
-"\tSample Specification: %s\n"
-"\tChannel Map: %s\n"
-"\tMute: %s\n"
-"\tVolume: %s\n"
-"\t        %s\n"
-"\t        balance %0.2f\n"
-"\tBuffer Latency: %0.0f usec\n"
-"\tSink Latency: %0.0f usec\n"
-"\tResample method: %s\n"
-"\tProperties:\n"
-"\t\t%s\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:554
-#, c-format
-msgid "Failed to get source output information: %s"
-msgstr ""
-
-#: ../src/utils/pactl.c:574
-#, c-format
-msgid ""
-"Source Output #%u\n"
-"\tDriver: %s\n"
-"\tOwner Module: %s\n"
-"\tClient: %s\n"
-"\tSource: %u\n"
-"\tSample Specification: %s\n"
-"\tChannel Map: %s\n"
-"\tBuffer Latency: %0.0f usec\n"
-"\tSource Latency: %0.0f usec\n"
-"\tResample method: %s\n"
-"\tProperties:\n"
-"\t\t%s\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:605
-#, c-format
-msgid "Failed to get sample information: %s"
-msgstr ""
-
-#: ../src/utils/pactl.c:623
-#, c-format
-msgid ""
-"Sample #%u\n"
-"\tName: %s\n"
-"\tSample Specification: %s\n"
-"\tChannel Map: %s\n"
-"\tVolume: %s\n"
-"\t        %s\n"
-"\t        balance %0.2f\n"
-"\tDuration: %0.1fs\n"
-"\tSize: %s\n"
-"\tLazy: %s\n"
-"\tFilename: %s\n"
-"\tProperties:\n"
-"\t\t%s\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:653 ../src/utils/pactl.c:663
-#, c-format
-msgid "Failure: %s"
-msgstr ""
-
-#: ../src/utils/pactl.c:687
-#, c-format
-msgid "Failed to upload sample: %s"
-msgstr ""
-
-#: ../src/utils/pactl.c:704
-msgid "Premature end of file"
-msgstr ""
-
-#: ../src/utils/pactl.c:863
-msgid "Got SIGINT, exiting."
-msgstr ""
-
-#: ../src/utils/pactl.c:869
-#, c-format
-msgid ""
-"%s [options] stat\n"
-"%s [options] list\n"
-"%s [options] exit\n"
-"%s [options] upload-sample FILENAME [NAME]\n"
-"%s [options] play-sample NAME [SINK]\n"
-"%s [options] remove-sample NAME\n"
-"%s [options] move-sink-input SINKINPUT SINK\n"
-"%s [options] move-source-output SOURCEOUTPUT SOURCE\n"
-"%s [options] load-module NAME [ARGS ...]\n"
-"%s [options] unload-module MODULE\n"
-"%s [options] suspend-sink SINK 1|0\n"
-"%s [options] suspend-source SOURCE 1|0\n"
-"%s [options] set-card-profile CARD PROFILE\n"
-"%s [options] set-sink-port SINK PORT\n"
-"%s [options] set-source-port SOURCE PORT\n"
-"%s [options] set-sink-volume SINK VOLUME\n"
-"%s [options] set-source-volume SOURCE VOLUME\n"
-"%s [options] set-sink-input-volume SINKINPUT VOLUME\n"
-"%s [options] set-sink-mute SINK 1|0\n"
-"%s [options] set-source-mute SOURCE 1|0\n"
-"%s [options] set-sink-input-mute SINKINPUT 1|0\n"
-"\n"
-"  -h, --help                            Show this help\n"
-"      --version                         Show version\n"
-"\n"
-"  -s, --server=SERVER                   The name of the server to connect "
-"to\n"
-"  -n, --client-name=NAME                How to call this client on the "
-"server\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:933
-#, c-format
-msgid ""
-"pactl %s\n"
-"Compiled with libpulse %s\n"
-"Linked with libpulse %s\n"
-msgstr ""
-
-#: ../src/utils/pactl.c:979
-msgid "Please specify a sample file to load"
-msgstr ""
-
-#: ../src/utils/pactl.c:992
-msgid "Failed to open sound file."
-msgstr ""
-
-#: ../src/utils/pactl.c:1004
-msgid "Warning: Failed to determine sample specification from file."
-msgstr ""
-
-#: ../src/utils/pactl.c:1014
-msgid "You have to specify a sample name to play"
-msgstr ""
-
-#: ../src/utils/pactl.c:1026
-msgid "You have to specify a sample name to remove"
-msgstr ""
-
-#: ../src/utils/pactl.c:1035
-msgid "You have to specify a sink input index and a sink"
-msgstr ""
-
-#: ../src/utils/pactl.c:1045
-msgid "You have to specify a source output index and a source"
-msgstr ""
-
-#: ../src/utils/pactl.c:1060
-msgid "You have to specify a module name and arguments."
-msgstr ""
-
-#: ../src/utils/pactl.c:1080
-msgid "You have to specify a module index"
-msgstr ""
-
-#: ../src/utils/pactl.c:1090
-msgid ""
-"You may not specify more than one sink. You have to specify a boolean value."
-msgstr ""
-
-#: ../src/utils/pactl.c:1103
-msgid ""
-"You may not specify more than one source. You have to specify a boolean "
-"value."
-msgstr ""
-
-#: ../src/utils/pactl.c:1115
-msgid "You have to specify a card name/index and a profile name"
-msgstr ""
-
-#: ../src/utils/pactl.c:1126
-msgid "You have to specify a sink name/index and a port name"
-msgstr ""
-
-#: ../src/utils/pactl.c:1137
-msgid "You have to specify a source name/index and a port name"
-msgstr ""
-
-#: ../src/utils/pactl.c:1149
-msgid "You have to specify a sink name/index and a volume"
-msgstr ""
-
-#: ../src/utils/pactl.c:1154 ../src/utils/pactl.c:1171
-#: ../src/utils/pactl.c:1193 ../src/utils/pactl.c:1209
-#: ../src/utils/pactl.c:1226 ../src/utils/pactl.c:1248
-msgid "Invalid volume specification"
-msgstr ""
-
-#: ../src/utils/pactl.c:1166
-msgid "You have to specify a source name/index and a volume"
-msgstr ""
-
-#: ../src/utils/pactl.c:1183
-msgid "You have to specify a sink input index and a volume"
-msgstr ""
-
-#: ../src/utils/pactl.c:1188
-msgid "Invalid sink input index"
-msgstr ""
-
-#: ../src/utils/pactl.c:1204
-msgid "You have to specify a sink name/index and a mute boolean"
-msgstr ""
-
-#: ../src/utils/pactl.c:1221
-msgid "You have to specify a source name/index and a mute boolean"
-msgstr ""
-
-#: ../src/utils/pactl.c:1238
-msgid "You have to specify a sink input index and a mute boolean"
-msgstr ""
-
-#: ../src/utils/pactl.c:1243
-msgid "Invalid sink input index specification"
-msgstr ""
-
-#: ../src/utils/pactl.c:1262
-msgid "No valid command specified."
-msgstr ""
-
-#: ../src/utils/pax11publish.c:61
-#, c-format
-msgid ""
-"%s [-D display] [-S server] [-O sink] [-I source] [-c file]  [-d|-e|-i|-r]\n"
-"\n"
-" -d    Show current PulseAudio data attached to X11 display (default)\n"
-" -e    Export local PulseAudio data to X11 display\n"
-" -i    Import PulseAudio data from X11 display to local environment "
-"variables and cookie file.\n"
-" -r    Remove PulseAudio data from X11 display\n"
-msgstr ""
-
-#: ../src/utils/pax11publish.c:94
-#, c-format
-msgid "Failed to parse command line.\n"
-msgstr ""
-
-#: ../src/utils/pax11publish.c:108
-#, c-format
-msgid "Server: %s\n"
-msgstr ""
-
-#: ../src/utils/pax11publish.c:110
-#, c-format
-msgid "Source: %s\n"
-msgstr ""
-
-#: ../src/utils/pax11publish.c:112
-#, c-format
-msgid "Sink: %s\n"
-msgstr ""
-
-#: ../src/utils/pax11publish.c:114
-#, c-format
-msgid "Cookie: %s\n"
-msgstr ""
-
-#: ../src/utils/pax11publish.c:132
-#, c-format
-msgid "Failed to parse cookie data\n"
-msgstr ""
-
-#: ../src/utils/pax11publish.c:137
-#, c-format
-msgid "Failed to save cookie data\n"
-msgstr ""
-
-#: ../src/utils/pax11publish.c:152
-#, c-format
-msgid "Failed to load client configuration file.\n"
-msgstr ""
-
-#: ../src/utils/pax11publish.c:157
-#, c-format
-msgid "Failed to read environment configuration data.\n"
-msgstr ""
-
-#: ../src/utils/pax11publish.c:174
-#, c-format
-msgid "Failed to get FQDN.\n"
-msgstr ""
-
-#: ../src/utils/pax11publish.c:194
-#, c-format
-msgid "Failed to load cookie data\n"
-msgstr ""
-
-#: ../src/utils/pax11publish.c:211
-#, c-format
-msgid "Not yet implemented.\n"
-msgstr ""
-
-#: ../src/utils/pacmd.c:69
-msgid "No PulseAudio daemon running, or not running as session daemon."
-msgstr ""
-
-#: ../src/utils/pacmd.c:74
-#, c-format
-msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s"
-msgstr ""
-
-#: ../src/utils/pacmd.c:91
-#, c-format
-msgid "connect(): %s"
-msgstr ""
-
-#: ../src/utils/pacmd.c:99
-msgid "Failed to kill PulseAudio daemon."
-msgstr ""
-
-#: ../src/utils/pacmd.c:107
-msgid "Daemon not responding."
-msgstr ""
-
-#: ../src/utils/pacmd.c:161
-#, c-format
-msgid "poll(): %s"
-msgstr ""
-
-#: ../src/utils/pacmd.c:171 ../src/utils/pacmd.c:188
-#, c-format
-msgid "read(): %s"
-msgstr ""
-
-#: ../src/utils/pacmd.c:207 ../src/utils/pacmd.c:223
-#, c-format
-msgid "write(): %s"
-msgstr ""
-
-#: ../src/pulsecore/lock-autospawn.c:136 ../src/pulsecore/lock-autospawn.c:219
-msgid "Cannot access autospawn lock."
-msgstr ""
-
-#: ../src/modules/alsa/alsa-sink.c:531 ../src/modules/alsa/alsa-sink.c:689
-#, c-format
-msgid ""
-"ALSA woke us up to write new data to the device, but there was actually "
-"nothing to write!\n"
-"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
-"to the ALSA developers.\n"
-"We were woken up with POLLOUT set -- however a subsequent snd_pcm_avail() "
-"returned 0 or another value < min_avail."
-msgstr ""
-
-#: ../src/modules/alsa/alsa-source.c:508 ../src/modules/alsa/alsa-source.c:658
-#, c-format
-msgid ""
-"ALSA woke us up to read new data from the device, but there was actually "
-"nothing to read!\n"
-"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
-"to the ALSA developers.\n"
-"We were woken up with POLLIN set -- however a subsequent snd_pcm_avail() "
-"returned 0 or another value < min_avail."
-msgstr ""
-
-#: ../src/modules/alsa/module-alsa-card.c:152
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2225
-msgid "Off"
-msgstr ""
-
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2181
-msgid "High Fidelity Playback (A2DP)"
-msgstr ""
-
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2195
-msgid "High Fidelity Capture (A2DP)"
-msgstr ""
-
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2210
-msgid "Telephony Duplex (HSP/HFP)"
-msgstr ""
-
-#: ../src/modules/reserve-wrap.c:151
-msgid "PulseAudio Sound Server"
-msgstr ""

commit f3879f8f3773255695a42a090771a570c36fb3b1
Author: Lennart Poettering <lennart at poettering.net>
Date:   Thu Sep 10 01:48:28 2009 +0200

    i18n: run make update-po

diff --git a/po/as.po b/po/as.po
index f8b759c..6978dea 100644
--- a/po/as.po
+++ b/po/as.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pulseaudio.master-tx.pulseaudio.as\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-03 03:04+0200\n"
+"POT-Creation-Date: 2009-09-10 01:47+0200\n"
 "PO-Revision-Date: 2009-04-08 12:35+0530\n"
 "Last-Translator: Amitakhya Phukan <aphukan at fedoraproject.org>\n"
 "Language-Team: Assamese <fedora-trans-as at redhat.com>\n"
@@ -16,12 +16,12 @@ msgstr ""
 "X-Generator: Lokalize 0.3\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 
-#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2629
+#: ../src/modules/alsa/alsa-util.c:858 ../src/pulsecore/sink.c:2629
 #, c-format
 msgid "%s %s"
 msgstr ""
 
-#: ../src/modules/alsa/alsa-util.c:1023
+#: ../src/modules/alsa/alsa-util.c:1106
 #, c-format
 msgid ""
 "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -33,7 +33,7 @@ msgstr ""
 "অতি সম্ভৱ এইটো ALSA চালক '%s' ৰ এটা বাগ । অনুগ্ৰহ কৰি এই সমস্যা ALSA বিকাশকক "
 "জনাওক ।"
 
-#: ../src/modules/alsa/alsa-util.c:1064
+#: ../src/modules/alsa/alsa-util.c:1147
 #, c-format
 msgid ""
 "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -45,7 +45,7 @@ msgstr ""
 "অতি সম্ভৱ এইটো ALSA চালক '%s' ৰ এটা বাগ । অনুগ্ৰহ কৰি এই সমস্যা ALSA বিকাশকক "
 "জনাওক ।"
 
-#: ../src/modules/alsa/alsa-util.c:1111
+#: ../src/modules/alsa/alsa-util.c:1194
 #, c-format
 msgid ""
 "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -57,6 +57,14 @@ msgstr ""
 "অতি সম্ভৱ এইটো ALSA চালক '%s' ৰ এটা বাগ । অনুগ্ৰহ কৰি এই সমস্যা ALSA বিকাশকক "
 "জনাওক ।"
 
+#: ../src/modules/module-always-sink.c:39
+msgid "Always keeps at least one sink loaded even if it's a null one"
+msgstr ""
+
+#: ../src/modules/module-always-sink.c:83
+msgid "Dummy Output"
+msgstr ""
+
 #: ../src/modules/module-ladspa-sink.c:49
 msgid "Virtual LADSPA sink"
 msgstr ""
@@ -70,6 +78,15 @@ msgid ""
 "input control values>"
 msgstr ""
 
+#: ../src/modules/module-null-sink.c:55
+msgid "Clocked NULL sink"
+msgstr ""
+
+#: ../src/modules/module-null-sink.c:291
+#, fuzzy
+msgid "Null Output"
+msgstr "নিৰ্গম %s"
+
 #: ../src/pulsecore/sink.c:2613
 msgid "Internal Audio"
 msgstr "আভ্যন্তৰীণ অ'ডিঅ'"
@@ -221,7 +238,7 @@ msgstr "pipe বিফল: %s"
 msgid "fork() failed: %s"
 msgstr "fork() বিফল: %s"
 
-#: ../src/daemon/main.c:641 ../src/utils/pacat.c:505
+#: ../src/daemon/main.c:641 ../src/utils/pacat.c:504
 #, c-format
 msgid "read() failed: %s"
 msgstr "read() বিফল: %s"
@@ -931,8 +948,8 @@ msgid "Top Rear Right"
 msgstr "ওপৰত পিছত সোঁফালে"
 
 #: ../src/pulse/channelmap.c:484 ../src/pulse/sample.c:170
-#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:311
-#: ../src/pulse/volume.c:331 ../src/pulse/volume.c:361
+#: ../src/pulse/volume.c:295 ../src/pulse/volume.c:321
+#: ../src/pulse/volume.c:341 ../src/pulse/volume.c:371
 msgid "(invalid)"
 msgstr "(অবৈধ)"
 
@@ -1226,54 +1243,54 @@ msgstr "not "
 msgid "Stream buffer attributes changed.%s"
 msgstr "স্ট্ৰিম প্ৰশমকৰ গুণ পৰিবৰ্তিত হৈছে । %s \n"
 
-#: ../src/utils/pacat.c:416
+#: ../src/utils/pacat.c:415
 #, fuzzy, c-format
 msgid "Connection established.%s"
 msgstr "সংযোগ স্থাপিত হৈছে ।%s \n"
 
-#: ../src/utils/pacat.c:419
+#: ../src/utils/pacat.c:418
 #, fuzzy, c-format
 msgid "pa_stream_new() failed: %s"
 msgstr "pa_stream_new() ব্যৰ্থ: %s\n"
 
-#: ../src/utils/pacat.c:447
+#: ../src/utils/pacat.c:446
 #, fuzzy, c-format
 msgid "pa_stream_connect_playback() failed: %s"
 msgstr "pa_stream_connect_playback() ব্যৰ্থ: %s\n"
 
-#: ../src/utils/pacat.c:453
+#: ../src/utils/pacat.c:452
 #, fuzzy, c-format
 msgid "pa_stream_connect_record() failed: %s"
 msgstr "pa_stream_connect_record() ব্যৰ্থ: %s\n"
 
-#: ../src/utils/pacat.c:467 ../src/utils/pactl.c:857
+#: ../src/utils/pacat.c:466 ../src/utils/pactl.c:857
 #, fuzzy, c-format
 msgid "Connection failure: %s"
 msgstr "<b>সংযোগৰ মোড</b>: %s<br>\n"
 
-#: ../src/utils/pacat.c:500
+#: ../src/utils/pacat.c:499
 #, fuzzy
 msgid "Got EOF."
 msgstr "EOF পোৱা গ'ল ।\n"
 
-#: ../src/utils/pacat.c:537
+#: ../src/utils/pacat.c:536
 #, fuzzy, c-format
 msgid "write() failed: %s"
 msgstr "write() ব্যৰ্থ: %s\n"
 
-#: ../src/utils/pacat.c:558
+#: ../src/utils/pacat.c:557
 #, fuzzy
 msgid "Got signal, exiting."
 msgstr "চিগ্নেল পোৱা গ'ল, প্ৰস্থান কৰা হৈছে ।\n"
 
-#: ../src/utils/pacat.c:572
+#: ../src/utils/pacat.c:571
 #, fuzzy, c-format
 msgid "Failed to get latency: %s"
 msgstr "latency পাবলৈ ব্যৰ্থ: %s\n"
 
-#: ../src/utils/pacat.c:577
-#, c-format
-msgid "Time: %0.3f sec; Latency: %0.0f usec.  \r"
+#: ../src/utils/pacat.c:576
+#, fuzzy, c-format
+msgid "Time: %0.3f sec; Latency: %0.0f usec."
 msgstr "সময়: %0.3f sec; Latency: %0.0f usec.  \r"
 
 #: ../src/utils/pacat.c:595
@@ -1405,133 +1422,133 @@ msgstr ""
 msgid "Invalid client name '%s'"
 msgstr "চেনেল মেপ '%s' বৈধ নহয়\n"
 
-#: ../src/utils/pacat.c:776
+#: ../src/utils/pacat.c:775
 #, fuzzy, c-format
 msgid "Invalid stream name '%s'"
 msgstr "resample পদ্ধতি '%s' বৈধ নহয় ।"
 
-#: ../src/utils/pacat.c:813
+#: ../src/utils/pacat.c:812
 #, fuzzy, c-format
 msgid "Invalid channel map '%s'"
 msgstr "চেনেল মেপ '%s' বৈধ নহয়\n"
 
-#: ../src/utils/pacat.c:842
+#: ../src/utils/pacat.c:841
 #, fuzzy, c-format
 msgid "Invalid latency specification '%s'"
 msgstr "অবৈধ latency নিৰ্ধাৰণ '%s'\n"
 
-#: ../src/utils/pacat.c:849
+#: ../src/utils/pacat.c:848
 #, fuzzy, c-format
 msgid "Invalid process time specification '%s'"
 msgstr "অবৈধ প্ৰক্ৰিয়াৰ সময়ৰ নিৰ্ধাৰণ '%s'\n"
 
-#: ../src/utils/pacat.c:861
+#: ../src/utils/pacat.c:860
 #, fuzzy, c-format
 msgid "Invalid property '%s'"
 msgstr "resample পদ্ধতি '%s' বৈধ নহয় ।"
 
-#: ../src/utils/pacat.c:878
+#: ../src/utils/pacat.c:877
 #, c-format
 msgid "Unknown file format %s."
 msgstr ""
 
-#: ../src/utils/pacat.c:897
+#: ../src/utils/pacat.c:896
 #, fuzzy
 msgid "Invalid sample specification"
 msgstr "অবৈধ চানেকি নিৰ্ধাৰিত\n"
 
-#: ../src/utils/pacat.c:907
+#: ../src/utils/pacat.c:906
 #, fuzzy, c-format
 msgid "open(): %s"
 msgstr "open(): %s\n"
 
-#: ../src/utils/pacat.c:912
+#: ../src/utils/pacat.c:911
 #, fuzzy, c-format
 msgid "dup2(): %s"
 msgstr "dup2(): %s\n"
 
-#: ../src/utils/pacat.c:919
+#: ../src/utils/pacat.c:918
 #, fuzzy
 msgid "Too many arguments."
 msgstr "অত্যাধিক তৰ্ক ।\n"
 
-#: ../src/utils/pacat.c:930
+#: ../src/utils/pacat.c:929
 #, fuzzy
 msgid "Failed to generate sample specification for file."
 msgstr "চানেকি সংক্ৰান্ত তথ্য প্ৰাপ্ত কৰিবলৈ ব্যৰ্থ: %s\n"
 
-#: ../src/utils/pacat.c:950
+#: ../src/utils/pacat.c:949
 #, fuzzy
 msgid "Failed to open audio file."
 msgstr "শব্দেৰ নথিপত্ৰ খুলিবলৈ ব্যৰ্থ ।\n"
 
-#: ../src/utils/pacat.c:956
+#: ../src/utils/pacat.c:955
 #, fuzzy
 msgid ""
 "Warning: specified sample specification will be overwritten with "
 "specification from file."
 msgstr "এটা %s স্ট্ৰিম চানেকি নিৰ্ধাৰণ '%s' ৰ সৈতে খোলা হৈছে ।\n"
 
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:997
+#: ../src/utils/pacat.c:958 ../src/utils/pactl.c:997
 #, fuzzy
 msgid "Failed to determine sample specification from file."
 msgstr "চানেকি সংক্ৰান্ত তথ্য প্ৰাপ্ত কৰিবলৈ ব্যৰ্থ: %s\n"
 
-#: ../src/utils/pacat.c:968
+#: ../src/utils/pacat.c:967
 #, fuzzy
 msgid "Warning: Failed to determine channel map from file."
 msgstr "এটা %s স্ট্ৰিম চানেকি নিৰ্ধাৰণ '%s' ৰ সৈতে খোলা হৈছে ।\n"
 
-#: ../src/utils/pacat.c:979
+#: ../src/utils/pacat.c:978
 #, fuzzy
 msgid "Channel map doesn't match sample specification"
 msgstr "চেনেল মেপ আৰু নথিপত্ৰ অমিল ।\n"
 
-#: ../src/utils/pacat.c:990
+#: ../src/utils/pacat.c:989
 #, fuzzy
 msgid "Warning: failed to write channel map to file."
 msgstr "এটা %s স্ট্ৰিম চানেকি নিৰ্ধাৰণ '%s' ৰ সৈতে খোলা হৈছে ।\n"
 
-#: ../src/utils/pacat.c:1005
+#: ../src/utils/pacat.c:1004
 #, fuzzy, c-format
 msgid ""
 "Opening a %s stream with sample specification '%s' and channel map '%s'."
 msgstr "এটা %s স্ট্ৰিম চানেকি নিৰ্ধাৰণ '%s' ৰ সৈতে খোলা হৈছে ।\n"
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid "recording"
 msgstr "ৰেকৰ্ড কৰা হৈছে"
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid "playback"
 msgstr "প্লে-বেক"
 
-#: ../src/utils/pacat.c:1032 ../src/utils/pactl.c:1267
+#: ../src/utils/pacat.c:1031 ../src/utils/pactl.c:1267
 #, fuzzy
 msgid "pa_mainloop_new() failed."
 msgstr "pa_mainloop_new() ব্যৰ্থ ।\n"
 
-#: ../src/utils/pacat.c:1051
+#: ../src/utils/pacat.c:1050
 #, fuzzy
 msgid "io_new() failed."
 msgstr "io_new() ব্যৰ্থ ।\n"
 
-#: ../src/utils/pacat.c:1058 ../src/utils/pactl.c:1279
+#: ../src/utils/pacat.c:1057 ../src/utils/pactl.c:1279
 #, fuzzy
 msgid "pa_context_new() failed."
 msgstr "pa_context_new() ব্যৰ্থ ।\n"
 
-#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1285
+#: ../src/utils/pacat.c:1065 ../src/utils/pactl.c:1285
 #, c-format
 msgid "pa_context_connect() failed: %s"
 msgstr "pa_context_connect() ব্যৰ্থ: %s"
 
-#: ../src/utils/pacat.c:1072
+#: ../src/utils/pacat.c:1071
 #, fuzzy
 msgid "pa_context_rttime_new() failed."
 msgstr "pa_context_new() ব্যৰ্থ ।\n"
 
-#: ../src/utils/pacat.c:1079 ../src/utils/pactl.c:1290
+#: ../src/utils/pacat.c:1078 ../src/utils/pactl.c:1290
 #, fuzzy
 msgid "pa_mainloop_run() failed."
 msgstr "pa_mainloop_run() ব্যৰ্থ ।\n"
@@ -2291,7 +2308,7 @@ msgstr "write(): %s"
 msgid "Cannot access autospawn lock."
 msgstr "autospawn লক প্ৰয়োগ কৰিবলৈ ব্যৰ্থ ।"
 
-#: ../src/modules/alsa/alsa-sink.c:531 ../src/modules/alsa/alsa-sink.c:689
+#: ../src/modules/alsa/alsa-sink.c:530 ../src/modules/alsa/alsa-sink.c:689
 #, c-format
 msgid ""
 "ALSA woke us up to write new data to the device, but there was actually "
@@ -2307,7 +2324,7 @@ msgstr ""
 "POLLOUT নিৰ্ধাৰিত হোৱাৰি পিছতো আমি উথিলো -- কিন্তু তাৰ পিছৰ snd_pcm_avail() এ ০ "
 "দিলে বা অন্য এটা মান < min_avail."
 
-#: ../src/modules/alsa/alsa-source.c:508 ../src/modules/alsa/alsa-source.c:658
+#: ../src/modules/alsa/alsa-source.c:506 ../src/modules/alsa/alsa-source.c:656
 #, c-format
 msgid ""
 "ALSA woke us up to read new data from the device, but there was actually "
@@ -2324,20 +2341,20 @@ msgstr ""
 "দিলে বা অন্য এটা মান < min_avail."
 
 #: ../src/modules/alsa/module-alsa-card.c:152
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2225
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2228
 msgid "Off"
 msgstr "বন্ধ"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2181
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2184
 msgid "High Fidelity Playback (A2DP)"
 msgstr "High Fidelity Playback (A2DP)"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2195
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2198
 #, fuzzy
 msgid "High Fidelity Capture (A2DP)"
 msgstr "High Fidelity Playback (A2DP)"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2210
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2213
 msgid "Telephony Duplex (HSP/HFP)"
 msgstr "Telephony Duplex (HSP/HFP)"
 
@@ -2519,9 +2536,6 @@ msgstr "PulseAudio ধ্বনি সেৱক"
 #~ msgid "Output %s + Input %s"
 #~ msgstr "নিৰ্গম %s + নিবেশ %s"
 
-#~ msgid "Output %s"
-#~ msgstr "নিৰ্গম %s"
-
 #~ msgid "Input %s"
 #~ msgstr "নিবেশ %s"
 
diff --git a/po/bn_IN.po b/po/bn_IN.po
index dfa5733..3a2f79c 100644
--- a/po/bn_IN.po
+++ b/po/bn_IN.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pulseaudio.master-tx.bn_IN\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-04 12:41+0000\n"
+"POT-Creation-Date: 2009-09-10 01:47+0200\n"
 "PO-Revision-Date: 2009-09-04 19:33+0530\n"
 "Last-Translator: Runa Bhattacharjee <runab at redhat.com>\n"
 "Language-Team: Bengali INDIA <anubad at lists.ankur.org.in>\n"
@@ -18,12 +18,12 @@ msgstr ""
 "X-Generator: KBabel 1.11.4\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2629
+#: ../src/modules/alsa/alsa-util.c:858 ../src/pulsecore/sink.c:2629
 #, c-format
 msgid "%s %s"
 msgstr "%s %s"
 
-#: ../src/modules/alsa/alsa-util.c:1023
+#: ../src/modules/alsa/alsa-util.c:1106
 #, c-format
 msgid ""
 "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -35,7 +35,7 @@ msgstr ""
 "সম্ভবত এটি ALSA ড্রাইভার '%s'-র একটি বাগ। অনুগ্রহ করে এই সমস্যা সম্বন্ধে ALSA "
 "ডিভেলপরদের সূচিত করুন।"
 
-#: ../src/modules/alsa/alsa-util.c:1064
+#: ../src/modules/alsa/alsa-util.c:1147
 #, c-format
 msgid ""
 "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -47,7 +47,7 @@ msgstr ""
 "সম্ভবত এটি ALSA ড্রাইভার '%s'-র একটি বাগ। অনুগ্রহ করে এই সমস্যা সম্বন্ধে ALSA "
 "ডিভেলপরদের সূচিত করুন।"
 
-#: ../src/modules/alsa/alsa-util.c:1111
+#: ../src/modules/alsa/alsa-util.c:1194
 #, c-format
 msgid ""
 "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -59,6 +59,14 @@ msgstr ""
 "সম্ভবত এটি ALSA ড্রাইভার '%s'-র একটি বাগ। অনুগ্রহ করে এই সমস্যা সম্বন্ধে ALSA "
 "ডিভেলপরদের সূচিত করুন।"
 
+#: ../src/modules/module-always-sink.c:39
+msgid "Always keeps at least one sink loaded even if it's a null one"
+msgstr ""
+
+#: ../src/modules/module-always-sink.c:83
+msgid "Dummy Output"
+msgstr ""
+
 #: ../src/modules/module-ladspa-sink.c:49
 msgid "Virtual LADSPA sink"
 msgstr "ভার্চুয়াল LADSPA sink"
@@ -77,6 +85,14 @@ msgstr ""
 "plugin name> label=<ladspa plugin label> control=<comma seperated list of "
 "input control values>"
 
+#: ../src/modules/module-null-sink.c:55
+msgid "Clocked NULL sink"
+msgstr ""
+
+#: ../src/modules/module-null-sink.c:291
+msgid "Null Output"
+msgstr ""
+
 #: ../src/pulsecore/sink.c:2613
 msgid "Internal Audio"
 msgstr "অভ্যন্তরীণ অডিও"
@@ -129,7 +145,8 @@ msgstr "'%s' ব্যবহারকারীর ও '%s' দলের GID-র
 #: ../src/daemon/main.c:205
 #, c-format
 msgid "Home directory of user '%s' is not '%s', ignoring."
-msgstr "'%s' ব্যবহারকারী ব্যক্তিগত ডিরেক্টরি রূপে '%s' ধার্য করা হয়নি, অগ্রাহ্য করা হবে।"
+msgstr ""
+"'%s' ব্যবহারকারী ব্যক্তিগত ডিরেক্টরি রূপে '%s' ধার্য করা হয়নি, অগ্রাহ্য করা হবে।"
 
 #: ../src/daemon/main.c:208 ../src/daemon/main.c:213
 #, c-format
@@ -186,7 +203,8 @@ msgstr "ডেমন kill করতে ব্যর্থ: %s"
 msgid ""
 "This program is not intended to be run as root (unless --system is "
 "specified)."
-msgstr "root পরিচয়ে এই প্রোগ্রামটি সঞ্চালিত হওয়া উচিত নয় (যদি না --system উল্লিখিত হয়)।"
+msgstr ""
+"root পরিচয়ে এই প্রোগ্রামটি সঞ্চালিত হওয়া উচিত নয় (যদি না --system উল্লিখিত হয়)।"
 
 #: ../src/daemon/main.c:568
 msgid "Root privileges required."
@@ -229,7 +247,7 @@ msgstr "পাইপ বিফল: %s"
 msgid "fork() failed: %s"
 msgstr "fork() বিফল: %s"
 
-#: ../src/daemon/main.c:641 ../src/utils/pacat.c:505
+#: ../src/daemon/main.c:641 ../src/utils/pacat.c:504
 #, c-format
 msgid "read() failed: %s"
 msgstr "read() বিফল: %s"
@@ -377,7 +395,8 @@ msgstr "ডেমন আরম্ভ করতে ব্যর্থ।"
 
 #: ../src/daemon/main.c:904
 msgid "Daemon startup without any loaded modules, refusing to work."
-msgstr "লোড করা মডিউল বিনা ডেমন আরম্ভ করা হয়েছে এবং কোনো কর্ম সঞ্চালন করা সম্ভব নয়।"
+msgstr ""
+"লোড করা মডিউল বিনা ডেমন আরম্ভ করা হয়েছে এবং কোনো কর্ম সঞ্চালন করা সম্ভব নয়।"
 
 #: ../src/daemon/main.c:921
 msgid "Daemon startup complete."
@@ -948,8 +967,8 @@ msgid "Top Rear Right"
 msgstr "উপরে পিছনে ডানদিকে"
 
 #: ../src/pulse/channelmap.c:484 ../src/pulse/sample.c:170
-#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:311
-#: ../src/pulse/volume.c:331 ../src/pulse/volume.c:361
+#: ../src/pulse/volume.c:295 ../src/pulse/volume.c:321
+#: ../src/pulse/volume.c:341 ../src/pulse/volume.c:371
 msgid "(invalid)"
 msgstr "(অবৈধ)"
 
@@ -1243,53 +1262,53 @@ msgstr "না "
 msgid "Stream buffer attributes changed.%s"
 msgstr "স্ট্রিম বাফারের অ্যাট্রিবিউট পরিবর্তিত হয়েছে। %s"
 
-#: ../src/utils/pacat.c:416
+#: ../src/utils/pacat.c:415
 #, c-format
 msgid "Connection established.%s"
 msgstr "সংযোগ স্থাপিত হয়েছে।%s"
 
-#: ../src/utils/pacat.c:419
+#: ../src/utils/pacat.c:418
 #, c-format
 msgid "pa_stream_new() failed: %s"
 msgstr "pa_stream_new() ব্যর্থ: %s"
 
-#: ../src/utils/pacat.c:447
+#: ../src/utils/pacat.c:446
 #, c-format
 msgid "pa_stream_connect_playback() failed: %s"
 msgstr "pa_stream_connect_playback() ব্যর্থ: %s"
 
-#: ../src/utils/pacat.c:453
+#: ../src/utils/pacat.c:452
 #, c-format
 msgid "pa_stream_connect_record() failed: %s"
 msgstr "pa_stream_connect_record() ব্যর্থ: %s"
 
-#: ../src/utils/pacat.c:467 ../src/utils/pactl.c:857
+#: ../src/utils/pacat.c:466 ../src/utils/pactl.c:857
 #, c-format
 msgid "Connection failure: %s"
 msgstr "সংযোগ বিফল: %s"
 
-#: ../src/utils/pacat.c:500
+#: ../src/utils/pacat.c:499
 msgid "Got EOF."
 msgstr "ফাইলের সমাপ্তি সনাক্ত হয়েছে।"
 
-#: ../src/utils/pacat.c:537
+#: ../src/utils/pacat.c:536
 #, c-format
 msgid "write() failed: %s"
 msgstr "write() ব্যর্থ: %s"
 
-#: ../src/utils/pacat.c:558
+#: ../src/utils/pacat.c:557
 msgid "Got signal, exiting."
 msgstr "সিগন্যাল প্রাপ্ত হয়েছে, প্রস্থান করা হবে।"
 
 # latency here = delay (technical term
-#: ../src/utils/pacat.c:572
+#: ../src/utils/pacat.c:571
 #, c-format
 msgid "Failed to get latency: %s"
 msgstr "লেটেন্সির পরিমাণ প্রাপ্ত করতে ব্যর্থ: %s"
 
-#: ../src/utils/pacat.c:577
-#, c-format
-msgid "Time: %0.3f sec; Latency: %0.0f usec.  \r"
+#: ../src/utils/pacat.c:576
+#, fuzzy, c-format
+msgid "Time: %0.3f sec; Latency: %0.0f usec."
 msgstr "সময়: %0.3f সেকেন্ড; লেটেন্সি: %0.0f usec.  \r"
 
 #: ../src/utils/pacat.c:595
@@ -1429,63 +1448,63 @@ msgstr ""
 msgid "Invalid client name '%s'"
 msgstr "ক্লায়েন্টের নাম '%s' বৈধ নয়"
 
-#: ../src/utils/pacat.c:776
+#: ../src/utils/pacat.c:775
 #, c-format
 msgid "Invalid stream name '%s'"
 msgstr "স্ট্রিমের নাম '%s' বৈধ নয়।"
 
-#: ../src/utils/pacat.c:813
+#: ../src/utils/pacat.c:812
 #, c-format
 msgid "Invalid channel map '%s'"
 msgstr "চ্যানেল ম্যাপ '%s' বৈধ নয়"
 
-#: ../src/utils/pacat.c:842
+#: ../src/utils/pacat.c:841
 #, c-format
 msgid "Invalid latency specification '%s'"
 msgstr "লেটেন্সির জন্য নির্ধারিত বৈশিষ্ট্য '%s' বৈধ নয়"
 
-#: ../src/utils/pacat.c:849
+#: ../src/utils/pacat.c:848
 #, c-format
 msgid "Invalid process time specification '%s'"
 msgstr "প্রসেসের সময়ের বৈশিষ্ট্য '%s' বৈধ নয়"
 
-#: ../src/utils/pacat.c:861
+#: ../src/utils/pacat.c:860
 #, c-format
 msgid "Invalid property '%s'"
 msgstr "বৈশিষ্ট্য '%s' বৈধ নয়।"
 
-#: ../src/utils/pacat.c:878
+#: ../src/utils/pacat.c:877
 #, c-format
 msgid "Unknown file format %s."
 msgstr "ফাইলের অজানা বিন্যাস %s।"
 
-#: ../src/utils/pacat.c:897
+#: ../src/utils/pacat.c:896
 msgid "Invalid sample specification"
 msgstr "অবৈধ স্যাম্পেল নির্ধারিত"
 
-#: ../src/utils/pacat.c:907
+#: ../src/utils/pacat.c:906
 #, c-format
 msgid "open(): %s"
 msgstr "open(): %s"
 
-#: ../src/utils/pacat.c:912
+#: ../src/utils/pacat.c:911
 #, c-format
 msgid "dup2(): %s"
 msgstr "dup2(): %s"
 
-#: ../src/utils/pacat.c:919
+#: ../src/utils/pacat.c:918
 msgid "Too many arguments."
 msgstr "অত্যাধিক আর্গুমেন্ট।"
 
-#: ../src/utils/pacat.c:930
+#: ../src/utils/pacat.c:929
 msgid "Failed to generate sample specification for file."
 msgstr "স্যাম্পেলের মান নির্ধারণের ফাইল নির্মাণ করতে ব্যর্থ"
 
-#: ../src/utils/pacat.c:950
+#: ../src/utils/pacat.c:949
 msgid "Failed to open audio file."
 msgstr "শব্দের ফাইল খুলতে ব্যর্থ।"
 
-#: ../src/utils/pacat.c:956
+#: ../src/utils/pacat.c:955
 msgid ""
 "Warning: specified sample specification will be overwritten with "
 "specification from file."
@@ -1493,59 +1512,60 @@ msgstr ""
 "সতর্কবার্তা: চিহ্নিত স্যাম্পেল নির্ধারণের ফাইলটির তথ্য, এই ফাইলের থেকে উপলব্ধ তথ্য "
 "দ্বারা প্রতিস্থাপিত হবে।"
 
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:997
+#: ../src/utils/pacat.c:958 ../src/utils/pactl.c:997
 msgid "Failed to determine sample specification from file."
 msgstr "ফাইল থেকে স্যাম্পেল সংক্রান্ত তথ্য প্রাপ্ত করতে ব্যর্থ।"
 
-#: ../src/utils/pacat.c:968
+#: ../src/utils/pacat.c:967
 msgid "Warning: Failed to determine channel map from file."
 msgstr "সতর্কবার্তা: ফাইল থেকে চ্যানেলের ম্যাপ নির্ধারণ করতে ব্যর্থ।"
 
-#: ../src/utils/pacat.c:979
+#: ../src/utils/pacat.c:978
 msgid "Channel map doesn't match sample specification"
 msgstr "চ্যানেলের ম্যাপ ও স্যাম্পেলের নির্ধারিত মানে গরমিল"
 
-#: ../src/utils/pacat.c:990
+#: ../src/utils/pacat.c:989
 msgid "Warning: failed to write channel map to file."
 msgstr "সতর্কবার্তা: ফাইলের মধ্যে চ্যানেলের ম্যাপ লিখতে ব্যর্থ।"
 
-#: ../src/utils/pacat.c:1005
+#: ../src/utils/pacat.c:1004
 #, c-format
-msgid "Opening a %s stream with sample specification '%s' and channel map '%s'."
+msgid ""
+"Opening a %s stream with sample specification '%s' and channel map '%s'."
 msgstr ""
 "একটি %s স্ট্রিম খোলা হচ্ছে। এটির জন্য '%s'-র স্যাম্পেলের নির্ধারিত মান ও '%s' "
 "চ্যানেলের ম্যাপ প্রয়োগ করা হবে।"
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid "recording"
 msgstr "রেকর্ড করা হচ্ছে"
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid "playback"
 msgstr "প্লে-ব্যাক"
 
-#: ../src/utils/pacat.c:1032 ../src/utils/pactl.c:1267
+#: ../src/utils/pacat.c:1031 ../src/utils/pactl.c:1267
 msgid "pa_mainloop_new() failed."
 msgstr "pa_mainloop_new() ব্যর্থ।"
 
-#: ../src/utils/pacat.c:1051
+#: ../src/utils/pacat.c:1050
 msgid "io_new() failed."
 msgstr "io_new() ব্যর্থ।"
 
-#: ../src/utils/pacat.c:1058 ../src/utils/pactl.c:1279
+#: ../src/utils/pacat.c:1057 ../src/utils/pactl.c:1279
 msgid "pa_context_new() failed."
 msgstr "pa_context_new() ব্যর্থ।"
 
-#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1285
+#: ../src/utils/pacat.c:1065 ../src/utils/pactl.c:1285
 #, c-format
 msgid "pa_context_connect() failed: %s"
 msgstr "pa_context_connect() ব্যর্থ: %s"
 
-#: ../src/utils/pacat.c:1072
+#: ../src/utils/pacat.c:1071
 msgid "pa_context_rttime_new() failed."
 msgstr "pa_context_rttime_new() ব্যর্থ।"
 
-#: ../src/utils/pacat.c:1079 ../src/utils/pactl.c:1290
+#: ../src/utils/pacat.c:1078 ../src/utils/pactl.c:1290
 msgid "pa_mainloop_run() failed."
 msgstr "pa_mainloop_run() ব্যর্থ।"
 
@@ -1647,7 +1667,8 @@ msgstr "বর্তমানে ব্যবহৃত: %u ব্লকের 
 #: ../src/utils/pactl.c:144
 #, c-format
 msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n"
-msgstr "সম্পূর্ণ কর্মকালের জন্য বরাদ্দ করা হয়েছে: %u ব্লকের মধ্যে উপস্থিত সর্বমোট %s বাইট।\n"
+msgstr ""
+"সম্পূর্ণ কর্মকালের জন্য বরাদ্দ করা হয়েছে: %u ব্লকের মধ্যে উপস্থিত সর্বমোট %s বাইট।\n"
 
 #: ../src/utils/pactl.c:147
 #, c-format
@@ -2105,7 +2126,8 @@ msgid "You have to specify a module index"
 msgstr "মডিউল ইন্ডেক্স নির্ধারণ করা আবশ্যক"
 
 #: ../src/utils/pactl.c:1090
-msgid "You may not specify more than one sink. You have to specify a boolean value."
+msgid ""
+"You may not specify more than one sink. You have to specify a boolean value."
 msgstr "একাধিক সিংক নির্ধারণ করা যাবে না। বুলিয়েন মান নির্ধারণ করা আবশ্যক।"
 
 #: ../src/utils/pactl.c:1103
@@ -2288,7 +2310,7 @@ msgstr "write(): %s"
 msgid "Cannot access autospawn lock."
 msgstr "autospawn লক প্রয়োগ করতে ব্যর্থ।"
 
-#: ../src/modules/alsa/alsa-sink.c:531 ../src/modules/alsa/alsa-sink.c:689
+#: ../src/modules/alsa/alsa-sink.c:530 ../src/modules/alsa/alsa-sink.c:689
 #, c-format
 msgid ""
 "ALSA woke us up to write new data to the device, but there was actually "
@@ -2305,7 +2327,7 @@ msgstr ""
 "POLLOUT set দ্বারা চেতাবনী সৃষ্টি হয়েছে -- পরবর্তী snd_pcm_avail() থেকে 0 অথবা < "
 "min_avail-র থেকে কম অন্য একটি মান প্রাপ্ত হয়েছে।"
 
-#: ../src/modules/alsa/alsa-source.c:508 ../src/modules/alsa/alsa-source.c:658
+#: ../src/modules/alsa/alsa-source.c:506 ../src/modules/alsa/alsa-source.c:656
 #, c-format
 msgid ""
 "ALSA woke us up to read new data from the device, but there was actually "
@@ -2323,23 +2345,22 @@ msgstr ""
 "min_avail-র থেকে কম অন্য একটি মান প্রাপ্ত হয়েছে।"
 
 #: ../src/modules/alsa/module-alsa-card.c:152
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2225
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2228
 msgid "Off"
 msgstr "বন্ধ"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2181
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2184
 msgid "High Fidelity Playback (A2DP)"
 msgstr "হাই-ফিডেলিটি প্লে-ব্যাক (A2DP)"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2195
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2198
 msgid "High Fidelity Capture (A2DP)"
 msgstr "হাই-ফিডেলিটি ক্যাপচার (A2DP)"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2210
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2213
 msgid "Telephony Duplex (HSP/HFP)"
 msgstr "টেলিফোনি ডুপ্লে (HSP/HFP)"
 
 #: ../src/modules/reserve-wrap.c:151
 msgid "PulseAudio Sound Server"
 msgstr "PulseAudio শব্দের সার্ভার"
-
diff --git a/po/ca.po b/po/ca.po
index 6bacd14..6bb0e26 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -24,7 +24,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pulseaudio\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-05 08:44+0000\n"
+"POT-Creation-Date: 2009-09-10 01:47+0200\n"
 "PO-Revision-Date: 2009-09-05 11:40+0100\n"
 "Last-Translator: Tomàs Bigordà <t0mynoker at gmail.com>\n"
 "Language-Team: Catalan <fedora at softcatala.net>\n"
@@ -32,12 +32,12 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2629
+#: ../src/modules/alsa/alsa-util.c:858 ../src/pulsecore/sink.c:2629
 #, c-format
 msgid "%s %s"
 msgstr "%s %s"
 
-#: ../src/modules/alsa/alsa-util.c:1023
+#: ../src/modules/alsa/alsa-util.c:1106
 #, c-format
 msgid ""
 "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -50,7 +50,7 @@ msgstr ""
 "Probablement es tracta d'un error del controlador de l'ALSA '%s'. Informeu "
 "d'aquest incident als desenvolupadors de l'ALSA."
 
-#: ../src/modules/alsa/alsa-util.c:1064
+#: ../src/modules/alsa/alsa-util.c:1147
 #, c-format
 msgid ""
 "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -63,7 +63,7 @@ msgstr ""
 "Probablement es tracta d'un error del controlador de l'ALSA '%s'. Informeu "
 "d'aquest incident als desenvolupadors de l'ALSA."
 
-#: ../src/modules/alsa/alsa-util.c:1111
+#: ../src/modules/alsa/alsa-util.c:1194
 #, c-format
 msgid ""
 "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -76,6 +76,14 @@ msgstr ""
 "Probablement es tracta d'un error del controlador de l'ALSA '%s'. Informeu "
 "d'aquest incident als desenvolupadors de l'ALSA."
 
+#: ../src/modules/module-always-sink.c:39
+msgid "Always keeps at least one sink loaded even if it's a null one"
+msgstr ""
+
+#: ../src/modules/module-always-sink.c:83
+msgid "Dummy Output"
+msgstr ""
+
 #: ../src/modules/module-ladspa-sink.c:49
 msgid "Virtual LADSPA sink"
 msgstr "Conducte virtual LADSPA"
@@ -94,6 +102,15 @@ msgstr ""
 "pulgin=<nom del connector ladspa> label=<etiqueta del connector ladspa> "
 "control=<llista separada per comes dels valors de control d'entrada>"
 
+#: ../src/modules/module-null-sink.c:55
+msgid "Clocked NULL sink"
+msgstr ""
+
+#: ../src/modules/module-null-sink.c:291
+#, fuzzy
+msgid "Null Output"
+msgstr "Sortida %s"
+
 #: ../src/pulsecore/sink.c:2613
 msgid "Internal Audio"
 msgstr "Audio intern"
@@ -252,7 +269,7 @@ msgstr "Ha fallat la canonada: %s"
 msgid "fork() failed: %s"
 msgstr "Ha fallat fork(): %s"
 
-#: ../src/daemon/main.c:641 ../src/utils/pacat.c:505
+#: ../src/daemon/main.c:641 ../src/utils/pacat.c:504
 #, c-format
 msgid "read() failed: %s"
 msgstr "Ha fallat read(): %s"
@@ -980,8 +997,8 @@ msgid "Top Rear Right"
 msgstr "Superior posterior dreta"
 
 #: ../src/pulse/channelmap.c:484 ../src/pulse/sample.c:170
-#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:311
-#: ../src/pulse/volume.c:331 ../src/pulse/volume.c:361
+#: ../src/pulse/volume.c:295 ../src/pulse/volume.c:321
+#: ../src/pulse/volume.c:341 ../src/pulse/volume.c:371
 msgid "(invalid)"
 msgstr "(incorrecte)"
 
@@ -1200,7 +1217,6 @@ msgid "pa_stream_peek() failed: %s"
 msgstr "Ha fallat pa_stream_peek(): %s"
 
 #: ../src/utils/pacat.c:307
-#, 
 msgid "Stream successfully created."
 msgstr "Flux creat correctament."
 
@@ -1223,7 +1239,8 @@ msgstr "Mètriques del búffer: maxlength=%u, fragsize=%u"
 #, c-format
 msgid "Using sample spec '%s', channel map '%s'."
 msgstr ""
-"S'estan utilitzant les especificacions de mostreig '%s', mapejat del canal '%s'."
+"S'estan utilitzant les especificacions de mostreig '%s', mapejat del canal '%"
+"s'."
 
 #: ../src/utils/pacat.c:325
 #, c-format
@@ -1274,53 +1291,52 @@ msgstr "no "
 msgid "Stream buffer attributes changed.%s"
 msgstr "Els atributs del flux de memòria intermèdia han canviat.%s"
 
-#: ../src/utils/pacat.c:416
-#,  c-format
+#: ../src/utils/pacat.c:415
+#, c-format
 msgid "Connection established.%s"
 msgstr "S'ha establert la connexió.%s"
 
-#: ../src/utils/pacat.c:419
+#: ../src/utils/pacat.c:418
 #, c-format
 msgid "pa_stream_new() failed: %s"
 msgstr "Ha fallat pa_stream_new(): %s"
 
-#: ../src/utils/pacat.c:447
+#: ../src/utils/pacat.c:446
 #, c-format
 msgid "pa_stream_connect_playback() failed: %s"
 msgstr "Ha fallat pa_stream_connect_playback(): %s"
 
-#: ../src/utils/pacat.c:453
+#: ../src/utils/pacat.c:452
 #, c-format
 msgid "pa_stream_connect_record() failed: %s"
 msgstr "Ha fallat pa_stream_connect_record(): %s"
 
-#: ../src/utils/pacat.c:467 ../src/utils/pactl.c:857
+#: ../src/utils/pacat.c:466 ../src/utils/pactl.c:857
 #, c-format
 msgid "Connection failure: %s"
 msgstr "Ha fallat la connexió: %s"
 
-#: ../src/utils/pacat.c:500
+#: ../src/utils/pacat.c:499
 msgid "Got EOF."
 msgstr "S'ha llegit el fi del fitxer."
 
-#: ../src/utils/pacat.c:537
+#: ../src/utils/pacat.c:536
 #, c-format
 msgid "write() failed: %s"
 msgstr "Ha fallat write(): %s"
 
-#: ../src/utils/pacat.c:558
-#, 
+#: ../src/utils/pacat.c:557
 msgid "Got signal, exiting."
 msgstr "S'ha rebut un senyal, s'està sortint."
 
-#: ../src/utils/pacat.c:572
+#: ../src/utils/pacat.c:571
 #, c-format
 msgid "Failed to get latency: %s"
 msgstr "No s'ha pogut obtenir la latència: %s"
 
-#: ../src/utils/pacat.c:577
-#, c-format
-msgid "Time: %0.3f sec; Latency: %0.0f usec.  \r"
+#: ../src/utils/pacat.c:576
+#, fuzzy, c-format
+msgid "Time: %0.3f sec; Latency: %0.0f usec."
 msgstr "Temps: %0.3f segs; Latència: %0.0f microsegs.  \r"
 
 #: ../src/utils/pacat.c:595
@@ -1460,66 +1476,63 @@ msgstr ""
 msgid "Invalid client name '%s'"
 msgstr "Nom del client invàlid '%s'"
 
-#: ../src/utils/pacat.c:776
+#: ../src/utils/pacat.c:775
 #, c-format
 msgid "Invalid stream name '%s'"
 msgstr "Nom de flux de dades invàlid '%s'"
 
-#: ../src/utils/pacat.c:813
+#: ../src/utils/pacat.c:812
 #, c-format
 msgid "Invalid channel map '%s'"
 msgstr "Mapa de canals invàlid '%s'"
 
-#: ../src/utils/pacat.c:842
-#,  c-format
+#: ../src/utils/pacat.c:841
+#, c-format
 msgid "Invalid latency specification '%s'"
 msgstr "Especificació de latència invàlida '%s'"
 
-#: ../src/utils/pacat.c:849
+#: ../src/utils/pacat.c:848
 #, c-format
 msgid "Invalid process time specification '%s'"
 msgstr "Especificació de temps de procés invàlida '%s'"
 
-#: ../src/utils/pacat.c:861
+#: ../src/utils/pacat.c:860
 #, c-format
 msgid "Invalid property '%s'"
 msgstr "Propietat invàlida '%s'"
 
-#: ../src/utils/pacat.c:878
+#: ../src/utils/pacat.c:877
 #, c-format
 msgid "Unknown file format %s."
 msgstr "Format desconegut de fitxer %s."
 
-#: ../src/utils/pacat.c:897
-#, 
+#: ../src/utils/pacat.c:896
 msgid "Invalid sample specification"
 msgstr "Especificació de mostra invàlida"
 
-#: ../src/utils/pacat.c:907
+#: ../src/utils/pacat.c:906
 #, c-format
 msgid "open(): %s"
 msgstr "open(): %s"
 
-#: ../src/utils/pacat.c:912
+#: ../src/utils/pacat.c:911
 #, c-format
 msgid "dup2(): %s"
 msgstr "dup2(): %s"
 
-#: ../src/utils/pacat.c:919
-#, 
+#: ../src/utils/pacat.c:918
 msgid "Too many arguments."
 msgstr "Massa arguments."
 
-#: ../src/utils/pacat.c:930
+#: ../src/utils/pacat.c:929
 msgid "Failed to generate sample specification for file."
 msgstr "No s'ha pogut generar l'especificació de mostra del fitxer."
 
-#: ../src/utils/pacat.c:950
+#: ../src/utils/pacat.c:949
 msgid "Failed to open audio file."
 msgstr "No s'ha pogut obrir el fitxer d'àudio."
 
-#: ../src/utils/pacat.c:956
-#,
+#: ../src/utils/pacat.c:955
 msgid ""
 "Warning: specified sample specification will be overwritten with "
 "specification from file."
@@ -1527,28 +1540,24 @@ msgstr ""
 "Advertència: l'especificació de mostra especificada se sobreescriurà amb "
 "l'especificació del fitxer."
 
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:997
-#,
+#: ../src/utils/pacat.c:958 ../src/utils/pactl.c:997
 msgid "Failed to determine sample specification from file."
 msgstr "No s'ha pogut determinar l'especificació de mostra del fitxer."
 
-#: ../src/utils/pacat.c:968
-#,
+#: ../src/utils/pacat.c:967
 msgid "Warning: Failed to determine channel map from file."
 msgstr ""
 "Advertència: no s'ha pogut determinar el mapeig de canals des del fitxer."
 
-#: ../src/utils/pacat.c:979
-#,
+#: ../src/utils/pacat.c:978
 msgid "Channel map doesn't match sample specification"
 msgstr "El mapa de canals no coincideix amb l'especificació de mostra"
 
-#: ../src/utils/pacat.c:990
-#, 
+#: ../src/utils/pacat.c:989
 msgid "Warning: failed to write channel map to file."
 msgstr "Advertència: no s'ha pogut escriure el mapa de canals en un fitxer."
 
-#: ../src/utils/pacat.c:1005
+#: ../src/utils/pacat.c:1004
 #, c-format
 msgid ""
 "Opening a %s stream with sample specification '%s' and channel map '%s'."
@@ -1556,41 +1565,36 @@ msgstr ""
 "S'està obrint un flux de dades %s amb especificació de mostra '%s' i mapa de "
 "canals '%s'."
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid "recording"
 msgstr "enregistrant"
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid "playback"
 msgstr "reproducció"
 
-#: ../src/utils/pacat.c:1032 ../src/utils/pactl.c:1267
-#,
+#: ../src/utils/pacat.c:1031 ../src/utils/pactl.c:1267
 msgid "pa_mainloop_new() failed."
 msgstr "Ha fallat el pa_mainloop_new()."
 
-#: ../src/utils/pacat.c:1051
-#,
+#: ../src/utils/pacat.c:1050
 msgid "io_new() failed."
 msgstr "Ha fallat el io_new()."
 
-#: ../src/utils/pacat.c:1058 ../src/utils/pactl.c:1279
-#, 
+#: ../src/utils/pacat.c:1057 ../src/utils/pactl.c:1279
 msgid "pa_context_new() failed."
 msgstr "Ha fallat el pa_context_new()."
 
-#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1285
+#: ../src/utils/pacat.c:1065 ../src/utils/pactl.c:1285
 #, c-format
 msgid "pa_context_connect() failed: %s"
 msgstr "Ha fallat pa_context_connect(): %s"
 
-#: ../src/utils/pacat.c:1072
-#,
+#: ../src/utils/pacat.c:1071
 msgid "pa_context_rttime_new() failed."
 msgstr "Ha fallat el pa_context_new()."
 
-#: ../src/utils/pacat.c:1079 ../src/utils/pactl.c:1290
-#,
+#: ../src/utils/pacat.c:1078 ../src/utils/pactl.c:1290
 msgid "pa_mainloop_run() failed."
 msgstr "Ha fallat el pa_mainloop_run()."
 
@@ -2032,12 +2036,10 @@ msgid "Failed to upload sample: %s"
 msgstr "No s'ha pogut pujar la mostra: %s"
 
 #: ../src/utils/pactl.c:704
-#,
 msgid "Premature end of file"
 msgstr "S'ha trobat un fi de fitxer prematurament"
 
 #: ../src/utils/pactl.c:863
-#,
 msgid "Got SIGINT, exiting."
 msgstr "S'ha rebut SIGINT, s'està sortint."
 
@@ -2115,62 +2117,50 @@ msgstr ""
 "Enllaçat amb libpulse %s\n"
 
 #: ../src/utils/pactl.c:979
-#, 
 msgid "Please specify a sample file to load"
 msgstr "Si us plau, especifiqueu un fitxer de mostra per a carregar"
 
 #: ../src/utils/pactl.c:992
-#,
 msgid "Failed to open sound file."
 msgstr "No s'ha pogut obrir el fitxer de so."
 
 #: ../src/utils/pactl.c:1004
-#, 
 msgid "Warning: Failed to determine sample specification from file."
 msgstr ""
 "Advertiment: No s'ha pogut determinar l'especificació de mostra a partir del "
 "fitxer."
 
 #: ../src/utils/pactl.c:1014
-#, 
 msgid "You have to specify a sample name to play"
 msgstr "Heu d'especificar un nom de mostra a reproduir"
 
 #: ../src/utils/pactl.c:1026
-#, 
 msgid "You have to specify a sample name to remove"
 msgstr "Heu d'especificar un nom de mostra a suprimir"
 
 #: ../src/utils/pactl.c:1035
-#,
 msgid "You have to specify a sink input index and a sink"
 msgstr "Heu d'especificar una entrada del conducte i un conducte"
 
 #: ../src/utils/pactl.c:1045
-#, 
 msgid "You have to specify a source output index and a source"
 msgstr "Heu d'especificar un índex de font de sortida i una font"
 
 #: ../src/utils/pactl.c:1060
-#, 
 msgid "You have to specify a module name and arguments."
 msgstr "Heu d'especificar un nom de mòdul i els seus arguments."
 
 #: ../src/utils/pactl.c:1080
-#, 
 msgid "You have to specify a module index"
 msgstr "Heu d'especificar un índex de mòdul"
 
 #: ../src/utils/pactl.c:1090
-#, 
 msgid ""
 "You may not specify more than one sink. You have to specify a boolean value."
 msgstr ""
-"No haríeu d'especificar més d'un conducte. Heu d'especificar un valor "
-"booleà."
+"No haríeu d'especificar més d'un conducte. Heu d'especificar un valor booleà."
 
 #: ../src/utils/pactl.c:1103
-#,
 msgid ""
 "You may not specify more than one source. You have to specify a boolean "
 "value."
@@ -2178,39 +2168,33 @@ msgstr ""
 "No haríeu d'especificar més d'una font. Heu d'especificar un valor booleà."
 
 #: ../src/utils/pactl.c:1115
-#,
 msgid "You have to specify a card name/index and a profile name"
 msgstr "Heu d'especificar un nom o un índex de targeta i un nom de perfil"
 
 #: ../src/utils/pactl.c:1126
-#, 
 msgid "You have to specify a sink name/index and a port name"
 msgstr "Heu d'especificar un nom o un índex de conducte i un nom de port"
 
 #: ../src/utils/pactl.c:1137
-#, 
 msgid "You have to specify a source name/index and a port name"
 msgstr "Heu d'especificar un nom o un índex de font i un nom de port"
 
 #: ../src/utils/pactl.c:1149
-#,
 msgid "You have to specify a sink name/index and a volume"
 msgstr "Heu d'especificar un nom o un índex de conducte i un volum"
 
 #: ../src/utils/pactl.c:1154 ../src/utils/pactl.c:1171
 #: ../src/utils/pactl.c:1193 ../src/utils/pactl.c:1209
 #: ../src/utils/pactl.c:1226 ../src/utils/pactl.c:1248
-#,
 msgid "Invalid volume specification"
 msgstr "Especificació de volum invàlida"
 
 #: ../src/utils/pactl.c:1166
-#,
 msgid "You have to specify a source name/index and a volume"
 msgstr "Heu d'especificar un nom o un índex de font i un volum"
 
-#: ../src/utils/pactl.c:1183
 #
+#: ../src/utils/pactl.c:1183
 msgid "You have to specify a sink input index and a volume"
 msgstr "Heu d'especificar un índex entrada del conducte i un volum"
 
@@ -2220,7 +2204,8 @@ msgstr "Índex d'entrada del conducte invàlid"
 
 #: ../src/utils/pactl.c:1204
 msgid "You have to specify a sink name/index and a mute boolean"
-msgstr "Heu d'especificar un nom o un índex de conducte i un booleà de silenciat"
+msgstr ""
+"Heu d'especificar un nom o un índex de conducte i un booleà de silenciat"
 
 #: ../src/utils/pactl.c:1221
 msgid "You have to specify a source name/index and a mute boolean"
@@ -2228,15 +2213,14 @@ msgstr "Heu d'especificar un nom o un índex de font i un booleà de silenciat"
 
 #: ../src/utils/pactl.c:1238
 msgid "You have to specify a sink input index and a mute boolean"
-msgstr "Heu d'especificar un índex d'entrada del conducte i un booleà de silenciat"
+msgstr ""
+"Heu d'especificar un índex d'entrada del conducte i un booleà de silenciat"
 
 #: ../src/utils/pactl.c:1243
-#,
 msgid "Invalid sink input index specification"
 msgstr "Especificació d'índex d'entrada del conducte invàlida"
 
 #: ../src/utils/pactl.c:1262
-#, 
 msgid "No valid command specified."
 msgstr "Ordre especificada no vàlida."
 
@@ -2364,7 +2348,7 @@ msgstr "write(): %s"
 msgid "Cannot access autospawn lock."
 msgstr "No s'ha pogut accedir al bloqueig d'autospawn."
 
-#: ../src/modules/alsa/alsa-sink.c:531 ../src/modules/alsa/alsa-sink.c:689
+#: ../src/modules/alsa/alsa-sink.c:530 ../src/modules/alsa/alsa-sink.c:689
 #, c-format
 msgid ""
 "ALSA woke us up to write new data to the device, but there was actually "
@@ -2381,7 +2365,7 @@ msgstr ""
 "Ens han aixecat amb POLLOUT activat -- tanmateix una crida posterior a "
 "snd_pcm_avail() ha retornat 0 o un altre valor < min_avail."
 
-#: ../src/modules/alsa/alsa-source.c:508 ../src/modules/alsa/alsa-source.c:658
+#: ../src/modules/alsa/alsa-source.c:506 ../src/modules/alsa/alsa-source.c:656
 #, c-format
 msgid ""
 "ALSA woke us up to read new data from the device, but there was actually "
@@ -2399,20 +2383,19 @@ msgstr ""
 "snd_pcm_avail() ha retornat 0 o un altre valor < min_avail."
 
 #: ../src/modules/alsa/module-alsa-card.c:152
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2225
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2228
 msgid "Off"
 msgstr "Inactiu"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2181
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2184
 msgid "High Fidelity Playback (A2DP)"
 msgstr "Reproducció d'alta fidelitat (A2DP)"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2195
-#, 
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2198
 msgid "High Fidelity Capture (A2DP)"
 msgstr "Captura d'alta fidelitat (A2DP)"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2210
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2213
 msgid "Telephony Duplex (HSP/HFP)"
 msgstr "Dúplex de telefonia (HSP/HFP)"
 
@@ -2694,9 +2677,6 @@ msgstr "Servidor de so PulseAudio"
 #~ msgid "Output %s + Input %s"
 #~ msgstr "Sortida %s + Entrada %s"
 
-#~ msgid "Output %s"
-#~ msgstr "Sortida %s"
-
 #~ msgid "Input %s"
 #~ msgstr "Entrada %s"
 
diff --git a/po/cs.po b/po/cs.po
index b257eb3..9e22b15 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pulseaudio.master-tx\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-03 03:04+0200\n"
+"POT-Creation-Date: 2009-09-10 01:47+0200\n"
 "PO-Revision-Date: 2009-08-29 01:06+0200\n"
 "Last-Translator: Petr Kovar <pknbe at volny.cz>\n"
 "Language-Team: Czech <translation-team-cs at lists.sourceforge.net>\n"
@@ -16,12 +16,12 @@ msgstr ""
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 "X-Generator: Lokalize 1.0\n"
 
-#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2629
+#: ../src/modules/alsa/alsa-util.c:858 ../src/pulsecore/sink.c:2629
 #, c-format
 msgid "%s %s"
 msgstr "%s %s"
 
-#: ../src/modules/alsa/alsa-util.c:1023
+#: ../src/modules/alsa/alsa-util.c:1106
 #, c-format
 msgid ""
 "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -34,7 +34,7 @@ msgstr ""
 "S největší pravděpodobností se jedná o chybu v ovladači ALSA \"%s\". "
 "Nahlaste prosím tento problém vývojářům ALSA."
 
-#: ../src/modules/alsa/alsa-util.c:1064
+#: ../src/modules/alsa/alsa-util.c:1147
 #, c-format
 msgid ""
 "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -47,7 +47,7 @@ msgstr ""
 "S největší pravděpodobností se jedná o chybu v ovladači ALSA \"%s\". "
 "Nahlaste prosím tento problém vývojářům ALSA."
 
-#: ../src/modules/alsa/alsa-util.c:1111
+#: ../src/modules/alsa/alsa-util.c:1194
 #, c-format
 msgid ""
 "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -60,6 +60,14 @@ msgstr ""
 "S největší pravděpodobností se jedná o chybu v ovladači ALSA \"%s\". "
 "Nahlaste prosím tento problém vývojářům ALSA."
 
+#: ../src/modules/module-always-sink.c:39
+msgid "Always keeps at least one sink loaded even if it's a null one"
+msgstr ""
+
+#: ../src/modules/module-always-sink.c:83
+msgid "Dummy Output"
+msgstr ""
+
 #: ../src/modules/module-ladspa-sink.c:49
 msgid "Virtual LADSPA sink"
 msgstr "Virtuální cíl LADSPA"
@@ -78,6 +86,15 @@ msgstr ""
 "modulu ladspa> label=<popisek zásuvného modulu ladspa> control=<čárkou "
 "oddělený seznam hodnot ovládání vstupu>"
 
+#: ../src/modules/module-null-sink.c:55
+msgid "Clocked NULL sink"
+msgstr ""
+
+#: ../src/modules/module-null-sink.c:291
+#, fuzzy
+msgid "Null Output"
+msgstr "Výstup %s"
+
 #: ../src/pulsecore/sink.c:2613
 msgid "Internal Audio"
 msgstr "Vnitřní zvukový systém"
@@ -229,7 +246,7 @@ msgstr "pipe selhalo: %s"
 msgid "fork() failed: %s"
 msgstr "fork() selhalo: %s"
 
-#: ../src/daemon/main.c:641 ../src/utils/pacat.c:505
+#: ../src/daemon/main.c:641 ../src/utils/pacat.c:504
 #, c-format
 msgid "read() failed: %s"
 msgstr "read() selhalo: %s"
@@ -948,8 +965,8 @@ msgid "Top Rear Right"
 msgstr "Horní zadní pravý"
 
 #: ../src/pulse/channelmap.c:484 ../src/pulse/sample.c:170
-#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:311
-#: ../src/pulse/volume.c:331 ../src/pulse/volume.c:361
+#: ../src/pulse/volume.c:295 ../src/pulse/volume.c:321
+#: ../src/pulse/volume.c:341 ../src/pulse/volume.c:371
 msgid "(invalid)"
 msgstr "(neplatné)"
 
@@ -1241,52 +1258,52 @@ msgstr "nikoliv "
 msgid "Stream buffer attributes changed.%s"
 msgstr "Změněny atributy vyrovnávací paměti proudu.%s"
 
-#: ../src/utils/pacat.c:416
+#: ../src/utils/pacat.c:415
 #, c-format
 msgid "Connection established.%s"
 msgstr "Spojení navázáno.%s"
 
-#: ../src/utils/pacat.c:419
+#: ../src/utils/pacat.c:418
 #, c-format
 msgid "pa_stream_new() failed: %s"
 msgstr "pa_stream_new() selhalo: %s"
 
-#: ../src/utils/pacat.c:447
+#: ../src/utils/pacat.c:446
 #, c-format
 msgid "pa_stream_connect_playback() failed: %s"
 msgstr "pa_stream_connect_playback() selhalo: %s"
 
-#: ../src/utils/pacat.c:453
+#: ../src/utils/pacat.c:452
 #, c-format
 msgid "pa_stream_connect_record() failed: %s"
 msgstr "pa_stream_connect_record() selhalo: %s"
 
-#: ../src/utils/pacat.c:467 ../src/utils/pactl.c:857
+#: ../src/utils/pacat.c:466 ../src/utils/pactl.c:857
 #, c-format
 msgid "Connection failure: %s"
 msgstr "Spojení selhalo: %s"
 
-#: ../src/utils/pacat.c:500
+#: ../src/utils/pacat.c:499
 msgid "Got EOF."
 msgstr "Získáno EOF."
 
-#: ../src/utils/pacat.c:537
+#: ../src/utils/pacat.c:536
 #, c-format
 msgid "write() failed: %s"
 msgstr "write() selhalo: %s"
 
-#: ../src/utils/pacat.c:558
+#: ../src/utils/pacat.c:557
 msgid "Got signal, exiting."
 msgstr "Získán signál, ukončování."
 
-#: ../src/utils/pacat.c:572
+#: ../src/utils/pacat.c:571
 #, c-format
 msgid "Failed to get latency: %s"
 msgstr "Nezdařilo se získat latenci: %s"
 
-#: ../src/utils/pacat.c:577
-#, c-format
-msgid "Time: %0.3f sec; Latency: %0.0f usec.  \r"
+#: ../src/utils/pacat.c:576
+#, fuzzy, c-format
+msgid "Time: %0.3f sec; Latency: %0.0f usec."
 msgstr "Čas: %0.3f sekund; latence: %0.0f μs.  \r"
 
 #: ../src/utils/pacat.c:595
@@ -1421,121 +1438,121 @@ msgstr ""
 msgid "Invalid client name '%s'"
 msgstr "Neplatný název klienta \"%s\""
 
-#: ../src/utils/pacat.c:776
+#: ../src/utils/pacat.c:775
 #, c-format
 msgid "Invalid stream name '%s'"
 msgstr "Neplatný název proudu \"%s\""
 
-#: ../src/utils/pacat.c:813
+#: ../src/utils/pacat.c:812
 #, c-format
 msgid "Invalid channel map '%s'"
 msgstr "Neplatná mapa kanálů \"%s\""
 
-#: ../src/utils/pacat.c:842
+#: ../src/utils/pacat.c:841
 #, c-format
 msgid "Invalid latency specification '%s'"
 msgstr "Neplatné upřesnění latence \"%s\""
 
-#: ../src/utils/pacat.c:849
+#: ../src/utils/pacat.c:848
 #, c-format
 msgid "Invalid process time specification '%s'"
 msgstr "Neplatné upřesnění času zpracování \"%s\""
 
-#: ../src/utils/pacat.c:861
+#: ../src/utils/pacat.c:860
 #, c-format
 msgid "Invalid property '%s'"
 msgstr "Neplatná vlastnost \"%s\""
 
-#: ../src/utils/pacat.c:878
+#: ../src/utils/pacat.c:877
 #, c-format
 msgid "Unknown file format %s."
 msgstr "Neznámý formát souboru %s."
 
-#: ../src/utils/pacat.c:897
+#: ../src/utils/pacat.c:896
 msgid "Invalid sample specification"
 msgstr "Neplatné určení vzorku"
 
-#: ../src/utils/pacat.c:907
+#: ../src/utils/pacat.c:906
 #, c-format
 msgid "open(): %s"
 msgstr "open(): %s"
 
-#: ../src/utils/pacat.c:912
+#: ../src/utils/pacat.c:911
 #, c-format
 msgid "dup2(): %s"
 msgstr "dup2(): %s"
 
-#: ../src/utils/pacat.c:919
+#: ../src/utils/pacat.c:918
 msgid "Too many arguments."
 msgstr "Příliš mnoho argumentů."
 
-#: ../src/utils/pacat.c:930
+#: ../src/utils/pacat.c:929
 msgid "Failed to generate sample specification for file."
 msgstr "Selhalo vytvoření určení vzorku souboru."
 
-#: ../src/utils/pacat.c:950
+#: ../src/utils/pacat.c:949
 msgid "Failed to open audio file."
 msgstr "Selhalo otevření zvukového souboru."
 
-#: ../src/utils/pacat.c:956
+#: ../src/utils/pacat.c:955
 msgid ""
 "Warning: specified sample specification will be overwritten with "
 "specification from file."
 msgstr ""
 "Varování: zadané určení vzorku bude přepsáno určením získaným ze souboru."
 
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:997
+#: ../src/utils/pacat.c:958 ../src/utils/pactl.c:997
 msgid "Failed to determine sample specification from file."
 msgstr "Selhalo zjištění určení vzorku ze souboru."
 
-#: ../src/utils/pacat.c:968
+#: ../src/utils/pacat.c:967
 msgid "Warning: Failed to determine channel map from file."
 msgstr "Varování: Selhalo zjištění mapy kanálů ze souboru."
 
-#: ../src/utils/pacat.c:979
+#: ../src/utils/pacat.c:978
 msgid "Channel map doesn't match sample specification"
 msgstr "Mapa kanálů se neshoduje s určením vzorku"
 
-#: ../src/utils/pacat.c:990
+#: ../src/utils/pacat.c:989
 msgid "Warning: failed to write channel map to file."
 msgstr "Varování: selhal zápis mapy kanálů do souboru."
 
-#: ../src/utils/pacat.c:1005
+#: ../src/utils/pacat.c:1004
 #, c-format
 msgid ""
 "Opening a %s stream with sample specification '%s' and channel map '%s'."
 msgstr "Otevírání proudu %s s určením vzorku \"%s\" a mapou kanálů \"%s\"."
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid "recording"
 msgstr "nahrávání"
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid "playback"
 msgstr "přehrávání"
 
-#: ../src/utils/pacat.c:1032 ../src/utils/pactl.c:1267
+#: ../src/utils/pacat.c:1031 ../src/utils/pactl.c:1267
 msgid "pa_mainloop_new() failed."
 msgstr "pa_mainloop_new() selhalo."
 
-#: ../src/utils/pacat.c:1051
+#: ../src/utils/pacat.c:1050
 msgid "io_new() failed."
 msgstr "io_new() selhalo."
 
-#: ../src/utils/pacat.c:1058 ../src/utils/pactl.c:1279
+#: ../src/utils/pacat.c:1057 ../src/utils/pactl.c:1279
 msgid "pa_context_new() failed."
 msgstr "pa_context_new() selhalo."
 
-#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1285
+#: ../src/utils/pacat.c:1065 ../src/utils/pactl.c:1285
 #, c-format
 msgid "pa_context_connect() failed: %s"
 msgstr "pa_context_connect() selhalo: %s"
 
-#: ../src/utils/pacat.c:1072
+#: ../src/utils/pacat.c:1071
 msgid "pa_context_rttime_new() failed."
 msgstr "pa_context_rttime_new() selhalo."
 
-#: ../src/utils/pacat.c:1079 ../src/utils/pactl.c:1290
+#: ../src/utils/pacat.c:1078 ../src/utils/pactl.c:1290
 msgid "pa_mainloop_run() failed."
 msgstr "pa_mainloop_run() selhalo."
 
@@ -2295,7 +2312,7 @@ msgstr "write(): %s"
 msgid "Cannot access autospawn lock."
 msgstr "Nelze přistoupit k zámku automatického spouštění."
 
-#: ../src/modules/alsa/alsa-sink.c:531 ../src/modules/alsa/alsa-sink.c:689
+#: ../src/modules/alsa/alsa-sink.c:530 ../src/modules/alsa/alsa-sink.c:689
 #, c-format
 msgid ""
 "ALSA woke us up to write new data to the device, but there was actually "
@@ -2312,7 +2329,7 @@ msgstr ""
 "Probudilo nás nastavení POLLOUT - nicméně následné snd_pcm_avail() vrátilo 0 "
 "či jinou hodnotu < min_avail."
 
-#: ../src/modules/alsa/alsa-source.c:508 ../src/modules/alsa/alsa-source.c:658
+#: ../src/modules/alsa/alsa-source.c:506 ../src/modules/alsa/alsa-source.c:656
 #, c-format
 msgid ""
 "ALSA woke us up to read new data from the device, but there was actually "
@@ -2330,20 +2347,20 @@ msgstr ""
 "či jinou hodnotu < min_avail."
 
 #: ../src/modules/alsa/module-alsa-card.c:152
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2225
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2228
 msgid "Off"
 msgstr "Vypnuto"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2181
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2184
 msgid "High Fidelity Playback (A2DP)"
 msgstr "Přehrávání s velmi věrnou reprodukcí (A2DP)"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2195
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2198
 #, fuzzy
 msgid "High Fidelity Capture (A2DP)"
 msgstr "Přehrávání s velmi věrnou reprodukcí (A2DP)"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2210
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2213
 msgid "Telephony Duplex (HSP/HFP)"
 msgstr "Duplexní telefonie (HSP/HFP)"
 
@@ -2526,9 +2543,6 @@ msgstr "Zvukový server PulseAudio"
 #~ msgid "Output %s + Input %s"
 #~ msgstr "Výstup %s + vstup %s"
 
-#~ msgid "Output %s"
-#~ msgstr "Výstup %s"
-
 #~ msgid "Input %s"
 #~ msgstr "Vstup %s"
 
diff --git a/po/de.po b/po/de.po
index 302fe5f..0aa9ec4 100644
--- a/po/de.po
+++ b/po/de.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pulseaudio\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-03 03:04+0200\n"
+"POT-Creation-Date: 2009-09-10 01:47+0200\n"
 "PO-Revision-Date: 2009-04-18 12:43+0100\n"
 "Last-Translator: Fabian Affolter <fab at fedoraproject.org>\n"
 "Language-Team: German <fedora-trans-de at redhat.com>\n"
@@ -19,12 +19,12 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Poedit-Language: German\n"
 
-#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2629
+#: ../src/modules/alsa/alsa-util.c:858 ../src/pulsecore/sink.c:2629
 #, c-format
 msgid "%s %s"
 msgstr ""
 
-#: ../src/modules/alsa/alsa-util.c:1023
+#: ../src/modules/alsa/alsa-util.c:1106
 #, c-format
 msgid ""
 "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -37,7 +37,7 @@ msgstr ""
 "Dies ist wahrscheinlich ein Fehler im ALSA-Treiber '%s'. Bitte melden Sie "
 "diesen Punkt den ALSA-Entwicklern."
 
-#: ../src/modules/alsa/alsa-util.c:1064
+#: ../src/modules/alsa/alsa-util.c:1147
 #, c-format
 msgid ""
 "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -50,7 +50,7 @@ msgstr ""
 "Dies ist wahrscheinlich ein Fehler im ALSA-Treiber '%s'. Bitte melden Sie "
 "diesen Punkt den ALSA-Entwicklern."
 
-#: ../src/modules/alsa/alsa-util.c:1111
+#: ../src/modules/alsa/alsa-util.c:1194
 #, c-format
 msgid ""
 "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -63,6 +63,14 @@ msgstr ""
 "Dies ist wahrscheinlich ein Fehler im ALSA-Treiber '%s'. Bitte melden Sie "
 "diesen Punkt den ALSA-Entwicklern."
 
+#: ../src/modules/module-always-sink.c:39
+msgid "Always keeps at least one sink loaded even if it's a null one"
+msgstr ""
+
+#: ../src/modules/module-always-sink.c:83
+msgid "Dummy Output"
+msgstr ""
+
 #: ../src/modules/module-ladspa-sink.c:49
 msgid "Virtual LADSPA sink"
 msgstr ""
@@ -76,6 +84,15 @@ msgid ""
 "input control values>"
 msgstr ""
 
+#: ../src/modules/module-null-sink.c:55
+msgid "Clocked NULL sink"
+msgstr ""
+
+#: ../src/modules/module-null-sink.c:291
+#, fuzzy
+msgid "Null Output"
+msgstr "Ausgang %s"
+
 #: ../src/pulsecore/sink.c:2613
 msgid "Internal Audio"
 msgstr "Internes Audio"
@@ -227,7 +244,7 @@ msgstr "pipe fehlgeschlagen: %s"
 msgid "fork() failed: %s"
 msgstr "fork() fehlgeschlagen: %s"
 
-#: ../src/daemon/main.c:641 ../src/utils/pacat.c:505
+#: ../src/daemon/main.c:641 ../src/utils/pacat.c:504
 #, c-format
 msgid "read() failed: %s"
 msgstr "read() fehlgeschlagen: %s"
@@ -931,8 +948,8 @@ msgid "Top Rear Right"
 msgstr "Oben Hinten Rechts"
 
 #: ../src/pulse/channelmap.c:484 ../src/pulse/sample.c:170
-#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:311
-#: ../src/pulse/volume.c:331 ../src/pulse/volume.c:361
+#: ../src/pulse/volume.c:295 ../src/pulse/volume.c:321
+#: ../src/pulse/volume.c:341 ../src/pulse/volume.c:371
 msgid "(invalid)"
 msgstr "(ungültig)"
 
@@ -1226,54 +1243,54 @@ msgstr "nicht "
 msgid "Stream buffer attributes changed.%s"
 msgstr "Stream-Zwischenspeicher-Attribute geändert.%s \n"
 
-#: ../src/utils/pacat.c:416
+#: ../src/utils/pacat.c:415
 #, fuzzy, c-format
 msgid "Connection established.%s"
 msgstr "Verbindung hergestellt.%s \n"
 
-#: ../src/utils/pacat.c:419
+#: ../src/utils/pacat.c:418
 #, fuzzy, c-format
 msgid "pa_stream_new() failed: %s"
 msgstr "pa_stream_new() fehlgeschlagen: %s\n"
 
-#: ../src/utils/pacat.c:447
+#: ../src/utils/pacat.c:446
 #, fuzzy, c-format
 msgid "pa_stream_connect_playback() failed: %s"
 msgstr "pa_stream_connect_playback() fehlgeschlagen: %s\n"
 
-#: ../src/utils/pacat.c:453
+#: ../src/utils/pacat.c:452
 #, fuzzy, c-format
 msgid "pa_stream_connect_record() failed: %s"
 msgstr "pa_stream_connect_record() fehlgeschlagen: %s\n"
 
-#: ../src/utils/pacat.c:467 ../src/utils/pactl.c:857
+#: ../src/utils/pacat.c:466 ../src/utils/pactl.c:857
 #, fuzzy, c-format
 msgid "Connection failure: %s"
 msgstr "Verbindungsfehler: %s\n"
 
-#: ../src/utils/pacat.c:500
+#: ../src/utils/pacat.c:499
 #, fuzzy
 msgid "Got EOF."
 msgstr "EOF empfangen.\n"
 
-#: ../src/utils/pacat.c:537
+#: ../src/utils/pacat.c:536
 #, fuzzy, c-format
 msgid "write() failed: %s"
 msgstr "write() fehlgeschlagen: %s\n"
 
-#: ../src/utils/pacat.c:558
+#: ../src/utils/pacat.c:557
 #, fuzzy
 msgid "Got signal, exiting."
 msgstr "Signal empfangen, beende.\n"
 
-#: ../src/utils/pacat.c:572
+#: ../src/utils/pacat.c:571
 #, fuzzy, c-format
 msgid "Failed to get latency: %s"
 msgstr "Erhalten der Latenz fehlgeschlagen: %s\n"
 
-#: ../src/utils/pacat.c:577
-#, c-format
-msgid "Time: %0.3f sec; Latency: %0.0f usec.  \r"
+#: ../src/utils/pacat.c:576
+#, fuzzy, c-format
+msgid "Time: %0.3f sec; Latency: %0.0f usec."
 msgstr "Zeit: %0.3f sec; Latenz: %0.0f usec.  \r"
 
 #: ../src/utils/pacat.c:595
@@ -1396,134 +1413,134 @@ msgstr ""
 msgid "Invalid client name '%s'"
 msgstr "Ungültiger Client-Name '%s'\n"
 
-#: ../src/utils/pacat.c:776
+#: ../src/utils/pacat.c:775
 #, fuzzy, c-format
 msgid "Invalid stream name '%s'"
 msgstr "Ungültiger Stream-Name '%s'\n"
 
-#: ../src/utils/pacat.c:813
+#: ../src/utils/pacat.c:812
 #, fuzzy, c-format
 msgid "Invalid channel map '%s'"
 msgstr "Ungültige Kanal-Zuweisung '%s'\n"
 
-#: ../src/utils/pacat.c:842
+#: ../src/utils/pacat.c:841
 #, fuzzy, c-format
 msgid "Invalid latency specification '%s'"
 msgstr "Ungültige Latenz-Angaben '%s'\n"
 
-#: ../src/utils/pacat.c:849
+#: ../src/utils/pacat.c:848
 #, fuzzy, c-format
 msgid "Invalid process time specification '%s'"
 msgstr "Ungültige Prozesszeit-Angaben '%s'\n"
 
-#: ../src/utils/pacat.c:861
+#: ../src/utils/pacat.c:860
 #, fuzzy, c-format
 msgid "Invalid property '%s'"
 msgstr "Ungültige Eigenschaft '%s'\n"
 
-#: ../src/utils/pacat.c:878
+#: ../src/utils/pacat.c:877
 #, c-format
 msgid "Unknown file format %s."
 msgstr "Unbekanntes Dateiformat %s."
 
-#: ../src/utils/pacat.c:897
+#: ../src/utils/pacat.c:896
 #, fuzzy
 msgid "Invalid sample specification"
 msgstr "Ungültige Sample-Angaben\n"
 
-#: ../src/utils/pacat.c:907
+#: ../src/utils/pacat.c:906
 #, fuzzy, c-format
 msgid "open(): %s"
 msgstr "open(): %s\n"
 
-#: ../src/utils/pacat.c:912
+#: ../src/utils/pacat.c:911
 #, fuzzy, c-format
 msgid "dup2(): %s"
 msgstr "dup2(): %s\n"
 
-#: ../src/utils/pacat.c:919
+#: ../src/utils/pacat.c:918
 #, fuzzy
 msgid "Too many arguments."
 msgstr "Zu viele Argumente.\n"
 
-#: ../src/utils/pacat.c:930
+#: ../src/utils/pacat.c:929
 #, fuzzy
 msgid "Failed to generate sample specification for file."
 msgstr "Beziehen der Sample-Informationen für die Datei fehlgeschlagen.\n"
 
-#: ../src/utils/pacat.c:950
+#: ../src/utils/pacat.c:949
 #, fuzzy
 msgid "Failed to open audio file."
 msgstr "Öffnen der Audio-Datei fehlgeschlagen.\n"
 
-#: ../src/utils/pacat.c:956
+#: ../src/utils/pacat.c:955
 #, fuzzy
 msgid ""
 "Warning: specified sample specification will be overwritten with "
 "specification from file."
 msgstr "Warnung: Beziehen der Sample-Angabe aus Datei fehlgeschlagen.\n"
 
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:997
+#: ../src/utils/pacat.c:958 ../src/utils/pactl.c:997
 #, fuzzy
 msgid "Failed to determine sample specification from file."
 msgstr "Beziehen der Sample-Informationen der Datei fehlgeschlagen.\n"
 
-#: ../src/utils/pacat.c:968
+#: ../src/utils/pacat.c:967
 #, fuzzy
 msgid "Warning: Failed to determine channel map from file."
 msgstr "Warnung: Bestimmung der Kanalzuordnung aus Datei fehlgeschlagen.\n"
 
-#: ../src/utils/pacat.c:979
+#: ../src/utils/pacat.c:978
 #, fuzzy
 msgid "Channel map doesn't match sample specification"
 msgstr "Kanalzuordnung entspricht nicht Einstellungen des Samples\n"
 
-#: ../src/utils/pacat.c:990
+#: ../src/utils/pacat.c:989
 #, fuzzy
 msgid "Warning: failed to write channel map to file."
 msgstr "Warnung: Schreiben der Kanalzuordnung in Datei fehlgeschlagen.\n"
 
-#: ../src/utils/pacat.c:1005
+#: ../src/utils/pacat.c:1004
 #, fuzzy, c-format
 msgid ""
 "Opening a %s stream with sample specification '%s' and channel map '%s'."
 msgstr ""
 "Öffnen eines %s-Streams mit Sample-Angabe '%s' und Kanalzuordnung '%s'.\n"
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid "recording"
 msgstr "aufnehmen"
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid "playback"
 msgstr "abspielen"
 
-#: ../src/utils/pacat.c:1032 ../src/utils/pactl.c:1267
+#: ../src/utils/pacat.c:1031 ../src/utils/pactl.c:1267
 #, fuzzy
 msgid "pa_mainloop_new() failed."
 msgstr "pa_mainloop_new() fehlgeschlagen.\n"
 
-#: ../src/utils/pacat.c:1051
+#: ../src/utils/pacat.c:1050
 #, fuzzy
 msgid "io_new() failed."
 msgstr "io_new() fehlgeschlagen.\n"
 
-#: ../src/utils/pacat.c:1058 ../src/utils/pactl.c:1279
+#: ../src/utils/pacat.c:1057 ../src/utils/pactl.c:1279
 #, fuzzy
 msgid "pa_context_new() failed."
 msgstr "pa_context_new() fehlgeschlagen.\n"
 
-#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1285
+#: ../src/utils/pacat.c:1065 ../src/utils/pactl.c:1285
 #, c-format
 msgid "pa_context_connect() failed: %s"
 msgstr "pa_context_new() fehlgeschlagen: %s"
 
-#: ../src/utils/pacat.c:1072
+#: ../src/utils/pacat.c:1071
 #, fuzzy
 msgid "pa_context_rttime_new() failed."
 msgstr "pa_context_new() fehlgeschlagen.\n"
 
-#: ../src/utils/pacat.c:1079 ../src/utils/pactl.c:1290
+#: ../src/utils/pacat.c:1078 ../src/utils/pactl.c:1290
 #, fuzzy
 msgid "pa_mainloop_run() failed."
 msgstr "pa_mainloop_run() fehlgeschlagen.\n"
@@ -2285,7 +2302,7 @@ msgstr "write(): %s"
 msgid "Cannot access autospawn lock."
 msgstr "Fehler beim Zugriff auf Autostart -Sperre."
 
-#: ../src/modules/alsa/alsa-sink.c:531 ../src/modules/alsa/alsa-sink.c:689
+#: ../src/modules/alsa/alsa-sink.c:530 ../src/modules/alsa/alsa-sink.c:689
 #, c-format
 msgid ""
 "ALSA woke us up to write new data to the device, but there was actually "
@@ -2296,7 +2313,7 @@ msgid ""
 "returned 0 or another value < min_avail."
 msgstr ""
 
-#: ../src/modules/alsa/alsa-source.c:508 ../src/modules/alsa/alsa-source.c:658
+#: ../src/modules/alsa/alsa-source.c:506 ../src/modules/alsa/alsa-source.c:656
 #, c-format
 msgid ""
 "ALSA woke us up to read new data from the device, but there was actually "
@@ -2308,20 +2325,20 @@ msgid ""
 msgstr ""
 
 #: ../src/modules/alsa/module-alsa-card.c:152
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2225
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2228
 msgid "Off"
 msgstr "Aus"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2181
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2184
 msgid "High Fidelity Playback (A2DP)"
 msgstr "High Fidelity Playback (A2DP)"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2195
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2198
 #, fuzzy
 msgid "High Fidelity Capture (A2DP)"
 msgstr "High Fidelity Playback (A2DP)"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2210
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2213
 msgid "Telephony Duplex (HSP/HFP)"
 msgstr "Telephony Duplex (HSP/HFP)"
 
@@ -2500,9 +2517,6 @@ msgstr "PulseAudio Sound Server"
 #~ msgid "Output %s + Input %s"
 #~ msgstr "Ausgabe %s + Eingabe %s"
 
-#~ msgid "Output %s"
-#~ msgstr "Ausgang %s"
-
 #~ msgid "Input %s"
 #~ msgstr "Eingang %s"
 
diff --git a/po/de_CH.po b/po/de_CH.po
index 4950a0d..ac6a33d 100644
--- a/po/de_CH.po
+++ b/po/de_CH.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pulseaudio\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-03 03:04+0200\n"
+"POT-Creation-Date: 2009-09-10 01:47+0200\n"
 "PO-Revision-Date: 2009-04-18 12:55+0100\n"
 "Last-Translator: Fabian Affolter <fab at fedoraproject.org>\n"
 "Language-Team: German <fedora-trans-de at redhat.com>\n"
@@ -18,12 +18,12 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Poedit-Language: Swiss German\n"
 
-#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2629
+#: ../src/modules/alsa/alsa-util.c:858 ../src/pulsecore/sink.c:2629
 #, c-format
 msgid "%s %s"
 msgstr ""
 
-#: ../src/modules/alsa/alsa-util.c:1023
+#: ../src/modules/alsa/alsa-util.c:1106
 #, c-format
 msgid ""
 "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -36,7 +36,7 @@ msgstr ""
 "Dies ist wahrscheinlich ein Fehler im ALSA-Treiber '%s'. Bitte melden Sie "
 "diesen Punkt den ALSA-Entwicklern."
 
-#: ../src/modules/alsa/alsa-util.c:1064
+#: ../src/modules/alsa/alsa-util.c:1147
 #, c-format
 msgid ""
 "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -49,7 +49,7 @@ msgstr ""
 "Dies ist wahrscheinlich ein Fehler im ALSA-Treiber '%s'. Bitte melden Sie "
 "diesen Punkt den ALSA-Entwicklern."
 
-#: ../src/modules/alsa/alsa-util.c:1111
+#: ../src/modules/alsa/alsa-util.c:1194
 #, c-format
 msgid ""
 "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -62,6 +62,14 @@ msgstr ""
 "Dies ist wahrscheinlich ein Fehler im ALSA-Treiber '%s'. Bitte melden Sie "
 "diesen Punkt den ALSA-Entwicklern."
 
+#: ../src/modules/module-always-sink.c:39
+msgid "Always keeps at least one sink loaded even if it's a null one"
+msgstr ""
+
+#: ../src/modules/module-always-sink.c:83
+msgid "Dummy Output"
+msgstr ""
+
 #: ../src/modules/module-ladspa-sink.c:49
 msgid "Virtual LADSPA sink"
 msgstr ""
@@ -75,6 +83,15 @@ msgid ""
 "input control values>"
 msgstr ""
 
+#: ../src/modules/module-null-sink.c:55
+msgid "Clocked NULL sink"
+msgstr ""
+
+#: ../src/modules/module-null-sink.c:291
+#, fuzzy
+msgid "Null Output"
+msgstr "Ausgang %s"
+
 #: ../src/pulsecore/sink.c:2613
 msgid "Internal Audio"
 msgstr "Internes Audio"
@@ -226,7 +243,7 @@ msgstr "pipe fehlgeschlagen: %s"
 msgid "fork() failed: %s"
 msgstr "fork() fehlgeschlagen: %s"
 
-#: ../src/daemon/main.c:641 ../src/utils/pacat.c:505
+#: ../src/daemon/main.c:641 ../src/utils/pacat.c:504
 #, c-format
 msgid "read() failed: %s"
 msgstr "read() fehlgeschlagen: %s"
@@ -934,8 +951,8 @@ msgid "Top Rear Right"
 msgstr "Oben Hinten Rechts"
 
 #: ../src/pulse/channelmap.c:484 ../src/pulse/sample.c:170
-#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:311
-#: ../src/pulse/volume.c:331 ../src/pulse/volume.c:361
+#: ../src/pulse/volume.c:295 ../src/pulse/volume.c:321
+#: ../src/pulse/volume.c:341 ../src/pulse/volume.c:371
 msgid "(invalid)"
 msgstr "(ungültig)"
 
@@ -1230,54 +1247,54 @@ msgstr "nicht "
 msgid "Stream buffer attributes changed.%s"
 msgstr "Stream-Zwischenspeicher-Attribute geändert.%s \n"
 
-#: ../src/utils/pacat.c:416
+#: ../src/utils/pacat.c:415
 #, fuzzy, c-format
 msgid "Connection established.%s"
 msgstr "Verbindung hergestellt.%s \n"
 
-#: ../src/utils/pacat.c:419
+#: ../src/utils/pacat.c:418
 #, fuzzy, c-format
 msgid "pa_stream_new() failed: %s"
 msgstr "pa_stream_new() fehlgeschlagen: %s\n"
 
-#: ../src/utils/pacat.c:447
+#: ../src/utils/pacat.c:446
 #, fuzzy, c-format
 msgid "pa_stream_connect_playback() failed: %s"
 msgstr "pa_stream_connect_playback() fehlgeschlagen: %s\n"
 
-#: ../src/utils/pacat.c:453
+#: ../src/utils/pacat.c:452
 #, fuzzy, c-format
 msgid "pa_stream_connect_record() failed: %s"
 msgstr "pa_stream_connect_record() fehlgeschlagen: %s\n"
 
-#: ../src/utils/pacat.c:467 ../src/utils/pactl.c:857
+#: ../src/utils/pacat.c:466 ../src/utils/pactl.c:857
 #, fuzzy, c-format
 msgid "Connection failure: %s"
 msgstr "Verbindungsfehler: %s\n"
 
-#: ../src/utils/pacat.c:500
+#: ../src/utils/pacat.c:499
 #, fuzzy
 msgid "Got EOF."
 msgstr "EOF empfangen.\n"
 
-#: ../src/utils/pacat.c:537
+#: ../src/utils/pacat.c:536
 #, fuzzy, c-format
 msgid "write() failed: %s"
 msgstr "write() fehlgeschlagen: %s\n"
 
-#: ../src/utils/pacat.c:558
+#: ../src/utils/pacat.c:557
 #, fuzzy
 msgid "Got signal, exiting."
 msgstr "Signal empfangen, beende.\n"
 
-#: ../src/utils/pacat.c:572
+#: ../src/utils/pacat.c:571
 #, fuzzy, c-format
 msgid "Failed to get latency: %s"
 msgstr "Erhalten der Latenz fehlgeschlagen: %s\n"
 
-#: ../src/utils/pacat.c:577
-#, c-format
-msgid "Time: %0.3f sec; Latency: %0.0f usec.  \r"
+#: ../src/utils/pacat.c:576
+#, fuzzy, c-format
+msgid "Time: %0.3f sec; Latency: %0.0f usec."
 msgstr "Zeit: %0.3f sec; Latenz: %0.0f usec.  \r"
 
 #: ../src/utils/pacat.c:595
@@ -1400,133 +1417,133 @@ msgstr ""
 msgid "Invalid client name '%s'"
 msgstr "Ungültige Kanal-Zuweisung '%s'\n"
 
-#: ../src/utils/pacat.c:776
+#: ../src/utils/pacat.c:775
 #, fuzzy, c-format
 msgid "Invalid stream name '%s'"
 msgstr "Ungültige Resample-Methode '%s'."
 
-#: ../src/utils/pacat.c:813
+#: ../src/utils/pacat.c:812
 #, fuzzy, c-format
 msgid "Invalid channel map '%s'"
 msgstr "Ungültige Kanal-Zuweisung '%s'\n"
 
-#: ../src/utils/pacat.c:842
+#: ../src/utils/pacat.c:841
 #, fuzzy, c-format
 msgid "Invalid latency specification '%s'"
 msgstr "Ungültige Latenz-Angaben '%s'\n"
 
-#: ../src/utils/pacat.c:849
+#: ../src/utils/pacat.c:848
 #, fuzzy, c-format
 msgid "Invalid process time specification '%s'"
 msgstr "Ungültige Prozesszeit-Angaben '%s'\n"
 
-#: ../src/utils/pacat.c:861
+#: ../src/utils/pacat.c:860
 #, fuzzy, c-format
 msgid "Invalid property '%s'"
 msgstr "Ungültige Resample-Methode '%s'."
 
-#: ../src/utils/pacat.c:878
+#: ../src/utils/pacat.c:877
 #, c-format
 msgid "Unknown file format %s."
 msgstr ""
 
-#: ../src/utils/pacat.c:897
+#: ../src/utils/pacat.c:896
 #, fuzzy
 msgid "Invalid sample specification"
 msgstr "Ungültige Sample-Angaben\n"
 
-#: ../src/utils/pacat.c:907
+#: ../src/utils/pacat.c:906
 #, fuzzy, c-format
 msgid "open(): %s"
 msgstr "open(): %s\n"
 
-#: ../src/utils/pacat.c:912
+#: ../src/utils/pacat.c:911
 #, fuzzy, c-format
 msgid "dup2(): %s"
 msgstr "dup2(): %s\n"
 
-#: ../src/utils/pacat.c:919
+#: ../src/utils/pacat.c:918
 #, fuzzy
 msgid "Too many arguments."
 msgstr "Zu viele Argumente.\n"
 
-#: ../src/utils/pacat.c:930
+#: ../src/utils/pacat.c:929
 #, fuzzy
 msgid "Failed to generate sample specification for file."
 msgstr "Beziehen der Sample-Informationen fehlgeschlagen: %s\n"
 
-#: ../src/utils/pacat.c:950
+#: ../src/utils/pacat.c:949
 #, fuzzy
 msgid "Failed to open audio file."
 msgstr "Öffnen der Audio-Datei fehlgeschlagen.\n"
 
-#: ../src/utils/pacat.c:956
+#: ../src/utils/pacat.c:955
 #, fuzzy
 msgid ""
 "Warning: specified sample specification will be overwritten with "
 "specification from file."
 msgstr "Öffne eine %s-Stream mit Sample-Angabe '%s'.\n"
 
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:997
+#: ../src/utils/pacat.c:958 ../src/utils/pactl.c:997
 #, fuzzy
 msgid "Failed to determine sample specification from file."
 msgstr "Beziehen der Sample-Informationen fehlgeschlagen: %s\n"
 
-#: ../src/utils/pacat.c:968
+#: ../src/utils/pacat.c:967
 #, fuzzy
 msgid "Warning: Failed to determine channel map from file."
 msgstr "Öffne eine %s-Stream mit Sample-Angabe '%s'.\n"
 
-#: ../src/utils/pacat.c:979
+#: ../src/utils/pacat.c:978
 #, fuzzy
 msgid "Channel map doesn't match sample specification"
 msgstr "Kanalzuordnung entspricht nicht Einstellungen des Samples\n"
 
-#: ../src/utils/pacat.c:990
+#: ../src/utils/pacat.c:989
 #, fuzzy
 msgid "Warning: failed to write channel map to file."
 msgstr "Öffne eine %s-Stream mit Sample-Angabe '%s'.\n"
 
-#: ../src/utils/pacat.c:1005
+#: ../src/utils/pacat.c:1004
 #, fuzzy, c-format
 msgid ""
 "Opening a %s stream with sample specification '%s' and channel map '%s'."
 msgstr "Öffne eine %s-Stream mit Sample-Angabe '%s'.\n"
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid "recording"
 msgstr "aufnehmen"
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid "playback"
 msgstr "abspielen"
 
-#: ../src/utils/pacat.c:1032 ../src/utils/pactl.c:1267
+#: ../src/utils/pacat.c:1031 ../src/utils/pactl.c:1267
 #, fuzzy
 msgid "pa_mainloop_new() failed."
 msgstr "pa_mainloop_new() fehlgeschlagen.\n"
 
-#: ../src/utils/pacat.c:1051
+#: ../src/utils/pacat.c:1050
 #, fuzzy
 msgid "io_new() failed."
 msgstr "io_new() fehlgeschlagen.\n"
 
-#: ../src/utils/pacat.c:1058 ../src/utils/pactl.c:1279
+#: ../src/utils/pacat.c:1057 ../src/utils/pactl.c:1279
 #, fuzzy
 msgid "pa_context_new() failed."
 msgstr "pa_context_new() fehlgeschlagen.\n"
 
-#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1285
+#: ../src/utils/pacat.c:1065 ../src/utils/pactl.c:1285
 #, c-format
 msgid "pa_context_connect() failed: %s"
 msgstr "pa_context_new() fehlgeschlagen: %s"
 
-#: ../src/utils/pacat.c:1072
+#: ../src/utils/pacat.c:1071
 #, fuzzy
 msgid "pa_context_rttime_new() failed."
 msgstr "pa_context_new() fehlgeschlagen.\n"
 
-#: ../src/utils/pacat.c:1079 ../src/utils/pactl.c:1290
+#: ../src/utils/pacat.c:1078 ../src/utils/pactl.c:1290
 #, fuzzy
 msgid "pa_mainloop_run() failed."
 msgstr "pa_mainloop_run() fehlgeschlagen.\n"
@@ -2288,7 +2305,7 @@ msgstr "write(): %s"
 msgid "Cannot access autospawn lock."
 msgstr "Fehler beim Zugriff auf Autostart -Sperre."
 
-#: ../src/modules/alsa/alsa-sink.c:531 ../src/modules/alsa/alsa-sink.c:689
+#: ../src/modules/alsa/alsa-sink.c:530 ../src/modules/alsa/alsa-sink.c:689
 #, c-format
 msgid ""
 "ALSA woke us up to write new data to the device, but there was actually "
@@ -2306,7 +2323,7 @@ msgstr ""
 "von snd_pcm_avail() liefert 0 oder einen anderen Wert zurück, der < "
 "min_avail ist."
 
-#: ../src/modules/alsa/alsa-source.c:508 ../src/modules/alsa/alsa-source.c:658
+#: ../src/modules/alsa/alsa-source.c:506 ../src/modules/alsa/alsa-source.c:656
 #, c-format
 msgid ""
 "ALSA woke us up to read new data from the device, but there was actually "
@@ -2325,20 +2342,20 @@ msgstr ""
 "min_avail ist."
 
 #: ../src/modules/alsa/module-alsa-card.c:152
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2225
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2228
 msgid "Off"
 msgstr "Aus"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2181
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2184
 msgid "High Fidelity Playback (A2DP)"
 msgstr "High Fidelity Playback (A2DP)"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2195
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2198
 #, fuzzy
 msgid "High Fidelity Capture (A2DP)"
 msgstr "High Fidelity Playback (A2DP)"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2210
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2213
 msgid "Telephony Duplex (HSP/HFP)"
 msgstr "Telephony Duplex (HSP/HFP)"
 
@@ -2523,9 +2540,6 @@ msgstr "PulseAudio Sound Server"
 #~ msgid "Output %s + Input %s"
 #~ msgstr "Ausgabe %s + Eingabe %s"
 
-#~ msgid "Output %s"
-#~ msgstr "Ausgang %s"
-
 #~ msgid "Input %s"
 #~ msgstr "Eingang %s"
 
diff --git a/po/el.po b/po/el.po
index c7a8c91..28a80ab 100644
--- a/po/el.po
+++ b/po/el.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: el\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-03 03:04+0200\n"
+"POT-Creation-Date: 2009-09-10 01:47+0200\n"
 "PO-Revision-Date: 2008-08-22 19:40+0300\n"
 "Last-Translator: Dimitris Glezos <dimitris at glezos.com>\n"
 "Language-Team: Greek <fedora-trans-el at redhat.com>\n"
@@ -16,12 +16,12 @@ msgstr ""
 "X-Generator: KAider 0.1\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2629
+#: ../src/modules/alsa/alsa-util.c:858 ../src/pulsecore/sink.c:2629
 #, c-format
 msgid "%s %s"
 msgstr ""
 
-#: ../src/modules/alsa/alsa-util.c:1023
+#: ../src/modules/alsa/alsa-util.c:1106
 #, c-format
 msgid ""
 "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -30,7 +30,7 @@ msgid ""
 "to the ALSA developers."
 msgstr ""
 
-#: ../src/modules/alsa/alsa-util.c:1064
+#: ../src/modules/alsa/alsa-util.c:1147
 #, c-format
 msgid ""
 "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -39,7 +39,7 @@ msgid ""
 "to the ALSA developers."
 msgstr ""
 
-#: ../src/modules/alsa/alsa-util.c:1111
+#: ../src/modules/alsa/alsa-util.c:1194
 #, c-format
 msgid ""
 "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -48,6 +48,14 @@ msgid ""
 "to the ALSA developers."
 msgstr ""
 
+#: ../src/modules/module-always-sink.c:39
+msgid "Always keeps at least one sink loaded even if it's a null one"
+msgstr ""
+
+#: ../src/modules/module-always-sink.c:83
+msgid "Dummy Output"
+msgstr ""
+
 #: ../src/modules/module-ladspa-sink.c:49
 msgid "Virtual LADSPA sink"
 msgstr ""
@@ -61,6 +69,14 @@ msgid ""
 "input control values>"
 msgstr ""
 
+#: ../src/modules/module-null-sink.c:55
+msgid "Clocked NULL sink"
+msgstr ""
+
+#: ../src/modules/module-null-sink.c:291
+msgid "Null Output"
+msgstr ""
+
 #: ../src/pulsecore/sink.c:2613
 msgid "Internal Audio"
 msgstr ""
@@ -210,7 +226,7 @@ msgstr ""
 msgid "fork() failed: %s"
 msgstr ""
 
-#: ../src/daemon/main.c:641 ../src/utils/pacat.c:505
+#: ../src/daemon/main.c:641 ../src/utils/pacat.c:504
 #, c-format
 msgid "read() failed: %s"
 msgstr ""
@@ -845,8 +861,8 @@ msgid "Top Rear Right"
 msgstr ""
 
 #: ../src/pulse/channelmap.c:484 ../src/pulse/sample.c:170
-#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:311
-#: ../src/pulse/volume.c:331 ../src/pulse/volume.c:361
+#: ../src/pulse/volume.c:295 ../src/pulse/volume.c:321
+#: ../src/pulse/volume.c:341 ../src/pulse/volume.c:371
 msgid "(invalid)"
 msgstr ""
 
@@ -1137,52 +1153,52 @@ msgstr ""
 msgid "Stream buffer attributes changed.%s"
 msgstr ""
 
-#: ../src/utils/pacat.c:416
+#: ../src/utils/pacat.c:415
 #, c-format
 msgid "Connection established.%s"
 msgstr ""
 
-#: ../src/utils/pacat.c:419
+#: ../src/utils/pacat.c:418
 #, c-format
 msgid "pa_stream_new() failed: %s"
 msgstr ""
 
-#: ../src/utils/pacat.c:447
+#: ../src/utils/pacat.c:446
 #, c-format
 msgid "pa_stream_connect_playback() failed: %s"
 msgstr ""
 
-#: ../src/utils/pacat.c:453
+#: ../src/utils/pacat.c:452
 #, c-format
 msgid "pa_stream_connect_record() failed: %s"
 msgstr ""
 
-#: ../src/utils/pacat.c:467 ../src/utils/pactl.c:857
+#: ../src/utils/pacat.c:466 ../src/utils/pactl.c:857
 #, c-format
 msgid "Connection failure: %s"
 msgstr ""
 
-#: ../src/utils/pacat.c:500
+#: ../src/utils/pacat.c:499
 msgid "Got EOF."
 msgstr ""
 
-#: ../src/utils/pacat.c:537
+#: ../src/utils/pacat.c:536
 #, c-format
 msgid "write() failed: %s"
 msgstr ""
 
-#: ../src/utils/pacat.c:558
+#: ../src/utils/pacat.c:557
 msgid "Got signal, exiting."
 msgstr ""
 
-#: ../src/utils/pacat.c:572
+#: ../src/utils/pacat.c:571
 #, fuzzy, c-format
 msgid "Failed to get latency: %s"
 msgstr "Αποτυχία εύρεσης χρήστη '%s'."
 
-#: ../src/utils/pacat.c:577
+#: ../src/utils/pacat.c:576
 #, c-format
-msgid "Time: %0.3f sec; Latency: %0.0f usec.  \r"
+msgid "Time: %0.3f sec; Latency: %0.0f usec."
 msgstr ""
 
 #: ../src/utils/pacat.c:595
@@ -1263,120 +1279,120 @@ msgstr ""
 msgid "Invalid client name '%s'"
 msgstr ""
 
-#: ../src/utils/pacat.c:776
+#: ../src/utils/pacat.c:775
 #, c-format
 msgid "Invalid stream name '%s'"
 msgstr ""
 
-#: ../src/utils/pacat.c:813
+#: ../src/utils/pacat.c:812
 #, c-format
 msgid "Invalid channel map '%s'"
 msgstr ""
 
-#: ../src/utils/pacat.c:842
+#: ../src/utils/pacat.c:841
 #, c-format
 msgid "Invalid latency specification '%s'"
 msgstr ""
 
-#: ../src/utils/pacat.c:849
+#: ../src/utils/pacat.c:848
 #, c-format
 msgid "Invalid process time specification '%s'"
 msgstr ""
 
-#: ../src/utils/pacat.c:861
+#: ../src/utils/pacat.c:860
 #, c-format
 msgid "Invalid property '%s'"
 msgstr ""
 
-#: ../src/utils/pacat.c:878
+#: ../src/utils/pacat.c:877
 #, c-format
 msgid "Unknown file format %s."
 msgstr ""
 
-#: ../src/utils/pacat.c:897
+#: ../src/utils/pacat.c:896
 msgid "Invalid sample specification"
 msgstr ""
 
-#: ../src/utils/pacat.c:907
+#: ../src/utils/pacat.c:906
 #, c-format
 msgid "open(): %s"
 msgstr ""
 
-#: ../src/utils/pacat.c:912
+#: ../src/utils/pacat.c:911
 #, c-format
 msgid "dup2(): %s"
 msgstr ""
 
-#: ../src/utils/pacat.c:919
+#: ../src/utils/pacat.c:918
 msgid "Too many arguments."
 msgstr ""
 
-#: ../src/utils/pacat.c:930
+#: ../src/utils/pacat.c:929
 msgid "Failed to generate sample specification for file."
 msgstr ""
 
-#: ../src/utils/pacat.c:950
+#: ../src/utils/pacat.c:949
 msgid "Failed to open audio file."
 msgstr ""
 
-#: ../src/utils/pacat.c:956
+#: ../src/utils/pacat.c:955
 msgid ""
 "Warning: specified sample specification will be overwritten with "
 "specification from file."
 msgstr ""
 
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:997
+#: ../src/utils/pacat.c:958 ../src/utils/pactl.c:997
 msgid "Failed to determine sample specification from file."
 msgstr ""
 
-#: ../src/utils/pacat.c:968
+#: ../src/utils/pacat.c:967
 msgid "Warning: Failed to determine channel map from file."
 msgstr ""
 
-#: ../src/utils/pacat.c:979
+#: ../src/utils/pacat.c:978
 msgid "Channel map doesn't match sample specification"
 msgstr ""
 
-#: ../src/utils/pacat.c:990
+#: ../src/utils/pacat.c:989
 msgid "Warning: failed to write channel map to file."
 msgstr ""
 
-#: ../src/utils/pacat.c:1005
+#: ../src/utils/pacat.c:1004
 #, c-format
 msgid ""
 "Opening a %s stream with sample specification '%s' and channel map '%s'."
 msgstr ""
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid "recording"
 msgstr ""
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid "playback"
 msgstr ""
 
-#: ../src/utils/pacat.c:1032 ../src/utils/pactl.c:1267
+#: ../src/utils/pacat.c:1031 ../src/utils/pactl.c:1267
 msgid "pa_mainloop_new() failed."
 msgstr ""
 
-#: ../src/utils/pacat.c:1051
+#: ../src/utils/pacat.c:1050
 msgid "io_new() failed."
 msgstr ""
 
-#: ../src/utils/pacat.c:1058 ../src/utils/pactl.c:1279
+#: ../src/utils/pacat.c:1057 ../src/utils/pactl.c:1279
 msgid "pa_context_new() failed."
 msgstr ""
 
-#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1285
+#: ../src/utils/pacat.c:1065 ../src/utils/pactl.c:1285
 #, c-format
 msgid "pa_context_connect() failed: %s"
 msgstr ""
 
-#: ../src/utils/pacat.c:1072
+#: ../src/utils/pacat.c:1071
 msgid "pa_context_rttime_new() failed."
 msgstr ""
 
-#: ../src/utils/pacat.c:1079 ../src/utils/pactl.c:1290
+#: ../src/utils/pacat.c:1078 ../src/utils/pactl.c:1290
 msgid "pa_mainloop_run() failed."
 msgstr ""
 
@@ -1969,7 +1985,7 @@ msgstr ""
 msgid "Cannot access autospawn lock."
 msgstr ""
 
-#: ../src/modules/alsa/alsa-sink.c:531 ../src/modules/alsa/alsa-sink.c:689
+#: ../src/modules/alsa/alsa-sink.c:530 ../src/modules/alsa/alsa-sink.c:689
 #, c-format
 msgid ""
 "ALSA woke us up to write new data to the device, but there was actually "
@@ -1980,7 +1996,7 @@ msgid ""
 "returned 0 or another value < min_avail."
 msgstr ""
 
-#: ../src/modules/alsa/alsa-source.c:508 ../src/modules/alsa/alsa-source.c:658
+#: ../src/modules/alsa/alsa-source.c:506 ../src/modules/alsa/alsa-source.c:656
 #, c-format
 msgid ""
 "ALSA woke us up to read new data from the device, but there was actually "
@@ -1992,19 +2008,19 @@ msgid ""
 msgstr ""
 
 #: ../src/modules/alsa/module-alsa-card.c:152
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2225
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2228
 msgid "Off"
 msgstr ""
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2181
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2184
 msgid "High Fidelity Playback (A2DP)"
 msgstr ""
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2195
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2198
 msgid "High Fidelity Capture (A2DP)"
 msgstr ""
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2210
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2213
 msgid "Telephony Duplex (HSP/HFP)"
 msgstr ""
 
diff --git a/po/es.po b/po/es.po
index 45480d9..e107209 100644
--- a/po/es.po
+++ b/po/es.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PulseAudio\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-03 08:42+0000\n"
+"POT-Creation-Date: 2009-09-10 01:47+0200\n"
 "PO-Revision-Date: 2009-09-03 09:52-0300\n"
 "Last-Translator: Domingo Becker <domingobecker at gmail.com>\n"
 "Language-Team: Fedora Spanish <fedora-trans-es at redhat.com>\n"
@@ -18,46 +18,85 @@ msgstr ""
 "X-Poedit-Language: Spanish\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/modules/alsa/alsa-util.c:775
-#: ../src/pulsecore/sink.c:2629
+#: ../src/modules/alsa/alsa-util.c:858 ../src/pulsecore/sink.c:2629
 #, c-format
 msgid "%s %s"
 msgstr "%s %s"
 
-#: ../src/modules/alsa/alsa-util.c:1023
+#: ../src/modules/alsa/alsa-util.c:1106
 #, c-format
 msgid ""
-"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu ms).\n"
-"Most likely this is a bug in the ALSA driver '%s'. Please report this issue to the ALSA developers."
+"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
+"ms).\n"
+"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
+"to the ALSA developers."
 msgstr ""
-"snd_pcm_avail() devolvió un valor que es excepcionalmente grande: %lu bytes (%lu ms).\n"
-"Lo más probable es que sea un error del controlador ALSA '%s'. Por favor, informe ésto a los desarrolladores de ALSA."
+"snd_pcm_avail() devolvió un valor que es excepcionalmente grande: %lu bytes "
+"(%lu ms).\n"
+"Lo más probable es que sea un error del controlador ALSA '%s'. Por favor, "
+"informe ésto a los desarrolladores de ALSA."
 
-#: ../src/modules/alsa/alsa-util.c:1064
+#: ../src/modules/alsa/alsa-util.c:1147
 #, c-format
 msgid ""
-"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%lu ms).\n"
-"Most likely this is a bug in the ALSA driver '%s'. Please report this issue to the ALSA developers."
+"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
+"lu ms).\n"
+"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
+"to the ALSA developers."
 msgstr ""
-"snd_pcm_delay() devolvió un valor que es excepcionalmente grande: %li bytes (%s%lu ms).\n"
-"Lo más probable es que sea un error del controlador ALSA '%s'. Por favor, informe ésto a los desarrolladores de ALSA."
+"snd_pcm_delay() devolvió un valor que es excepcionalmente grande: %li bytes "
+"(%s%lu ms).\n"
+"Lo más probable es que sea un error del controlador ALSA '%s'. Por favor, "
+"informe ésto a los desarrolladores de ALSA."
 
-#: ../src/modules/alsa/alsa-util.c:1111
+#: ../src/modules/alsa/alsa-util.c:1194
 #, c-format
 msgid ""
-"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes (%lu ms).\n"
-"Most likely this is a bug in the ALSA driver '%s'. Please report this issue to the ALSA developers."
+"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
+"(%lu ms).\n"
+"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
+"to the ALSA developers."
+msgstr ""
+"snd_pcm_mmap_begin() devolvió un valor que es excepcionalmente grande: %lu "
+"bytes (%lu ms).\n"
+"Lo más probable es que sea un error del controlador ALSA '%s'. Por favor, "
+"informe ésto a los desarrolladores de ALSA."
+
+#: ../src/modules/module-always-sink.c:39
+msgid "Always keeps at least one sink loaded even if it's a null one"
+msgstr ""
+
+#: ../src/modules/module-always-sink.c:83
+msgid "Dummy Output"
 msgstr ""
-"snd_pcm_mmap_begin() devolvió un valor que es excepcionalmente grande: %lu bytes (%lu ms).\n"
-"Lo más probable es que sea un error del controlador ALSA '%s'. Por favor, informe ésto a los desarrolladores de ALSA."
 
 #: ../src/modules/module-ladspa-sink.c:49
 msgid "Virtual LADSPA sink"
 msgstr "Sumidero virtual LADSPA"
 
 #: ../src/modules/module-ladspa-sink.c:53
-msgid "sink_name=<name for the sink> sink_properties=<properties for the sink> master=<name of sink to filter> format=<sample format> rate=<sample rate> channels=<number of channels> channel_map=<channel map> plugin=<ladspa plugin name> label=<ladspa plugin label> control=<comma seperated list of input control values>"
-msgstr "sink_name=<nombre para el sumidero> sink_properties=<propiedades para el sumidero> master=<nombre del sumidero a filtrar> format=<formato de ejemplo> rate=<tasa de ejemplo> channels=<cantidad de canaless> channel_map=<mapeo de canales> plugin=<nombre del complemento ladspa> label=<etiqueta del complemento ladspa> control=<lista separada por comas de valores de control de entrada>"
+msgid ""
+"sink_name=<name for the sink> sink_properties=<properties for the sink> "
+"master=<name of sink to filter> format=<sample format> rate=<sample rate> "
+"channels=<number of channels> channel_map=<channel map> plugin=<ladspa "
+"plugin name> label=<ladspa plugin label> control=<comma seperated list of "
+"input control values>"
+msgstr ""
+"sink_name=<nombre para el sumidero> sink_properties=<propiedades para el "
+"sumidero> master=<nombre del sumidero a filtrar> format=<formato de ejemplo> "
+"rate=<tasa de ejemplo> channels=<cantidad de canaless> channel_map=<mapeo de "
+"canales> plugin=<nombre del complemento ladspa> label=<etiqueta del "
+"complemento ladspa> control=<lista separada por comas de valores de control "
+"de entrada>"
+
+#: ../src/modules/module-null-sink.c:55
+msgid "Clocked NULL sink"
+msgstr ""
+
+#: ../src/modules/module-null-sink.c:291
+#, fuzzy
+msgid "Null Output"
+msgstr "Salida %s"
 
 #: ../src/pulsecore/sink.c:2613
 msgid "Internal Audio"
@@ -113,8 +152,7 @@ msgstr "GID del usuario '%s' y del grupo '%s' no son similares."
 msgid "Home directory of user '%s' is not '%s', ignoring."
 msgstr "El directorio de inicio del usuario '%s' no es '%s', ignorando."
 
-#: ../src/daemon/main.c:208
-#: ../src/daemon/main.c:213
+#: ../src/daemon/main.c:208 ../src/daemon/main.c:213
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr "Falló al crear '%s': %s"
@@ -166,8 +204,12 @@ msgid "Failed to kill daemon: %s"
 msgstr "No se ha podido detener el demonio: %s"
 
 #: ../src/daemon/main.c:566
-msgid "This program is not intended to be run as root (unless --system is specified)."
-msgstr "Este programa no tiene por qué ser ejecutado como root (a menos que --system sea especificado)."
+msgid ""
+"This program is not intended to be run as root (unless --system is "
+"specified)."
+msgstr ""
+"Este programa no tiene por qué ser ejecutado como root (a menos que --system "
+"sea especificado)."
 
 #: ../src/daemon/main.c:568
 msgid "Root privileges required."
@@ -179,19 +221,24 @@ msgstr "--start no está soportado para las instancias del sistema."
 
 #: ../src/daemon/main.c:578
 msgid "Running in system mode, but --disallow-exit not set!"
-msgstr "Ejecutándose en modo de sistema, ¡pero no se ha configurado --disallow-exit! "
+msgstr ""
+"Ejecutándose en modo de sistema, ¡pero no se ha configurado --disallow-exit! "
 
 #: ../src/daemon/main.c:581
 msgid "Running in system mode, but --disallow-module-loading not set!"
-msgstr "Ejecutándose en modo de sistema, ¡pero no se ha configurado --disallow-module-loading!"
+msgstr ""
+"Ejecutándose en modo de sistema, ¡pero no se ha configurado --disallow-"
+"module-loading!"
 
 #: ../src/daemon/main.c:584
 msgid "Running in system mode, forcibly disabling SHM mode!"
-msgstr "Ejecutándose en modo de sistema, ¡desactivando forzadamente el modo SHM!"
+msgstr ""
+"Ejecutándose en modo de sistema, ¡desactivando forzadamente el modo SHM!"
 
 #: ../src/daemon/main.c:589
 msgid "Running in system mode, forcibly disabling exit idle time!"
-msgstr "Ejecutándose en modo de sistema, ¡desactivando forzadamente exit idle time!"
+msgstr ""
+"Ejecutándose en modo de sistema, ¡desactivando forzadamente exit idle time!"
 
 #: ../src/daemon/main.c:616
 msgid "Failed to acquire stdio."
@@ -207,8 +254,7 @@ msgstr "Falló el pipe: %s"
 msgid "fork() failed: %s"
 msgstr "Falló el fork(): %s"
 
-#: ../src/daemon/main.c:641
-#: ../src/utils/pacat.c:505
+#: ../src/daemon/main.c:641 ../src/utils/pacat.c:504
 #, c-format
 msgid "read() failed: %s"
 msgstr "Falló la operación read(): %s"
@@ -320,13 +366,20 @@ msgstr "Ejecutándose en modo de sistema: %s"
 
 #: ../src/daemon/main.c:787
 msgid ""
-"OK, so you are running PA in system mode. Please note that you most likely shouldn't be doing that.\n"
-"If you do it nonetheless then it's your own fault if things don't work as expected.\n"
-"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an explanation why system mode is usually a bad idea."
+"OK, so you are running PA in system mode. Please note that you most likely "
+"shouldn't be doing that.\n"
+"If you do it nonetheless then it's your own fault if things don't work as "
+"expected.\n"
+"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an "
+"explanation why system mode is usually a bad idea."
 msgstr ""
-"Bien, o sea que está ejecutando PA en modo de sistema. Por favor entienda que, en general, no debería estar haciéndolo.\n"
-"Si insiste en seguir utilizando este modo, será debido a su propio accionar que las cosas no funcionen como se esperaba.\n"
-"Por favor lea http://pulseaudio.org/wiki/WhatIsWrongWithSystemMod para obtener una explicación acerca de por qué es una mala idea utilizar el  modo sistema."
+"Bien, o sea que está ejecutando PA en modo de sistema. Por favor entienda "
+"que, en general, no debería estar haciéndolo.\n"
+"Si insiste en seguir utilizando este modo, será debido a su propio accionar "
+"que las cosas no funcionen como se esperaba.\n"
+"Por favor lea http://pulseaudio.org/wiki/WhatIsWrongWithSystemMod para "
+"obtener una explicación acerca de por qué es una mala idea utilizar el  modo "
+"sistema."
 
 #: ../src/daemon/main.c:804
 msgid "pa_pid_file_create() failed."
@@ -334,11 +387,17 @@ msgstr "Ha fallado pa_pid_file_create()."
 
 #: ../src/daemon/main.c:814
 msgid "Fresh high-resolution timers available! Bon appetit!"
-msgstr "¡Existen cronómetros de alta resolución fresquitos y disponibles! ¡Bon appetit!"
+msgstr ""
+"¡Existen cronómetros de alta resolución fresquitos y disponibles! ¡Bon "
+"appetit!"
 
 #: ../src/daemon/main.c:816
-msgid "Dude, your kernel stinks! The chef's recommendation today is Linux with high-resolution timers enabled!"
-msgstr "¡Amigo, su kernel deja mucho que desear! ¡El plato que hoy recomienda el chef es Linux con cronómetros de alta resolución activados!  "
+msgid ""
+"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
+"resolution timers enabled!"
+msgstr ""
+"¡Amigo, su kernel deja mucho que desear! ¡El plato que hoy recomienda el "
+"chef es Linux con cronómetros de alta resolución activados!  "
 
 #: ../src/daemon/main.c:839
 msgid "pa_core_new() failed."
@@ -350,7 +409,9 @@ msgstr "Fallo al intentar iniciar el demonio."
 
 #: ../src/daemon/main.c:904
 msgid "Daemon startup without any loaded modules, refusing to work."
-msgstr "El demonio se ha iniciado sin ningún módulo cargado, y por ello se niega a funcionar."
+msgstr ""
+"El demonio se ha iniciado sin ningún módulo cargado, y por ello se niega a "
+"funcionar."
 
 #: ../src/daemon/main.c:921
 msgid "Daemon startup complete."
@@ -375,37 +436,48 @@ msgid ""
 "      --dump-conf                       Dump default configuration\n"
 "      --dump-modules                    Dump list of available modules\n"
 "      --dump-resample-methods           Dump available resample methods\n"
-"      --cleanup-shm                     Cleanup stale shared memory segments\n"
-"      --start                           Start the daemon if it is not running\n"
+"      --cleanup-shm                     Cleanup stale shared memory "
+"segments\n"
+"      --start                           Start the daemon if it is not "
+"running\n"
 "  -k  --kill                            Kill a running daemon\n"
-"      --check                           Check for a running daemon (only returns exit code)\n"
+"      --check                           Check for a running daemon (only "
+"returns exit code)\n"
 "\n"
 "OPTIONS:\n"
 "      --system[=BOOL]                   Run as system-wide instance\n"
 "  -D, --daemonize[=BOOL]                Daemonize after startup\n"
 "      --fail[=BOOL]                     Quit when startup fails\n"
 "      --high-priority[=BOOL]            Try to set high nice level\n"
-"                                        (only available as root, when SUID or\n"
+"                                        (only available as root, when SUID "
+"or\n"
 "                                        with elevated RLIMIT_NICE)\n"
 "      --realtime[=BOOL]                 Try to enable realtime scheduling\n"
-"                                        (only available as root, when SUID or\n"
+"                                        (only available as root, when SUID "
+"or\n"
 "                                        with elevated RLIMIT_RTPRIO)\n"
-"      --disallow-module-loading[=BOOL]  Disallow module user requested module\n"
+"      --disallow-module-loading[=BOOL]  Disallow module user requested "
+"module\n"
 "                                        loading/unloading after startup\n"
 "      --disallow-exit[=BOOL]            Disallow user requested exit\n"
-"      --exit-idle-time=SECS             Terminate the daemon when idle and this\n"
+"      --exit-idle-time=SECS             Terminate the daemon when idle and "
+"this\n"
 "                                        time passed\n"
-"      --module-idle-time=SECS           Unload autoloaded modules when idle and\n"
+"      --module-idle-time=SECS           Unload autoloaded modules when idle "
+"and\n"
 "                                        this time passed\n"
-"      --scache-idle-time=SECS           Unload autoloaded samples when idle and\n"
+"      --scache-idle-time=SECS           Unload autoloaded samples when idle "
+"and\n"
 "                                        this time passed\n"
 "      --log-level[=LEVEL]               Increase or set verbosity level\n"
 "  -v                                    Increase the verbosity level\n"
 "      --log-target={auto,syslog,stderr} Specify the log target\n"
-"      --log-meta[=BOOL]                 Include code location in log messages\n"
+"      --log-meta[=BOOL]                 Include code location in log "
+"messages\n"
 "      --log-time[=BOOL]                 Include timestamps in log messages\n"
 "      --log-backtrace=FRAMES            Include a backtrace in log messages\n"
-"  -p, --dl-search-path=PATH             Set the search path for dynamic shared\n"
+"  -p, --dl-search-path=PATH             Set the search path for dynamic "
+"shared\n"
 "                                        objects (plugins)\n"
 "      --resample-method=METHOD          Use the specified resampling method\n"
 "                                        (See --dump-resample-methods for\n"
@@ -416,10 +488,12 @@ msgid ""
 "      --disable-shm[=BOOL]              Disable shared memory support.\n"
 "\n"
 "STARTUP SCRIPT:\n"
-"  -L, --load=\"MODULE ARGUMENTS\"         Load the specified plugin module with\n"
+"  -L, --load=\"MODULE ARGUMENTS\"         Load the specified plugin module "
+"with\n"
 "                                        the specified argument\n"
 "  -F, --file=FILENAME                   Run the specified script\n"
-"  -C                                    Open a command line on the running TTY\n"
+"  -C                                    Open a command line on the running "
+"TTY\n"
 "                                        after startup\n"
 "\n"
 "  -n                                    Don't load default script file\n"
@@ -430,50 +504,78 @@ msgstr ""
 "  -h, --help                            Muestra esta ayuda\n"
 "      --version                         Muestra la versión\n"
 "      --dump-conf                       Vuelca la configuración por defecto\n"
-"      --dump-modules                    Vuelca una lista de múdulos disponibles\n"
-"      --dump-resample-methods           Vuelca los métodos disponibles de remuestreo\n"
-"      --cleanup-shm                     Limpia los segmentos de memoria compartidos\n"
-"      --start                           Inicia el demonio, si es que aún no está funcionando\n"
+"      --dump-modules                    Vuelca una lista de múdulos "
+"disponibles\n"
+"      --dump-resample-methods           Vuelca los métodos disponibles de "
+"remuestreo\n"
+"      --cleanup-shm                     Limpia los segmentos de memoria "
+"compartidos\n"
+"      --start                           Inicia el demonio, si es que aún no "
+"está funcionando\n"
 "  -k  --kill                            Detiene a un demonio funcionando\n"
-"      --check                           Verifica qué demonios están funcionando\n"
+"      --check                           Verifica qué demonios están "
+"funcionando\n"
 "\n"
 "OPCIONES:\n"
-"      --system[=BOOL]                   Se ejecuta como unica instancia a nivel del sistema\n"
-"  -D, --daemonize[=BOOL]                Se convierte en demonio luego de iniciarse\n"
+"      --system[=BOOL]                   Se ejecuta como unica instancia a "
+"nivel del sistema\n"
+"  -D, --daemonize[=BOOL]                Se convierte en demonio luego de "
+"iniciarse\n"
 "      --fail[=BOOL]                     Se cierra cuando falla el inicio\n"
-"      --high-priority[=BOOL]            Trata de establecer un nivel de nice alto\n"
-"                                        (sólo disponible como root, cuando el SUID o\n"
+"      --high-priority[=BOOL]            Trata de establecer un nivel de nice "
+"alto\n"
+"                                        (sólo disponible como root, cuando "
+"el SUID o\n"
 "                                        con RLIMIT_NICE) elevado\n"
-"      --realtime[=BOOL]                 Trata de activar planificación en tiempo real\n"
-"                                        (sólo disponible como root, cuando el SUID o\n"
+"      --realtime[=BOOL]                 Trata de activar planificación en "
+"tiempo real\n"
+"                                        (sólo disponible como root, cuando "
+"el SUID o\n"
 "                                        con RLIMIT_RTPRIO) elevado\n"
-"      --disallow-module-loading[=BOOL]  No permite la carga/descarga del módulo por el usuario\n"
+"      --disallow-module-loading[=BOOL]  No permite la carga/descarga del "
+"módulo por el usuario\n"
 "                                        después que se haya iniciado\n"
-"      --disallow-exit[=BOOL]            No permite la petición del usuario de abandonar el programa\n"
-"      --exit-idle-time=SECS             Desactiva un demonio cuando está ocioso y\n"
-"                                        ha transcurrido esta cantidad de tiempo\n"
-"      --module-idle-time=SECS           Descarga modulos que se han cargado automáticamente cuando están ociosos y\n"
-"                                        ha transcurrido esta cantidad de tiempo\n"
-"      --scache-idle-time=SECS           Descarga muestras cargadas automáticamente cuando están\n"
-"                                        ociosos y ha transcurrido esta cantidad de tiempo\n"
-"      --log-level[=LEVEL]               Aumenta o define el grado de salida a utilizar\n"
+"      --disallow-exit[=BOOL]            No permite la petición del usuario "
+"de abandonar el programa\n"
+"      --exit-idle-time=SECS             Desactiva un demonio cuando está "
+"ocioso y\n"
+"                                        ha transcurrido esta cantidad de "
+"tiempo\n"
+"      --module-idle-time=SECS           Descarga modulos que se han cargado "
+"automáticamente cuando están ociosos y\n"
+"                                        ha transcurrido esta cantidad de "
+"tiempo\n"
+"      --scache-idle-time=SECS           Descarga muestras cargadas "
+"automáticamente cuando están\n"
+"                                        ociosos y ha transcurrido esta "
+"cantidad de tiempo\n"
+"      --log-level[=LEVEL]               Aumenta o define el grado de salida "
+"a utilizar\n"
 "  -v                                    Aumenta el grado de salida\n"
 "      --log-target={auto,syslog,stderr} Especifica el destino del log\n"
-"  -p, --dl-search-path=PATH             Establece la ruta de búsqueda (search path) para complementos\n"
+"  -p, --dl-search-path=PATH             Establece la ruta de búsqueda "
+"(search path) para complementos\n"
 "                                        (plugins) compartidos\n"
-"      --resample-method=METHOD          Utiliza un método de remuestreo específico\n"
-"                                        (Ver en --dump-resample-methods los valores posibles)\n"
+"      --resample-method=METHOD          Utiliza un método de remuestreo "
+"específico\n"
+"                                        (Ver en --dump-resample-methods los "
+"valores posibles)\n"
 "      --use-pid-file[=BOOL]             Crea el archivo PID\n"
-"      --no-cpu-limit[=BOOL]             No instala un limitador de carga de CPU en\n"
+"      --no-cpu-limit[=BOOL]             No instala un limitador de carga de "
+"CPU en\n"
 "                                        plataformas que lo soporten.\n"
-"      --disable-shm[=BOOL]              Deshabilita el soporte para memoria compartida.\n"
+"      --disable-shm[=BOOL]              Deshabilita el soporte para memoria "
+"compartida.\n"
 "\n"
 "SCRIPT DE INICIO:\n"
-"  -L, --load=\"ARGUMENTOS DEL MODULO\"  Carga el módulo complemento con los parámetros dados\n"
+"  -L, --load=\"ARGUMENTOS DEL MODULO\"  Carga el módulo complemento con los "
+"parámetros dados\n"
 "  -F, --file=FILENAME                   Ejecuta el script especificado\n"
-"  -C                                    Abre una línea de comando en el TTY actual después de iniciar\n"
+"  -C                                    Abre una línea de comando en el TTY "
+"actual después de iniciar\n"
 "\n"
-"  -n                                    No carga el archivo script predeterminado\n"
+"  -n                                    No carga el archivo script "
+"predeterminado\n"
 
 #: ../src/daemon/cmdline.c:247
 msgid "--daemonize expects boolean argument"
@@ -484,8 +586,13 @@ msgid "--fail expects boolean argument"
 msgstr "--fail espera un argumento booleano"
 
 #: ../src/daemon/cmdline.c:264
-msgid "--log-level expects log level argument (either numeric in range 0..4 or one of debug, info, notice, warn, error)."
-msgstr "--log-level espera un argumento en el nivel del log (ya sea numérico, que caiga en el rango de 0..4; ya sea uno de debug, info, notice, warn, o error). "
+msgid ""
+"--log-level expects log level argument (either numeric in range 0..4 or one "
+"of debug, info, notice, warn, error)."
+msgstr ""
+"--log-level espera un argumento en el nivel del log (ya sea numérico, que "
+"caiga en el rango de 0..4; ya sea uno de debug, info, notice, warn, o "
+"error). "
 
 #: ../src/daemon/cmdline.c:276
 msgid "--high-priority expects boolean argument"
@@ -647,8 +754,12 @@ msgid "Failed to open configuration file: %s"
 msgstr "No se pudo abrir el archivo de configuración: %s"
 
 #: ../src/daemon/daemon-conf.c:562
-msgid "The specified default channel map has a different number of channels than the specified default number of channels."
-msgstr "El mapa de canal predeterminado especificado tiene un número de canales distinto al especificado como predeterminado."
+msgid ""
+"The specified default channel map has a different number of channels than "
+"the specified default number of channels."
+msgstr ""
+"El mapa de canal predeterminado especificado tiene un número de canales "
+"distinto al especificado como predeterminado."
 
 #: ../src/daemon/daemon-conf.c:638
 #, c-format
@@ -667,8 +778,7 @@ msgstr "Sistema de Sonido PulseAudio"
 msgid "Start the PulseAudio Sound System"
 msgstr "Iniciar el Sistema de Sonido PulseAudio"
 
-#: ../src/pulse/channelmap.c:105
-#: ../src/pulse/channelmap.c:757
+#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:757
 msgid "Mono"
 msgstr "Mono"
 
@@ -872,12 +982,9 @@ msgstr "Posterior izquierdo superior"
 msgid "Top Rear Right"
 msgstr "Posterior derecho superior"
 
-#: ../src/pulse/channelmap.c:484
-#: ../src/pulse/sample.c:170
-#: ../src/pulse/volume.c:285
-#: ../src/pulse/volume.c:311
-#: ../src/pulse/volume.c:331
-#: ../src/pulse/volume.c:361
+#: ../src/pulse/channelmap.c:484 ../src/pulse/sample.c:170
+#: ../src/pulse/volume.c:295 ../src/pulse/volume.c:321
+#: ../src/pulse/volume.c:341 ../src/pulse/volume.c:371
 msgid "(invalid)"
 msgstr "(inválido)"
 
@@ -1030,8 +1137,7 @@ msgstr "%0.1f KiB"
 msgid "%u B"
 msgstr "%u B"
 
-#: ../src/pulse/client-conf-x11.c:55
-#: ../src/utils/pax11publish.c:100
+#: ../src/pulse/client-conf-x11.c:55 ../src/utils/pax11publish.c:100
 msgid "XOpenDisplay() failed"
 msgstr "XOpenDisplay() falló"
 
@@ -1091,8 +1197,7 @@ msgstr "pa_stream_write() falló: %s"
 msgid "pa_stream_begin_write() failed: %s"
 msgstr "pa_stream_write() falló: %s"
 
-#: ../src/utils/pacat.c:237
-#: ../src/utils/pacat.c:267
+#: ../src/utils/pacat.c:237 ../src/utils/pacat.c:267
 #, c-format
 msgid "pa_stream_peek() failed: %s"
 msgstr "pa_stream_peek() falló: %s"
@@ -1170,53 +1275,52 @@ msgstr "no"
 msgid "Stream buffer attributes changed.%s"
 msgstr "Los atributos del búfer de flujo han cambiado.%s"
 
-#: ../src/utils/pacat.c:416
+#: ../src/utils/pacat.c:415
 #, c-format
 msgid "Connection established.%s"
 msgstr "Conexión establecida.%s"
 
-#: ../src/utils/pacat.c:419
+#: ../src/utils/pacat.c:418
 #, c-format
 msgid "pa_stream_new() failed: %s"
 msgstr "pa_stream_new() falló: %s"
 
-#: ../src/utils/pacat.c:447
+#: ../src/utils/pacat.c:446
 #, c-format
 msgid "pa_stream_connect_playback() failed: %s"
 msgstr "pa_stream_connect_playback() falló: %s"
 
-#: ../src/utils/pacat.c:453
+#: ../src/utils/pacat.c:452
 #, c-format
 msgid "pa_stream_connect_record() failed: %s"
 msgstr "pa_stream_connect_record() falló: %s"
 
-#: ../src/utils/pacat.c:467
-#: ../src/utils/pactl.c:857
+#: ../src/utils/pacat.c:466 ../src/utils/pactl.c:857
 #, c-format
 msgid "Connection failure: %s"
 msgstr "Error en la conexión: %s"
 
-#: ../src/utils/pacat.c:500
+#: ../src/utils/pacat.c:499
 msgid "Got EOF."
 msgstr "Se tiene EOF."
 
-#: ../src/utils/pacat.c:537
+#: ../src/utils/pacat.c:536
 #, c-format
 msgid "write() failed: %s"
 msgstr "write() falló: %s"
 
-#: ../src/utils/pacat.c:558
+#: ../src/utils/pacat.c:557
 msgid "Got signal, exiting."
 msgstr "Hay señal, saliendo (exiting)."
 
-#: ../src/utils/pacat.c:572
+#: ../src/utils/pacat.c:571
 #, c-format
 msgid "Failed to get latency: %s"
 msgstr "No se pudo obtener latencia: %s"
 
-#: ../src/utils/pacat.c:577
-#, c-format
-msgid "Time: %0.3f sec; Latency: %0.0f usec.  \r"
+#: ../src/utils/pacat.c:576
+#, fuzzy, c-format
+msgid "Time: %0.3f sec; Latency: %0.0f usec."
 msgstr "Tiempo: %0.3f sec; Latencia: %0.0f usec. \r"
 
 #: ../src/utils/pacat.c:595
@@ -1237,29 +1341,48 @@ msgid ""
 "\n"
 "  -v, --verbose                         Enable verbose operations\n"
 "\n"
-"  -s, --server=SERVER                   The name of the server to connect to\n"
-"  -d, --device=DEVICE                   The name of the sink/source to connect to\n"
-"  -n, --client-name=NAME                How to call this client on the server\n"
-"      --stream-name=NAME                How to call this stream on the server\n"
-"      --volume=VOLUME                   Specify the initial (linear) volume in range 0...65536\n"
-"      --rate=SAMPLERATE                 The sample rate in Hz (defaults to 44100)\n"
-"      --format=SAMPLEFORMAT             The sample type, one of s16le, s16be, u8, float32le,\n"
-"                                        float32be, ulaw, alaw, s32le, s32be, s24le, s24be,\n"
-"                                        s24-32le, s24-32be (defaults to s16ne)\n"
-"      --channels=CHANNELS               The number of channels, 1 for mono, 2 for stereo\n"
+"  -s, --server=SERVER                   The name of the server to connect "
+"to\n"
+"  -d, --device=DEVICE                   The name of the sink/source to "
+"connect to\n"
+"  -n, --client-name=NAME                How to call this client on the "
+"server\n"
+"      --stream-name=NAME                How to call this stream on the "
+"server\n"
+"      --volume=VOLUME                   Specify the initial (linear) volume "
+"in range 0...65536\n"
+"      --rate=SAMPLERATE                 The sample rate in Hz (defaults to "
+"44100)\n"
+"      --format=SAMPLEFORMAT             The sample type, one of s16le, "
+"s16be, u8, float32le,\n"
+"                                        float32be, ulaw, alaw, s32le, s32be, "
+"s24le, s24be,\n"
+"                                        s24-32le, s24-32be (defaults to "
+"s16ne)\n"
+"      --channels=CHANNELS               The number of channels, 1 for mono, "
+"2 for stereo\n"
 "                                        (defaults to 2)\n"
-"      --channel-map=CHANNELMAP          Channel map to use instead of the default\n"
-"      --fix-format                      Take the sample format from the sink the stream is\n"
+"      --channel-map=CHANNELMAP          Channel map to use instead of the "
+"default\n"
+"      --fix-format                      Take the sample format from the sink "
+"the stream is\n"
 "                                        being connected to.\n"
-"      --fix-rate                        Take the sampling rate from the sink the stream is\n"
+"      --fix-rate                        Take the sampling rate from the sink "
+"the stream is\n"
 "                                        being connected to.\n"
-"      --fix-channels                    Take the number of channels and the channel map\n"
-"                                        from the sink the stream is being connected to.\n"
+"      --fix-channels                    Take the number of channels and the "
+"channel map\n"
+"                                        from the sink the stream is being "
+"connected to.\n"
 "      --no-remix                        Don't upmix or downmix channels.\n"
-"      --no-remap                        Map channels by index instead of name.\n"
-"      --latency=BYTES                   Request the specified latency in bytes.\n"
-"      --process-time=BYTES              Request the specified process time per request in bytes.\n"
-"      --property=PROPERTY=VALUE         Set the specified property to the specified value.\n"
+"      --no-remap                        Map channels by index instead of "
+"name.\n"
+"      --latency=BYTES                   Request the specified latency in "
+"bytes.\n"
+"      --process-time=BYTES              Request the specified process time "
+"per request in bytes.\n"
+"      --property=PROPERTY=VALUE         Set the specified property to the "
+"specified value.\n"
 "      --raw                             Record/play raw PCM data.\n"
 "      --file-format=FFORMAT             Record/play formatted PCM data.\n"
 "      --list-file-formats               List available file formats.\n"
@@ -1272,33 +1395,56 @@ msgstr ""
 "  -r, --record                          Crea una conexión para grabar\n"
 "  -p, --playback                        Create a connection for playback\n"
 "\n"
-"  -v, --verbose                         Habilita operaciones con vocabulario más detallado\n"
+"  -v, --verbose                         Habilita operaciones con vocabulario "
+"más detallado\n"
 "\n"
-"  -s, --server=SERVER                   El nombre del servidor con el que conectarse\n"
-"  -d, --device=DEVICE                   El nombre del sumidero/fuente a la que conectarse\n"
-"  -n, --client-name=NAME                Cómo llamar a este cliente en el servidor\n"
-"      --stream-name=NAME                Cómo llamar a este flujo en el servidor\n"
-"      --volume=VOLUME                   Especifica el salida inicial (linear) de volumen dentro del rango 0...65536\n"
-"      --rate=SAMPLERATE                 Tasa de muestra en Hz (establecida en 44100 por defecto)\n"
-"      --format=SAMPLEFORMAT             El tipo de ejemplo, alguno entre s16le, s16be, u8, float32le,\n"
-"                                        float32be, ulaw, alaw, s32le, s32be (establecido en s16ne por defecto)\n"
-"      --channels=CHANNELS               La cantidad de canales, 1 para mono, 2 para stereo\n"
+"  -s, --server=SERVER                   El nombre del servidor con el que "
+"conectarse\n"
+"  -d, --device=DEVICE                   El nombre del sumidero/fuente a la "
+"que conectarse\n"
+"  -n, --client-name=NAME                Cómo llamar a este cliente en el "
+"servidor\n"
+"      --stream-name=NAME                Cómo llamar a este flujo en el "
+"servidor\n"
+"      --volume=VOLUME                   Especifica el salida inicial "
+"(linear) de volumen dentro del rango 0...65536\n"
+"      --rate=SAMPLERATE                 Tasa de muestra en Hz (establecida "
+"en 44100 por defecto)\n"
+"      --format=SAMPLEFORMAT             El tipo de ejemplo, alguno entre "
+"s16le, s16be, u8, float32le,\n"
+"                                        float32be, ulaw, alaw, s32le, s32be "
+"(establecido en s16ne por defecto)\n"
+"      --channels=CHANNELS               La cantidad de canales, 1 para mono, "
+"2 para stereo\n"
 "                                        (establecido en 2 por defecto)\n"
-"      --channel-map=CHANNELMAP          Mapeo de canales a ser usado en lugar del establecido por defecto\n"
-"      --fix-format                      Obtener el formato de ejemplo desde el sumidero al que el flujo\n"
+"      --channel-map=CHANNELMAP          Mapeo de canales a ser usado en "
+"lugar del establecido por defecto\n"
+"      --fix-format                      Obtener el formato de ejemplo desde "
+"el sumidero al que el flujo\n"
 "                                        se ha conectado.\n"
-"      --fix-rate                        Obtiene la tasa de ejemplo desde el destino al que el flujo\n"
+"      --fix-rate                        Obtiene la tasa de ejemplo desde el "
+"destino al que el flujo\n"
 "                                        se ha conectado.\n"
-"      --fix-channels                    Obtener el mapa y la cantidad de canales\n"
-"                                        desde el sumidero al que el flujo se ha conectado.\n"
-"      --no-remix                        No realiza un upmix o un downmix de los canales.\n"
-"      --no-remap                        Mapea canales por índices en lugar de por nombres.\n"
-"      --latency=BYTES                   Solicita la latencia especificada en bytes.\n"
-"      --process-time=BYTES              Solicita los procesos de tiempo por pedido especificados en bytes.\n"
-"      --property=PROPERTY=VALUE         Estabelce la propiedad especificada al valor especificado.\n"
-"      --raw                             Graba/reproduce datos PCM con formato raw.\n"
-"      --file-format=FFORMAT             Graba/reproduce datos PCM formateados.\n"
-"      --list-file-formats               Muestra una lista con los formatos de archivo disponibles.\n"
+"      --fix-channels                    Obtener el mapa y la cantidad de "
+"canales\n"
+"                                        desde el sumidero al que el flujo se "
+"ha conectado.\n"
+"      --no-remix                        No realiza un upmix o un downmix de "
+"los canales.\n"
+"      --no-remap                        Mapea canales por índices en lugar "
+"de por nombres.\n"
+"      --latency=BYTES                   Solicita la latencia especificada en "
+"bytes.\n"
+"      --process-time=BYTES              Solicita los procesos de tiempo por "
+"pedido especificados en bytes.\n"
+"      --property=PROPERTY=VALUE         Estabelce la propiedad especificada "
+"al valor especificado.\n"
+"      --raw                             Graba/reproduce datos PCM con "
+"formato raw.\n"
+"      --file-format=FFORMAT             Graba/reproduce datos PCM "
+"formateados.\n"
+"      --list-file-formats               Muestra una lista con los formatos "
+"de archivo disponibles.\n"
 
 #: ../src/utils/pacat.c:727
 #, c-format
@@ -1311,128 +1457,129 @@ msgstr ""
 "Compilado con libpulse %s\n"
 "Linkeado con libpulse %s\n"
 
-#: ../src/utils/pacat.c:760
-#: ../src/utils/pactl.c:953
+#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:953
 #, c-format
 msgid "Invalid client name '%s'"
 msgstr "Nombre de cliente '%s' inválido"
 
-#: ../src/utils/pacat.c:776
+#: ../src/utils/pacat.c:775
 #, c-format
 msgid "Invalid stream name '%s'"
 msgstr "Nombre de flujo '%s' inválido"
 
-#: ../src/utils/pacat.c:813
+#: ../src/utils/pacat.c:812
 #, c-format
 msgid "Invalid channel map '%s'"
 msgstr "Mapa de canales '%s' inválido"
 
-#: ../src/utils/pacat.c:842
+#: ../src/utils/pacat.c:841
 #, c-format
 msgid "Invalid latency specification '%s'"
 msgstr "Especificación de latencia '%s' inválida"
 
-#: ../src/utils/pacat.c:849
+#: ../src/utils/pacat.c:848
 #, c-format
 msgid "Invalid process time specification '%s'"
 msgstr "Especificación de tiempo de proceso '%s' inválida"
 
-#: ../src/utils/pacat.c:861
+#: ../src/utils/pacat.c:860
 #, c-format
 msgid "Invalid property '%s'"
 msgstr "Propiedad '%s' inválida"
 
-#: ../src/utils/pacat.c:878
+#: ../src/utils/pacat.c:877
 #, c-format
 msgid "Unknown file format %s."
 msgstr "Formato de archivo desconocido %s."
 
-#: ../src/utils/pacat.c:897
+#: ../src/utils/pacat.c:896
 msgid "Invalid sample specification"
 msgstr "Especificación de muestra inválida"
 
-#: ../src/utils/pacat.c:907
+#: ../src/utils/pacat.c:906
 #, c-format
 msgid "open(): %s"
 msgstr "open() %s"
 
-#: ../src/utils/pacat.c:912
+#: ../src/utils/pacat.c:911
 #, c-format
 msgid "dup2(): %s"
 msgstr "dup2(): %s"
 
-#: ../src/utils/pacat.c:919
+#: ../src/utils/pacat.c:918
 msgid "Too many arguments."
 msgstr "Demasiados argumentos."
 
-#: ../src/utils/pacat.c:930
+#: ../src/utils/pacat.c:929
 msgid "Failed to generate sample specification for file."
 msgstr "Falló al generar especificación de ejemplo para el archivo."
 
-#: ../src/utils/pacat.c:950
+#: ../src/utils/pacat.c:949
 msgid "Failed to open audio file."
 msgstr "Falló al abrir el archivo de sonido."
 
-#: ../src/utils/pacat.c:956
-msgid "Warning: specified sample specification will be overwritten with specification from file."
-msgstr "Aviso: el ejemplo de especificación indicado será sobreescrito con las especificaciones del archivo."
+#: ../src/utils/pacat.c:955
+msgid ""
+"Warning: specified sample specification will be overwritten with "
+"specification from file."
+msgstr ""
+"Aviso: el ejemplo de especificación indicado será sobreescrito con las "
+"especificaciones del archivo."
 
-#: ../src/utils/pacat.c:959
-#: ../src/utils/pactl.c:997
+#: ../src/utils/pacat.c:958 ../src/utils/pactl.c:997
 msgid "Failed to determine sample specification from file."
 msgstr "Falló al determinar especificación de ejemplo del archivo."
 
-#: ../src/utils/pacat.c:968
+#: ../src/utils/pacat.c:967
 msgid "Warning: Failed to determine channel map from file."
 msgstr "Aviso: Falló al determinar el mapeo del canal desde el archivo."
 
-#: ../src/utils/pacat.c:979
+#: ../src/utils/pacat.c:978
 msgid "Channel map doesn't match sample specification"
 msgstr "El mapa del canal no se corresponde con la especificación de muestra"
 
-#: ../src/utils/pacat.c:990
+#: ../src/utils/pacat.c:989
 msgid "Warning: failed to write channel map to file."
 msgstr "Aviso: Faló al escribir el mapeo del canal en el archivo."
 
-#: ../src/utils/pacat.c:1005
+#: ../src/utils/pacat.c:1004
 #, c-format
-msgid "Opening a %s stream with sample specification '%s' and channel map '%s'."
-msgstr "Abriendo un flujo %s con especificación de muestra '%s' y mapeo de canal '%s'."
+msgid ""
+"Opening a %s stream with sample specification '%s' and channel map '%s'."
+msgstr ""
+"Abriendo un flujo %s con especificación de muestra '%s' y mapeo de canal '%"
+"s'."
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid "recording"
 msgstr "grabando"
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid "playback"
 msgstr "playback"
 
-#: ../src/utils/pacat.c:1032
-#: ../src/utils/pactl.c:1267
+#: ../src/utils/pacat.c:1031 ../src/utils/pactl.c:1267
 msgid "pa_mainloop_new() failed."
 msgstr "pa_mainloop_new() falló."
 
-#: ../src/utils/pacat.c:1051
+#: ../src/utils/pacat.c:1050
 msgid "io_new() failed."
 msgstr "io_new() falló."
 
-#: ../src/utils/pacat.c:1058
-#: ../src/utils/pactl.c:1279
+#: ../src/utils/pacat.c:1057 ../src/utils/pactl.c:1279
 msgid "pa_context_new() failed."
 msgstr "pa_context_new() falló."
 
-#: ../src/utils/pacat.c:1066
-#: ../src/utils/pactl.c:1285
+#: ../src/utils/pacat.c:1065 ../src/utils/pactl.c:1285
 #, c-format
 msgid "pa_context_connect() failed: %s"
 msgstr "pa_context_connect() falló: %s"
 
-#: ../src/utils/pacat.c:1072
+#: ../src/utils/pacat.c:1071
 msgid "pa_context_rttime_new() failed."
 msgstr "pa_context_rttime_new() falló."
 
-#: ../src/utils/pacat.c:1079
-#: ../src/utils/pactl.c:1290
+#: ../src/utils/pacat.c:1078 ../src/utils/pactl.c:1290
 msgid "pa_mainloop_run() failed."
 msgstr "pa_mainloop_run() falló."
 
@@ -1483,14 +1630,16 @@ msgid ""
 "\n"
 "  -h, --help                            Show this help\n"
 "      --version                         Show version\n"
-"  -s, --server=SERVER                   The name of the server to connect to\n"
+"  -s, --server=SERVER                   The name of the server to connect "
+"to\n"
 "\n"
 msgstr ""
 "%s [opciones] ... \n"
 "\n"
 "  -h, --help                            Muestra esta ayuda\n"
 "      --version                         Muestra la versión\n"
-"  -s, --server=SERVER                   El nombre del servidor con el que conectarse\n"
+"  -s, --server=SERVER                   El nombre del servidor con el que "
+"conectarse\n"
 "\n"
 
 #: ../src/utils/pasuspender.c:248
@@ -1532,7 +1681,9 @@ msgstr "Actualmente en uso: %u bloques conteniendo %s bytes en total.\n"
 #: ../src/utils/pactl.c:144
 #, c-format
 msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n"
-msgstr "Ubicados durante a lo largo del tiempo: %u bloques conteniendo %s bytes en total.\n"
+msgstr ""
+"Ubicados durante a lo largo del tiempo: %u bloques conteniendo %s bytes en "
+"total.\n"
 
 #: ../src/utils/pactl.c:147
 #, c-format
@@ -1611,14 +1762,12 @@ msgstr ""
 "\tPropiedades:\n"
 "\t\t%s\n"
 
-#: ../src/utils/pactl.c:268
-#: ../src/utils/pactl.c:360
+#: ../src/utils/pactl.c:268 ../src/utils/pactl.c:360
 #, c-format
 msgid "\tPorts:\n"
 msgstr "\tPuertos:\n"
 
-#: ../src/utils/pactl.c:274
-#: ../src/utils/pactl.c:366
+#: ../src/utils/pactl.c:274 ../src/utils/pactl.c:366
 #, c-format
 msgid "\tActive Port: %s\n"
 msgstr "\tPuerto Activo: %s\n"
@@ -1667,18 +1816,10 @@ msgstr ""
 "\tPropiedades:\n"
 "\t\t%s\n"
 
-#: ../src/utils/pactl.c:345
-#: ../src/utils/pactl.c:401
-#: ../src/utils/pactl.c:436
-#: ../src/utils/pactl.c:473
-#: ../src/utils/pactl.c:532
-#: ../src/utils/pactl.c:533
-#: ../src/utils/pactl.c:543
-#: ../src/utils/pactl.c:587
-#: ../src/utils/pactl.c:588
-#: ../src/utils/pactl.c:594
-#: ../src/utils/pactl.c:637
-#: ../src/utils/pactl.c:638
+#: ../src/utils/pactl.c:345 ../src/utils/pactl.c:401 ../src/utils/pactl.c:436
+#: ../src/utils/pactl.c:473 ../src/utils/pactl.c:532 ../src/utils/pactl.c:533
+#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:587 ../src/utils/pactl.c:588
+#: ../src/utils/pactl.c:594 ../src/utils/pactl.c:637 ../src/utils/pactl.c:638
 #: ../src/utils/pactl.c:645
 msgid "n/a"
 msgstr "n/a"
@@ -1869,8 +2010,7 @@ msgstr ""
 "\tPropiedades:\n"
 "\t\t%s\n"
 
-#: ../src/utils/pactl.c:653
-#: ../src/utils/pactl.c:663
+#: ../src/utils/pactl.c:653 ../src/utils/pactl.c:663
 #, c-format
 msgid "Failure: %s"
 msgstr "Falla: %s"
@@ -1916,8 +2056,10 @@ msgid ""
 "  -h, --help                            Show this help\n"
 "      --version                         Show version\n"
 "\n"
-"  -s, --server=SERVER                   The name of the server to connect to\n"
-"  -n, --client-name=NAME                How to call this client on the server\n"
+"  -s, --server=SERVER                   The name of the server to connect "
+"to\n"
+"  -n, --client-name=NAME                How to call this client on the "
+"server\n"
 msgstr ""
 "%s [opciones] stat\n"
 "%s [opciones] list\n"
@@ -1944,8 +2086,10 @@ msgstr ""
 "  -h, --help                            Muestra esta ayuda\n"
 "      --version                         Muestra la versión\n"
 "\n"
-"  -s, --server=SERVER                   El nombre del servidor al que conectarse\n"
-"  -n, --client-name=NAME                El nombre de este cliente en el servidor\n"
+"  -s, --server=SERVER                   El nombre del servidor al que "
+"conectarse\n"
+"  -n, --client-name=NAME                El nombre de este cliente en el "
+"servidor\n"
 
 #: ../src/utils/pactl.c:933
 #, c-format
@@ -1968,7 +2112,9 @@ msgstr "Error al intentar abrir el archivo de sonido."
 
 #: ../src/utils/pactl.c:1004
 msgid "Warning: Failed to determine sample specification from file."
-msgstr "Aviso: Falló al intentar determinar especificación de la muestra desde el archivo."
+msgstr ""
+"Aviso: Falló al intentar determinar especificación de la muestra desde el "
+"archivo."
 
 #: ../src/utils/pactl.c:1014
 msgid "You have to specify a sample name to play"
@@ -1995,12 +2141,19 @@ msgid "You have to specify a module index"
 msgstr "Debe especificar un índice de módulo"
 
 #: ../src/utils/pactl.c:1090
-msgid "You may not specify more than one sink. You have to specify a boolean value."
-msgstr "No puede especificar más de un sumidero. Tiene que especificar un valor booleano."
+msgid ""
+"You may not specify more than one sink. You have to specify a boolean value."
+msgstr ""
+"No puede especificar más de un sumidero. Tiene que especificar un valor "
+"booleano."
 
 #: ../src/utils/pactl.c:1103
-msgid "You may not specify more than one source. You have to specify a boolean value."
-msgstr "No puede especificar más de una fuente. Tiene que especificar un valor booleano."
+msgid ""
+"You may not specify more than one source. You have to specify a boolean "
+"value."
+msgstr ""
+"No puede especificar más de una fuente. Tiene que especificar un valor "
+"booleano."
 
 #: ../src/utils/pactl.c:1115
 msgid "You have to specify a card name/index and a profile name"
@@ -2018,12 +2171,9 @@ msgstr "Debe especificar un nombre/índice de fuente y un nombre de puerto"
 msgid "You have to specify a sink name/index and a volume"
 msgstr "Debe especificar un nombre/índice de sumidero y el volumen"
 
-#: ../src/utils/pactl.c:1154
-#: ../src/utils/pactl.c:1171
-#: ../src/utils/pactl.c:1193
-#: ../src/utils/pactl.c:1209
-#: ../src/utils/pactl.c:1226
-#: ../src/utils/pactl.c:1248
+#: ../src/utils/pactl.c:1154 ../src/utils/pactl.c:1171
+#: ../src/utils/pactl.c:1193 ../src/utils/pactl.c:1209
+#: ../src/utils/pactl.c:1226 ../src/utils/pactl.c:1248
 msgid "Invalid volume specification"
 msgstr "Especificación de volumen inválida"
 
@@ -2049,7 +2199,8 @@ msgstr "Debe especificar un nombre/índice de fuente y un booleano para mudo"
 
 #: ../src/utils/pactl.c:1238
 msgid "You have to specify a sink input index and a mute boolean"
-msgstr "Debe especificar un índice de entrada a sumidero y un booleano para mudo"
+msgstr ""
+"Debe especificar un índice de entrada a sumidero y un booleano para mudo"
 
 #: ../src/utils/pactl.c:1243
 msgid "Invalid sink input index specification"
@@ -2066,14 +2217,17 @@ msgid ""
 "\n"
 " -d    Show current PulseAudio data attached to X11 display (default)\n"
 " -e    Export local PulseAudio data to X11 display\n"
-" -i    Import PulseAudio data from X11 display to local environment variables and cookie file.\n"
+" -i    Import PulseAudio data from X11 display to local environment "
+"variables and cookie file.\n"
 " -r    Remove PulseAudio data from X11 display\n"
 msgstr ""
 "%s [-D display] [-S server] [-O sink] [-I source] [-c file]  [-d|-e|-i|-r]\n"
 "\n"
-" -d    Muestra los datos actuales de PulseAudio asociados en un display X11 (por defecto)\n"
+" -d    Muestra los datos actuales de PulseAudio asociados en un display X11 "
+"(por defecto)\n"
 " -e    Exporta los datos locales de PulseAudio a un display X11\n"
-" -i    Importa los datos de PulseAudio de un display X11 hacia las variables del entorno local y el archivo de cookies.\n"
+" -i    Importa los datos de PulseAudio de un display X11 hacia las variables "
+"del entorno local y el archivo de cookies.\n"
 " -r    Elimina todo dato de PulseAudio de un display X11\n"
 
 #: ../src/utils/pax11publish.c:94
@@ -2138,7 +2292,9 @@ msgstr "Aún no se ha implementado.\n"
 
 #: ../src/utils/pacmd.c:69
 msgid "No PulseAudio daemon running, or not running as session daemon."
-msgstr "El demonio PulseAudio no está ejecutándose, o no se está ejecutando como un demonio de sesión."
+msgstr ""
+"El demonio PulseAudio no está ejecutándose, o no se está ejecutando como un "
+"demonio de sesión."
 
 #: ../src/utils/pacmd.c:74
 #, c-format
@@ -2163,61 +2319,68 @@ msgstr "El demonio no responde."
 msgid "poll(): %s"
 msgstr "poll(): %s"
 
-#: ../src/utils/pacmd.c:171
-#: ../src/utils/pacmd.c:188
+#: ../src/utils/pacmd.c:171 ../src/utils/pacmd.c:188
 #, c-format
 msgid "read(): %s"
 msgstr "read(): %s"
 
-#: ../src/utils/pacmd.c:207
-#: ../src/utils/pacmd.c:223
+#: ../src/utils/pacmd.c:207 ../src/utils/pacmd.c:223
 #, c-format
 msgid "write(): %s"
 msgstr "write(): %s"
 
-#: ../src/pulsecore/lock-autospawn.c:136
-#: ../src/pulsecore/lock-autospawn.c:219
+#: ../src/pulsecore/lock-autospawn.c:136 ../src/pulsecore/lock-autospawn.c:219
 msgid "Cannot access autospawn lock."
 msgstr "No se puede acceder al candado de autogeneración."
 
-#: ../src/modules/alsa/alsa-sink.c:531
-#: ../src/modules/alsa/alsa-sink.c:689
+#: ../src/modules/alsa/alsa-sink.c:530 ../src/modules/alsa/alsa-sink.c:689
 #, c-format
 msgid ""
-"ALSA woke us up to write new data to the device, but there was actually nothing to write!\n"
-"Most likely this is a bug in the ALSA driver '%s'. Please report this issue to the ALSA developers.\n"
-"We were woken up with POLLOUT set -- however a subsequent snd_pcm_avail() returned 0 or another value < min_avail."
+"ALSA woke us up to write new data to the device, but there was actually "
+"nothing to write!\n"
+"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
+"to the ALSA developers.\n"
+"We were woken up with POLLOUT set -- however a subsequent snd_pcm_avail() "
+"returned 0 or another value < min_avail."
 msgstr ""
-"ALSA nos despertó para escribir nuevos datos al dispositivo, ¡pero en realidad no hay nada para escribir!\n"
-"Probablemente sea un error en el controlador ALSA '%s'. Por favor, informe esto a los desarrolladores de ALSA.\n"
-"Nos despertaron con POLLOUT puesto -- sin embargo, una llamada a snd_pcm_avail() devolvió 0 u otro valor < min_avail."
+"ALSA nos despertó para escribir nuevos datos al dispositivo, ¡pero en "
+"realidad no hay nada para escribir!\n"
+"Probablemente sea un error en el controlador ALSA '%s'. Por favor, informe "
+"esto a los desarrolladores de ALSA.\n"
+"Nos despertaron con POLLOUT puesto -- sin embargo, una llamada a "
+"snd_pcm_avail() devolvió 0 u otro valor < min_avail."
 
-#: ../src/modules/alsa/alsa-source.c:508
-#: ../src/modules/alsa/alsa-source.c:658
+#: ../src/modules/alsa/alsa-source.c:506 ../src/modules/alsa/alsa-source.c:656
 #, c-format
 msgid ""
-"ALSA woke us up to read new data from the device, but there was actually nothing to read!\n"
-"Most likely this is a bug in the ALSA driver '%s'. Please report this issue to the ALSA developers.\n"
-"We were woken up with POLLIN set -- however a subsequent snd_pcm_avail() returned 0 or another value < min_avail."
+"ALSA woke us up to read new data from the device, but there was actually "
+"nothing to read!\n"
+"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
+"to the ALSA developers.\n"
+"We were woken up with POLLIN set -- however a subsequent snd_pcm_avail() "
+"returned 0 or another value < min_avail."
 msgstr ""
-"ALSA nos despertó para leer nuevos datos desde el dispositivo, ¡pero en realidad no hay nada para leer!\n"
-"Lo más probable es que sea un error del controlador ALSA '%s'. Por favor, informe esto a los desarrolladores de ALSA.\n"
-"Nos despertaron con POLLIN puesto -- sin embargo, una llamada a snd_pcm_avail() devolvió 0 u otro valor < min_avail."
+"ALSA nos despertó para leer nuevos datos desde el dispositivo, ¡pero en "
+"realidad no hay nada para leer!\n"
+"Lo más probable es que sea un error del controlador ALSA '%s'. Por favor, "
+"informe esto a los desarrolladores de ALSA.\n"
+"Nos despertaron con POLLIN puesto -- sin embargo, una llamada a snd_pcm_avail"
+"() devolvió 0 u otro valor < min_avail."
 
 #: ../src/modules/alsa/module-alsa-card.c:152
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2225
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2228
 msgid "Off"
 msgstr "Apagado"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2181
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2184
 msgid "High Fidelity Playback (A2DP)"
 msgstr "Reproducción de Alta Fidelidad (A2DP)"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2195
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2198
 msgid "High Fidelity Capture (A2DP)"
 msgstr "Captura de Alta Fidelidad (A2DP)"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2210
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2213
 msgid "Telephony Duplex (HSP/HFP)"
 msgstr "Telefonía Duplex (HSP/HFP)"
 
@@ -2227,70 +2390,97 @@ msgstr "Servidor de Sonido PulseAudio"
 
 #~ msgid "Invalid client name '%s'\n"
 #~ msgstr "Nombre de cliente inválido '%s'\n"
+
 #~ msgid "Failed to determine sample specification from file.\n"
 #~ msgstr ""
 #~ "Error al intentar determinar especificación de ejemplo del archivo.\n"
+
 #~ msgid "select(): %s"
 #~ msgstr "select(): %s"
+
 #~ msgid "Cannot connect to system bus: %s"
 #~ msgstr "No se puede conectar al bus del sistema: %s"
+
 #~ msgid "Cannot get caller from PID: %s"
 #~ msgstr "No se puede obtener el llamador desde el PID: %s"
+
 #~ msgid "Cannot set UID on caller object."
 #~ msgstr "No se puede poner UID en el objeto llamador."
+
 #~ msgid "Failed to get CK session."
 #~ msgstr "Falló al obtener sesión CK."
+
 #~ msgid "Cannot set UID on session object."
 #~ msgstr "No se puede poner UID en el objeto de sesión."
+
 #~ msgid "Cannot allocate PolKitAction."
 #~ msgstr "No se puede asignar PolKitAction."
+
 #~ msgid "Cannot set action_id"
 #~ msgstr "No se pudo poner action_id"
+
 #~ msgid "Cannot allocate PolKitContext."
 #~ msgstr "No se pudo asignar PolKitContext."
+
 #~ msgid "Cannot initialize PolKitContext: %s"
 #~ msgstr "No se pudo inicializar PolKitContext: %s"
+
 #~ msgid "Could not determine whether caller is authorized: %s"
 #~ msgstr "No se pudo determinar si el llamador está autorizado: %s"
+
 #~ msgid "Cannot obtain auth: %s"
 #~ msgstr "No se pudo obtener auth: %s"
+
 #~ msgid "PolicyKit responded with '%s'"
 #~ msgstr "PolicyKit respondió con '%s'"
+
 #~ msgid ""
 #~ "High-priority scheduling (negative Unix nice level) for the PulseAudio "
 #~ "daemon"
 #~ msgstr ""
 #~ "Planificación de alta prioridad (nivel Unix negativo) para el demonio "
 #~ "PulseAudio"
+
 #~ msgid "Real-time scheduling for the PulseAudio daemon"
 #~ msgstr "Planificación de tiempo real para el demonio de PulseAudio."
+
 #~ msgid ""
 #~ "System policy prevents PulseAudio from acquiring high-priority scheduling."
 #~ msgstr ""
 #~ "Las políticas del sistema impidieron a PulseAudio adquirir la "
 #~ "planificación de alta prioridad."
+
 #~ msgid ""
 #~ "System policy prevents PulseAudio from acquiring real-time scheduling."
 #~ msgstr ""
 #~ "Las políticas del sistema impidieron a PulseAudio adquirir la "
 #~ "planificación de tiempo real."
+
 #~ msgid "read() failed: %s\n"
 #~ msgstr "read() falló: %s\n"
+
 #~ msgid "pa_context_connect() failed: %s\n"
 #~ msgstr "pa_context_connect() falló: %s\n"
+
 #~ msgid "We're in the group '%s', allowing high-priority scheduling."
 #~ msgstr ""
 #~ "Estamos en el grupo '%s', permitiendo planificación de prioridad alta."
+
 #~ msgid "We're in the group '%s', allowing real-time scheduling."
 #~ msgstr "Estamos en el grupo '%s', permitiendo planificación en tiempo real."
+
 #~ msgid "PolicyKit grants us acquire-high-priority privilege."
 #~ msgstr "PolicyKit garantiza que se obtenga el privilegio de alta prioridad."
+
 #~ msgid "PolicyKit refuses acquire-high-priority privilege."
 #~ msgstr "PolicyKit se niega a dar acceso al privilegio de alta prioridad."
+
 #~ msgid "PolicyKit grants us acquire-real-time privilege."
 #~ msgstr "PolicyKit garantiza el acceso al privilegio de tiempo real."
+
 #~ msgid "PolicyKit refuses acquire-real-time privilege."
 #~ msgstr "PolicyKit se niega a dar acceso al privilegio de tiempo real."
+
 #~ msgid ""
 #~ "Called SUID root and real-time and/or high-priority scheduling was "
 #~ "requested in the configuration. However, we lack the necessary "
@@ -2312,61 +2502,83 @@ msgstr "Servidor de Sonido PulseAudio"
 #~ "adquiera los privilegios apropiados en PolicyKit, o hágase miembro de '%"
 #~ "s', o aumente los límites del recurso RLIMIT_NICE/RLIMIT_RTPRIO para este "
 #~ "usuario."
+
 #~ msgid ""
 #~ "High-priority scheduling enabled in configuration but not allowed by "
 #~ "policy."
 #~ msgstr ""
 #~ "Está habilitadada la planificación de prioridad alta, pero no están "
 #~ "permitidas por la política."
+
 #~ msgid "Successfully increased RLIMIT_RTPRIO"
 #~ msgstr "RLIMIT_RTPRIO incrementado en forma exitosa"
+
 #~ msgid "RLIMIT_RTPRIO failed: %s"
 #~ msgstr "Fallo en RLIMIT_RTPRIO: %s"
+
 #~ msgid "Giving up CAP_NICE"
 #~ msgstr "Abandonando CAP_NICE"
+
 #~ msgid ""
 #~ "Real-time scheduling enabled in configuration but not allowed by policy."
 #~ msgstr ""
 #~ "Está habilitada la planificación en tiempo real, pero no está permitido "
 #~ "por la política."
+
 #~ msgid "Limited capabilities successfully to CAP_SYS_NICE."
 #~ msgstr "Capacidades limitadas con éxito para CAP_SYS_NICE-"
+
 #~ msgid "time_new() failed.\n"
 #~ msgstr "time_new() falló.\n"
+
 #~ msgid "Analog Mono"
 #~ msgstr "Mono Analógico"
+
 #~ msgid "Analog Stereo"
 #~ msgstr "Estéreo Analógico"
+
 #~ msgid "Digital Stereo (IEC958)"
 #~ msgstr "Estéreo Digital (IEC958)"
+
 #~ msgid "Digital Stereo (HDMI)"
 #~ msgstr "Estéreo Digital (HDMI)"
+
 #~ msgid "Analog Surround 4.0"
 #~ msgstr "Análogo Envolvente 4.0"
+
 #~ msgid "Digital Surround 4.0 (IEC958/AC3)"
 #~ msgstr "Digital Envolvente 4.0 (IEC9588/AC3)"
+
 #~ msgid "Analog Surround 4.1"
 #~ msgstr "Análogo Envolvente 4.1"
+
 #~ msgid "Analog Surround 5.0"
 #~ msgstr "Análogo Envolvente 5.0"
+
 #~ msgid "Analog Surround 5.1"
 #~ msgstr "Análogo Envolvente 5.1"
+
 #~ msgid "Digital Surround 5.1 (IEC958/AC3)"
 #~ msgstr "Digital Envolvente 5.1 (IEC958/AC3)"
+
 #~ msgid "Analog Surround 7.1"
 #~ msgstr "Análogo Envolvénte 7.1"
+
 #~ msgid "Output %s + Input %s"
 #~ msgstr "Salida %s + Entrada %s"
-#~ msgid "Output %s"
-#~ msgstr "Salida %s"
+
 #~ msgid "Input %s"
 #~ msgstr "Entrada %s"
+
 #~ msgid "Stream successfully created\n"
 #~ msgstr "Se ha creado el flujo exitosamente\n"
+
 #~ msgid "Stream errror: %s\n"
 #~ msgstr "Error de flujo: %s\n"
+
 #~ msgid "Connection established.\n"
 #~ msgstr "Conección establecida.\n"
+
 #~ msgid ""
 #~ "%s [options] [FILE]\n"
 #~ "\n"
@@ -2407,6 +2619,7 @@ msgstr "Servidor de Sonido PulseAudio"
 #~ "(linear)en el rango de 0...65536\n"
 #~ "      --channel-map=CHANNELMAP          Establece el mapa del canal para "
 #~ "el uso\n"
+
 #~ msgid ""
 #~ "paplay %s\n"
 #~ "Compiled with libpulse %s\n"
@@ -2415,12 +2628,16 @@ msgstr "Servidor de Sonido PulseAudio"
 #~ "paplay %s\n"
 #~ "Compilado con libpulse %s\n"
 #~ "Linked con libpulse %s\n"
+
 #~ msgid "Invalid channel map\n"
 #~ msgstr "Mapa de canal inválido\n"
+
 #~ msgid "Failed to open file '%s'\n"
 #~ msgstr "Error al intentar abrir el archivo '%s'\n"
+
 #~ msgid "Channel map doesn't match file.\n"
 #~ msgstr "El mapa del canal no se corresponde con el archivo.\n"
+
 #~ msgid "Using sample spec '%s'\n"
 #~ msgstr "Utilizando especificaciones de muestra '%s'\n"
 
@@ -2439,6 +2656,7 @@ msgstr "Servidor de Sonido PulseAudio"
 #, fuzzy
 #~ msgid "--log-time boolean argument"
 #~ msgstr "--disallow-exit argumento booleano"
+
 #~ msgid ""
 #~ "' and PolicyKit refuse to grant us priviliges. Dropping SUID again.\n"
 #~ "For enabling real-time scheduling please acquire the appropriate "
@@ -2447,21 +2665,27 @@ msgstr "Servidor de Sonido PulseAudio"
 #~ "' y PolicyKit se niega a darnos privilegios. Abandonando SUID de nuevo.\n"
 #~ "Para permitir planificación en tiempo real, por favor adquiera los "
 #~ "privilegios de PolicyKit adecuados, o forme parte de '"
+
 #~ msgid ""
 #~ "', or increase the RLIMIT_NICE/RLIMIT_RTPRIO resource limits for this "
 #~ "user."
 #~ msgstr ""
 #~ "', o incremente los límites del recurso RLIMIT_NICE/RLIMIT_RTPRIO para "
 #~ "ese usuario. "
+
 #~ msgid "Default sink name (%s) does not exist in name register."
 #~ msgstr ""
 #~ "El nombre de destino por defecto (%s) no existe en el registro de nombres."
+
 #~ msgid "Buffer overrun, dropping incoming data\n"
 #~ msgstr "Búfer desbordado, abandonando datos entrantes\n"
+
 #~ msgid "pa_stream_drop() failed: %s\n"
 #~ msgstr "pa_stream_drop() falló: %s\n"
+
 #~ msgid "muted"
 #~ msgstr "mudo"
+
 #~ msgid ""
 #~ "*** Autoload Entry #%u ***\n"
 #~ "Name: %s\n"
@@ -2474,8 +2698,9 @@ msgstr "Servidor de Sonido PulseAudio"
 #~ "Tipo: %s\n"
 #~ "Módulo: %s\n"
 #~ "Argumento: %s\n"
+
 #~ msgid "sink"
 #~ msgstr "destino"
+
 #~ msgid "source"
 #~ msgstr "fuente"
-
diff --git a/po/fi.po b/po/fi.po
index 5da4ac5..42a970f 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: git trunk\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-04 14:48+0000\n"
+"POT-Creation-Date: 2009-09-10 01:47+0200\n"
 "PO-Revision-Date: 2009-09-04 23:29+0300\n"
 "Last-Translator: Ville-Pekka Vainio <vpivaini at cs.helsinki.fi>\n"
 "Language-Team: Finnish <laatu at lokalisointi.org>\n"
@@ -16,12 +16,12 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2629
+#: ../src/modules/alsa/alsa-util.c:858 ../src/pulsecore/sink.c:2629
 #, c-format
 msgid "%s %s"
 msgstr "%s %s"
 
-#: ../src/modules/alsa/alsa-util.c:1023
+#: ../src/modules/alsa/alsa-util.c:1106
 #, c-format
 msgid ""
 "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -33,7 +33,7 @@ msgstr ""
 "Tämä on todennäköisesti ohjelmavirhe ALSA-ajurissa ”%s”. Ilmoita tästä "
 "ongelmasta ALSA-kehittäjille."
 
-#: ../src/modules/alsa/alsa-util.c:1064
+#: ../src/modules/alsa/alsa-util.c:1147
 #, c-format
 msgid ""
 "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -46,7 +46,7 @@ msgstr ""
 "Tämä on todennäköisesti ohjelmavirhe ALSA-ajurissa ”%s”. Ilmoita tästä "
 "ongelmasta ALSA-kehittäjille."
 
-#: ../src/modules/alsa/alsa-util.c:1111
+#: ../src/modules/alsa/alsa-util.c:1194
 #, c-format
 msgid ""
 "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -59,6 +59,14 @@ msgstr ""
 "Tämä on todennäköisesti ohjelmavirhe ALSA-ajurissa ”%s”. Ilmoita tästä "
 "ongelmasta ALSA-kehittäjille."
 
+#: ../src/modules/module-always-sink.c:39
+msgid "Always keeps at least one sink loaded even if it's a null one"
+msgstr ""
+
+#: ../src/modules/module-always-sink.c:83
+msgid "Dummy Output"
+msgstr ""
+
 #: ../src/modules/module-ladspa-sink.c:49
 msgid "Virtual LADSPA sink"
 msgstr "Virtuaalinen LADSPA-nielu"
@@ -78,6 +86,15 @@ msgstr ""
 "liitännäisen nimiö (label)> control=<pilkulla erotettu luettelo "
 "syötteenhallinta-arvoja>"
 
+#: ../src/modules/module-null-sink.c:55
+msgid "Clocked NULL sink"
+msgstr ""
+
+#: ../src/modules/module-null-sink.c:291
+#, fuzzy
+msgid "Null Output"
+msgstr "Ulostulo %s"
+
 #: ../src/pulsecore/sink.c:2613
 msgid "Internal Audio"
 msgstr "Sisäinen äänentoisto"
@@ -235,7 +252,7 @@ msgstr "putki epäonnistui: %s"
 msgid "fork() failed: %s"
 msgstr "fork() epäonnistui: %s"
 
-#: ../src/daemon/main.c:641 ../src/utils/pacat.c:505
+#: ../src/daemon/main.c:641 ../src/utils/pacat.c:504
 #, c-format
 msgid "read() failed: %s"
 msgstr "read() epäonnistui: %s"
@@ -963,8 +980,8 @@ msgid "Top Rear Right"
 msgstr "Oikea ylä taka"
 
 #: ../src/pulse/channelmap.c:484 ../src/pulse/sample.c:170
-#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:311
-#: ../src/pulse/volume.c:331 ../src/pulse/volume.c:361
+#: ../src/pulse/volume.c:295 ../src/pulse/volume.c:321
+#: ../src/pulse/volume.c:341 ../src/pulse/volume.c:371
 msgid "(invalid)"
 msgstr "(virheellinen)"
 
@@ -1255,52 +1272,52 @@ msgstr "ei "
 msgid "Stream buffer attributes changed.%s"
 msgstr "Virran puskuriattribuutteja muutettu.%s"
 
-#: ../src/utils/pacat.c:416
+#: ../src/utils/pacat.c:415
 #, c-format
 msgid "Connection established.%s"
 msgstr "Yhteys muodostettu.%s"
 
-#: ../src/utils/pacat.c:419
+#: ../src/utils/pacat.c:418
 #, c-format
 msgid "pa_stream_new() failed: %s"
 msgstr "pa_stream_new() epäonnistui: %s"
 
-#: ../src/utils/pacat.c:447
+#: ../src/utils/pacat.c:446
 #, c-format
 msgid "pa_stream_connect_playback() failed: %s"
 msgstr "pa_stream_connect_playback() epäonnistui: %s"
 
-#: ../src/utils/pacat.c:453
+#: ../src/utils/pacat.c:452
 #, c-format
 msgid "pa_stream_connect_record() failed: %s"
 msgstr "pa_stream_connect_record() epäonnistui: %s"
 
-#: ../src/utils/pacat.c:467 ../src/utils/pactl.c:857
+#: ../src/utils/pacat.c:466 ../src/utils/pactl.c:857
 #, c-format
 msgid "Connection failure: %s"
 msgstr "Yhteysvirhe: %s"
 
-#: ../src/utils/pacat.c:500
+#: ../src/utils/pacat.c:499
 msgid "Got EOF."
 msgstr "Saatiin EOF."
 
-#: ../src/utils/pacat.c:537
+#: ../src/utils/pacat.c:536
 #, c-format
 msgid "write() failed: %s"
 msgstr "write() epäonnistui: %s"
 
-#: ../src/utils/pacat.c:558
+#: ../src/utils/pacat.c:557
 msgid "Got signal, exiting."
 msgstr "Saatiin signaali, lopetetaan."
 
-#: ../src/utils/pacat.c:572
+#: ../src/utils/pacat.c:571
 #, c-format
 msgid "Failed to get latency: %s"
 msgstr "Latenssin selvittäminen epäonnistui: %s"
 
-#: ../src/utils/pacat.c:577
-#, c-format
-msgid "Time: %0.3f sec; Latency: %0.0f usec.  \r"
+#: ../src/utils/pacat.c:576
+#, fuzzy, c-format
+msgid "Time: %0.3f sec; Latency: %0.0f usec."
 msgstr "Aika: %0.3f s; latenssi: %0.0f μs.  \r"
 
 #: ../src/utils/pacat.c:595
@@ -1436,121 +1453,121 @@ msgstr ""
 msgid "Invalid client name '%s'"
 msgstr "Virheellinen asiakasohjelman nimi ”%s”"
 
-#: ../src/utils/pacat.c:776
+#: ../src/utils/pacat.c:775
 #, c-format
 msgid "Invalid stream name '%s'"
 msgstr "Virheellinen virran nimi ”%s”"
 
-#: ../src/utils/pacat.c:813
+#: ../src/utils/pacat.c:812
 #, c-format
 msgid "Invalid channel map '%s'"
 msgstr "Virheellinen kanavakartta ”%s”"
 
-#: ../src/utils/pacat.c:842
+#: ../src/utils/pacat.c:841
 #, c-format
 msgid "Invalid latency specification '%s'"
 msgstr "Virheellinen latenssimääritys ”%s”"
 
-#: ../src/utils/pacat.c:849
+#: ../src/utils/pacat.c:848
 #, c-format
 msgid "Invalid process time specification '%s'"
 msgstr "Virheellinen prosessiajan määritys ”%s”"
 
-#: ../src/utils/pacat.c:861
+#: ../src/utils/pacat.c:860
 #, c-format
 msgid "Invalid property '%s'"
 msgstr "Virheellinen asetus ”%s”"
 
-#: ../src/utils/pacat.c:878
+#: ../src/utils/pacat.c:877
 #, c-format
 msgid "Unknown file format %s."
 msgstr "Tuntematon tiedostomuoto %s."
 
-#: ../src/utils/pacat.c:897
+#: ../src/utils/pacat.c:896
 msgid "Invalid sample specification"
 msgstr "Virheellinen näytemääritys"
 
-#: ../src/utils/pacat.c:907
+#: ../src/utils/pacat.c:906
 #, c-format
 msgid "open(): %s"
 msgstr "open(): %s"
 
-#: ../src/utils/pacat.c:912
+#: ../src/utils/pacat.c:911
 #, c-format
 msgid "dup2(): %s"
 msgstr "dup2(): %s"
 
-#: ../src/utils/pacat.c:919
+#: ../src/utils/pacat.c:918
 msgid "Too many arguments."
 msgstr "Liian monta argumenttia."
 
-#: ../src/utils/pacat.c:930
+#: ../src/utils/pacat.c:929
 msgid "Failed to generate sample specification for file."
 msgstr "Näytemäärityksen generointi tiedostolle epäonnistui."
 
-#: ../src/utils/pacat.c:950
+#: ../src/utils/pacat.c:949
 msgid "Failed to open audio file."
 msgstr "Äänitiedoston avaaminen epäonnistui."
 
-#: ../src/utils/pacat.c:956
+#: ../src/utils/pacat.c:955
 msgid ""
 "Warning: specified sample specification will be overwritten with "
 "specification from file."
 msgstr ""
 "Varoitus: tiedostosta luettava näytemääritys korvaa annetun määrityksen."
 
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:997
+#: ../src/utils/pacat.c:958 ../src/utils/pactl.c:997
 msgid "Failed to determine sample specification from file."
 msgstr "Näytemäärityksen selvittäminen tiedostosta epäonnistui."
 
-#: ../src/utils/pacat.c:968
+#: ../src/utils/pacat.c:967
 msgid "Warning: Failed to determine channel map from file."
 msgstr "Varoitus: Kanavakartan selvittäminen tiedostosta epäonnistui."
 
-#: ../src/utils/pacat.c:979
+#: ../src/utils/pacat.c:978
 msgid "Channel map doesn't match sample specification"
 msgstr "Kanavakartta ei vastaa näytemääritystä"
 
-#: ../src/utils/pacat.c:990
+#: ../src/utils/pacat.c:989
 msgid "Warning: failed to write channel map to file."
 msgstr "Varoitus: kanavakartan kirjoittaminen tiedostoon epäonnistui."
 
-#: ../src/utils/pacat.c:1005
+#: ../src/utils/pacat.c:1004
 #, c-format
 msgid ""
 "Opening a %s stream with sample specification '%s' and channel map '%s'."
 msgstr "Avataan %svirta näytemäärityksellä ”%s” ja kanavakartalla ”%s”."
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid "recording"
 msgstr "nauhoitus"
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid "playback"
 msgstr "toisto"
 
-#: ../src/utils/pacat.c:1032 ../src/utils/pactl.c:1267
+#: ../src/utils/pacat.c:1031 ../src/utils/pactl.c:1267
 msgid "pa_mainloop_new() failed."
 msgstr "pa_mainloop_new() epäonnistui."
 
-#: ../src/utils/pacat.c:1051
+#: ../src/utils/pacat.c:1050
 msgid "io_new() failed."
 msgstr "io_new() epäonnistui."
 
-#: ../src/utils/pacat.c:1058 ../src/utils/pactl.c:1279
+#: ../src/utils/pacat.c:1057 ../src/utils/pactl.c:1279
 msgid "pa_context_new() failed."
 msgstr "pa_context_new() epäonnistui."
 
-#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1285
+#: ../src/utils/pacat.c:1065 ../src/utils/pactl.c:1285
 #, c-format
 msgid "pa_context_connect() failed: %s"
 msgstr "pa_context_connect() epäonnistui: %s"
 
-#: ../src/utils/pacat.c:1072
+#: ../src/utils/pacat.c:1071
 msgid "pa_context_rttime_new() failed."
 msgstr "pa_context_new() epäonnistui."
 
-#: ../src/utils/pacat.c:1079 ../src/utils/pactl.c:1290
+#: ../src/utils/pacat.c:1078 ../src/utils/pactl.c:1290
 msgid "pa_mainloop_run() failed."
 msgstr "pa_mainloop_run() epäonnistui."
 
@@ -2296,7 +2313,7 @@ msgstr "write(): %s"
 msgid "Cannot access autospawn lock."
 msgstr "Automaattisen käynnistyksen lukkoa ei voida käyttää."
 
-#: ../src/modules/alsa/alsa-sink.c:531 ../src/modules/alsa/alsa-sink.c:689
+#: ../src/modules/alsa/alsa-sink.c:530 ../src/modules/alsa/alsa-sink.c:689
 #, c-format
 msgid ""
 "ALSA woke us up to write new data to the device, but there was actually "
@@ -2313,7 +2330,7 @@ msgstr ""
 "asetettuna,  snd_pcm_avail() palautti kuitenkin 0 tai jonkin muun arvon, "
 "joka on < min_avail."
 
-#: ../src/modules/alsa/alsa-source.c:508 ../src/modules/alsa/alsa-source.c:658
+#: ../src/modules/alsa/alsa-source.c:506 ../src/modules/alsa/alsa-source.c:656
 #, c-format
 msgid ""
 "ALSA woke us up to read new data from the device, but there was actually "
@@ -2330,19 +2347,19 @@ msgstr ""
 "snd_pcm_avail() palautti kuitenkin 0 tai jonkin muun arvon, on < min_avail."
 
 #: ../src/modules/alsa/module-alsa-card.c:152
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2225
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2228
 msgid "Off"
 msgstr "Poissa"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2181
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2184
 msgid "High Fidelity Playback (A2DP)"
 msgstr "Korkean äänenlaadun toisto (A2DP)"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2195
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2198
 msgid "High Fidelity Capture (A2DP)"
 msgstr "Korkean äänenlaadun tallennus (A2DP)"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2210
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2213
 msgid "Telephony Duplex (HSP/HFP)"
 msgstr ""
 
@@ -2525,9 +2542,6 @@ msgstr "PulseAudio-äänipalvelin"
 #~ msgid "Output %s + Input %s"
 #~ msgstr "Ulostulo %s + Sisääntulo %s"
 
-#~ msgid "Output %s"
-#~ msgstr "Ulostulo %s"
-
 #~ msgid "Input %s"
 #~ msgstr "Sisääntulo %s"
 
diff --git a/po/fr.po b/po/fr.po
index 87e6308..8c916b8 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pulseaudio trunk\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-03 03:04+0200\n"
+"POT-Creation-Date: 2009-09-10 01:47+0200\n"
 "PO-Revision-Date: 2009-04-26 17:22+0200\n"
 "Last-Translator: Corentin Perard <corentin.perard at gmail.com>\n"
 "Language-Team: French <fedora-trans-fr at redhat.com>\n"
@@ -20,12 +20,12 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n>1;\n"
 
-#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2629
+#: ../src/modules/alsa/alsa-util.c:858 ../src/pulsecore/sink.c:2629
 #, c-format
 msgid "%s %s"
 msgstr ""
 
-#: ../src/modules/alsa/alsa-util.c:1023
+#: ../src/modules/alsa/alsa-util.c:1106
 #, c-format
 msgid ""
 "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -38,7 +38,7 @@ msgstr ""
 "Il s'agit très probablement d'un bogue dans le pilote ALSA « %s ». Veuillez "
 "rapporter ce problème aux développeurs d'ALSA."
 
-#: ../src/modules/alsa/alsa-util.c:1064
+#: ../src/modules/alsa/alsa-util.c:1147
 #, c-format
 msgid ""
 "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -51,7 +51,7 @@ msgstr ""
 "Il s'agit très probablement d'un bogue dans le pilote ALSA « %s ». Veuillez "
 "rapporter ce problème aux développeurs d'ALSA."
 
-#: ../src/modules/alsa/alsa-util.c:1111
+#: ../src/modules/alsa/alsa-util.c:1194
 #, c-format
 msgid ""
 "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -64,6 +64,14 @@ msgstr ""
 "Il s'agit très probablement d'un bogue dans le pilote ALSA « %s ». Veuillez "
 "rapporter ce problème aux développeurs d'ALSA."
 
+#: ../src/modules/module-always-sink.c:39
+msgid "Always keeps at least one sink loaded even if it's a null one"
+msgstr ""
+
+#: ../src/modules/module-always-sink.c:83
+msgid "Dummy Output"
+msgstr ""
+
 #: ../src/modules/module-ladspa-sink.c:49
 msgid "Virtual LADSPA sink"
 msgstr ""
@@ -77,6 +85,15 @@ msgid ""
 "input control values>"
 msgstr ""
 
+#: ../src/modules/module-null-sink.c:55
+msgid "Clocked NULL sink"
+msgstr ""
+
+#: ../src/modules/module-null-sink.c:291
+#, fuzzy
+msgid "Null Output"
+msgstr "Sortie %s"
+
 #: ../src/pulsecore/sink.c:2613
 msgid "Internal Audio"
 msgstr "Audio interne"
@@ -234,7 +251,7 @@ msgstr "Échec du tube : %s"
 msgid "fork() failed: %s"
 msgstr "Échec de fork() : %s"
 
-#: ../src/daemon/main.c:641 ../src/utils/pacat.c:505
+#: ../src/daemon/main.c:641 ../src/utils/pacat.c:504
 #, c-format
 msgid "read() failed: %s"
 msgstr "Échec de read() : %s"
@@ -964,8 +981,8 @@ msgid "Top Rear Right"
 msgstr "Arrière droit haut"
 
 #: ../src/pulse/channelmap.c:484 ../src/pulse/sample.c:170
-#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:311
-#: ../src/pulse/volume.c:331 ../src/pulse/volume.c:361
+#: ../src/pulse/volume.c:295 ../src/pulse/volume.c:321
+#: ../src/pulse/volume.c:341 ../src/pulse/volume.c:371
 msgid "(invalid)"
 msgstr "(invalide)"
 
@@ -1262,54 +1279,54 @@ msgstr "non "
 msgid "Stream buffer attributes changed.%s"
 msgstr "Des attributs du tampon de flux ont changé. %s \n"
 
-#: ../src/utils/pacat.c:416
+#: ../src/utils/pacat.c:415
 #, fuzzy, c-format
 msgid "Connection established.%s"
 msgstr "Connection établie.%s \n"
 
-#: ../src/utils/pacat.c:419
+#: ../src/utils/pacat.c:418
 #, fuzzy, c-format
 msgid "pa_stream_new() failed: %s"
 msgstr "Échec de pa_stream_new() : %s\n"
 
-#: ../src/utils/pacat.c:447
+#: ../src/utils/pacat.c:446
 #, fuzzy, c-format
 msgid "pa_stream_connect_playback() failed: %s"
 msgstr "Échec de pa_stream_connect_playback() : %s\n"
 
-#: ../src/utils/pacat.c:453
+#: ../src/utils/pacat.c:452
 #, fuzzy, c-format
 msgid "pa_stream_connect_record() failed: %s"
 msgstr "Échec de pa_stream_connect_record() : %s\n"
 
-#: ../src/utils/pacat.c:467 ../src/utils/pactl.c:857
+#: ../src/utils/pacat.c:466 ../src/utils/pactl.c:857
 #, fuzzy, c-format
 msgid "Connection failure: %s"
 msgstr "Échec lors de la connexion : %s\n"
 
-#: ../src/utils/pacat.c:500
+#: ../src/utils/pacat.c:499
 #, fuzzy
 msgid "Got EOF."
 msgstr "EOF obtenu.\n"
 
-#: ../src/utils/pacat.c:537
+#: ../src/utils/pacat.c:536
 #, fuzzy, c-format
 msgid "write() failed: %s"
 msgstr "Échec de write() : %s\n"
 
-#: ../src/utils/pacat.c:558
+#: ../src/utils/pacat.c:557
 #, fuzzy
 msgid "Got signal, exiting."
 msgstr "Signal obtenu, fermeture.\n"
 
-#: ../src/utils/pacat.c:572
+#: ../src/utils/pacat.c:571
 #, fuzzy, c-format
 msgid "Failed to get latency: %s"
 msgstr "Échec lors de l'obtention de la latence : %s\n"
 
-#: ../src/utils/pacat.c:577
-#, c-format
-msgid "Time: %0.3f sec; Latency: %0.0f usec.  \r"
+#: ../src/utils/pacat.c:576
+#, fuzzy, c-format
+msgid "Time: %0.3f sec; Latency: %0.0f usec."
 msgstr "Durée : %0.3f s ; Latency : %0.0f µs.  \r"
 
 #: ../src/utils/pacat.c:595
@@ -1447,134 +1464,134 @@ msgstr ""
 msgid "Invalid client name '%s'"
 msgstr "Plan des canaux invalide « %s »\n"
 
-#: ../src/utils/pacat.c:776
+#: ../src/utils/pacat.c:775
 #, fuzzy, c-format
 msgid "Invalid stream name '%s'"
 msgstr "Méthode de rééchantillonnage invalide « %s »."
 
-#: ../src/utils/pacat.c:813
+#: ../src/utils/pacat.c:812
 #, fuzzy, c-format
 msgid "Invalid channel map '%s'"
 msgstr "Plan des canaux invalide « %s »\n"
 
-#: ../src/utils/pacat.c:842
+#: ../src/utils/pacat.c:841
 #, fuzzy, c-format
 msgid "Invalid latency specification '%s'"
 msgstr "Spécification de latence invalide « %s »\n"
 
-#: ../src/utils/pacat.c:849
+#: ../src/utils/pacat.c:848
 #, fuzzy, c-format
 msgid "Invalid process time specification '%s'"
 msgstr "Spécification de temps de traitement invalide « %s »\n"
 
-#: ../src/utils/pacat.c:861
+#: ../src/utils/pacat.c:860
 #, fuzzy, c-format
 msgid "Invalid property '%s'"
 msgstr "Méthode de rééchantillonnage invalide « %s »."
 
-#: ../src/utils/pacat.c:878
+#: ../src/utils/pacat.c:877
 #, c-format
 msgid "Unknown file format %s."
 msgstr ""
 
-#: ../src/utils/pacat.c:897
+#: ../src/utils/pacat.c:896
 #, fuzzy
 msgid "Invalid sample specification"
 msgstr "Spécification d'échantillon invalide\n"
 
-#: ../src/utils/pacat.c:907
+#: ../src/utils/pacat.c:906
 #, fuzzy, c-format
 msgid "open(): %s"
 msgstr "open() : %s\n"
 
-#: ../src/utils/pacat.c:912
+#: ../src/utils/pacat.c:911
 #, fuzzy, c-format
 msgid "dup2(): %s"
 msgstr "dup2() : %s\n"
 
-#: ../src/utils/pacat.c:919
+#: ../src/utils/pacat.c:918
 #, fuzzy
 msgid "Too many arguments."
 msgstr "Trop de paramètres.\n"
 
-#: ../src/utils/pacat.c:930
+#: ../src/utils/pacat.c:929
 #, fuzzy
 msgid "Failed to generate sample specification for file."
 msgstr "Échec lors de l'obtention des informations de l'échantillon : %s\n"
 
-#: ../src/utils/pacat.c:950
+#: ../src/utils/pacat.c:949
 #, fuzzy
 msgid "Failed to open audio file."
 msgstr "Échec lors de l'ouverture du fichier audio.\n"
 
-#: ../src/utils/pacat.c:956
+#: ../src/utils/pacat.c:955
 #, fuzzy
 msgid ""
 "Warning: specified sample specification will be overwritten with "
 "specification from file."
 msgstr "Ouverture d'un flux %s avec une spécification d'échantillon « %s ».\n"
 
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:997
+#: ../src/utils/pacat.c:958 ../src/utils/pactl.c:997
 #, fuzzy
 msgid "Failed to determine sample specification from file."
 msgstr "Échec lors de l'obtention des informations de l'échantillon : %s\n"
 
-#: ../src/utils/pacat.c:968
+#: ../src/utils/pacat.c:967
 #, fuzzy
 msgid "Warning: Failed to determine channel map from file."
 msgstr "Ouverture d'un flux %s avec une spécification d'échantillon « %s ».\n"
 
-#: ../src/utils/pacat.c:979
+#: ../src/utils/pacat.c:978
 #, fuzzy
 msgid "Channel map doesn't match sample specification"
 msgstr ""
 "Le plan des canaux ne correspond pas à la spécification d'échantillon\n"
 
-#: ../src/utils/pacat.c:990
+#: ../src/utils/pacat.c:989
 #, fuzzy
 msgid "Warning: failed to write channel map to file."
 msgstr "Ouverture d'un flux %s avec une spécification d'échantillon « %s ».\n"
 
-#: ../src/utils/pacat.c:1005
+#: ../src/utils/pacat.c:1004
 #, fuzzy, c-format
 msgid ""
 "Opening a %s stream with sample specification '%s' and channel map '%s'."
 msgstr "Ouverture d'un flux %s avec une spécification d'échantillon « %s ».\n"
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid "recording"
 msgstr "enregistrement"
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid "playback"
 msgstr "lecture"
 
-#: ../src/utils/pacat.c:1032 ../src/utils/pactl.c:1267
+#: ../src/utils/pacat.c:1031 ../src/utils/pactl.c:1267
 #, fuzzy
 msgid "pa_mainloop_new() failed."
 msgstr "Échec de pa_mainloop_new().\n"
 
-#: ../src/utils/pacat.c:1051
+#: ../src/utils/pacat.c:1050
 #, fuzzy
 msgid "io_new() failed."
 msgstr "Échec de io_new().\n"
 
-#: ../src/utils/pacat.c:1058 ../src/utils/pactl.c:1279
+#: ../src/utils/pacat.c:1057 ../src/utils/pactl.c:1279
 #, fuzzy
 msgid "pa_context_new() failed."
 msgstr "Échec de pa_context_new().\n"
 
-#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1285
+#: ../src/utils/pacat.c:1065 ../src/utils/pactl.c:1285
 #, c-format
 msgid "pa_context_connect() failed: %s"
 msgstr "Échec de pa_context_connect() : %s"
 
-#: ../src/utils/pacat.c:1072
+#: ../src/utils/pacat.c:1071
 #, fuzzy
 msgid "pa_context_rttime_new() failed."
 msgstr "Échec de pa_context_new().\n"
 
-#: ../src/utils/pacat.c:1079 ../src/utils/pactl.c:1290
+#: ../src/utils/pacat.c:1078 ../src/utils/pactl.c:1290
 #, fuzzy
 msgid "pa_mainloop_run() failed."
 msgstr "Échec de pa_mainloop_run().\n"
@@ -2355,7 +2372,7 @@ msgstr "write() : %s"
 msgid "Cannot access autospawn lock."
 msgstr "Impossible d'accèder au verrou autonome."
 
-#: ../src/modules/alsa/alsa-sink.c:531 ../src/modules/alsa/alsa-sink.c:689
+#: ../src/modules/alsa/alsa-sink.c:530 ../src/modules/alsa/alsa-sink.c:689
 #, c-format
 msgid ""
 "ALSA woke us up to write new data to the device, but there was actually "
@@ -2372,7 +2389,7 @@ msgstr ""
 "le jeu POLLOUT -- cependant un snd_pcm_avail() ultérieur a retourné 0 ou une "
 "autre valeur < min_avail."
 
-#: ../src/modules/alsa/alsa-source.c:508 ../src/modules/alsa/alsa-source.c:658
+#: ../src/modules/alsa/alsa-source.c:506 ../src/modules/alsa/alsa-source.c:656
 #, c-format
 msgid ""
 "ALSA woke us up to read new data from the device, but there was actually "
@@ -2390,20 +2407,20 @@ msgstr ""
 "autre valeur < min_avail."
 
 #: ../src/modules/alsa/module-alsa-card.c:152
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2225
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2228
 msgid "Off"
 msgstr "Éteint"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2181
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2184
 msgid "High Fidelity Playback (A2DP)"
 msgstr "Lecture haute fidélité (A2DP)"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2195
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2198
 #, fuzzy
 msgid "High Fidelity Capture (A2DP)"
 msgstr "Lecture haute fidélité (A2DP)"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2210
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2213
 msgid "Telephony Duplex (HSP/HFP)"
 msgstr "Telephonie en duplex (HSP/HFP)"
 
@@ -2596,9 +2613,6 @@ msgstr "Serveur de son PulseAudio"
 #~ msgid "Output %s + Input %s"
 #~ msgstr "Sortie %s + Entrée %s"
 
-#~ msgid "Output %s"
-#~ msgstr "Sortie %s"
-
 #~ msgid "Input %s"
 #~ msgstr "Entrée %s"
 
diff --git a/po/gu.po b/po/gu.po
index 3d6b578..16a272a 100644
--- a/po/gu.po
+++ b/po/gu.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pulseaudio\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-03 08:42+0000\n"
+"POT-Creation-Date: 2009-09-10 01:47+0200\n"
 "PO-Revision-Date: 2009-09-03 15:31+0530\n"
 "Last-Translator: Sweta Kothari <swkothar at redhat.com>\n"
 "Language-Team: Gujarati\n"
@@ -17,12 +17,12 @@ msgstr ""
 "X-Generator: KBabel 1.11.4\n"
 "Plural-Forms: nplurals=2; plural=(n!=1);\n"
 
-#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2629
+#: ../src/modules/alsa/alsa-util.c:858 ../src/pulsecore/sink.c:2629
 #, c-format
 msgid "%s %s"
 msgstr "%s %s"
 
-#: ../src/modules/alsa/alsa-util.c:1023
+#: ../src/modules/alsa/alsa-util.c:1106
 #, c-format
 msgid ""
 "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -34,7 +34,7 @@ msgstr ""
 "ALSA ડ્રાઇવર '%s' માં મોટેભાગે આ ભૂલ જેવુ છે. ALSA ડેવલ્પરોમાં આ સમસ્યાને મહેરબાની કરીને "
 "અહેવાલ કરો."
 
-#: ../src/modules/alsa/alsa-util.c:1064
+#: ../src/modules/alsa/alsa-util.c:1147
 #, c-format
 msgid ""
 "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -47,7 +47,7 @@ msgstr ""
 "ALSA ડ્રાઇવર '%s' માં મોટેભાગે આ ભૂલ જેવુ છે. ALSA ડેવલ્પરોમાં આ સમસ્યાને મહેરબાની કરીને "
 "અહેવાલ કરો."
 
-#: ../src/modules/alsa/alsa-util.c:1111
+#: ../src/modules/alsa/alsa-util.c:1194
 #, c-format
 msgid ""
 "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -60,6 +60,14 @@ msgstr ""
 "ALSA ડ્રાઇવર '%s' માં મોટેભાગે આ ભૂલ જેવુ છે. ALSA ડેવલ્પરોમાં આ સમસ્યાને મહેરબાની કરીને "
 "અહેવાલ કરો."
 
+#: ../src/modules/module-always-sink.c:39
+msgid "Always keeps at least one sink loaded even if it's a null one"
+msgstr ""
+
+#: ../src/modules/module-always-sink.c:83
+msgid "Dummy Output"
+msgstr ""
+
 #: ../src/modules/module-ladspa-sink.c:49
 msgid "Virtual LADSPA sink"
 msgstr "વર્ચ્યુઅલ LADSPA સિંક"
@@ -78,6 +86,14 @@ msgstr ""
 "plugin name> label=<ladspa plugin label> control=<comma seperated list of "
 "input control values>"
 
+#: ../src/modules/module-null-sink.c:55
+msgid "Clocked NULL sink"
+msgstr ""
+
+#: ../src/modules/module-null-sink.c:291
+msgid "Null Output"
+msgstr ""
+
 #: ../src/pulsecore/sink.c:2613
 msgid "Internal Audio"
 msgstr "આંતરિક ઓડિયો"
@@ -187,7 +203,8 @@ msgstr "ડિમનને મારવાનું નિષ્ફળ: %s"
 msgid ""
 "This program is not intended to be run as root (unless --system is "
 "specified)."
-msgstr "આ પ્રક્રિયાને રુટ તરીકે ચલાવવા માટે વિચાર થયેલ નથી (નહિં તો --system એ સ્પષ્ટ થયેલ છે)."
+msgstr ""
+"આ પ્રક્રિયાને રુટ તરીકે ચલાવવા માટે વિચાર થયેલ નથી (નહિં તો --system એ સ્પષ્ટ થયેલ છે)."
 
 #: ../src/daemon/main.c:568
 msgid "Root privileges required."
@@ -229,7 +246,7 @@ msgstr "પાઇપ નિષ્ફળ: %s"
 msgid "fork() failed: %s"
 msgstr "fork() નિષ્ફળ: %s"
 
-#: ../src/daemon/main.c:641 ../src/utils/pacat.c:505
+#: ../src/daemon/main.c:641 ../src/utils/pacat.c:504
 #, c-format
 msgid "read() failed: %s"
 msgstr "read() નિષ્ફળ: %s"
@@ -348,12 +365,11 @@ msgid ""
 "Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an "
 "explanation why system mode is usually a bad idea."
 msgstr ""
-"બરાબર, તેથી તમે સિસ્ટમ સ્થિતિમાં PA ચલાવી રહ્યા છો. મહેરબાની કરીને નોંધો કે જે તમારે મોટેભાગે "
-"કરવુ જોઇએ નહિં.\n"
+"બરાબર, તેથી તમે સિસ્ટમ સ્થિતિમાં PA ચલાવી રહ્યા છો. મહેરબાની કરીને નોંધો કે જે તમારે "
+"મોટેભાગે કરવુ જોઇએ નહિં.\n"
 "જો તમે તેનાં વગર કરે તો પછી તે તમારી ભૂલ થે જો ઇચ્છિત રીતે તે કામ કરતુ ન હોય તો.\n"
-"શા માટે સિસ્ટમ સ્થિતિ સામાન્ય રીતે ખરાબ વિચાર છે તે માટે વિગતવાર જાણકારી માટે "
-"મહેરબાની કરીને http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode આને "
-"વાંચો."
+"શા માટે સિસ્ટમ સ્થિતિ સામાન્ય રીતે ખરાબ વિચાર છે તે માટે વિગતવાર જાણકારી માટે મહેરબાની "
+"કરીને http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode આને વાંચો."
 
 #: ../src/daemon/main.c:804
 msgid "pa_pid_file_create() failed."
@@ -716,7 +732,8 @@ msgstr "રૂપરેખાંકન ફાઇલને ખોલવાનુ
 msgid ""
 "The specified default channel map has a different number of channels than "
 "the specified default number of channels."
-msgstr "સ્પષ્ટ થયેલ મૂળભૂત ચેનલ મેપ પાસે સ્પષ્ટ થયેલ ચેનલોની મૂળભૂત સંખ્યા કરતા વિવિધ ચેનલોની સંખ્યા છે."
+msgstr ""
+"સ્પષ્ટ થયેલ મૂળભૂત ચેનલ મેપ પાસે સ્પષ્ટ થયેલ ચેનલોની મૂળભૂત સંખ્યા કરતા વિવિધ ચેનલોની સંખ્યા છે."
 
 #: ../src/daemon/daemon-conf.c:638
 #, c-format
@@ -940,8 +957,8 @@ msgid "Top Rear Right"
 msgstr "ઉપર રિઅર જમણે"
 
 #: ../src/pulse/channelmap.c:484 ../src/pulse/sample.c:170
-#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:311
-#: ../src/pulse/volume.c:331 ../src/pulse/volume.c:361
+#: ../src/pulse/volume.c:295 ../src/pulse/volume.c:321
+#: ../src/pulse/volume.c:341 ../src/pulse/volume.c:371
 msgid "(invalid)"
 msgstr "(અયોગ્ય)"
 
@@ -1232,52 +1249,52 @@ msgstr "નથી "
 msgid "Stream buffer attributes changed.%s"
 msgstr "સ્ટ્રીમ બફર ગુણધર્મો બદલાયેલ છે.%s"
 
-#: ../src/utils/pacat.c:416
+#: ../src/utils/pacat.c:415
 #, c-format
 msgid "Connection established.%s"
 msgstr "જોડાણ સ્થાપિત થયેલ છે.%s"
 
-#: ../src/utils/pacat.c:419
+#: ../src/utils/pacat.c:418
 #, c-format
 msgid "pa_stream_new() failed: %s"
 msgstr "pa_stream_new() નિષ્ફળ: %s"
 
-#: ../src/utils/pacat.c:447
+#: ../src/utils/pacat.c:446
 #, c-format
 msgid "pa_stream_connect_playback() failed: %s"
 msgstr "pa_stream_connect_playback() નિષ્ફળ: %s"
 
-#: ../src/utils/pacat.c:453
+#: ../src/utils/pacat.c:452
 #, c-format
 msgid "pa_stream_connect_record() failed: %s"
 msgstr "pa_stream_connect_record() નિષ્ફળ: %s"
 
-#: ../src/utils/pacat.c:467 ../src/utils/pactl.c:857
+#: ../src/utils/pacat.c:466 ../src/utils/pactl.c:857
 #, c-format
 msgid "Connection failure: %s"
 msgstr "જોડાણ નિષ્ફળ: %s"
 
-#: ../src/utils/pacat.c:500
+#: ../src/utils/pacat.c:499
 msgid "Got EOF."
 msgstr "EOF મળ્યુ."
 
-#: ../src/utils/pacat.c:537
+#: ../src/utils/pacat.c:536
 #, c-format
 msgid "write() failed: %s"
 msgstr "write() નિષ્ફળ: %s"
 
-#: ../src/utils/pacat.c:558
+#: ../src/utils/pacat.c:557
 msgid "Got signal, exiting."
 msgstr "સંકેત મળ્યું, બહાર નીકળી રહ્યા છે."
 
-#: ../src/utils/pacat.c:572
+#: ../src/utils/pacat.c:571
 #, c-format
 msgid "Failed to get latency: %s"
 msgstr "ગુપ્તતા મેળવવામાં નિષ્ફળતા: %s"
 
-#: ../src/utils/pacat.c:577
-#, c-format
-msgid "Time: %0.3f sec; Latency: %0.0f usec.  \r"
+#: ../src/utils/pacat.c:576
+#, fuzzy, c-format
+msgid "Time: %0.3f sec; Latency: %0.0f usec."
 msgstr "Time: %0.3f sec; Latency: %0.0f usec.  \r"
 
 #: ../src/utils/pacat.c:595
@@ -1358,29 +1375,34 @@ msgstr ""
 "  -d, --device=DEVICE                   તેમાં જોડાવા માટે સિંક/સ્ત્રોત નું નામ\n"
 "  -n, --client-name=NAME                સર્વર પર આ ક્લાઇન્ટને કેવી રીતે કોલ કરવો\n"
 "      --stream-name=NAME                સર્વર પર આ સ્ટ્રીમને કેવી રીતે કોલ કરવો\n"
-"      --volume=VOLUME                   સીમા 0...65536 માં પ્રારંભનાં (સીધા) વોલ્યુમને સ્પષ્ટ કરો\n"
+"      --volume=VOLUME                   સીમા 0...65536 માં પ્રારંભનાં (સીધા) "
+"વોલ્યુમને સ્પષ્ટ કરો\n"
 "      --rate=SAMPLERATE                 Hz માં નમૂનો(44100 નાં મૂળભૂતો)\n"
-"      --format=SAMPLEFORMAT             નમૂના પ્રકાર, s16le, "
-"s16be, u8, float32le, માંનો એક\n"
+"      --format=SAMPLEFORMAT             નમૂના પ્રકાર, s16le, s16be, u8, "
+"float32le, માંનો એક\n"
 "                                        float32be, ulaw, alaw, s32le, s32be, "
 "s24le, s24be,\n"
 "                                        s24-32le, s24-32be (defaults to "
 "s16ne)\n"
-"      --channels=CHANNELS               ચેનલોની સંખ્યા, mono માટે 1, "
-"stereo માટે 2\n"
+"      --channels=CHANNELS               ચેનલોની સંખ્યા, mono માટે 1, stereo માટે "
+"2\n"
 "                                        (2 એ મૂળભૂત છે)\n"
 "      --channel-map=CHANNELMAP          મૂળભૂત ને બદલે વાપરવા માટે ચેનલ મેપ\n"
 "      --fix-format                      સ્ટ્રીમ તેમાં જોડાયેલ છે તે સિંક માંથી નમૂના "
 "બંધારણને\n"
 "                                        લો.\n"
-"      --fix-rate                        સ્ટ્રીમ તેમાં જોડાયેલ છે તે સિંક માંથી નમૂના દરને લો.\n"
+"      --fix-rate                        સ્ટ્રીમ તેમાં જોડાયેલ છે તે સિંક માંથી નમૂના "
+"દરને લો.\n"
 "      --fix-channels                    સ્ટ્રીમ તેમાં જોડાયેલ છે તે સિંક માંથી ચેનલો "
 "અને ચેનલ માપને લો.\n"
 "      --no-remix                        ચેનલોને upmix અથવા downmix કરો નહિં.\n"
 "      --no-remap                        નામને બદલે અનુક્રમણિકા દ્દારા મેપ ચેનલો.\n"
-"      --latency=BYTES                   બાઇટોમાં સ્પષ્ટ થયેલ ગુપ્તતા ની માંગણી કરો.\n"
-"      --process-time=BYTES              બાઇટોમાં માંગણી ની સાથે સ્પષ્ટ થયેલ પ્રક્રિયા સમયની માંગણી કરો.\n"
-"      --property=PROPERTY=VALUE         સ્પષ્ટ થયેલ કિંમતમાં સ્પષ્ટ થયેલ ગુણધર્મને સુયોજિત કરો.\n"
+"      --latency=BYTES                   બાઇટોમાં સ્પષ્ટ થયેલ ગુપ્તતા ની માંગણી "
+"કરો.\n"
+"      --process-time=BYTES              બાઇટોમાં માંગણી ની સાથે સ્પષ્ટ થયેલ "
+"પ્રક્રિયા સમયની માંગણી કરો.\n"
+"      --property=PROPERTY=VALUE         સ્પષ્ટ થયેલ કિંમતમાં સ્પષ્ટ થયેલ ગુણધર્મને "
+"સુયોજિત કરો.\n"
 "      --raw                             કાચી PCM માહિતીનો રેકોર્ડ કરો/વગાડો.\n"
 "      --file-format=FFORMAT             બંધારણ થયેલ માહિતીનો રેકોર્ડ કરો/વગાડો.\n"
 "      --list-file-formats               ઉપલ્બધ ફાઇલ બંધારણોની યાદી.\n"
@@ -1401,119 +1423,120 @@ msgstr ""
 msgid "Invalid client name '%s'"
 msgstr "અયોગ્ય ક્લાઇન્ટ નામ '%s'"
 
-#: ../src/utils/pacat.c:776
+#: ../src/utils/pacat.c:775
 #, c-format
 msgid "Invalid stream name '%s'"
 msgstr "અયોગ્ય સ્ટ્રીમ નામ '%s'"
 
-#: ../src/utils/pacat.c:813
+#: ../src/utils/pacat.c:812
 #, c-format
 msgid "Invalid channel map '%s'"
 msgstr "અયોગ્ય ચેનલ મેપ '%s'"
 
-#: ../src/utils/pacat.c:842
+#: ../src/utils/pacat.c:841
 #, c-format
 msgid "Invalid latency specification '%s'"
 msgstr "અયોગ્ય ગુપ્તતા સ્પષ્ટીકરણ '%s'"
 
-#: ../src/utils/pacat.c:849
+#: ../src/utils/pacat.c:848
 #, c-format
 msgid "Invalid process time specification '%s'"
 msgstr "અયોગ્ય પ્રક્રિયા સમય સ્પષ્ટીકરણ '%s'"
 
-#: ../src/utils/pacat.c:861
+#: ../src/utils/pacat.c:860
 #, c-format
 msgid "Invalid property '%s'"
 msgstr "અયોગ્ય ગુણધર્મ '%s'"
 
-#: ../src/utils/pacat.c:878
+#: ../src/utils/pacat.c:877
 #, c-format
 msgid "Unknown file format %s."
 msgstr "અજ્ઞાત ફાઇલ બંધારણ %s."
 
-#: ../src/utils/pacat.c:897
+#: ../src/utils/pacat.c:896
 msgid "Invalid sample specification"
 msgstr "અયોગ્ય નમૂના સ્પષ્ટીકરણ"
 
-#: ../src/utils/pacat.c:907
+#: ../src/utils/pacat.c:906
 #, c-format
 msgid "open(): %s"
 msgstr "open(): %s"
 
-#: ../src/utils/pacat.c:912
+#: ../src/utils/pacat.c:911
 #, c-format
 msgid "dup2(): %s"
 msgstr "dup2(): %s"
 
-#: ../src/utils/pacat.c:919
+#: ../src/utils/pacat.c:918
 msgid "Too many arguments."
 msgstr "ઘણી બધી દલીલો છે."
 
-#: ../src/utils/pacat.c:930
+#: ../src/utils/pacat.c:929
 msgid "Failed to generate sample specification for file."
 msgstr "ફાઇલ માટે નમૂના સ્પષ્ટીકરણ ને ઉત્પન્ન કરવામાં નિષ્ફળ."
 
-#: ../src/utils/pacat.c:950
+#: ../src/utils/pacat.c:949
 msgid "Failed to open audio file."
 msgstr "સાઉન્ડ ફાઇલને ખોલવામાં નિષ્ફળતા."
 
-#: ../src/utils/pacat.c:956
+#: ../src/utils/pacat.c:955
 msgid ""
 "Warning: specified sample specification will be overwritten with "
 "specification from file."
 msgstr "ચેતવણી: સ્પષ્ટ થયેલ નમૂના સ્પષ્ટીકરણ ફાઇલ માંથી સ્પષ્ટીકરણ સાથે ઉપર લખાયેલ હશે."
 
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:997
+#: ../src/utils/pacat.c:958 ../src/utils/pactl.c:997
 msgid "Failed to determine sample specification from file."
 msgstr "ફાઇલ માંથી નમૂના સ્પષ્ટીકરણને નક્કી કરવામાં નિષ્ફળતા."
 
-#: ../src/utils/pacat.c:968
+#: ../src/utils/pacat.c:967
 msgid "Warning: Failed to determine channel map from file."
 msgstr "ચેતવણી: ફાઇલમાંથી ચેનલ મેપને નક્કી કરવામાં નિષ્ફળતા."
 
-#: ../src/utils/pacat.c:979
+#: ../src/utils/pacat.c:978
 msgid "Channel map doesn't match sample specification"
 msgstr "ચેનલ મેપ એ સ્પષ્ટીકરણ નમૂનાને બંધબેસતુ નથી"
 
-#: ../src/utils/pacat.c:990
+#: ../src/utils/pacat.c:989
 msgid "Warning: failed to write channel map to file."
 msgstr "ચેતણી: ફાઇલમાં ચેનલ મેપને લખવામાં નિષ્ફળતા."
 
-#: ../src/utils/pacat.c:1005
+#: ../src/utils/pacat.c:1004
 #, c-format
-msgid "Opening a %s stream with sample specification '%s' and channel map '%s'."
+msgid ""
+"Opening a %s stream with sample specification '%s' and channel map '%s'."
 msgstr "નમૂના સ્પષ્ટીકરણ '%s' અને ચેનલ નક્ષા '%s' સાથે %s સ્ટ્રીમને ખોલી રહ્યા છે."
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid "recording"
 msgstr "રેકોર્ડ કરી રહ્યા છે"
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid "playback"
 msgstr "પ્લેબેક"
 
-#: ../src/utils/pacat.c:1032 ../src/utils/pactl.c:1267
+#: ../src/utils/pacat.c:1031 ../src/utils/pactl.c:1267
 msgid "pa_mainloop_new() failed."
 msgstr "pa_mainloop_new() નિષ્ફળ."
 
-#: ../src/utils/pacat.c:1051
+#: ../src/utils/pacat.c:1050
 msgid "io_new() failed."
 msgstr "io_new() નિષ્ફળ."
 
-#: ../src/utils/pacat.c:1058 ../src/utils/pactl.c:1279
+#: ../src/utils/pacat.c:1057 ../src/utils/pactl.c:1279
 msgid "pa_context_new() failed."
 msgstr "pa_context_new() નિષ્ફળ."
 
-#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1285
+#: ../src/utils/pacat.c:1065 ../src/utils/pactl.c:1285
 #, c-format
 msgid "pa_context_connect() failed: %s"
 msgstr "pa_context_connect() નિષ્ફળ: %s"
 
-#: ../src/utils/pacat.c:1072
+#: ../src/utils/pacat.c:1071
 msgid "pa_context_rttime_new() failed."
 msgstr "pa_context_new() નિષ્ફળ."
 
-#: ../src/utils/pacat.c:1079 ../src/utils/pactl.c:1290
+#: ../src/utils/pacat.c:1078 ../src/utils/pactl.c:1290
 msgid "pa_mainloop_run() failed."
 msgstr "pa_mainloop_run() નિષ્ફળ."
 
@@ -2070,14 +2093,17 @@ msgid "You have to specify a module index"
 msgstr "તમારે મોડ્યુલ અનુક્રમણિકાને સ્પષ્ટ કરવુ જ પડશે"
 
 #: ../src/utils/pactl.c:1090
-msgid "You may not specify more than one sink. You have to specify a boolean value."
-msgstr "તમે એક સિંક કરતા વધારે સ્પષ્ટ કરી શકશો નહિં. તમારે બુલિયન કિંમતને સ્પષ્ટ કરવુ જ પડશે."
+msgid ""
+"You may not specify more than one sink. You have to specify a boolean value."
+msgstr ""
+"તમે એક સિંક કરતા વધારે સ્પષ્ટ કરી શકશો નહિં. તમારે બુલિયન કિંમતને સ્પષ્ટ કરવુ જ પડશે."
 
 #: ../src/utils/pactl.c:1103
 msgid ""
 "You may not specify more than one source. You have to specify a boolean "
 "value."
-msgstr "તમે એક સ્ત્રોત કરતા વધારે સ્પષ્ટ કરી શકશો નહિં. તમારે બુલિયન કિંમતને સ્પષ્ટ કરવુ જ પડશે."
+msgstr ""
+"તમે એક સ્ત્રોત કરતા વધારે સ્પષ્ટ કરી શકશો નહિં. તમારે બુલિયન કિંમતને સ્પષ્ટ કરવુ જ પડશે."
 
 #: ../src/utils/pactl.c:1115
 msgid "You have to specify a card name/index and a profile name"
@@ -2253,7 +2279,7 @@ msgstr "write(): %s"
 msgid "Cannot access autospawn lock."
 msgstr "autospawn તાળાને દાખલ કરી શકાતુ નથી."
 
-#: ../src/modules/alsa/alsa-sink.c:531 ../src/modules/alsa/alsa-sink.c:689
+#: ../src/modules/alsa/alsa-sink.c:530 ../src/modules/alsa/alsa-sink.c:689
 #, c-format
 msgid ""
 "ALSA woke us up to write new data to the device, but there was actually "
@@ -2270,7 +2296,7 @@ msgstr ""
 "POLLOUT સુયોજન સાથે આપણે જાગેલ હતા -- છતાંપણ ના પછીનું snd_pcm_avail() ને 0 પાછો મળે "
 "છે અથવા બીજી કિંમત < min_avail."
 
-#: ../src/modules/alsa/alsa-source.c:508 ../src/modules/alsa/alsa-source.c:658
+#: ../src/modules/alsa/alsa-source.c:506 ../src/modules/alsa/alsa-source.c:656
 #, c-format
 msgid ""
 "ALSA woke us up to read new data from the device, but there was actually "
@@ -2288,23 +2314,22 @@ msgstr ""
 "છે અથવા બીજી કિંમત < min_avail."
 
 #: ../src/modules/alsa/module-alsa-card.c:152
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2225
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2228
 msgid "Off"
 msgstr "બંધ"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2181
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2184
 msgid "High Fidelity Playback (A2DP)"
 msgstr "High Fidelity Playback (A2DP)"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2195
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2198
 msgid "High Fidelity Capture (A2DP)"
 msgstr "High Fidelity Capture (A2DP)"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2210
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2213
 msgid "Telephony Duplex (HSP/HFP)"
 msgstr "Telephony Duplex (HSP/HFP)"
 
 #: ../src/modules/reserve-wrap.c:151
 msgid "PulseAudio Sound Server"
 msgstr "PulseAudio સાઉન્ડ સર્વર"
-
diff --git a/po/hi.po b/po/hi.po
index 8534458..57a1c96 100644
--- a/po/hi.po
+++ b/po/hi.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pulseaudio.master-tx\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-03 23:46+0000\n"
+"POT-Creation-Date: 2009-09-10 01:47+0200\n"
 "PO-Revision-Date: 2009-09-04 10:48+0530\n"
 "Last-Translator: Rajesh Ranjan <rajesh672 at gmail.com>\n"
 "Language-Team: Hindi <hindi.sf.net>\n"
@@ -15,17 +15,18 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"\n"
 "\n"
 "\n"
 "\n"
 
-#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2629
+#: ../src/modules/alsa/alsa-util.c:858 ../src/pulsecore/sink.c:2629
 #, c-format
 msgid "%s %s"
 msgstr "%s %s"
 
-#: ../src/modules/alsa/alsa-util.c:1023
+#: ../src/modules/alsa/alsa-util.c:1106
 #, c-format
 msgid ""
 "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -37,7 +38,7 @@ msgstr ""
 "अधिक संभव है कि यह ALSA ड्राइवर '%s' में एक बग है. इस मुद्दे को ALSA डेवलेपर को रिपोर्ट "
 "करें."
 
-#: ../src/modules/alsa/alsa-util.c:1064
+#: ../src/modules/alsa/alsa-util.c:1147
 #, c-format
 msgid ""
 "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -49,7 +50,7 @@ msgstr ""
 "अधिक संभव है कि यह ALSA ड्राइवर '%s' में एक बग है. इस मुद्दे को ALSA डेवलेपर को रिपोर्ट "
 "करें."
 
-#: ../src/modules/alsa/alsa-util.c:1111
+#: ../src/modules/alsa/alsa-util.c:1194
 #, c-format
 msgid ""
 "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -62,6 +63,14 @@ msgstr ""
 "अधिक संभव है कि यह ALSA ड्राइवर '%s' में एक बग है. इस मुद्दे को ALSA डेवलेपर को रिपोर्ट "
 "करें."
 
+#: ../src/modules/module-always-sink.c:39
+msgid "Always keeps at least one sink loaded even if it's a null one"
+msgstr ""
+
+#: ../src/modules/module-always-sink.c:83
+msgid "Dummy Output"
+msgstr ""
+
 #: ../src/modules/module-ladspa-sink.c:49
 msgid "Virtual LADSPA sink"
 msgstr "वर्चुअल LADSPA सिंक"
@@ -80,6 +89,14 @@ msgstr ""
 "plugin name> label=<ladspa plugin label> control=<comma seperated list of "
 "input control values>"
 
+#: ../src/modules/module-null-sink.c:55
+msgid "Clocked NULL sink"
+msgstr ""
+
+#: ../src/modules/module-null-sink.c:291
+msgid "Null Output"
+msgstr ""
+
 #: ../src/pulsecore/sink.c:2613
 msgid "Internal Audio"
 msgstr "आंतरिक ऑडियो"
@@ -189,7 +206,8 @@ msgstr "डेमॉन हटाने में विफल: %s"
 msgid ""
 "This program is not intended to be run as root (unless --system is "
 "specified)."
-msgstr "यह प्रोग्राम बतौर रूट चलाने के लिए इच्छित नहीं है (unless --system is specified)."
+msgstr ""
+"यह प्रोग्राम बतौर रूट चलाने के लिए इच्छित नहीं है (unless --system is specified)."
 
 #: ../src/daemon/main.c:568
 msgid "Root privileges required."
@@ -229,7 +247,7 @@ msgstr "पाइप विफल: %s"
 msgid "fork() failed: %s"
 msgstr "fork() विफल: %s"
 
-#: ../src/daemon/main.c:641 ../src/utils/pacat.c:505
+#: ../src/daemon/main.c:641 ../src/utils/pacat.c:504
 #, c-format
 msgid "read() failed: %s"
 msgstr "read() विफल: %s"
@@ -350,7 +368,8 @@ msgid ""
 msgstr ""
 "तो आप PA तंत्र मोड में चला रहे हैं. कृपया नोट करें कि आपको ऐसा नहीं करना चाहिए.\n"
 "यदि आप इसे करते हैं तो यह आपकी गलती है यदि कुछ अप्रत्याशित होता है.\n"
-"कृपया http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode को पढ़ें जानने के लिए कि क्यों तंत्र मोड एक बढ़िया विचार नहीं है."
+"कृपया http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode को पढ़ें जानने के लिए "
+"कि क्यों तंत्र मोड एक बढ़िया विचार नहीं है."
 
 #: ../src/daemon/main.c:804
 msgid "pa_pid_file_create() failed."
@@ -364,7 +383,8 @@ msgstr "ताज़ा उच्च विभेदन टाइमर उप
 msgid ""
 "Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
 "resolution timers enabled!"
-msgstr "आपका कर्नेल बुरी स्थिति में है! सलाह है कि उच्च विभेदन युक्त लिनक्स सक्रिय किया जाना चाहिए!"
+msgstr ""
+"आपका कर्नेल बुरी स्थिति में है! सलाह है कि उच्च विभेदन युक्त लिनक्स सक्रिय किया जाना चाहिए!"
 
 #: ../src/daemon/main.c:839
 msgid "pa_core_new() failed."
@@ -938,8 +958,8 @@ msgid "Top Rear Right"
 msgstr "ऊपर पश्च दायाँ"
 
 #: ../src/pulse/channelmap.c:484 ../src/pulse/sample.c:170
-#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:311
-#: ../src/pulse/volume.c:331 ../src/pulse/volume.c:361
+#: ../src/pulse/volume.c:295 ../src/pulse/volume.c:321
+#: ../src/pulse/volume.c:341 ../src/pulse/volume.c:371
 msgid "(invalid)"
 msgstr "(अवैध)"
 
@@ -1230,52 +1250,52 @@ msgstr "नहीं "
 msgid "Stream buffer attributes changed.%s"
 msgstr "स्ट्रीम बफ़र गुण परिवर्तित.%s "
 
-#: ../src/utils/pacat.c:416
+#: ../src/utils/pacat.c:415
 #, c-format
 msgid "Connection established.%s"
 msgstr "कनेक्शन स्थापित.%s "
 
-#: ../src/utils/pacat.c:419
+#: ../src/utils/pacat.c:418
 #, c-format
 msgid "pa_stream_new() failed: %s"
 msgstr "pa_stream_new() विफल: %s"
 
-#: ../src/utils/pacat.c:447
+#: ../src/utils/pacat.c:446
 #, c-format
 msgid "pa_stream_connect_playback() failed: %s"
 msgstr "pa_stream_connect_playback() विफल: %s"
 
-#: ../src/utils/pacat.c:453
+#: ../src/utils/pacat.c:452
 #, c-format
 msgid "pa_stream_connect_record() failed: %s"
 msgstr "pa_stream_connect_record() विफल: %s"
 
-#: ../src/utils/pacat.c:467 ../src/utils/pactl.c:857
+#: ../src/utils/pacat.c:466 ../src/utils/pactl.c:857
 #, c-format
 msgid "Connection failure: %s"
 msgstr "कनेक्शन विफल.%s"
 
-#: ../src/utils/pacat.c:500
+#: ../src/utils/pacat.c:499
 msgid "Got EOF."
 msgstr "EOF पाया."
 
-#: ../src/utils/pacat.c:537
+#: ../src/utils/pacat.c:536
 #, c-format
 msgid "write() failed: %s"
 msgstr "write() विफल: %s"
 
-#: ../src/utils/pacat.c:558
+#: ../src/utils/pacat.c:557
 msgid "Got signal, exiting."
 msgstr "संकेत पाया, निकल रहा है."
 
-#: ../src/utils/pacat.c:572
+#: ../src/utils/pacat.c:571
 #, c-format
 msgid "Failed to get latency: %s"
 msgstr "लेटेंसी पाने में विफल: %s"
 
-#: ../src/utils/pacat.c:577
-#, c-format
-msgid "Time: %0.3f sec; Latency: %0.0f usec.  \r"
+#: ../src/utils/pacat.c:576
+#, fuzzy, c-format
+msgid "Time: %0.3f sec; Latency: %0.0f usec."
 msgstr "समय: %0.3f sec; लैटेंसी: %0.0f usec.  \r"
 
 #: ../src/utils/pacat.c:595
@@ -1414,119 +1434,120 @@ msgstr ""
 msgid "Invalid client name '%s'"
 msgstr "अवैध क्लाइंट नाम '%s'"
 
-#: ../src/utils/pacat.c:776
+#: ../src/utils/pacat.c:775
 #, c-format
 msgid "Invalid stream name '%s'"
 msgstr "अवैध स्ट्रीम नाम '%s'"
 
-#: ../src/utils/pacat.c:813
+#: ../src/utils/pacat.c:812
 #, c-format
 msgid "Invalid channel map '%s'"
 msgstr "अवैध चैनल मानचित्र '%s'"
 
-#: ../src/utils/pacat.c:842
+#: ../src/utils/pacat.c:841
 #, c-format
 msgid "Invalid latency specification '%s'"
 msgstr "अवैध लैटेंसी विनिर्दिष्टता '%s'"
 
-#: ../src/utils/pacat.c:849
+#: ../src/utils/pacat.c:848
 #, c-format
 msgid "Invalid process time specification '%s'"
 msgstr "अवैध प्रक्रिया समय विनिर्दिष्टता '%s'"
 
-#: ../src/utils/pacat.c:861
+#: ../src/utils/pacat.c:860
 #, c-format
 msgid "Invalid property '%s'"
 msgstr "अवैध गुण '%s'"
 
-#: ../src/utils/pacat.c:878
+#: ../src/utils/pacat.c:877
 #, c-format
 msgid "Unknown file format %s."
 msgstr "अज्ञात फ़ाइल प्रारूप %s."
 
-#: ../src/utils/pacat.c:897
+#: ../src/utils/pacat.c:896
 msgid "Invalid sample specification"
 msgstr "अवैध नमूना विनिर्दिष्टता"
 
-#: ../src/utils/pacat.c:907
+#: ../src/utils/pacat.c:906
 #, c-format
 msgid "open(): %s"
 msgstr "open(): %s"
 
-#: ../src/utils/pacat.c:912
+#: ../src/utils/pacat.c:911
 #, c-format
 msgid "dup2(): %s"
 msgstr "dup2(): %s"
 
-#: ../src/utils/pacat.c:919
+#: ../src/utils/pacat.c:918
 msgid "Too many arguments."
 msgstr "कई वितर्क."
 
-#: ../src/utils/pacat.c:930
+#: ../src/utils/pacat.c:929
 msgid "Failed to generate sample specification for file."
 msgstr "फ़ाइल के लिए नमूना विनिर्दिष्टता पाने में विफल."
 
-#: ../src/utils/pacat.c:950
+#: ../src/utils/pacat.c:949
 msgid "Failed to open audio file."
 msgstr "ध्वनि फ़ाइल खोलने में विफल."
 
-#: ../src/utils/pacat.c:956
+#: ../src/utils/pacat.c:955
 msgid ""
 "Warning: specified sample specification will be overwritten with "
 "specification from file."
 msgstr "चेतावनी: निर्दिष्ट नमूना विनिर्दिष्टता को फ़ाइल की विनिर्दिष्टता से लिखा जाएगा."
 
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:997
+#: ../src/utils/pacat.c:958 ../src/utils/pactl.c:997
 msgid "Failed to determine sample specification from file."
 msgstr "फ़ाइल से नमूना विनिर्दिष्टता निर्धारित करने में विफल."
 
-#: ../src/utils/pacat.c:968
+#: ../src/utils/pacat.c:967
 msgid "Warning: Failed to determine channel map from file."
 msgstr "चेतावनी: फ़ाइल से चैनल मैप पाने में विफल."
 
-#: ../src/utils/pacat.c:979
+#: ../src/utils/pacat.c:978
 msgid "Channel map doesn't match sample specification"
 msgstr "चैनल मैप नमूना विनिर्दिष्टता से मेल नहीं खाता है"
 
-#: ../src/utils/pacat.c:990
+#: ../src/utils/pacat.c:989
 msgid "Warning: failed to write channel map to file."
 msgstr "चेतावनी: फ़ाइल में चैनल मैप लिखने में विफल."
 
-#: ../src/utils/pacat.c:1005
+#: ../src/utils/pacat.c:1004
 #, c-format
-msgid "Opening a %s stream with sample specification '%s' and channel map '%s'."
+msgid ""
+"Opening a %s stream with sample specification '%s' and channel map '%s'."
 msgstr "किसी %s स्ट्रीम को किसी नमूना विनिर्दिष्ता '%s' और चैनल मैप '%s' से खोल रहा है."
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid "recording"
 msgstr "रिकार्डिंग"
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid "playback"
 msgstr "प्लेबैक"
 
-#: ../src/utils/pacat.c:1032 ../src/utils/pactl.c:1267
+#: ../src/utils/pacat.c:1031 ../src/utils/pactl.c:1267
 msgid "pa_mainloop_new() failed."
 msgstr "pa_mainloop_new() विफल."
 
-#: ../src/utils/pacat.c:1051
+#: ../src/utils/pacat.c:1050
 msgid "io_new() failed."
 msgstr "io_new() विफल."
 
-#: ../src/utils/pacat.c:1058 ../src/utils/pactl.c:1279
+#: ../src/utils/pacat.c:1057 ../src/utils/pactl.c:1279
 msgid "pa_context_new() failed."
 msgstr "pa_context_new() विफल."
 
-#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1285
+#: ../src/utils/pacat.c:1065 ../src/utils/pactl.c:1285
 #, c-format
 msgid "pa_context_connect() failed: %s"
 msgstr "pa_context_connect() विफल: %s"
 
-#: ../src/utils/pacat.c:1072
+#: ../src/utils/pacat.c:1071
 msgid "pa_context_rttime_new() failed."
 msgstr "pa_context_rttime_new() विफल."
 
-#: ../src/utils/pacat.c:1079 ../src/utils/pactl.c:1290
+#: ../src/utils/pacat.c:1078 ../src/utils/pactl.c:1290
 msgid "pa_mainloop_run() failed."
 msgstr "pa_mainloop_run() विफल."
 
@@ -2084,10 +2105,10 @@ msgid "You have to specify a module index"
 msgstr "आपको किसी मॉड्यूल सूची को निर्दिष्ट करना है"
 
 #: ../src/utils/pactl.c:1090
-msgid "You may not specify more than one sink. You have to specify a boolean value."
+msgid ""
+"You may not specify more than one sink. You have to specify a boolean value."
 msgstr ""
-"आप एक सिंक से अधिक निर्दिष्ट नहीं कर सकते हैं. आपको किसी बुलियन मान को निर्दिष्ट करना "
-"है."
+"आप एक सिंक से अधिक निर्दिष्ट नहीं कर सकते हैं. आपको किसी बुलियन मान को निर्दिष्ट करना है."
 
 #: ../src/utils/pactl.c:1103
 msgid ""
@@ -2271,7 +2292,7 @@ msgstr "write(): %s"
 msgid "Cannot access autospawn lock."
 msgstr "autospawn लॉक की पहुँच नहीं ले सकता है."
 
-#: ../src/modules/alsa/alsa-sink.c:531 ../src/modules/alsa/alsa-sink.c:689
+#: ../src/modules/alsa/alsa-sink.c:530 ../src/modules/alsa/alsa-sink.c:689
 #, c-format
 msgid ""
 "ALSA woke us up to write new data to the device, but there was actually "
@@ -2288,7 +2309,7 @@ msgstr ""
 "हमें POLLOUT सेट के साथ तैयार किया गया है  -- हालांकि परवर्ती snd_pcm_avail() ने 0 या "
 "दूसरा मान < min_avail दिया."
 
-#: ../src/modules/alsa/alsa-source.c:508 ../src/modules/alsa/alsa-source.c:658
+#: ../src/modules/alsa/alsa-source.c:506 ../src/modules/alsa/alsa-source.c:656
 #, c-format
 msgid ""
 "ALSA woke us up to read new data from the device, but there was actually "
@@ -2306,23 +2327,22 @@ msgstr ""
 "दूसरा मान < min_avail दिया."
 
 #: ../src/modules/alsa/module-alsa-card.c:152
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2225
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2228
 msgid "Off"
 msgstr "बंद"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2181
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2184
 msgid "High Fidelity Playback (A2DP)"
 msgstr "उच्च विश्वसनीयतायुक्ति प्लेबैक (A2DP)"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2195
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2198
 msgid "High Fidelity Capture (A2DP)"
 msgstr "उच्च विश्वसनीयता कैप्चर (A2DP)"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2210
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2213
 msgid "Telephony Duplex (HSP/HFP)"
 msgstr "टेलिफोनी ड्यूप्लेक्स (HSP/HFP)"
 
 #: ../src/modules/reserve-wrap.c:151
 msgid "PulseAudio Sound Server"
 msgstr "पल्सऑडियो ध्वनि सर्वर"
-
diff --git a/po/it.po b/po/it.po
index 310a692..1fa3427 100644
--- a/po/it.po
+++ b/po/it.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pulseaudio\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-03 03:04+0200\n"
+"POT-Creation-Date: 2009-09-10 01:47+0200\n"
 "PO-Revision-Date: 2009-08-26 21:46+0200\n"
 "Last-Translator: Milo Casagrande <milo at ubuntu.com>\n"
 "Language-Team: Italian <tp at lists.linux.it>\n"
@@ -18,12 +18,12 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2629
+#: ../src/modules/alsa/alsa-util.c:858 ../src/pulsecore/sink.c:2629
 #, c-format
 msgid "%s %s"
 msgstr "%s %s"
 
-#: ../src/modules/alsa/alsa-util.c:1023
+#: ../src/modules/alsa/alsa-util.c:1106
 #, c-format
 msgid ""
 "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -35,7 +35,7 @@ msgstr ""
 "Molto probabilmente si tratta di un bug nel driver ALSA \"%s\". Segnalare "
 "questo problema agli sviluppatori ALSA."
 
-#: ../src/modules/alsa/alsa-util.c:1064
+#: ../src/modules/alsa/alsa-util.c:1147
 #, c-format
 msgid ""
 "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -47,7 +47,7 @@ msgstr ""
 "Molto probabilmente si tratta di un bug nel driver ALSA \"%s\". Segnalare "
 "questo problema agli sviluppatori ALSA."
 
-#: ../src/modules/alsa/alsa-util.c:1111
+#: ../src/modules/alsa/alsa-util.c:1194
 #, c-format
 msgid ""
 "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -60,6 +60,14 @@ msgstr ""
 "Molto probabilmente si tratta di un bug nel driver ALSA \"%s\". Segnalare "
 "questo problema agli sviluppatori ALSA."
 
+#: ../src/modules/module-always-sink.c:39
+msgid "Always keeps at least one sink loaded even if it's a null one"
+msgstr ""
+
+#: ../src/modules/module-always-sink.c:83
+msgid "Dummy Output"
+msgstr ""
+
 #: ../src/modules/module-ladspa-sink.c:49
 msgid "Virtual LADSPA sink"
 msgstr "Sink LADSPA virtuale"
@@ -78,6 +86,15 @@ msgstr ""
 "plugin=<nome plugin ladspa> label=<etichetta plugin ladspa> control=<valori "
 "di controllo separati da virgole>"
 
+#: ../src/modules/module-null-sink.c:55
+msgid "Clocked NULL sink"
+msgstr ""
+
+#: ../src/modules/module-null-sink.c:291
+#, fuzzy
+msgid "Null Output"
+msgstr "Output %s"
+
 #: ../src/pulsecore/sink.c:2613
 msgid "Internal Audio"
 msgstr "Audio interno"
@@ -236,7 +253,7 @@ msgstr "pipe non riuscita: %s"
 msgid "fork() failed: %s"
 msgstr "fork() non riuscita: %s"
 
-#: ../src/daemon/main.c:641 ../src/utils/pacat.c:505
+#: ../src/daemon/main.c:641 ../src/utils/pacat.c:504
 #, c-format
 msgid "read() failed: %s"
 msgstr "read() non riuscita: %s"
@@ -991,8 +1008,8 @@ msgid "Top Rear Right"
 msgstr "Superiore posteriore destro"
 
 #: ../src/pulse/channelmap.c:484 ../src/pulse/sample.c:170
-#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:311
-#: ../src/pulse/volume.c:331 ../src/pulse/volume.c:361
+#: ../src/pulse/volume.c:295 ../src/pulse/volume.c:321
+#: ../src/pulse/volume.c:341 ../src/pulse/volume.c:371
 msgid "(invalid)"
 msgstr "(non valido)"
 
@@ -1285,53 +1302,53 @@ msgstr "non "
 msgid "Stream buffer attributes changed.%s"
 msgstr "Attributi del buffer di stream cambiati.%s"
 
-#: ../src/utils/pacat.c:416
+#: ../src/utils/pacat.c:415
 #, c-format
 msgid "Connection established.%s"
 msgstr "Connessione stabilita.%s"
 
-#: ../src/utils/pacat.c:419
+#: ../src/utils/pacat.c:418
 #, c-format
 msgid "pa_stream_new() failed: %s"
 msgstr "pa_stream_new() non riuscita: %s"
 
-#: ../src/utils/pacat.c:447
+#: ../src/utils/pacat.c:446
 #, c-format
 msgid "pa_stream_connect_playback() failed: %s"
 msgstr "pa_stream_connect_playback() non riuscita: %s"
 
-#: ../src/utils/pacat.c:453
+#: ../src/utils/pacat.c:452
 #, c-format
 msgid "pa_stream_connect_record() failed: %s"
 msgstr "pa_stream_connect_record() non riuscita: %s"
 
-#: ../src/utils/pacat.c:467 ../src/utils/pactl.c:857
+#: ../src/utils/pacat.c:466 ../src/utils/pactl.c:857
 #, c-format
 msgid "Connection failure: %s"
 msgstr "Connessione non riuscita: %s"
 
-#: ../src/utils/pacat.c:500
+#: ../src/utils/pacat.c:499
 msgid "Got EOF."
 msgstr "Ricevuto EOF."
 
-#: ../src/utils/pacat.c:537
+#: ../src/utils/pacat.c:536
 #, c-format
 msgid "write() failed: %s"
 msgstr "write() non riuscita: %s"
 
-#: ../src/utils/pacat.c:558
+#: ../src/utils/pacat.c:557
 msgid "Got signal, exiting."
 msgstr "Ricevuto il segnale, uscita."
 
-#: ../src/utils/pacat.c:572
+#: ../src/utils/pacat.c:571
 #, c-format
 msgid "Failed to get latency: %s"
 msgstr "Recupero della latenza non riuscito: %s"
 
 # dubbio: tempo o durata??
-#: ../src/utils/pacat.c:577
-#, c-format
-msgid "Time: %0.3f sec; Latency: %0.0f usec.  \r"
+#: ../src/utils/pacat.c:576
+#, fuzzy, c-format
+msgid "Time: %0.3f sec; Latency: %0.0f usec."
 msgstr "Tempo: %0.3f sec; Latenza: %0.0f microsec.  \r"
 
 #: ../src/utils/pacat.c:595
@@ -1481,64 +1498,64 @@ msgstr ""
 msgid "Invalid client name '%s'"
 msgstr "Nome del client \"%s\" non valido"
 
-#: ../src/utils/pacat.c:776
+#: ../src/utils/pacat.c:775
 #, c-format
 msgid "Invalid stream name '%s'"
 msgstr "Nome dello stream \"%s\" non valido"
 
-#: ../src/utils/pacat.c:813
+#: ../src/utils/pacat.c:812
 #, c-format
 msgid "Invalid channel map '%s'"
 msgstr "Mappa dei canali \"%s\" non valida"
 
-#: ../src/utils/pacat.c:842
+#: ../src/utils/pacat.c:841
 #, c-format
 msgid "Invalid latency specification '%s'"
 msgstr "Specifica di latenza \"%s\" non valida"
 
 # esecuzione???
-#: ../src/utils/pacat.c:849
+#: ../src/utils/pacat.c:848
 #, c-format
 msgid "Invalid process time specification '%s'"
 msgstr "Specifica di tempo di elaborazione \"%s\" non valida"
 
-#: ../src/utils/pacat.c:861
+#: ../src/utils/pacat.c:860
 #, c-format
 msgid "Invalid property '%s'"
 msgstr "Proprietà \"%s\" non valida"
 
-#: ../src/utils/pacat.c:878
+#: ../src/utils/pacat.c:877
 #, c-format
 msgid "Unknown file format %s."
 msgstr "Formato file %s sconosciuto."
 
-#: ../src/utils/pacat.c:897
+#: ../src/utils/pacat.c:896
 msgid "Invalid sample specification"
 msgstr "Specifica di campionamento non valida"
 
-#: ../src/utils/pacat.c:907
+#: ../src/utils/pacat.c:906
 #, c-format
 msgid "open(): %s"
 msgstr "open(): %s"
 
-#: ../src/utils/pacat.c:912
+#: ../src/utils/pacat.c:911
 #, c-format
 msgid "dup2(): %s"
 msgstr "dup2(): %s"
 
-#: ../src/utils/pacat.c:919
+#: ../src/utils/pacat.c:918
 msgid "Too many arguments."
 msgstr "Troppi argomenti."
 
-#: ../src/utils/pacat.c:930
+#: ../src/utils/pacat.c:929
 msgid "Failed to generate sample specification for file."
 msgstr "Generazione della specifica di campionamento per il file non riuscita."
 
-#: ../src/utils/pacat.c:950
+#: ../src/utils/pacat.c:949
 msgid "Failed to open audio file."
 msgstr "Apertura del file audio non riuscita."
 
-#: ../src/utils/pacat.c:956
+#: ../src/utils/pacat.c:955
 msgid ""
 "Warning: specified sample specification will be overwritten with "
 "specification from file."
@@ -1546,24 +1563,24 @@ msgstr ""
 "Attenzione: la specifica di campionamento indicata verrà soprascritta con "
 "quella dal file."
 
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:997
+#: ../src/utils/pacat.c:958 ../src/utils/pactl.c:997
 msgid "Failed to determine sample specification from file."
 msgstr "Determinazione della specifica di campionamento dal file non riuscita."
 
-#: ../src/utils/pacat.c:968
+#: ../src/utils/pacat.c:967
 msgid "Warning: Failed to determine channel map from file."
 msgstr ""
 "Attenzione: determinazione della mappa dei canali dal file non riuscita."
 
-#: ../src/utils/pacat.c:979
+#: ../src/utils/pacat.c:978
 msgid "Channel map doesn't match sample specification"
 msgstr "La mappa dei canali non corrisponde alla specifica di campionamento"
 
-#: ../src/utils/pacat.c:990
+#: ../src/utils/pacat.c:989
 msgid "Warning: failed to write channel map to file."
 msgstr "Attenzione: scrittura della mappa dei canali su file non riuscita."
 
-#: ../src/utils/pacat.c:1005
+#: ../src/utils/pacat.c:1004
 #, c-format
 msgid ""
 "Opening a %s stream with sample specification '%s' and channel map '%s'."
@@ -1571,36 +1588,36 @@ msgstr ""
 "Apertura di uno stream %s con specifica di campionamento \"%s\" e mappa dei "
 "canali \"%s\"."
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid "recording"
 msgstr "registrazione"
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid "playback"
 msgstr "riproduzione"
 
-#: ../src/utils/pacat.c:1032 ../src/utils/pactl.c:1267
+#: ../src/utils/pacat.c:1031 ../src/utils/pactl.c:1267
 msgid "pa_mainloop_new() failed."
 msgstr "pa_mainloop_new() non riuscita."
 
-#: ../src/utils/pacat.c:1051
+#: ../src/utils/pacat.c:1050
 msgid "io_new() failed."
 msgstr "io_new() non riuscita."
 
-#: ../src/utils/pacat.c:1058 ../src/utils/pactl.c:1279
+#: ../src/utils/pacat.c:1057 ../src/utils/pactl.c:1279
 msgid "pa_context_new() failed."
 msgstr "pa_context_new() non riuscita."
 
-#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1285
+#: ../src/utils/pacat.c:1065 ../src/utils/pactl.c:1285
 #, c-format
 msgid "pa_context_connect() failed: %s"
 msgstr "pa_context_connect() non riuscita: %s"
 
-#: ../src/utils/pacat.c:1072
+#: ../src/utils/pacat.c:1071
 msgid "pa_context_rttime_new() failed."
 msgstr "pa_context_rttime_new() non riuscita."
 
-#: ../src/utils/pacat.c:1079 ../src/utils/pactl.c:1290
+#: ../src/utils/pacat.c:1078 ../src/utils/pactl.c:1290
 msgid "pa_mainloop_run() failed."
 msgstr "pa_mainloop_run() non riuscita."
 
@@ -2391,7 +2408,7 @@ msgstr "write(): %s"
 msgid "Cannot access autospawn lock."
 msgstr "Impossibile accedere al lock di autospawn."
 
-#: ../src/modules/alsa/alsa-sink.c:531 ../src/modules/alsa/alsa-sink.c:689
+#: ../src/modules/alsa/alsa-sink.c:530 ../src/modules/alsa/alsa-sink.c:689
 #, c-format
 msgid ""
 "ALSA woke us up to write new data to the device, but there was actually "
@@ -2408,7 +2425,7 @@ msgstr ""
 "Attivazione avvenuta con POLLOUT impostato -- tuttavia, una successiva "
 "snd_pcm_avail() ha ritornato 0 o un altro valore < min_avail."
 
-#: ../src/modules/alsa/alsa-source.c:508 ../src/modules/alsa/alsa-source.c:658
+#: ../src/modules/alsa/alsa-source.c:506 ../src/modules/alsa/alsa-source.c:656
 #, c-format
 msgid ""
 "ALSA woke us up to read new data from the device, but there was actually "
@@ -2426,19 +2443,19 @@ msgstr ""
 "snd_pcm_avail() ha ritornato 0 o un altro valore < min_avail."
 
 #: ../src/modules/alsa/module-alsa-card.c:152
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2225
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2228
 msgid "Off"
 msgstr "Spento"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2181
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2184
 msgid "High Fidelity Playback (A2DP)"
 msgstr "Riproduzione ad alta fedeltà (A2DP)"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2195
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2198
 msgid "High Fidelity Capture (A2DP)"
 msgstr "Cattura ad alta fedeltà (A2DP)"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2210
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2213
 msgid "Telephony Duplex (HSP/HFP)"
 msgstr "Doppino telefonico (HSP/HFP)"
 
@@ -2626,9 +2643,6 @@ msgstr "Server sonoro PulseAudio"
 #~ msgid "Output %s + Input %s"
 #~ msgstr "Output %s + Input %s"
 
-#~ msgid "Output %s"
-#~ msgstr "Output %s"
-
 #~ msgid "Input %s"
 #~ msgstr "Input %s"
 
diff --git a/po/kn.po b/po/kn.po
index b1d2a85..2bf8519 100644
--- a/po/kn.po
+++ b/po/kn.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pulseaudio.master-tx.kn\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-01 04:46+0000\n"
+"POT-Creation-Date: 2009-09-10 01:47+0200\n"
 "PO-Revision-Date: 2009-09-08 00:00+0530\n"
 "Last-Translator: Shankar Prasad <svenkate at redhat.com>\n"
 "Language-Team: Kannada <en at li.org>\n"
@@ -17,12 +17,12 @@ msgstr ""
 "X-Generator: KBabel 1.11.4\n"
 "Plural-Forms:  nplurals=2; plural=(n != 1);\n"
 
-#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2676
+#: ../src/modules/alsa/alsa-util.c:858 ../src/pulsecore/sink.c:2629
 #, c-format
 msgid "%s %s"
 msgstr "%s %s"
 
-#: ../src/modules/alsa/alsa-util.c:1023
+#: ../src/modules/alsa/alsa-util.c:1106
 #, c-format
 msgid ""
 "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -34,7 +34,7 @@ msgstr ""
 "ಇದಕ್ಕೆ ALSA ಚಾಲಕ '%s' ದಲ್ಲಿನ ಒಂದು ದೋಷದ ಕಾರಣವಿರಬಹುದು. ದಯವಿಟ್ಟುಈ ತೊಂದರೆಯನ್ನು ALSA "
 "ವಿಕಸನಗಾರರ ಗಮನಕ್ಕೆ ತನ್ನಿ."
 
-#: ../src/modules/alsa/alsa-util.c:1064
+#: ../src/modules/alsa/alsa-util.c:1147
 #, c-format
 msgid ""
 "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -46,7 +46,7 @@ msgstr ""
 "ಇದಕ್ಕೆ ALSA ಚಾಲಕ '%s' ದಲ್ಲಿನ ಒಂದು ದೋಷದ ಕಾರಣವಿರಬಹುದು. ದಯವಿಟ್ಟುಈ ತೊಂದರೆಯನ್ನು ALSA "
 "ವಿಕಸನಗಾರರ ಗಮನಕ್ಕೆ ತನ್ನಿ."
 
-#: ../src/modules/alsa/alsa-util.c:1111
+#: ../src/modules/alsa/alsa-util.c:1194
 #, c-format
 msgid ""
 "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -58,6 +58,14 @@ msgstr ""
 "ಇದಕ್ಕೆ ALSA ಚಾಲಕ '%s' ದಲ್ಲಿನ ಒಂದು ದೋಷದ ಕಾರಣವಿರಬಹುದು. ದಯವಿಟ್ಟುಈ ತೊಂದರೆಯನ್ನು ALSA "
 "ವಿಕಸನಗಾರರ ಗಮನಕ್ಕೆ ತನ್ನಿ."
 
+#: ../src/modules/module-always-sink.c:39
+msgid "Always keeps at least one sink loaded even if it's a null one"
+msgstr ""
+
+#: ../src/modules/module-always-sink.c:83
+msgid "Dummy Output"
+msgstr ""
+
 #: ../src/modules/module-ladspa-sink.c:49
 msgid "Virtual LADSPA sink"
 msgstr "ವರ್ಚುವಲ್ LADSPA ಸಿಂಕ್"
@@ -70,16 +78,25 @@ msgid ""
 "plugin name> label=<ladspa plugin label> control=<comma seperated list of "
 "input control values>"
 msgstr ""
-"sink_name=<ಸಿಂಕ್‌ನ ಹೆಸರು> sink_properties=<ಸಿಂಕ್‌ನ ಗುಣಗಳು> "
-"master=<ಫಿಲ್ಟರ್ ಮಾಡಬೇಕಿರುವ ಸಿಂಕ್‌ನ ಹೆಸರು> format=<ನಮೂನೆ ವಿನ್ಯಾಸ> rate=<ನಮೂನೆ ದರ> "
-"channels=<ಚಾನಲ್‌ಗಳ ಸಂಖ್ಯೆ> channel_map=<ಚಾನಲ್ ನಕ್ಷೆ> plugin=<ladspa "
-"ಪ್ಲಗ್‌ಇನ್ ಹೆಸರು> label=<ladspa ಪ್ಲಗ್‌ಇನ್ ಹೆಸರು> control=<ವಿರಾಮ ಚಿಹ್ನೆಗಳನ್ನು ಹೊಂದಿರುವ ಇನ್‌ಪುಟ್ ನಿಯಂತ್ರಣ ಮೌಲ್ಯಗಳ ಪಟ್ಟಿ>"
+"sink_name=<ಸಿಂಕ್‌ನ ಹೆಸರು> sink_properties=<ಸಿಂಕ್‌ನ ಗುಣಗಳು> master=<ಫಿಲ್ಟರ್ "
+"ಮಾಡಬೇಕಿರುವ ಸಿಂಕ್‌ನ ಹೆಸರು> format=<ನಮೂನೆ ವಿನ್ಯಾಸ> rate=<ನಮೂನೆ ದರ> "
+"channels=<ಚಾನಲ್‌ಗಳ ಸಂಖ್ಯೆ> channel_map=<ಚಾನಲ್ ನಕ್ಷೆ> plugin=<ladspa ಪ್ಲಗ್‌ಇನ್ ಹೆಸರು> "
+"label=<ladspa ಪ್ಲಗ್‌ಇನ್ ಹೆಸರು> control=<ವಿರಾಮ ಚಿಹ್ನೆಗಳನ್ನು ಹೊಂದಿರುವ ಇನ್‌ಪುಟ್ ನಿಯಂತ್ರಣ "
+"ಮೌಲ್ಯಗಳ ಪಟ್ಟಿ>"
+
+#: ../src/modules/module-null-sink.c:55
+msgid "Clocked NULL sink"
+msgstr ""
 
-#: ../src/pulsecore/sink.c:2660
+#: ../src/modules/module-null-sink.c:291
+msgid "Null Output"
+msgstr ""
+
+#: ../src/pulsecore/sink.c:2613
 msgid "Internal Audio"
 msgstr "ಆಂತರಿಕ ಆಡಿಯೊ"
 
-#: ../src/pulsecore/sink.c:2665
+#: ../src/pulsecore/sink.c:2618
 msgid "Modem"
 msgstr "ಮಾಡೆಮ್"
 
@@ -149,38 +166,38 @@ msgstr "GID ಅನ್ನು ಬದಲಾಯಿಸಲು ವಿಫಲಗೊಂಡ
 msgid "Failed to change UID: %s"
 msgstr "UID ಅನ್ನು ಬದಲಾಯಿಸಲು ವಿಫಲಗೊಂಡಿದೆ: %s"
 
-#: ../src/daemon/main.c:266
+#: ../src/daemon/main.c:271
 msgid "Successfully dropped root privileges."
 msgstr "ರೂಟ್ ಸವಲತ್ತುಗಳನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಬಿಡಲಾಗಿದೆ."
 
-#: ../src/daemon/main.c:274
+#: ../src/daemon/main.c:279
 msgid "System wide mode unsupported on this platform."
 msgstr "ವ್ಯವಸ್ಥೆಯಾದ್ಯಂತದ ಕ್ರಮಕ್ಕೆ ಈ ಪ್ಲಾಟ್‌ಫಾರ್ಮಿನಲ್ಲಿ ಬೆಂಬಲವಿಲ್ಲ."
 
-#: ../src/daemon/main.c:292
+#: ../src/daemon/main.c:297
 #, c-format
 msgid "setrlimit(%s, (%u, %u)) failed: %s"
 msgstr "setrlimit(%s, (%u, %u)) ವಿಫಲಗೊಂಡಿದೆ: %s"
 
-#: ../src/daemon/main.c:464
+#: ../src/daemon/main.c:469
 msgid "Failed to parse command line."
 msgstr "ಆಜ್ಞಾ ಸಾಲನ್ನು ಪಾರ್ಸ್ ಮಾಡುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ."
 
-#: ../src/daemon/main.c:531
+#: ../src/daemon/main.c:536
 msgid "Daemon not running"
 msgstr "ಡೀಮನ್ ಚಲಾಯಿತಗೊಳ್ಳುತ್ತಿದೆ"
 
-#: ../src/daemon/main.c:533
+#: ../src/daemon/main.c:538
 #, c-format
 msgid "Daemon running as PID %u"
 msgstr "ಡೀಮನ್ PID %u ಯಾಗಿ ಚಲಾಯಿಗೊಳ್ಳುತ್ತಿದೆ"
 
-#: ../src/daemon/main.c:543
+#: ../src/daemon/main.c:548
 #, c-format
 msgid "Failed to kill daemon: %s"
 msgstr "ಡೀಮನ್ ಅನ್ನು ಕೊಲ್ಲಲು ವಿಫಲಗೊಂಡಿದೆ: %s"
 
-#: ../src/daemon/main.c:561
+#: ../src/daemon/main.c:566
 msgid ""
 "This program is not intended to be run as root (unless --system is "
 "specified)."
@@ -188,161 +205,163 @@ msgstr ""
 "ಈ ಪ್ರೋಗ್ರಾಮನ್ನು ರೂಟ್‌ ಆಗಿ ಚಲಾಯಿಸುವ ಉದ್ಧೇಶವನ್ನು ಹೊಂದಿಲ್ಲ (--system ಅನ್ನು ಸೂಚಿಸದೆ "
 "ಇದ್ದಲ್ಲಿ ಮಾತ್ರ)."
 
-#: ../src/daemon/main.c:563
+#: ../src/daemon/main.c:568
 msgid "Root privileges required."
 msgstr "ನಿರ್ವಾಹಕ ಸವಲತ್ತುಗಳ ಅಗತ್ಯವಿದೆ."
 
-#: ../src/daemon/main.c:568
+#: ../src/daemon/main.c:573
 msgid "--start not supported for system instances."
 msgstr "ವ್ಯವಸ್ಥೆಯ ಸನ್ನಿವೇಶದಿಂದ --start ಬೆಂಬಲಿತವಾಗಿಲ್ಲ."
 
-#: ../src/daemon/main.c:573
+#: ../src/daemon/main.c:578
 msgid "Running in system mode, but --disallow-exit not set!"
-msgstr "ವ್ಯವಸ್ಥೆಯ ಕ್ರಮದಲ್ಲಿ ಚಲಾಯಿತಗೊಳ್ಳುತ್ತಿದೆ, ಆದರೆ --disallow-exit ಅನ್ನು ಹೊಂದಿಸಲಾಗಿಲ್ಲ!"
+msgstr ""
+"ವ್ಯವಸ್ಥೆಯ ಕ್ರಮದಲ್ಲಿ ಚಲಾಯಿತಗೊಳ್ಳುತ್ತಿದೆ, ಆದರೆ --disallow-exit ಅನ್ನು ಹೊಂದಿಸಲಾಗಿಲ್ಲ!"
 
-#: ../src/daemon/main.c:576
+#: ../src/daemon/main.c:581
 msgid "Running in system mode, but --disallow-module-loading not set!"
 msgstr ""
 "ವ್ಯವಸ್ಥೆಯ ಕ್ರಮದಲ್ಲಿ ಚಲಾಯಿತಗೊಳ್ಳುತ್ತಿದೆ, ಆದರೆ --disallow-module-loading ಅನ್ನು "
 "ಹೊಂದಿಸಲಾಗಿಲ್ಲ!"
 
-#: ../src/daemon/main.c:579
+#: ../src/daemon/main.c:584
 msgid "Running in system mode, forcibly disabling SHM mode!"
 msgstr ""
 "ವ್ಯವಸ್ಥೆಯ ಕ್ರಮದಲ್ಲಿ ಚಲಾಯಿತಗೊಳ್ಳುತ್ತಿದ್ದು, SHM ಕ್ರಮವನ್ನು ಒತ್ತಾಯಪೂರ್ವಕವಾಗಿ "
 "ಅಶಕ್ತಗೊಳಿಸುತ್ತಿದೆ!"
 
-#: ../src/daemon/main.c:584
+#: ../src/daemon/main.c:589
 msgid "Running in system mode, forcibly disabling exit idle time!"
 msgstr ""
 "ವ್ಯವಸ್ಥೆಯ ಕ್ರಮದಲ್ಲಿ ಚಲಾಯಿತಗೊಳ್ಳುತ್ತಿದ್ದು, ನಿರ್ಗಮಿಸುವ ಜಡ ಸಮಯವನ್ನು ಒತ್ತಾಯಪೂರ್ವಕವಾಗಿ "
 "ಅಶಕ್ತಗೊಳಿಸುತ್ತಿದೆ!"
 
-#: ../src/daemon/main.c:611
+#: ../src/daemon/main.c:616
 msgid "Failed to acquire stdio."
 msgstr "stdio ಅನ್ನು ಪಡೆದುಕೊಳ್ಳುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ."
 
-#: ../src/daemon/main.c:617
+#: ../src/daemon/main.c:622
 #, c-format
 msgid "pipe failed: %s"
 msgstr "ಪೈಪ್‌ ವಿಫಲಗೊಂಡಿದೆ: %s"
 
-#: ../src/daemon/main.c:622
+#: ../src/daemon/main.c:627
 #, c-format
 msgid "fork() failed: %s"
 msgstr "fork() ವಿಫಲಗೊಂಡಿದೆ: %s"
 
-#: ../src/daemon/main.c:636 ../src/utils/pacat.c:505
+#: ../src/daemon/main.c:641 ../src/utils/pacat.c:504
 #, c-format
 msgid "read() failed: %s"
 msgstr "read() ವಿಫಲಗೊಂಡಿದೆ: %s"
 
-#: ../src/daemon/main.c:642
+#: ../src/daemon/main.c:647
 msgid "Daemon startup failed."
 msgstr "ಡೀಮನ್ ಆರಂಭಗೊಳ್ಳುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ."
 
-#: ../src/daemon/main.c:644
+#: ../src/daemon/main.c:649
 msgid "Daemon startup successful."
 msgstr "ಡೀಮನ್ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಆರಂಭಿಸಲಾಗಿದೆ."
 
-#: ../src/daemon/main.c:721
+#: ../src/daemon/main.c:726
 #, c-format
 msgid "This is PulseAudio %s"
 msgstr "ಇದು PulseAudio %s"
 
-#: ../src/daemon/main.c:722
+#: ../src/daemon/main.c:727
 #, c-format
 msgid "Compilation host: %s"
 msgstr "ಕಂಪೈಲ್ ಮಾಡುವ ಅತಿಥೇಯ: %s"
 
-#: ../src/daemon/main.c:723
+#: ../src/daemon/main.c:728
 #, c-format
 msgid "Compilation CFLAGS: %s"
 msgstr "ಕಂಪೈಲ್ ಮಾಡುವ CFLAGS: %s"
 
-#: ../src/daemon/main.c:726
+#: ../src/daemon/main.c:731
 #, c-format
 msgid "Running on host: %s"
 msgstr "ಅತಿಥೇಯದಲ್ಲಿ ಚಲಾಯಿತಗೊಳ್ಳುತ್ತಿದೆ: %s"
 
-#: ../src/daemon/main.c:729
+#: ../src/daemon/main.c:734
 #, c-format
 msgid "Found %u CPUs."
 msgstr "%u CPUಗಳು ಕಂಡುಬಂದಿವೆ."
 
-#: ../src/daemon/main.c:731
+#: ../src/daemon/main.c:736
 #, c-format
 msgid "Page size is %lu bytes"
 msgstr "ಪುಟದ ಗಾತ್ರವು %lu ಬೈಟ್‌ಗಳಾಗಿವೆ"
 
-#: ../src/daemon/main.c:734
+#: ../src/daemon/main.c:739
 msgid "Compiled with Valgrind support: yes"
 msgstr "Valgrind ಬೆಂಬಲದೊಂದಿಗೆ ಕಂಪೈಲ್ ಮಾಡಲಾಗಿದೆ: ಹೌದು"
 
-#: ../src/daemon/main.c:736
+#: ../src/daemon/main.c:741
 msgid "Compiled with Valgrind support: no"
 msgstr "Valgrind ಬೆಂಬಲದೊಂದಿಗೆ ಕಂಪೈಲ್ ಮಾಡಲಾಗಿದೆ: ಇಲ್ಲ"
 
-#: ../src/daemon/main.c:739
+#: ../src/daemon/main.c:744
 #, c-format
 msgid "Running in valgrind mode: %s"
 msgstr "valgrind ಕ್ರಮದಲ್ಲಿ ಚಲಾಯಿಸಲಾಗುತ್ತಿದೆ: %s"
 
-#: ../src/daemon/main.c:742
+#: ../src/daemon/main.c:747
 msgid "Optimized build: yes"
 msgstr "ಪ್ರಶಸ್ತವಾದ ನಿರ್ಮಾಣ: ಹೌದು"
 
-#: ../src/daemon/main.c:744
+#: ../src/daemon/main.c:749
 msgid "Optimized build: no"
 msgstr "ಪ್ರಶಸ್ತವಾದ ನಿರ್ಮಾಣ: ಇಲ್ಲ"
 
-#: ../src/daemon/main.c:748
+#: ../src/daemon/main.c:753
 msgid "NDEBUG defined, all asserts disabled."
 msgstr "NDEBUG ಅನ್ನು ಸೂಚಿಸಲಾಗಿದೆ, ಎಲ್ಲಾ ಪ್ರತಿಪಾದನೆಗಳನ್ನೂ ಅಶಕ್ತಗೊಳಿಸಲಾಗಿದೆ."
 
-#: ../src/daemon/main.c:750
+#: ../src/daemon/main.c:755
 msgid "FASTPATH defined, only fast path asserts disabled."
-msgstr "FASTPATH ಅನ್ನು ಸೂಚಿಸಲಾಗಿದೆ, ಕೇವಲ ವೇಗ ಮಾರ್ಗದ ಪ್ರತಿಪಾದನೆಗಳನ್ನೂ ಅಶಕ್ತಗೊಳಿಸಲಾಗಿದೆ."
+msgstr ""
+"FASTPATH ಅನ್ನು ಸೂಚಿಸಲಾಗಿದೆ, ಕೇವಲ ವೇಗ ಮಾರ್ಗದ ಪ್ರತಿಪಾದನೆಗಳನ್ನೂ ಅಶಕ್ತಗೊಳಿಸಲಾಗಿದೆ."
 
-#: ../src/daemon/main.c:752
+#: ../src/daemon/main.c:757
 msgid "All asserts enabled."
 msgstr "ಎಲ್ಲಾ ಪ್ರತಿಪಾದನೆಗಳನ್ನೂ ಶಕ್ತಗೊಳಿಸಲಾಗಿದೆ."
 
-#: ../src/daemon/main.c:756
+#: ../src/daemon/main.c:761
 msgid "Failed to get machine ID"
 msgstr "ಮೆಶೀನ್ ID ಯನ್ನು ಪಡೆದುಕೊಳ್ಳುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ"
 
-#: ../src/daemon/main.c:759
+#: ../src/daemon/main.c:764
 #, c-format
 msgid "Machine ID is %s."
 msgstr "ಮೆಶೀನ್ ID ಯು %s ಆಗಿದೆ."
 
-#: ../src/daemon/main.c:763
+#: ../src/daemon/main.c:768
 #, c-format
 msgid "Session ID is %s."
 msgstr "ಅಧಿವೇಶನ ID ಯು %s ಆಗಿದೆ."
 
-#: ../src/daemon/main.c:769
+#: ../src/daemon/main.c:774
 #, c-format
 msgid "Using runtime directory %s."
 msgstr "ಚಲಾವಣಾಸಮಯ(ರನ್‌ಟೈಮ್) ಕೋಶ %s ಅನ್ನು ಬಳಸಿಕೊಂಡು."
 
-#: ../src/daemon/main.c:774
+#: ../src/daemon/main.c:779
 #, c-format
 msgid "Using state directory %s."
 msgstr "ಸ್ಥಿತಿ ಕೋಶ %s ಅನ್ನು ಬಳಸಿಕೊಂಡು."
 
-#: ../src/daemon/main.c:777
+#: ../src/daemon/main.c:782
 #, c-format
 msgid "Using modules directory %s."
 msgstr "ಘಟಕಗಳ ಕೋಶ %s ಅನ್ನು ಬಳಸಿಕೊಂಡು."
 
-#: ../src/daemon/main.c:779
+#: ../src/daemon/main.c:784
 #, c-format
 msgid "Running in system mode: %s"
 msgstr "ವ್ಯವಸ್ಥೆಯ ಕ್ರಮದಲ್ಲಿ ಚಲಾಯಿಸಲಾಗುತ್ತಿದೆ: %s"
 
-#: ../src/daemon/main.c:782
+#: ../src/daemon/main.c:787
 msgid ""
 "OK, so you are running PA in system mode. Please note that you most likely "
 "shouldn't be doing that.\n"
@@ -351,19 +370,22 @@ msgid ""
 "Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an "
 "explanation why system mode is usually a bad idea."
 msgstr ""
-"ಸರಿ, ನೀವು PA ಅನ್ನು ವ್ಯವಸ್ಥೆಯ ಕ್ರಮದಲ್ಲಿ (ಸಿಸ್ಟಮ್ ಮೋಡ್) ಚಲಾಯಿಸುತ್ತಿದ್ದೀರಿ. ಸಾಮಾನ್ಯವಾಗಿ ನೀವು ಹಾಗೆ ಮಾಡಬಾರದು ಎನ್ನುವುದನ್ನು ದಯವಿಟ್ಟು ನೆನಪಿಡಿ.\n"
-"ನೀವು ಹಾಗೆ ಮಾಡಿದಲ್ಲಿ, ಮುಂದೆ ಏನಾದರೂ ತೊಂದರೆ ಆದಲ್ಲಿ ಅದು ನಿಮ್ಮದೆ ತಪ್ಪಿನ ಕಾರಣದಿಂದಾಗಿರುತ್ತದೆ.\n"
-"ವ್ಯವಸ್ಥೆಯ ಕ್ರಮವು (ಸಿಸ್ಟಮ್ ಮೋಡ್) ಏಕೆ ಒಂದು ಸರಿಯಲ್ಲದ ಬಳಕೆ ಎಂದು ಅರಿಯಲು ದಯವಿಟ್ಟು http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode ಅನ್ನು ನೋಡಿ."
-
-#: ../src/daemon/main.c:799
+"ಸರಿ, ನೀವು PA ಅನ್ನು ವ್ಯವಸ್ಥೆಯ ಕ್ರಮದಲ್ಲಿ (ಸಿಸ್ಟಮ್ ಮೋಡ್) ಚಲಾಯಿಸುತ್ತಿದ್ದೀರಿ. ಸಾಮಾನ್ಯವಾಗಿ "
+"ನೀವು ಹಾಗೆ ಮಾಡಬಾರದು ಎನ್ನುವುದನ್ನು ದಯವಿಟ್ಟು ನೆನಪಿಡಿ.\n"
+"ನೀವು ಹಾಗೆ ಮಾಡಿದಲ್ಲಿ, ಮುಂದೆ ಏನಾದರೂ ತೊಂದರೆ ಆದಲ್ಲಿ ಅದು ನಿಮ್ಮದೆ ತಪ್ಪಿನ "
+"ಕಾರಣದಿಂದಾಗಿರುತ್ತದೆ.\n"
+"ವ್ಯವಸ್ಥೆಯ ಕ್ರಮವು (ಸಿಸ್ಟಮ್ ಮೋಡ್) ಏಕೆ ಒಂದು ಸರಿಯಲ್ಲದ ಬಳಕೆ ಎಂದು ಅರಿಯಲು ದಯವಿಟ್ಟು http://"
+"pulseaudio.org/wiki/WhatIsWrongWithSystemMode ಅನ್ನು ನೋಡಿ."
+
+#: ../src/daemon/main.c:804
 msgid "pa_pid_file_create() failed."
 msgstr "pa_pid_file_create() ವಿಫಲಗೊಂಡಿದೆ."
 
-#: ../src/daemon/main.c:809
+#: ../src/daemon/main.c:814
 msgid "Fresh high-resolution timers available! Bon appetit!"
 msgstr "ತಾಜಾ ರೆಸಲ್ಯೂಶನ್ ಟೈಮರ್ ಲಭ್ಯವಿದೆ! Bon appetit!"
 
-#: ../src/daemon/main.c:811
+#: ../src/daemon/main.c:816
 msgid ""
 "Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
 "resolution timers enabled!"
@@ -371,27 +393,27 @@ msgstr ""
 "ಮಹಾಶಯರೆ, ನಿಮ್ಮ ಕರ್ನಲ್ ಕೊಳೆತುಹೋಗಿದೆ! ಅತ್ಯುತ್ತಮ ರೆಸಲ್ಯೂಶನ್ ಟೈಮರ್ ಅನ್ನು ಶಕ್ತಗೊಳಿಸಲಾದ "
 "ಲಿನಕ್ಸನ್ನು ಬಳಸುವಂತೆ ಅಡುಗೆಯವರು ಸಲಹೆ ಮಾಡುತ್ತಿದ್ದಾರೆ!"
 
-#: ../src/daemon/main.c:832
+#: ../src/daemon/main.c:839
 msgid "pa_core_new() failed."
 msgstr "pa_core_new() ವಿಫಲಗೊಂಡಿದೆ."
 
-#: ../src/daemon/main.c:892
+#: ../src/daemon/main.c:899
 msgid "Failed to initialize daemon."
 msgstr "ಡೀಮನ್ ಅನ್ನು ಆರಂಭಿಸಲು ವಿಫಲಗೊಂಡಿದೆ."
 
-#: ../src/daemon/main.c:897
+#: ../src/daemon/main.c:904
 msgid "Daemon startup without any loaded modules, refusing to work."
 msgstr "ಲೋಡ್ ಮಾಡಲಾದ ಯಾವುದೆ ಡೀಮನ್ ಇಲ್ಲದೆ ಆರಂಭಗೊಂಡಿದೆ, ಕೆಲಸ ಮಾಡಲು ನಿರಾಕರಿಸಿದೆ."
 
-#: ../src/daemon/main.c:914
+#: ../src/daemon/main.c:921
 msgid "Daemon startup complete."
 msgstr "ಡೀಮನ್ ಆರಂಭಗೊಳಿಕೆ ಪೂರ್ಣಗೊಂಡಿದೆ."
 
-#: ../src/daemon/main.c:920
+#: ../src/daemon/main.c:927
 msgid "Daemon shutdown initiated."
 msgstr "ಡೀಮನ್ ಸ್ಥಗಿತಗೊಳಿಕೆಯನ್ನು ಆರಂಭಿಸಲಾಗಿದೆ."
 
-#: ../src/daemon/main.c:942
+#: ../src/daemon/main.c:949
 msgid "Daemon terminated."
 msgstr "ಡೀಮನ್ ಅನ್ನು ಅಂತ್ಯಗೊಳಿಸಲಾಗಿದೆ."
 
@@ -948,8 +970,8 @@ msgid "Top Rear Right"
 msgstr "ಮೇಲಿನ ಹಿಂಬದಿಯ ಬಲಭಾಗ"
 
 #: ../src/pulse/channelmap.c:484 ../src/pulse/sample.c:170
-#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:311
-#: ../src/pulse/volume.c:331 ../src/pulse/volume.c:361
+#: ../src/pulse/volume.c:295 ../src/pulse/volume.c:321
+#: ../src/pulse/volume.c:341 ../src/pulse/volume.c:371
 msgid "(invalid)"
 msgstr "(ಅಮಾನ್ಯ)"
 
@@ -1117,7 +1139,8 @@ msgstr "ಸಂರಚನಾ ಕಡತ '%s' ಅನ್ನು ಲೋಡ್ ಮಾಡ
 
 #: ../src/pulse/context.c:550
 msgid "No cookie loaded. Attempting to connect without."
-msgstr "ಯಾವುದೆ ಕುಕಿಯನ್ನು ಲೋಡ್ ಮಾಡಲಾಗಿಲ್ಲ. ಕುಕಿ ಇಲ್ಲದೆ ಸಂಪರ್ಕಸಾಧಿಸಲು ಪ್ರಯತ್ನಿಸಲಾಗುತ್ತಿದೆ."
+msgstr ""
+"ಯಾವುದೆ ಕುಕಿಯನ್ನು ಲೋಡ್ ಮಾಡಲಾಗಿಲ್ಲ. ಕುಕಿ ಇಲ್ಲದೆ ಸಂಪರ್ಕಸಾಧಿಸಲು ಪ್ರಯತ್ನಿಸಲಾಗುತ್ತಿದೆ."
 
 #: ../src/pulse/context.c:693
 #, c-format
@@ -1240,52 +1263,52 @@ msgstr "ಇಲ್ಲ "
 msgid "Stream buffer attributes changed.%s"
 msgstr "ಸ್ಟ್ರೀಮ್ ಬಫರ್ ಗುಣವಿಶೇಷತೆಗಳನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ.%s"
 
-#: ../src/utils/pacat.c:416
+#: ../src/utils/pacat.c:415
 #, c-format
 msgid "Connection established.%s"
 msgstr "ಸಂಪರ್ಕವನ್ನು ಸಾಧಿಸಲಾಗಿದೆ.%s"
 
-#: ../src/utils/pacat.c:419
+#: ../src/utils/pacat.c:418
 #, c-format
 msgid "pa_stream_new() failed: %s"
 msgstr "pa_stream_new() ವಿಫಲಗೊಂಡಿದೆ: %s"
 
-#: ../src/utils/pacat.c:447
+#: ../src/utils/pacat.c:446
 #, c-format
 msgid "pa_stream_connect_playback() failed: %s"
 msgstr "pa_stream_connect_playback() ವಿಫಲಗೊಂಡಿದೆ: %s"
 
-#: ../src/utils/pacat.c:453
+#: ../src/utils/pacat.c:452
 #, c-format
 msgid "pa_stream_connect_record() failed: %s"
 msgstr "pa_stream_connect_record() ವಿಫಲಗೊಂಡಿದೆ: %s"
 
-#: ../src/utils/pacat.c:467
+#: ../src/utils/pacat.c:466 ../src/utils/pactl.c:857
 #, c-format
 msgid "Connection failure: %s"
 msgstr "ಸಂಪರ್ಕದ ವಿಫಲತೆ: %s"
 
-#: ../src/utils/pacat.c:500
+#: ../src/utils/pacat.c:499
 msgid "Got EOF."
 msgstr "EOF ಅನ್ನು ಪಡೆಯಲಾಗಿದೆ."
 
-#: ../src/utils/pacat.c:537
+#: ../src/utils/pacat.c:536
 #, c-format
 msgid "write() failed: %s"
 msgstr "write() ವಿಫಲಗೊಂಡಿದೆ: %s"
 
-#: ../src/utils/pacat.c:558
+#: ../src/utils/pacat.c:557
 msgid "Got signal, exiting."
 msgstr "ಸಂಕೇತ ದೊರೆತಿದೆ, ನಿರ್ಗಮಿಸುತ್ತಿದೆ."
 
-#: ../src/utils/pacat.c:572
+#: ../src/utils/pacat.c:571
 #, c-format
 msgid "Failed to get latency: %s"
 msgstr "ಅಗೋಚರತೆಯನ್ನು ಪಡೆದುಕೊಳ್ಳುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ: %s"
 
-#: ../src/utils/pacat.c:577
-#, c-format
-msgid "Time: %0.3f sec; Latency: %0.0f usec.  \r"
+#: ../src/utils/pacat.c:576
+#, fuzzy, c-format
+msgid "Time: %0.3f sec; Latency: %0.0f usec."
 msgstr "ಸಮಯ: %0.3f sec; ಅಗೋಚರತೆ: %0.0f usec.  \r"
 
 #: ../src/utils/pacat.c:595
@@ -1397,9 +1420,12 @@ msgstr ""
 "ಮಾಡು.\n"
 "      --process-time=BYTES              ಸೂಚಿಸಲಾದ ಪ್ರತಿ ಮನವಿಯ ಪ್ರಕ್ರಿಯೆಯ ಸಮಯವನ್ನು "
 "ಬೈಟ್‌ಗಳಲ್ಲಿ ಮನವಿ ಮಾಡು.\n"
-"      --property=PROPERTY=VALUE         ನಿಶ್ಚಿತ ಗುಣಲಕ್ಷಣವನ್ನು ನಿಶ್ಚಿತ ಮೌಲ್ಯವನ್ನು ಹೊಂದಿಸಿ.\n"
-"      --raw                             ಕಚ್ಛಾ PCM ದತ್ತಾಂಶವನ್ನು ರೆಕಾರ್ಡು ಮಾಡು/ಚಲಾಯಿಸು.\n"
-"      --file-format=FFORMAT             ಫಾರ್ಮಾಟ್ ಮಾಡಲಾದ PCM ದತ್ತಾಂಶವನ್ನು ರೆಕಾರ್ಡು ಮಾಡು/ಚಲಾಯಿಸು.\n"
+"      --property=PROPERTY=VALUE         ನಿಶ್ಚಿತ ಗುಣಲಕ್ಷಣವನ್ನು ನಿಶ್ಚಿತ ಮೌಲ್ಯವನ್ನು "
+"ಹೊಂದಿಸಿ.\n"
+"      --raw                             ಕಚ್ಛಾ PCM ದತ್ತಾಂಶವನ್ನು ರೆಕಾರ್ಡು ಮಾಡು/"
+"ಚಲಾಯಿಸು.\n"
+"      --file-format=FFORMAT             ಫಾರ್ಮಾಟ್ ಮಾಡಲಾದ PCM ದತ್ತಾಂಶವನ್ನು ರೆಕಾರ್ಡು "
+"ಮಾಡು/ಚಲಾಯಿಸು.\n"
 "      --list-file-formats               ಲಭ್ಯವಿರುವ ಕಡತ ವಿನ್ಯಾಸಗಳ ಪಟ್ಟಿ.\n"
 
 #: ../src/utils/pacat.c:727
@@ -1413,124 +1439,128 @@ msgstr ""
 "libpulse %s ನೊಂದಿಗೆ ಕಂಪೈಲ್ ಮಾಡಲಾಗಿದೆ\n"
 "libpulse %s ನೊಂದಿಗೆ ಜೋಡಿಸಲಾಗಿದೆ\n"
 
-#: ../src/utils/pacat.c:760
+#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:953
 #, c-format
 msgid "Invalid client name '%s'"
 msgstr "ಅಮಾನ್ಯವಾದ ಕ್ಲೈಂಟಿನ ಹೆಸರು '%s'"
 
-#: ../src/utils/pacat.c:776
+#: ../src/utils/pacat.c:775
 #, c-format
 msgid "Invalid stream name '%s'"
 msgstr "ಅಮಾನ್ಯವಾದ ಸ್ಟ್ರೀಮ್‌ನ ಹೆಸರು '%s'"
 
-#: ../src/utils/pacat.c:813
+#: ../src/utils/pacat.c:812
 #, c-format
 msgid "Invalid channel map '%s'"
 msgstr "ಅಮಾನ್ಯವಾದ ಚಾನಲ್ ನಕ್ಷೆ '%s'"
 
-#: ../src/utils/pacat.c:842
+#: ../src/utils/pacat.c:841
 #, c-format
 msgid "Invalid latency specification '%s'"
 msgstr "ಅಮಾನ್ಯವಾದ ಅಗೋಚರತೆ ವಿವರಣೆ '%s'"
 
-#: ../src/utils/pacat.c:849
+#: ../src/utils/pacat.c:848
 #, c-format
 msgid "Invalid process time specification '%s'"
 msgstr "ಅಮಾನ್ಯವಾದ ಪ್ರಕ್ರಿಯೆ ಸಮಯದ ವಿವರಣೆ '%s'"
 
-#: ../src/utils/pacat.c:861
+#: ../src/utils/pacat.c:860
 #, c-format
 msgid "Invalid property '%s'"
 msgstr "ಅಮಾನ್ಯವಾದ ಗುಣಲಕ್ಷಣ '%s'"
 
-#: ../src/utils/pacat.c:878
+#: ../src/utils/pacat.c:877
 #, c-format
 msgid "Unknown file format %s."
 msgstr "ಅಮಾನ್ಯವಾದ ಕಡತ ವಿನ್ಯಾಸ %s."
 
-#: ../src/utils/pacat.c:897
+#: ../src/utils/pacat.c:896
 msgid "Invalid sample specification"
 msgstr "ಅಮಾನ್ಯವಾದ ನಮೂನೆ ವಿವರ"
 
-#: ../src/utils/pacat.c:907
+#: ../src/utils/pacat.c:906
 #, c-format
 msgid "open(): %s"
 msgstr "open(): %s"
 
-#: ../src/utils/pacat.c:912
+#: ../src/utils/pacat.c:911
 #, c-format
 msgid "dup2(): %s"
 msgstr "dup2(): %s"
 
-#: ../src/utils/pacat.c:919
+#: ../src/utils/pacat.c:918
 msgid "Too many arguments."
 msgstr "ಬಹಳಷ್ಟು ಆರ್ಗುಮೆಂಟ್‌ಗಳು."
 
-#: ../src/utils/pacat.c:930
+#: ../src/utils/pacat.c:929
 msgid "Failed to generate sample specification for file."
 msgstr "ನಮೂನೆಯ ಮಾಹಿತಿಯನ್ನು ಪಡೆದುಕೊಳ್ಳುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ."
 
-#: ../src/utils/pacat.c:950
+#: ../src/utils/pacat.c:949
 msgid "Failed to open audio file."
 msgstr "ಧ್ವನಿ ಕಡತವನ್ನು ತೆರೆಯುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ."
 
-#: ../src/utils/pacat.c:956
+#: ../src/utils/pacat.c:955
 msgid ""
 "Warning: specified sample specification will be overwritten with "
 "specification from file."
-msgstr "ಎಚ್ಚರಿಕೆ: ಸೂಚಿಸಲಾದ ನಮೂನೆ ವಿವರಣೆಯನ್ನು ಕಡತದಲ್ಲಿನ ವಿವರಣೆಯಿಂದ ತಿದ್ದಿಬರೆಯಲಾಗುತ್ತದೆ."
+msgstr ""
+"ಎಚ್ಚರಿಕೆ: ಸೂಚಿಸಲಾದ ನಮೂನೆ ವಿವರಣೆಯನ್ನು ಕಡತದಲ್ಲಿನ ವಿವರಣೆಯಿಂದ ತಿದ್ದಿಬರೆಯಲಾಗುತ್ತದೆ."
 
-#: ../src/utils/pacat.c:959
+#: ../src/utils/pacat.c:958 ../src/utils/pactl.c:997
 msgid "Failed to determine sample specification from file."
 msgstr "ಕಡತದಿಂದ ನಮೂನೆಯ ವಿವರಣೆಯನ್ನು ನಿರ್ಧರಿಸುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ."
 
-#: ../src/utils/pacat.c:968
+#: ../src/utils/pacat.c:967
 msgid "Warning: Failed to determine channel map from file."
 msgstr "ಎಚ್ಚರಿಕೆ: ಕಡತದಿಂದ ಚಾನಲ್ ನಕ್ಷೆಯನ್ನು ನಿರ್ಧರಿಸುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ."
 
-#: ../src/utils/pacat.c:979
+#: ../src/utils/pacat.c:978
 msgid "Channel map doesn't match sample specification"
 msgstr "ಚಾನಲ್ ನಕ್ಷೆಯು ನಮೂನೆಯ ವಿವರಣೆಯೊಂದಿಗೆ ತಾಳೆಯಾಗುತ್ತಿಲ್ಲ"
 
-#: ../src/utils/pacat.c:990
+#: ../src/utils/pacat.c:989
 msgid "Warning: failed to write channel map to file."
 msgstr "ಎಚ್ಚರಿಕೆ: ಕಡತಕ್ಕೆ ಚಾನಲ್ ನಕ್ಷೆಯನ್ನು ಬರೆಯುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ."
 
-#: ../src/utils/pacat.c:1005
+#: ../src/utils/pacat.c:1004
 #, c-format
-msgid "Opening a %s stream with sample specification '%s' and channel map '%s'."
-msgstr "ಒಂದು %s ಸ್ಟ್ರೀಮ್‌ ಅನ್ನು ನಮೂನೆ ವಿವರಣೆ '%s' ಯೊಂದಿಗೆ ಹಾಗು ಚಾನಲ್ ನಕ್ಷೆ '%s' ಯೊಂದಿಗೆ ತೆರೆಯಲಾಗುತ್ತಿದೆ."
+msgid ""
+"Opening a %s stream with sample specification '%s' and channel map '%s'."
+msgstr ""
+"ಒಂದು %s ಸ್ಟ್ರೀಮ್‌ ಅನ್ನು ನಮೂನೆ ವಿವರಣೆ '%s' ಯೊಂದಿಗೆ ಹಾಗು ಚಾನಲ್ ನಕ್ಷೆ '%s' ಯೊಂದಿಗೆ "
+"ತೆರೆಯಲಾಗುತ್ತಿದೆ."
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid "recording"
 msgstr "ರೆಕಾರ್ಡಿಂಗ್"
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid "playback"
 msgstr "ಪ್ಲೇಬ್ಯಾಕ್‌"
 
-#: ../src/utils/pacat.c:1032
+#: ../src/utils/pacat.c:1031 ../src/utils/pactl.c:1267
 msgid "pa_mainloop_new() failed."
 msgstr "pa_mainloop_new() ವಿಫಲಗೊಂಡಿದೆ."
 
-#: ../src/utils/pacat.c:1051
+#: ../src/utils/pacat.c:1050
 msgid "io_new() failed."
 msgstr "io_new() ವಿಫಲಗೊಂಡಿದೆ."
 
-#: ../src/utils/pacat.c:1058
+#: ../src/utils/pacat.c:1057 ../src/utils/pactl.c:1279
 msgid "pa_context_new() failed."
 msgstr "pa_context_new() ವಿಫಲಗೊಂಡಿದೆ."
 
-#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1122
+#: ../src/utils/pacat.c:1065 ../src/utils/pactl.c:1285
 #, c-format
 msgid "pa_context_connect() failed: %s"
 msgstr "pa_context_connect() ವಿಫಲಗೊಂಡಿದೆ: %s"
 
-#: ../src/utils/pacat.c:1072
+#: ../src/utils/pacat.c:1071
 msgid "pa_context_rttime_new() failed."
 msgstr "pa_context_rttime_new() ವಿಫಲಗೊಂಡಿದೆ."
 
-#: ../src/utils/pacat.c:1079
+#: ../src/utils/pacat.c:1078 ../src/utils/pactl.c:1290
 msgid "pa_mainloop_run() failed."
 msgstr "pa_mainloop_run() ವಿಫಲಗೊಂಡಿದೆ."
 
@@ -1559,12 +1589,12 @@ msgstr "ಮರಳಿ ಆರಂಭಿಸಲು ವಿಫಲಗೊಂಡಿದೆ:
 msgid "WARNING: Sound server is not local, not suspending.\n"
 msgstr "ಎಚ್ಚರಿಕೆ: ಧ್ವನಿ ಪರಿಚಾರಕವು ಸ್ಥಳೀಯವಾಗಿಲ್ಲ, ತಾತ್ಕಾಲಿಕವಾಗಿ ತಡೆಹಿಡಿಯಲಾಗುತ್ತಿಲ್ಲ.\n"
 
-#: ../src/utils/pasuspender.c:159 ../src/utils/pactl.c:814
+#: ../src/utils/pasuspender.c:159
 #, c-format
 msgid "Connection failure: %s\n"
 msgstr "ಸಂಪರ್ಕದ ವಿಫಲತೆ: %s\n"
 
-#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820
+#: ../src/utils/pasuspender.c:176
 #, c-format
 msgid "Got SIGINT, exiting.\n"
 msgstr "SIGINT ದೊರೆತಿದೆ, ನಿರ್ಗಮಿಸುತ್ತಿದೆ.\n"
@@ -1603,49 +1633,49 @@ msgstr ""
 "libpulse %s ನೊಂದಿಗೆ ಕಂಪೈಲ್ ಮಾಡಲಾಗಿದೆ\n"
 "libpulse %s ನೊಂದಿಗೆ ಜೋಡಿಸಲಾಗಿದೆ\n"
 
-#: ../src/utils/pasuspender.c:277 ../src/utils/pactl.c:1104
+#: ../src/utils/pasuspender.c:277
 #, c-format
 msgid "pa_mainloop_new() failed.\n"
 msgstr "pa_mainloop_new() ವಿಫಲಗೊಂಡಿದೆ.\n"
 
-#: ../src/utils/pasuspender.c:290 ../src/utils/pactl.c:1116
+#: ../src/utils/pasuspender.c:290
 #, c-format
 msgid "pa_context_new() failed.\n"
 msgstr "pa_context_new() ವಿಫಲಗೊಂಡಿದೆ.\n"
 
-#: ../src/utils/pasuspender.c:298 ../src/utils/pactl.c:1127
+#: ../src/utils/pasuspender.c:298
 #, c-format
 msgid "pa_mainloop_run() failed.\n"
 msgstr "pa_mainloop_run() ವಿಫಲಗೊಂಡಿದೆ.\n"
 
-#: ../src/utils/pactl.c:128
-#, c-format
-msgid "Failed to get statistics: %s\n"
+#: ../src/utils/pactl.c:135
+#, fuzzy, c-format
+msgid "Failed to get statistics: %s"
 msgstr "ಅಂಕಿಅಂಶಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ: %s\n"
 
-#: ../src/utils/pactl.c:134
+#: ../src/utils/pactl.c:141
 #, c-format
 msgid "Currently in use: %u blocks containing %s bytes total.\n"
 msgstr "ಪ್ರಸಕ್ತ ಬಳಕೆಯಲ್ಲಿರುವುದು: %u ಖಂಡಗಳು ಒಟ್ಟು %s ಬೈಟ್‌ಗಳನ್ನು ಹೊಂದಿದೆ.\n"
 
-#: ../src/utils/pactl.c:137
+#: ../src/utils/pactl.c:144
 #, c-format
 msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n"
 msgstr ""
 "ಸಂಪೂರ್ಣ ಜೀವಿತಾವಧಿಯ ಸಮಯದಲ್ಲಿ ನಿಯೋಜಿಸಲಾಗಿದ್ದು: %u ಖಂಡಗಳು ಒಟ್ಟು %s ಬೈಟ್‌ಗಳನ್ನು "
 "ಹೊಂದಿದೆ.\n"
 
-#: ../src/utils/pactl.c:140
+#: ../src/utils/pactl.c:147
 #, c-format
 msgid "Sample cache size: %s\n"
 msgstr "ನಮೂನೆಯ ಕ್ಯಾಶೆ ಗಾತ್ರ: %s\n"
 
-#: ../src/utils/pactl.c:149
-#, c-format
-msgid "Failed to get server information: %s\n"
+#: ../src/utils/pactl.c:156
+#, fuzzy, c-format
+msgid "Failed to get server information: %s"
 msgstr "ಪರಿಚಾರಕದ ಮಾಹಿತಿಯನ್ನು ಪಡೆದುಕೊಳ್ಳುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ: %s\n"
 
-#: ../src/utils/pactl.c:157
+#: ../src/utils/pactl.c:164
 #, c-format
 msgid ""
 "User name: %s\n"
@@ -1668,12 +1698,12 @@ msgstr ""
 "ಪೂರ್ವನಿಯೋಜಿತ ಆಕರ: %s\n"
 "ಕುಕಿ: %08x\n"
 
-#: ../src/utils/pactl.c:198
-#, c-format
-msgid "Failed to get sink information: %s\n"
+#: ../src/utils/pactl.c:205
+#, fuzzy, c-format
+msgid "Failed to get sink information: %s"
 msgstr "ಸಿಂಕ್‌ ಮಾಹಿತಿಯನ್ನು ಪಡೆದುಕೊಳ್ಳುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ: %s\n"
 
-#: ../src/utils/pactl.c:214
+#: ../src/utils/pactl.c:221
 #, c-format
 msgid ""
 "Sink #%u\n"
@@ -1712,22 +1742,22 @@ msgstr ""
 "\tಗುಣಗಳು:\n"
 "\t\t%s\n"
 
-#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353
+#: ../src/utils/pactl.c:268 ../src/utils/pactl.c:360
 #, c-format
 msgid "\tPorts:\n"
 msgstr "\tಸಂಪರ್ಕಸ್ಥಾನಗಳು:\n"
 
-#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359
+#: ../src/utils/pactl.c:274 ../src/utils/pactl.c:366
 #, c-format
 msgid "\tActive Port: %s\n"
 msgstr "\tಸಕ್ರಿಯ ಸಂಪರ್ಕಸ್ಥಾನ: %s\n"
 
-#: ../src/utils/pactl.c:290
-#, c-format
-msgid "Failed to get source information: %s\n"
+#: ../src/utils/pactl.c:297
+#, fuzzy, c-format
+msgid "Failed to get source information: %s"
 msgstr "ಆಕರದ ಮಾಹಿತಿಯನ್ನು ಪಡೆದುಕೊಳ್ಳುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ: %s\n"
 
-#: ../src/utils/pactl.c:306
+#: ../src/utils/pactl.c:313
 #, c-format
 msgid ""
 "Source #%u\n"
@@ -1766,20 +1796,20 @@ msgstr ""
 "\tಗುಣಗಳು:\n"
 "\t\t%s\n"
 
-#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429
-#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526
-#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581
-#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631
-#: ../src/utils/pactl.c:638
+#: ../src/utils/pactl.c:345 ../src/utils/pactl.c:401 ../src/utils/pactl.c:436
+#: ../src/utils/pactl.c:473 ../src/utils/pactl.c:532 ../src/utils/pactl.c:533
+#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:587 ../src/utils/pactl.c:588
+#: ../src/utils/pactl.c:594 ../src/utils/pactl.c:637 ../src/utils/pactl.c:638
+#: ../src/utils/pactl.c:645
 msgid "n/a"
 msgstr "ಅನ್ವಯಿಸುವುದಿಲ್ಲ"
 
-#: ../src/utils/pactl.c:368
-#, c-format
-msgid "Failed to get module information: %s\n"
+#: ../src/utils/pactl.c:375
+#, fuzzy, c-format
+msgid "Failed to get module information: %s"
 msgstr "ಘಟಕದ ಮಾಹಿತಿಯನ್ನು ಪಡೆದುಕೊಳ್ಳುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ: %s\n"
 
-#: ../src/utils/pactl.c:386
+#: ../src/utils/pactl.c:393
 #, c-format
 msgid ""
 "Module #%u\n"
@@ -1796,12 +1826,12 @@ msgstr ""
 "\tಗುಣಗಳು:\n"
 "\t\t%s\n"
 
-#: ../src/utils/pactl.c:405
-#, c-format
-msgid "Failed to get client information: %s\n"
+#: ../src/utils/pactl.c:412
+#, fuzzy, c-format
+msgid "Failed to get client information: %s"
 msgstr "ಕ್ಲೈಂಟಿನ ಮಾಹಿತಿಯನ್ನು ಪಡೆದುಕೊಳ್ಳುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ: %s\n"
 
-#: ../src/utils/pactl.c:423
+#: ../src/utils/pactl.c:430
 #, c-format
 msgid ""
 "Client #%u\n"
@@ -1816,12 +1846,12 @@ msgstr ""
 "\tಗುಣಗಳು:\n"
 "\t\t%s\n"
 
-#: ../src/utils/pactl.c:440
-#, c-format
-msgid "Failed to get card information: %s\n"
+#: ../src/utils/pactl.c:447
+#, fuzzy, c-format
+msgid "Failed to get card information: %s"
 msgstr "ಕಾರ್ಡಿನ ಮಾಹಿತಿಯನ್ನು ಪಡೆದುಕೊಳ್ಳುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ: %s\n"
 
-#: ../src/utils/pactl.c:458
+#: ../src/utils/pactl.c:465
 #, c-format
 msgid ""
 "Card #%u\n"
@@ -1838,22 +1868,22 @@ msgstr ""
 "\tಗುಣಗಳು:\n"
 "\t\t%s\n"
 
-#: ../src/utils/pactl.c:472
+#: ../src/utils/pactl.c:479
 #, c-format
 msgid "\tProfiles:\n"
 msgstr "\tಪ್ರೊಫೈಲುಗಳು:\n"
 
-#: ../src/utils/pactl.c:478
+#: ../src/utils/pactl.c:485
 #, c-format
 msgid "\tActive Profile: %s\n"
 msgstr "\tಸಕ್ರಿಯ ಪ್ರೊಫೈಲುಗಳು: %s\n"
 
-#: ../src/utils/pactl.c:489
-#, c-format
-msgid "Failed to get sink input information: %s\n"
+#: ../src/utils/pactl.c:496
+#, fuzzy, c-format
+msgid "Failed to get sink input information: %s"
 msgstr "ಸಿಂಕ್‌ ಇನ್‌ಪುಟ್ ಮಾಹಿತಿಯನ್ನು ಪಡೆದುಕೊಳ್ಳುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ: %s\n"
 
-#: ../src/utils/pactl.c:508
+#: ../src/utils/pactl.c:515
 #, c-format
 msgid ""
 "Sink Input #%u\n"
@@ -1890,12 +1920,12 @@ msgstr ""
 "\tಗುಣಗಳು:\n"
 "\t\t%s\n"
 
-#: ../src/utils/pactl.c:547
-#, c-format
-msgid "Failed to get source output information: %s\n"
+#: ../src/utils/pactl.c:554
+#, fuzzy, c-format
+msgid "Failed to get source output information: %s"
 msgstr "ಆಕರದ ಔಟ್‌ಪುಟ್ ಮಾಹಿತಿಯನ್ನು ಪಡೆದುಕೊಳ್ಳುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ: %s\n"
 
-#: ../src/utils/pactl.c:567
+#: ../src/utils/pactl.c:574
 #, c-format
 msgid ""
 "Source Output #%u\n"
@@ -1924,12 +1954,12 @@ msgstr ""
 "\tಗುಣಗಳು:\n"
 "\t\t%s\n"
 
-#: ../src/utils/pactl.c:598
-#, c-format
-msgid "Failed to get sample information: %s\n"
+#: ../src/utils/pactl.c:605
+#, fuzzy, c-format
+msgid "Failed to get sample information: %s"
 msgstr "ನಮೂನೆಯ ಮಾಹಿತಿಯನ್ನು ಪಡೆದುಕೊಳ್ಳುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ: %s\n"
 
-#: ../src/utils/pactl.c:616
+#: ../src/utils/pactl.c:623
 #, c-format
 msgid ""
 "Sample #%u\n"
@@ -1960,22 +1990,28 @@ msgstr ""
 "\tಗುಣಗಳು:\n"
 "\t\t%s\n"
 
-#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656
-#, c-format
-msgid "Failure: %s\n"
+#: ../src/utils/pactl.c:653 ../src/utils/pactl.c:663
+#, fuzzy, c-format
+msgid "Failure: %s"
 msgstr "ವಿಫಲತೆ: %s\n"
 
-#: ../src/utils/pactl.c:680
-#, c-format
-msgid "Failed to upload sample: %s\n"
+#: ../src/utils/pactl.c:687
+#, fuzzy, c-format
+msgid "Failed to upload sample: %s"
 msgstr "ನಮೂನೆಯನ್ನು ಅಪ್‌ಲೋಡ್ ಮಾಡುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ: %s\n"
 
-#: ../src/utils/pactl.c:697
-msgid "Premature end of file\n"
+#: ../src/utils/pactl.c:704
+#, fuzzy
+msgid "Premature end of file"
 msgstr "ಕಡತದ ಅಪ್ರಾಪ್ತ ಸಮಯದಲ್ಲಿ ಅಂತ್ಯ\n"
 
-#: ../src/utils/pactl.c:826
-#, c-format
+#: ../src/utils/pactl.c:863
+#, fuzzy
+msgid "Got SIGINT, exiting."
+msgstr "SIGINT ದೊರೆತಿದೆ, ನಿರ್ಗಮಿಸುತ್ತಿದೆ.\n"
+
+#: ../src/utils/pactl.c:869
+#, fuzzy, c-format
 msgid ""
 "%s [options] stat\n"
 "%s [options] list\n"
@@ -1983,15 +2019,21 @@ msgid ""
 "%s [options] upload-sample FILENAME [NAME]\n"
 "%s [options] play-sample NAME [SINK]\n"
 "%s [options] remove-sample NAME\n"
-"%s [options] move-sink-input ID SINK\n"
-"%s [options] move-source-output ID SOURCE\n"
+"%s [options] move-sink-input SINKINPUT SINK\n"
+"%s [options] move-source-output SOURCEOUTPUT SOURCE\n"
 "%s [options] load-module NAME [ARGS ...]\n"
-"%s [options] unload-module ID\n"
-"%s [options] suspend-sink [SINK] 1|0\n"
-"%s [options] suspend-source [SOURCE] 1|0\n"
-"%s [options] set-card-profile [CARD] [PROFILE] \n"
-"%s [options] set-sink-port [SINK] [PORT] \n"
-"%s [options] set-source-port [SOURCE] [PORT] \n"
+"%s [options] unload-module MODULE\n"
+"%s [options] suspend-sink SINK 1|0\n"
+"%s [options] suspend-source SOURCE 1|0\n"
+"%s [options] set-card-profile CARD PROFILE\n"
+"%s [options] set-sink-port SINK PORT\n"
+"%s [options] set-source-port SOURCE PORT\n"
+"%s [options] set-sink-volume SINK VOLUME\n"
+"%s [options] set-source-volume SOURCE VOLUME\n"
+"%s [options] set-sink-input-volume SINKINPUT VOLUME\n"
+"%s [options] set-sink-mute SINK 1|0\n"
+"%s [options] set-source-mute SOURCE 1|0\n"
+"%s [options] set-sink-input-mute SINKINPUT 1|0\n"
 "\n"
 "  -h, --help                            Show this help\n"
 "      --version                         Show version\n"
@@ -2024,7 +2066,7 @@ msgstr ""
 "  -n, --client-name=NAME                ಪರಿಚಾರಕದಲ್ಲಿ ಈ ಕ್ಲೈಂಟಿನಲ್ಲಿ ಏನೆಂದು "
 "ಕರೆಯಬೇಕು\n"
 
-#: ../src/utils/pactl.c:880
+#: ../src/utils/pactl.c:933
 #, c-format
 msgid ""
 "pactl %s\n"
@@ -2035,81 +2077,132 @@ msgstr ""
 "libpulse %s ನೊಂದಿಗೆ ಕಂಪೈಲ್ ಮಾಡಲಾಗಿದೆ\n"
 "libpulse %s ನೊಂದಿಗೆ ಜೋಡಿಸಲಾಗಿದೆ\n"
 
-#: ../src/utils/pactl.c:900
-#, c-format
-msgid "Invalid client name '%s'\n"
-msgstr "ಅಮಾನ್ಯವಾದ ಕ್ಲೈಂಟ್ ಹೆಸರು '%s'\n"
-
-#: ../src/utils/pactl.c:926
-msgid "Please specify a sample file to load\n"
+#: ../src/utils/pactl.c:979
+#, fuzzy
+msgid "Please specify a sample file to load"
 msgstr "ಲೋಡ್ ಮಾಡಬೇಕಿರುವ ಒಂದು ಕಡತದ ನಮೂನೆಯನ್ನು ಸೂಚಿಸಿ\n"
 
-#: ../src/utils/pactl.c:939
-msgid "Failed to open sound file.\n"
+#: ../src/utils/pactl.c:992
+#, fuzzy
+msgid "Failed to open sound file."
 msgstr "ಧ್ವನಿ ಕಡತವನ್ನು ತೆರೆಯುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ.\n"
 
-#: ../src/utils/pactl.c:944
-msgid "Failed to determine sample specification from file.\n"
-msgstr "ಕಡತದಿಂದ ನಮೂನೆಯ ವಿವರವನ್ನು ನಿರ್ಧರಿಸುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ.\n"
-
-#: ../src/utils/pactl.c:951
-msgid "Warning: Failed to determine sample specification from file.\n"
+#: ../src/utils/pactl.c:1004
+#, fuzzy
+msgid "Warning: Failed to determine sample specification from file."
 msgstr "ಎಚ್ಚರಿಕೆ: ಕಡತದಿಂದ ನಮೂನೆಯ ವಿವರವನ್ನು ನಿರ್ಧರಿಸುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ.\n"
 
-#: ../src/utils/pactl.c:961
-msgid "You have to specify a sample name to play\n"
+#: ../src/utils/pactl.c:1014
+#, fuzzy
+msgid "You have to specify a sample name to play"
 msgstr "ಚಲಾಯಿಸಲು ನೀವು ಒಂದು ನಮೂನೆಯ ಹೆಸರನ್ನು ಸೂಚಿಸಬೇಕಾಗುತ್ತದೆ\n"
 
-#: ../src/utils/pactl.c:973
-msgid "You have to specify a sample name to remove\n"
+#: ../src/utils/pactl.c:1026
+#, fuzzy
+msgid "You have to specify a sample name to remove"
 msgstr "ತೆಗೆದು ಹಾಕಲು ನೀವು ಒಂದು ನಮೂನೆಯ ಹೆಸರನ್ನು ಸೂಚಿಸಬೇಕು\n"
 
-#: ../src/utils/pactl.c:982
-msgid "You have to specify a sink input index and a sink\n"
+#: ../src/utils/pactl.c:1035
+#, fuzzy
+msgid "You have to specify a sink input index and a sink"
 msgstr "ನೀವು ಒಂದು ಸಿಂಕ್ ಇನ್‌ಪುಟ್ ಸೂಚಿಯನ್ನು ಹಾಗು ಒಂದು ಸಿಂಕ್‌ ಅನ್ನು ಸೂಚಿಸಬೇಕು.\n"
 
-#: ../src/utils/pactl.c:992
-msgid "You have to specify a source output index and a source\n"
+#: ../src/utils/pactl.c:1045
+#, fuzzy
+msgid "You have to specify a source output index and a source"
 msgstr "ನೀವು ಒಂದು ಆಕರ ಔಟ್‌ಪುಟ್ ಸೂಚಿಯನ್ನು ಹಾಗು ಒಂದು ಆಕರವನ್ನು ಸೂಚಿಸಬೇಕು.\n"
 
-#: ../src/utils/pactl.c:1007
-msgid "You have to specify a module name and arguments.\n"
+#: ../src/utils/pactl.c:1060
+#, fuzzy
+msgid "You have to specify a module name and arguments."
 msgstr "ನೀವು ಒಂದು ಘಟಕದ ಹೆಸರನ್ನು ಹಾಗು ಆರ್ಗುಮೆಂಟುಗಳನ್ನು ಸೂಚಿಸಬೇಕು\n"
 
-#: ../src/utils/pactl.c:1027
-msgid "You have to specify a module index\n"
+#: ../src/utils/pactl.c:1080
+#, fuzzy
+msgid "You have to specify a module index"
 msgstr "ನೀವು ಒಂದು ಘಟಕ ಸೂಚಿಯನ್ನು ಸೂಚಿಸಬೇಕು\n"
 
-#: ../src/utils/pactl.c:1037
+#: ../src/utils/pactl.c:1090
+#, fuzzy
 msgid ""
-"You may not specify more than one sink. You have to specify a boolean "
-"value.\n"
+"You may not specify more than one sink. You have to specify a boolean value."
 msgstr ""
 "ನೀವು ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚಿನ ಸಿಂಕನ್ನು ಸೂಚಿಸಲಾಗುವುದಿಲ್ಲ. ನೀವು ಒಂದು ಬೂಲಿಯನ್‌ ಮೌಲ್ಯವನ್ನು "
 "ಸೂಚಿಸಬೇಕಾಗುತ್ತದೆ.\n"
 
-#: ../src/utils/pactl.c:1050
+#: ../src/utils/pactl.c:1103
+#, fuzzy
 msgid ""
 "You may not specify more than one source. You have to specify a boolean "
-"value.\n"
+"value."
 msgstr ""
 "ನೀವು ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚಿನ ಆಕರವನ್ನು ಸೂಚಿಸಲಾಗುವುದಿಲ್ಲ. ನೀವು ಒಂದು ಬೂಲಿಯನ್‌ ಮೌಲ್ಯವನ್ನು "
 "ಸೂಚಿಸಬೇಕಾಗುತ್ತದೆ.\n"
 
-#: ../src/utils/pactl.c:1062
-msgid "You have to specify a card name/index and a profile name\n"
+#: ../src/utils/pactl.c:1115
+#, fuzzy
+msgid "You have to specify a card name/index and a profile name"
 msgstr "ಒಂದು ಕಾರ್ಡಿನ ಹೆಸರು/ಸೂಚಿಯನ್ನು ಹಾಗು ಪ್ರೊಫೈಲ್‌ ಹೆಸರನ್ನು ಸೂಚಿಸಬೇಕು\n"
 
-#: ../src/utils/pactl.c:1073
-msgid "You have to specify a sink name/index and a port name\n"
+#: ../src/utils/pactl.c:1126
+#, fuzzy
+msgid "You have to specify a sink name/index and a port name"
 msgstr "ನೀವು ಒಂದು ಸಿಂಕಿನ ಹೆಸರು/ಸೂಚಿಯನ್ನು ಹಾಗು ಸಂಪರ್ಕಸ್ಥಾನದ ಹೆಸರನ್ನು ಸೂಚಿಸಬೇಕು\n"
 
-#: ../src/utils/pactl.c:1084
-msgid "You have to specify a source name/index and a port name\n"
+#: ../src/utils/pactl.c:1137
+#, fuzzy
+msgid "You have to specify a source name/index and a port name"
 msgstr "ನೀವು ಒಂದು ಆಕರದ ಹೆಸರು/ಸೂಚಿಯನ್ನು ಹಾಗು ಸಂಪರ್ಕಸ್ಥಾನದ ಹೆಸರನ್ನು ಸೂಚಿಸಬೇಕು\n"
 
-#: ../src/utils/pactl.c:1099
-msgid "No valid command specified.\n"
+#: ../src/utils/pactl.c:1149
+#, fuzzy
+msgid "You have to specify a sink name/index and a volume"
+msgstr "ನೀವು ಒಂದು ಸಿಂಕಿನ ಹೆಸರು/ಸೂಚಿಯನ್ನು ಹಾಗು ಸಂಪರ್ಕಸ್ಥಾನದ ಹೆಸರನ್ನು ಸೂಚಿಸಬೇಕು\n"
+
+#: ../src/utils/pactl.c:1154 ../src/utils/pactl.c:1171
+#: ../src/utils/pactl.c:1193 ../src/utils/pactl.c:1209
+#: ../src/utils/pactl.c:1226 ../src/utils/pactl.c:1248
+#, fuzzy
+msgid "Invalid volume specification"
+msgstr "ಅಮಾನ್ಯವಾದ ನಮೂನೆ ವಿವರ"
+
+#: ../src/utils/pactl.c:1166
+#, fuzzy
+msgid "You have to specify a source name/index and a volume"
+msgstr "ನೀವು ಒಂದು ಆಕರದ ಹೆಸರು/ಸೂಚಿಯನ್ನು ಹಾಗು ಸಂಪರ್ಕಸ್ಥಾನದ ಹೆಸರನ್ನು ಸೂಚಿಸಬೇಕು\n"
+
+#: ../src/utils/pactl.c:1183
+#, fuzzy
+msgid "You have to specify a sink input index and a volume"
+msgstr "ನೀವು ಒಂದು ಸಿಂಕ್ ಇನ್‌ಪುಟ್ ಸೂಚಿಯನ್ನು ಹಾಗು ಒಂದು ಸಿಂಕ್‌ ಅನ್ನು ಸೂಚಿಸಬೇಕು.\n"
+
+#: ../src/utils/pactl.c:1188
+msgid "Invalid sink input index"
+msgstr ""
+
+#: ../src/utils/pactl.c:1204
+#, fuzzy
+msgid "You have to specify a sink name/index and a mute boolean"
+msgstr "ನೀವು ಒಂದು ಸಿಂಕಿನ ಹೆಸರು/ಸೂಚಿಯನ್ನು ಹಾಗು ಸಂಪರ್ಕಸ್ಥಾನದ ಹೆಸರನ್ನು ಸೂಚಿಸಬೇಕು\n"
+
+#: ../src/utils/pactl.c:1221
+#, fuzzy
+msgid "You have to specify a source name/index and a mute boolean"
+msgstr "ನೀವು ಒಂದು ಆಕರದ ಹೆಸರು/ಸೂಚಿಯನ್ನು ಹಾಗು ಸಂಪರ್ಕಸ್ಥಾನದ ಹೆಸರನ್ನು ಸೂಚಿಸಬೇಕು\n"
+
+#: ../src/utils/pactl.c:1238
+#, fuzzy
+msgid "You have to specify a sink input index and a mute boolean"
+msgstr "ನೀವು ಒಂದು ಸಿಂಕ್ ಇನ್‌ಪುಟ್ ಸೂಚಿಯನ್ನು ಹಾಗು ಒಂದು ಸಿಂಕ್‌ ಅನ್ನು ಸೂಚಿಸಬೇಕು.\n"
+
+#: ../src/utils/pactl.c:1243
+#, fuzzy
+msgid "Invalid sink input index specification"
+msgstr "ಅಮಾನ್ಯವಾದ ನಮೂನೆ ವಿವರ"
+
+#: ../src/utils/pactl.c:1262
+#, fuzzy
+msgid "No valid command specified."
 msgstr "ಯಾವುದೆ ಆಜ್ಞೆಯನ್ನು ಸೂಚಿಸಲಾಗಿಲ್ಲ.\n"
 
 #: ../src/utils/pax11publish.c:61
@@ -2194,7 +2287,8 @@ msgstr "ಇನ್ನೂ ಸಹ ಅನ್ವಯಿಸಲಾಗಿಲ್ಲ.\n"
 
 #: ../src/utils/pacmd.c:69
 msgid "No PulseAudio daemon running, or not running as session daemon."
-msgstr "ಯಾವುದೆ PulseAudio ಡೆಮನ್ ಚಾಲಿತಗೊಳ್ಳುತ್ತಿಲ್ಲ, ಅಥವ ಅಧಿವೇಶನ ಡೆಮನ್ ಆಗಿ ಚಾಲಿತಗೊಳ್ಳುತ್ತಿಲ್ಲ."
+msgstr ""
+"ಯಾವುದೆ PulseAudio ಡೆಮನ್ ಚಾಲಿತಗೊಳ್ಳುತ್ತಿಲ್ಲ, ಅಥವ ಅಧಿವೇಶನ ಡೆಮನ್ ಆಗಿ ಚಾಲಿತಗೊಳ್ಳುತ್ತಿಲ್ಲ."
 
 #: ../src/utils/pacmd.c:74
 #, c-format
@@ -2233,7 +2327,7 @@ msgstr "ಬರೆ(): %s"
 msgid "Cannot access autospawn lock."
 msgstr "ಸ್ವಯಂಹೆಚ್ಚಿಸುವಿಕೆಯ ಲಾಕ್ ಅನ್ನು ನಿಲುಕಿಸಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಿಲ್ಲ."
 
-#: ../src/modules/alsa/alsa-sink.c:526 ../src/modules/alsa/alsa-sink.c:684
+#: ../src/modules/alsa/alsa-sink.c:530 ../src/modules/alsa/alsa-sink.c:689
 #, c-format
 msgid ""
 "ALSA woke us up to write new data to the device, but there was actually "
@@ -2264,15 +2358,20 @@ msgstr ""
 "snd_pcm_avail() 0 ಅಥವ min_avail ಕ್ಕಿಂತ ಚಿಕ್ಕದಾದ ಇನ್ನೊಂದು ಮೌಲ್ಯವನ್ನು ಮರಳಿಸಿದೆ."
 
 #: ../src/modules/alsa/module-alsa-card.c:152
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2070
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2228
 msgid "Off"
 msgstr "ಜಡ"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2040
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2184
 msgid "High Fidelity Playback (A2DP)"
 msgstr "ಹೈ ಫಿಡಿಲಿಟಿ ಪ್ಲೇಬ್ಯಾಕ್ (A2DP)"
 
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2055
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2198
+#, fuzzy
+msgid "High Fidelity Capture (A2DP)"
+msgstr "ಹೈ ಫಿಡಿಲಿಟಿ ಪ್ಲೇಬ್ಯಾಕ್ (A2DP)"
+
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2213
 msgid "Telephony Duplex (HSP/HFP)"
 msgstr "ಟೆಲಿಫೋನಿ ಡ್ಯೂಪ್ಲೆಕ್ಸ್‌ (HSP/HFP)"
 
@@ -2280,3 +2379,8 @@ msgstr "ಟೆಲಿಫೋನಿ ಡ್ಯೂಪ್ಲೆಕ್ಸ್‌ (HSP/HF
 msgid "PulseAudio Sound Server"
 msgstr "PulseAudio ಧ್ವನಿ ಪರಿಚಾರಕ"
 
+#~ msgid "Invalid client name '%s'\n"
+#~ msgstr "ಅಮಾನ್ಯವಾದ ಕ್ಲೈಂಟ್ ಹೆಸರು '%s'\n"
+
+#~ msgid "Failed to determine sample specification from file.\n"
+#~ msgstr "ಕಡತದಿಂದ ನಮೂನೆಯ ವಿವರವನ್ನು ನಿರ್ಧರಿಸುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ.\n"
diff --git a/po/ml.po b/po/ml.po
index a4a62e7..d26fd0d 100644
--- a/po/ml.po
+++ b/po/ml.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pulseaudio.master-tx.pulseaudio.ml\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-03 08:42+0000\n"
+"POT-Creation-Date: 2009-09-10 01:47+0200\n"
 "PO-Revision-Date: 2009-09-04 14:57+0530\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -16,12 +16,12 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
 
-#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2629
+#: ../src/modules/alsa/alsa-util.c:858 ../src/pulsecore/sink.c:2629
 #, c-format
 msgid "%s %s"
 msgstr "%s %s"
 
-#: ../src/modules/alsa/alsa-util.c:1023
+#: ../src/modules/alsa/alsa-util.c:1106
 #, c-format
 msgid ""
 "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -29,12 +29,10 @@ msgid ""
 "Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
 "to the ALSA developers."
 msgstr ""
-"snd_pcm_avail() നല്‍കിയ മൂല്ല്യം വളരെ വലുതാണു്: %lu ബൈറ്റുകള്‍ (%lu "
-"ms).\n"
-"ഇതു് ALSA ഡ്രൈവര്‍ '%s'-ലുള്ള ഒരു ബഗാവാം. ദയവായി ഈ പ്രശ്നം ALSA "
-"ഡവലപ്പര്‍സിനെ അറിയിക്കുക."
+"snd_pcm_avail() നല്‍കിയ മൂല്ല്യം വളരെ വലുതാണു്: %lu ബൈറ്റുകള്‍ (%lu ms).\n"
+"ഇതു് ALSA ഡ്രൈവര്‍ '%s'-ലുള്ള ഒരു ബഗാവാം. ദയവായി ഈ പ്രശ്നം ALSA ഡവലപ്പര്‍സിനെ അറിയിക്കുക."
 
-#: ../src/modules/alsa/alsa-util.c:1064
+#: ../src/modules/alsa/alsa-util.c:1147
 #, c-format
 msgid ""
 "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -42,12 +40,10 @@ msgid ""
 "Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
 "to the ALSA developers."
 msgstr ""
-"snd_pcm_delay() നല്‍കിയ മൂല്ല്യം വളരെ വലുതാണു്: %li ബൈറ്റുകള്‍ (%s%"
-"lu ms).\n"
-"ഇതു് ALSA ഡ്രൈവര്‍ '%s'-ലുള്ള ഒരു ബഗാവാം. ദയവായി ഈ പ്രശ്നം ALSA "
-"ഡവലപ്പര്‍സിനെ അറിയിക്കുക."
+"snd_pcm_delay() നല്‍കിയ മൂല്ല്യം വളരെ വലുതാണു്: %li ബൈറ്റുകള്‍ (%s%lu ms).\n"
+"ഇതു് ALSA ഡ്രൈവര്‍ '%s'-ലുള്ള ഒരു ബഗാവാം. ദയവായി ഈ പ്രശ്നം ALSA ഡവലപ്പര്‍സിനെ അറിയിക്കുക."
 
-#: ../src/modules/alsa/alsa-util.c:1111
+#: ../src/modules/alsa/alsa-util.c:1194
 #, c-format
 msgid ""
 "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -55,10 +51,16 @@ msgid ""
 "Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
 "to the ALSA developers."
 msgstr ""
-"snd_pcm_mmap_begin() നല്‍കിയ മൂല്ല്യം വളരെ വലുതാണു്: %lu ബൈറ്റുകള്‍"
-"(%lu ms).\n"
-"ഇതു് ALSA ഡ്രൈവര്‍ '%s'-ലുള്ള ഒരു ബഗാവാം. ദയവായി ഈ പ്രശ്നം ALSA "
-"ഡവലപ്പര്‍സിനെ അറിയിക്കുക."
+"snd_pcm_mmap_begin() നല്‍കിയ മൂല്ല്യം വളരെ വലുതാണു്: %lu ബൈറ്റുകള്‍(%lu ms).\n"
+"ഇതു് ALSA ഡ്രൈവര്‍ '%s'-ലുള്ള ഒരു ബഗാവാം. ദയവായി ഈ പ്രശ്നം ALSA ഡവലപ്പര്‍സിനെ അറിയിക്കുക."
+
+#: ../src/modules/module-always-sink.c:39
+msgid "Always keeps at least one sink loaded even if it's a null one"
+msgstr ""
+
+#: ../src/modules/module-always-sink.c:83
+msgid "Dummy Output"
+msgstr ""
 
 #: ../src/modules/module-ladspa-sink.c:49
 msgid "Virtual LADSPA sink"
@@ -78,6 +80,14 @@ msgstr ""
 "plugin name> label=<ladspa plugin label> control=<comma seperated list of "
 "input control values>"
 
+#: ../src/modules/module-null-sink.c:55
+msgid "Clocked NULL sink"
+msgstr ""
+
+#: ../src/modules/module-null-sink.c:291
+msgid "Null Output"
+msgstr ""
+
 #: ../src/pulsecore/sink.c:2613
 msgid "Internal Audio"
 msgstr "ഇന്റേര്‍ണല്‍ ഓഡിയോ"
@@ -188,8 +198,8 @@ msgid ""
 "This program is not intended to be run as root (unless --system is "
 "specified)."
 msgstr ""
-"ഈ പ്രോഗ്രാം റൂട്ടായി പ്രവര്‍ത്തിപ്പിക്കേണ്ടതല്ല (--system എന്നു് പറഞ്ഞിട്ടുണ്ടെങ്കില്‍ "
-"മാത്രം റൂട്ട് ആവശ്യമുണ്ടു്)."
+"ഈ പ്രോഗ്രാം റൂട്ടായി പ്രവര്‍ത്തിപ്പിക്കേണ്ടതല്ല (--system എന്നു് പറഞ്ഞിട്ടുണ്ടെങ്കില്‍ മാത്രം റൂട്ട് "
+"ആവശ്യമുണ്ടു്)."
 
 #: ../src/daemon/main.c:568
 msgid "Root privileges required."
@@ -205,7 +215,8 @@ msgstr "സിസ്റ്റം മോഡില്‍ പ്രവര്‍ത
 
 #: ../src/daemon/main.c:581
 msgid "Running in system mode, but --disallow-module-loading not set!"
-msgstr "സിസ്റ്റം മോഡില്‍ പ്രവര്‍ത്തിക്കുന്നു, പക്ഷേ --disallow-module-loading സജ്ജമാക്കിയിട്ടില്ല!"
+msgstr ""
+"സിസ്റ്റം മോഡില്‍ പ്രവര്‍ത്തിക്കുന്നു, പക്ഷേ --disallow-module-loading സജ്ജമാക്കിയിട്ടില്ല!"
 
 #: ../src/daemon/main.c:584
 msgid "Running in system mode, forcibly disabling SHM mode!"
@@ -213,7 +224,8 @@ msgstr "സിസ്റ്റം മോഡില്‍ പ്രവര്‍ത
 
 #: ../src/daemon/main.c:589
 msgid "Running in system mode, forcibly disabling exit idle time!"
-msgstr "സിസ്റ്റം മോഡില്‍ പ്രവര്‍ത്തിക്കുന്നു, നിര്‍ബന്ധമായും എക്സിറ്റ് ഐഡില്‍ സമയം പ്രവര്‍ത്ത രഹിതമാക്കുന്നു!"
+msgstr ""
+"സിസ്റ്റം മോഡില്‍ പ്രവര്‍ത്തിക്കുന്നു, നിര്‍ബന്ധമായും എക്സിറ്റ് ഐഡില്‍ സമയം പ്രവര്‍ത്ത രഹിതമാക്കുന്നു!"
 
 #: ../src/daemon/main.c:616
 msgid "Failed to acquire stdio."
@@ -229,7 +241,7 @@ msgstr "pipe പരാജയപ്പെട്ടു: %s"
 msgid "fork() failed: %s"
 msgstr "fork() പരാജയപ്പെട്ടു: %s"
 
-#: ../src/daemon/main.c:641 ../src/utils/pacat.c:505
+#: ../src/daemon/main.c:641 ../src/utils/pacat.c:504
 #, c-format
 msgid "read() failed: %s"
 msgstr "read() പരാജയപ്പെട്ടു: %s"
@@ -348,11 +360,10 @@ msgid ""
 "Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an "
 "explanation why system mode is usually a bad idea."
 msgstr ""
-"ശരി, അപ്പോള്‍ നിങ്ങള്‍ പിഎ സിസ്റ്റം മോഡിലാണു് പ്രവര്‍ത്തിപ്പിക്കുന്നതു്. "
-"ദയവായി ഇതുപേക്ഷിക്കുക.\n"
-"ഇങ്ങനെ ചെയ്തുണ്ടാകുന്ന സകല തകരാറുകളുടേയും ഉത്തരവാദി നിങ്ങള്‍ "
-"സ്വയമാകുന്നു.\n"
-"സിസ്റ്റം മോഡിലുള്ള പ്രവര്‍ത്തനം ഉത്തമമല്ലാത്തതിന്റെ കാരണങ്ങള്‍ക്കായിhttp://pulseaudio.org/wiki/WhatIsWrongWithSystemMode കാണുക."
+"ശരി, അപ്പോള്‍ നിങ്ങള്‍ പിഎ സിസ്റ്റം മോഡിലാണു് പ്രവര്‍ത്തിപ്പിക്കുന്നതു്. ദയവായി ഇതുപേക്ഷിക്കുക.\n"
+"ഇങ്ങനെ ചെയ്തുണ്ടാകുന്ന സകല തകരാറുകളുടേയും ഉത്തരവാദി നിങ്ങള്‍ സ്വയമാകുന്നു.\n"
+"സിസ്റ്റം മോഡിലുള്ള പ്രവര്‍ത്തനം ഉത്തമമല്ലാത്തതിന്റെ കാരണങ്ങള്‍ക്കായിhttp://pulseaudio.org/"
+"wiki/WhatIsWrongWithSystemMode കാണുക."
 
 #: ../src/daemon/main.c:804
 msgid "pa_pid_file_create() failed."
@@ -550,8 +561,8 @@ msgid ""
 "--log-level expects log level argument (either numeric in range 0..4 or one "
 "of debug, info, notice, warn, error)."
 msgstr ""
-"--log-level-നു് ലോഗ് ലവല്‍ ആര്‍ഗ്യുമെന്റ് ആവശ്യമുണ്ടു് (ഒന്നുകില്‍ 0..4 വരെയുള്ള ന്യൂമറിക് "
-"പരിധി അല്ലെങ്കില്‍ debug, info, notice, warn, error എന്നിവയില്‍ ഒന്നു്)."
+"--log-level-നു് ലോഗ് ലവല്‍ ആര്‍ഗ്യുമെന്റ് ആവശ്യമുണ്ടു് (ഒന്നുകില്‍ 0..4 വരെയുള്ള ന്യൂമറിക് പരിധി "
+"അല്ലെങ്കില്‍ debug, info, notice, warn, error എന്നിവയില്‍ ഒന്നു്)."
 
 #: ../src/daemon/cmdline.c:276
 msgid "--high-priority expects boolean argument"
@@ -717,8 +728,8 @@ msgid ""
 "The specified default channel map has a different number of channels than "
 "the specified default number of channels."
 msgstr ""
-"വ്യക്തമാക്കിയിട്ടുള്ള സ്വതവേയുള്ള ചാനല്‍ മാപ്പിനുള്ള ചാനലുകളുടെ എണ്ണം നല്‍കിയിരിക്കുന്ന "
-"സ്വതവേയുള്ള ചാനലുകളുടെ എണ്ണത്തേക്കാള്‍ വ്യത്യസ്ഥമാണു്."
+"വ്യക്തമാക്കിയിട്ടുള്ള സ്വതവേയുള്ള ചാനല്‍ മാപ്പിനുള്ള ചാനലുകളുടെ എണ്ണം നല്‍കിയിരിക്കുന്ന സ്വതവേയുള്ള "
+"ചാനലുകളുടെ എണ്ണത്തേക്കാള്‍ വ്യത്യസ്ഥമാണു്."
 
 #: ../src/daemon/daemon-conf.c:638
 #, c-format
@@ -942,8 +953,8 @@ msgid "Top Rear Right"
 msgstr "മുകളില്‍ അവസാനം വലത്തു്"
 
 #: ../src/pulse/channelmap.c:484 ../src/pulse/sample.c:170
-#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:311
-#: ../src/pulse/volume.c:331 ../src/pulse/volume.c:361
+#: ../src/pulse/volume.c:295 ../src/pulse/volume.c:321
+#: ../src/pulse/volume.c:341 ../src/pulse/volume.c:371
 msgid "(invalid)"
 msgstr "(അസാധു)"
 
@@ -1234,52 +1245,52 @@ msgstr "അല്ല"
 msgid "Stream buffer attributes changed.%s"
 msgstr "സ്ട്രീം ബഫര്‍ വിശേഷതകള്‍ മാറ്റിയിരിക്കുന്നു.%s"
 
-#: ../src/utils/pacat.c:416
+#: ../src/utils/pacat.c:415
 #, c-format
 msgid "Connection established.%s"
 msgstr "കണക്ഷന്‍ സ്ഥാപിച്ചിരിക്കുന്നു.%s"
 
-#: ../src/utils/pacat.c:419
+#: ../src/utils/pacat.c:418
 #, c-format
 msgid "pa_stream_new() failed: %s"
 msgstr "pa_stream_new() പരാജയപ്പെട്ടു: %s"
 
-#: ../src/utils/pacat.c:447
+#: ../src/utils/pacat.c:446
 #, c-format
 msgid "pa_stream_connect_playback() failed: %s"
 msgstr "pa_stream_connect_playback() പരാജയപ്പെട്ടു: %s"
 
-#: ../src/utils/pacat.c:453
+#: ../src/utils/pacat.c:452
 #, c-format
 msgid "pa_stream_connect_record() failed: %s"
 msgstr "pa_stream_connect_record() പരാജയപ്പെട്ടു: %s"
 
-#: ../src/utils/pacat.c:467 ../src/utils/pactl.c:857
+#: ../src/utils/pacat.c:466 ../src/utils/pactl.c:857
 #, c-format
 msgid "Connection failure: %s"
 msgstr "കണക്ഷനില്‍ തകരാര്‍: %s"
 
-#: ../src/utils/pacat.c:500
+#: ../src/utils/pacat.c:499
 msgid "Got EOF."
 msgstr "EOF ലഭ്യമായിരിക്കുന്നു"
 
-#: ../src/utils/pacat.c:537
+#: ../src/utils/pacat.c:536
 #, c-format
 msgid "write() failed: %s"
 msgstr "write() പരാജയപ്പെട്ടു: %s"
 
-#: ../src/utils/pacat.c:558
+#: ../src/utils/pacat.c:557
 msgid "Got signal, exiting."
 msgstr "സിഗ്നല്‍ ലഭ്യമായി, പുറത്തു് കടക്കുന്നു."
 
-#: ../src/utils/pacat.c:572
+#: ../src/utils/pacat.c:571
 #, c-format
 msgid "Failed to get latency: %s"
 msgstr "ലാറ്റന്‍സി ലഭ്യമാക്കുന്നതില്‍ പരാജയപ്പെട്ടു: %s"
 
-#: ../src/utils/pacat.c:577
-#, c-format
-msgid "Time: %0.3f sec; Latency: %0.0f usec.  \r"
+#: ../src/utils/pacat.c:576
+#, fuzzy, c-format
+msgid "Time: %0.3f sec; Latency: %0.0f usec."
 msgstr "സമയം: %0.3f sec; ലാറ്റന്‍സി: %0.0f usec.  \r"
 
 #: ../src/utils/pacat.c:595
@@ -1418,121 +1429,121 @@ msgstr ""
 msgid "Invalid client name '%s'"
 msgstr "തെറ്റായ ക്ലൈന്റ് നാമം '%s'"
 
-#: ../src/utils/pacat.c:776
+#: ../src/utils/pacat.c:775
 #, c-format
 msgid "Invalid stream name '%s'"
 msgstr "തെറ്റായ സ്ട്രീം നാമം '%s'"
 
-#: ../src/utils/pacat.c:813
+#: ../src/utils/pacat.c:812
 #, c-format
 msgid "Invalid channel map '%s'"
 msgstr "തെറ്റായ ചാനല്‍ മാപ്പ് '%s'"
 
-#: ../src/utils/pacat.c:842
+#: ../src/utils/pacat.c:841
 #, c-format
 msgid "Invalid latency specification '%s'"
 msgstr "തെറ്റായ ലാറ്റന്‍സി വിവരണം '%s'"
 
-#: ../src/utils/pacat.c:849
+#: ../src/utils/pacat.c:848
 #, c-format
 msgid "Invalid process time specification '%s'"
 msgstr "തെറ്റായ പ്രക്രിയ സമയ വിവരണം '%s'"
 
-#: ../src/utils/pacat.c:861
+#: ../src/utils/pacat.c:860
 #, c-format
 msgid "Invalid property '%s'"
 msgstr "തെറ്റായ വിശേഷത '%s'"
 
-#: ../src/utils/pacat.c:878
+#: ../src/utils/pacat.c:877
 #, c-format
 msgid "Unknown file format %s."
 msgstr "അപരിചിതമായ ഫയല്‍ രീതി %s."
 
-#: ../src/utils/pacat.c:897
+#: ../src/utils/pacat.c:896
 msgid "Invalid sample specification"
 msgstr "തെറ്റായ മാതൃക വിവരണം"
 
-#: ../src/utils/pacat.c:907
+#: ../src/utils/pacat.c:906
 #, c-format
 msgid "open(): %s"
 msgstr "open(): %s"
 
-#: ../src/utils/pacat.c:912
+#: ../src/utils/pacat.c:911
 #, c-format
 msgid "dup2(): %s"
 msgstr "dup2(): %s"
 
-#: ../src/utils/pacat.c:919
+#: ../src/utils/pacat.c:918
 msgid "Too many arguments."
 msgstr "അനവധി ആര്‍ഗ്യുമെന്റുകള്‍."
 
-#: ../src/utils/pacat.c:930
+#: ../src/utils/pacat.c:929
 msgid "Failed to generate sample specification for file."
 msgstr "ഫയലിനുള്ള സാംപിള്‍ വിവരണം ലഭ്യമാക്കുന്നതില്‍ പരാജയപ്പെട്ടു."
 
-#: ../src/utils/pacat.c:950
+#: ../src/utils/pacat.c:949
 msgid "Failed to open audio file."
 msgstr "ഓ‍ഡിയോ ഫയല്‍ തുറക്കുന്നതില്‍ പരാജയപ്പെട്ടു."
 
-#: ../src/utils/pacat.c:956
+#: ../src/utils/pacat.c:955
 msgid ""
 "Warning: specified sample specification will be overwritten with "
 "specification from file."
 msgstr ""
-"മുന്നറിയിപ്പു്: ഫയലില്‍ നിന്നുള്ള വിവരണം വ്യക്തമാക്കിയിരിക്കുന്ന സാംപിള്‍ വിവരണം "
-"മാറ്റിയെഴുതുന്നു."
+"മുന്നറിയിപ്പു്: ഫയലില്‍ നിന്നുള്ള വിവരണം വ്യക്തമാക്കിയിരിക്കുന്ന സാംപിള്‍ വിവരണം മാറ്റിയെഴുതുന്നു."
 
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:997
+#: ../src/utils/pacat.c:958 ../src/utils/pactl.c:997
 msgid "Failed to determine sample specification from file."
 msgstr "ഫയലില്‍ നിന്നും സാംപിള്‍ വിവരണം ലഭ്യമാക്കുന്നതില്‍ പരാജയപ്പെട്ടു."
 
-#: ../src/utils/pacat.c:968
+#: ../src/utils/pacat.c:967
 msgid "Warning: Failed to determine channel map from file."
 msgstr "മുന്നറിയിപ്പു്: ഫയലില്‍ നിന്നും ചാനല്‍ മാപ്പ് ലഭ്യമാക്കുന്നതില്‍ പരാജയപ്പെട്ടു."
 
-#: ../src/utils/pacat.c:979
+#: ../src/utils/pacat.c:978
 msgid "Channel map doesn't match sample specification"
 msgstr "ചാനല്‍ മാപ്പ് സാംപിള്‍ വിവരണവുമായി ചേരുന്നില്ല"
 
-#: ../src/utils/pacat.c:990
+#: ../src/utils/pacat.c:989
 msgid "Warning: failed to write channel map to file."
 msgstr "മുന്നറിയിപ്പു്: ഫയലിലേക്ക് ചാനല്‍ മാപ്പ് സൂക്ഷിക്കുന്നതില്‍ പരാജയപ്പെട്ടു."
 
-#: ../src/utils/pacat.c:1005
+#: ../src/utils/pacat.c:1004
 #, c-format
-msgid "Opening a %s stream with sample specification '%s' and channel map '%s'."
+msgid ""
+"Opening a %s stream with sample specification '%s' and channel map '%s'."
 msgstr "%s സ്ട്രീം തുറക്കുന്നു. ഇതിന്റെ സാംപിള്‍ വിവരണം '%s'-ഉം ചാനല്‍ മാപ്പ് '%s'-ഉം ആണു്."
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid "recording"
 msgstr "റിക്കോര്‍ഡ് ചെയ്യുന്നു"
 
-#: ../src/utils/pacat.c:1006
+#: ../src/utils/pacat.c:1005
 msgid