Browse Source

Imported Upstream version 5.99.1

tags/upstream/5.99.1^0
Luke Yelavich 7 years ago
parent
commit
9d219dac20
100 changed files with 12249 additions and 4531 deletions
  1. +1
    -1
      .tarball-version
  2. +1
    -1
      .version
  3. +19
    -3
      Makefile.am
  4. +69
    -17
      Makefile.in
  5. +61
    -0
      NEWS
  6. +21
    -1
      PROTOCOL
  7. +0
    -3
      README
  8. +0
    -4
      bootstrap.sh
  9. +2
    -2
      build-aux/ltmain.sh
  10. +17
    -8
      config.h.in
  11. +623
    -296
      configure
  12. +122
    -32
      configure.ac
  13. +15
    -3
      doxygen/Makefile.in
  14. +916
    -199
      doxygen/doxygen.conf.in
  15. +0
    -3
      man/Makefile.am
  16. +16
    -10
      man/Makefile.in
  17. +2
    -2
      man/default.pa.5
  18. +10
    -10
      man/pactl.1
  19. +14
    -13
      man/pactl.1.xml.in
  20. +1
    -1
      man/pax11publish.1
  21. +2
    -2
      man/pulse-cli-syntax.5
  22. +3
    -3
      man/pulse-client.conf.5
  23. +1
    -1
      man/pulse-client.conf.5.xml.in
  24. +9
    -9
      man/pulse-daemon.conf.5
  25. +7
    -7
      man/pulse-daemon.conf.5.xml.in
  26. +3
    -3
      man/pulseaudio.1
  27. +0
    -14
      man/start-pulseaudio-kde.1
  28. +0
    -48
      man/start-pulseaudio-kde.1.xml.in
  29. +1
    -0
      po/LINGUAS
  30. +3
    -1
      po/POTFILES.in
  31. +2227
    -1360
      po/el.po
  32. +453
    -401
      po/pt_BR.po
  33. +254
    -211
      po/ru.po
  34. +2740
    -0
      po/sk.po
  35. +350
    -231
      po/uk.po
  36. +50
    -0
      pulseaudio.supp
  37. +1
    -3
      shell-completion/bash/pulseaudio
  38. +288
    -114
      shell-completion/zsh/_pulseaudio
  39. +8
    -3
      src/.gitignore
  40. +104
    -36
      src/Makefile.am
  41. +845
    -467
      src/Makefile.in
  42. +0
    -1
      src/daemon/.gitignore
  43. +4
    -3
      src/daemon/caps.c
  44. +1
    -1
      src/daemon/cmdline.c
  45. +3
    -5
      src/daemon/daemon-conf.c
  46. +1
    -1
      src/daemon/daemon.conf.in
  47. +5
    -5
      src/daemon/default.pa.in
  48. +81
    -100
      src/daemon/main.c
  49. +0
    -10
      src/daemon/pulseaudio-kde.desktop.in
  50. +1
    -0
      src/daemon/pulseaudio.desktop.in
  51. +1
    -29
      src/daemon/server-lookup.c
  52. +0
    -30
      src/daemon/start-pulseaudio-kde.in
  53. +4
    -2
      src/daemon/start-pulseaudio-x11.in
  54. +10
    -0
      src/daemon/systemd/user/pulseaudio.service.in
  55. +10
    -0
      src/daemon/systemd/user/pulseaudio.socket
  56. +3
    -0
      src/map-file
  57. +193
    -55
      src/modules/alsa/alsa-mixer.c
  58. +7
    -3
      src/modules/alsa/alsa-mixer.h
  59. +20
    -17
      src/modules/alsa/alsa-sink.c
  60. +19
    -16
      src/modules/alsa/alsa-source.c
  61. +3
    -4
      src/modules/alsa/alsa-ucm.c
  62. +82
    -39
      src/modules/alsa/alsa-util.c
  63. +4
    -5
      src/modules/alsa/alsa-util.h
  64. +15
    -0
      src/modules/alsa/mixer/paths/analog-input.conf
  65. +0
    -102
      src/modules/alsa/mixer/paths/analog-output-desktop-speaker.conf
  66. +8
    -0
      src/modules/alsa/mixer/paths/analog-output-headphones-2.conf
  67. +20
    -0
      src/modules/alsa/mixer/paths/analog-output-headphones.conf
  68. +19
    -0
      src/modules/alsa/mixer/paths/analog-output-lineout.conf
  69. +10
    -0
      src/modules/alsa/mixer/paths/analog-output-mono.conf
  70. +14
    -2
      src/modules/alsa/mixer/paths/analog-output-speaker-always.conf
  71. +20
    -2
      src/modules/alsa/mixer/paths/analog-output-speaker.conf
  72. +0
    -30
      src/modules/alsa/mixer/paths/analog-output.conf
  73. +10
    -0
      src/modules/alsa/mixer/paths/hdmi-output-4.conf
  74. +10
    -0
      src/modules/alsa/mixer/paths/hdmi-output-5.conf
  75. +10
    -0
      src/modules/alsa/mixer/paths/hdmi-output-6.conf
  76. +10
    -0
      src/modules/alsa/mixer/paths/hdmi-output-7.conf
  77. +0
    -4
      src/modules/alsa/mixer/profile-sets/90-pulseaudio.rules
  78. +275
    -17
      src/modules/alsa/mixer/profile-sets/default.conf
  79. +0
    -164
      src/modules/alsa/mixer/profile-sets/extra-hdmi.conf
  80. +39
    -7
      src/modules/alsa/mixer/profile-sets/force-speaker-and-int-mic.conf
  81. +39
    -7
      src/modules/alsa/mixer/profile-sets/force-speaker.conf
  82. +44
    -33
      src/modules/alsa/module-alsa-card.c
  83. +501
    -0
      src/modules/bluetooth/backend-native.c
  84. +665
    -0
      src/modules/bluetooth/backend-ofono.c
  85. +133
    -68
      src/modules/bluetooth/bluez5-util.c
  86. +51
    -2
      src/modules/bluetooth/bluez5-util.h
  87. +4
    -1
      src/modules/bluetooth/module-bluetooth-discover.c
  88. +28
    -17
      src/modules/bluetooth/module-bluetooth-policy.c
  89. +23
    -16
      src/modules/bluetooth/module-bluez4-device.c
  90. +520
    -166
      src/modules/bluetooth/module-bluez5-device.c
  91. +38
    -1
      src/modules/bluetooth/module-bluez5-discover.c
  92. +2
    -4
      src/modules/dbus/iface-core.c
  93. +12
    -3
      src/modules/dbus/iface-device.c
  94. +2
    -2
      src/modules/dbus/iface-stream.c
  95. +8
    -23
      src/modules/echo-cancel/module-echo-cancel.c
  96. +2
    -0
      src/modules/gconf/gconf-helper.c
  97. +1
    -6
      src/modules/gconf/module-gconf.c
  98. +2
    -2
      src/modules/jack/module-jack-sink.c
  99. +2
    -2
      src/modules/jack/module-jack-source.c
  100. +1
    -1
      src/modules/macosx/module-coreaudio-device.c

+ 1
- 1
.tarball-version View File

@@ -1 +1 @@
5.0
5.99.1

+ 1
- 1
.version View File

@@ -1 +1 @@
5.0
5.99.1

+ 19
- 3
Makefile.am View File

@@ -21,6 +21,7 @@ EXTRA_DIST = \
bootstrap.sh \
git-version-gen \
LICENSE \
pulseaudio.supp \
GPL \
LGPL \
doxygen/Makefile.am \
@@ -29,7 +30,6 @@ EXTRA_DIST = \
PROTOCOL \
README \
todo \
shell-completion/pulseaudio-zsh-completion.zsh \
.gitignore \
doxygen/.gitignore \
m4/.gitignore \
@@ -47,7 +47,8 @@ noinst_DATA =
vapidir = $(datadir)/vala/vapi
dist_vapi_DATA = \
vala/libpulse.deps vala/libpulse.vapi \
vala/libpulse-mainloop-glib.deps vala/libpulse-mainloop-glib.vapi
vala/libpulse-mainloop-glib.deps vala/libpulse-mainloop-glib.vapi \
vala/libpulse-simple.deps vala/libpulse-simple.vapi

pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libpulse.pc libpulse-simple.pc
@@ -61,7 +62,22 @@ cmakedir = $(libdir)/cmake/PulseAudio
cmake_DATA = PulseAudioConfig.cmake PulseAudioConfigVersion.cmake

bashcompletiondir=$(sysconfdir)/bash_completion.d
dist_bashcompletion_DATA = shell-completion/pulseaudio-bash-completion.sh
dist_bashcompletion_DATA = shell-completion/bash/pulseaudio

install-bashcompletion-aliases:
$(LN_S) -f pulseaudio $(DESTDIR)$(bashcompletiondir)/pactl
$(LN_S) -f pulseaudio $(DESTDIR)$(bashcompletiondir)/pacmd
$(LN_S) -f pulseaudio $(DESTDIR)$(bashcompletiondir)/pasuspender
$(LN_S) -f pulseaudio $(DESTDIR)$(bashcompletiondir)/padsp
$(LN_S) -f pulseaudio $(DESTDIR)$(bashcompletiondir)/pacat
$(LN_S) -f pulseaudio $(DESTDIR)$(bashcompletiondir)/paplay
$(LN_S) -f pulseaudio $(DESTDIR)$(bashcompletiondir)/parec
$(LN_S) -f pulseaudio $(DESTDIR)$(bashcompletiondir)/parecord

install-data-hook: install-bashcompletion-aliases

zshcompletiondir=@zshcompletiondir@
dist_zshcompletion_DATA = shell-completion/zsh/_pulseaudio

homepage: all dist doxygen
test -d $$HOME/homepage/private


+ 69
- 17
Makefile.in View File

@@ -107,8 +107,9 @@ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(top_srcdir)/src/pulse/version.h.in \
$(srcdir)/PulseAudioConfig.cmake.in \
$(srcdir)/PulseAudioConfigVersion.cmake.in \
$(dist_bashcompletion_DATA) $(dist_vapi_DATA) ABOUT-NLS NEWS \
README build-aux/compile build-aux/config.guess \
$(dist_bashcompletion_DATA) $(dist_vapi_DATA) \
$(dist_zshcompletion_DATA) ABOUT-NLS NEWS README \
build-aux/compile build-aux/config.guess \
build-aux/config.rpath build-aux/config.sub \
build-aux/install-sh build-aux/missing build-aux/ltmain.sh \
$(top_srcdir)/build-aux/compile \
@@ -199,9 +200,9 @@ am__uninstall_files_from_dir = { \
}
am__installdirs = "$(DESTDIR)$(cmakedir)" \
"$(DESTDIR)$(bashcompletiondir)" "$(DESTDIR)$(vapidir)" \
"$(DESTDIR)$(pkgconfigdir)"
"$(DESTDIR)$(zshcompletiondir)" "$(DESTDIR)$(pkgconfigdir)"
DATA = $(cmake_DATA) $(dist_bashcompletion_DATA) $(dist_vapi_DATA) \
$(noinst_DATA) $(pkgconfig_DATA)
$(dist_zshcompletion_DATA) $(noinst_DATA) $(pkgconfig_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
am__recursive_targets = \
@@ -289,6 +290,8 @@ AUTOMAKE = @AUTOMAKE@
AVAHI_CFLAGS = @AVAHI_CFLAGS@
AVAHI_LIBS = @AVAHI_LIBS@
AWK = @AWK@
BLUEZ_CFLAGS = @BLUEZ_CFLAGS@
BLUEZ_LIBS = @BLUEZ_LIBS@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -336,13 +339,16 @@ HAVE_AVAHI = @HAVE_AVAHI@
HAVE_BLUEZ = @HAVE_BLUEZ@
HAVE_BLUEZ_4 = @HAVE_BLUEZ_4@
HAVE_BLUEZ_5 = @HAVE_BLUEZ_5@
HAVE_BLUEZ_5_NATIVE_HEADSET = @HAVE_BLUEZ_5_NATIVE_HEADSET@
HAVE_BLUEZ_5_OFONO_HEADSET = @HAVE_BLUEZ_5_OFONO_HEADSET@
HAVE_DBUS = @HAVE_DBUS@
HAVE_GLIB20 = @HAVE_GLIB20@
HAVE_MKFIFO = @HAVE_MKFIFO@
HAVE_NEON = @HAVE_NEON@
HAVE_OSS_OUTPUT = @HAVE_OSS_OUTPUT@
HAVE_SYSTEMD = @HAVE_SYSTEMD@
HAVE_SYSTEMD_DAEMON = @HAVE_SYSTEMD_DAEMON@
HAVE_SYSTEMD_JOURNAL = @HAVE_SYSTEMD_JOURNAL@
HAVE_SYSTEMD_LOGIN = @HAVE_SYSTEMD_LOGIN@
HAVE_SYS_RESOURCE_H = @HAVE_SYS_RESOURCE_H@
HAVE_UDEV = @HAVE_UDEV@
HAVE_WAVEOUT = @HAVE_WAVEOUT@
@@ -365,8 +371,6 @@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
JACK_CFLAGS = @JACK_CFLAGS@
JACK_LIBS = @JACK_LIBS@
JOURNAL_CFLAGS = @JOURNAL_CFLAGS@
JOURNAL_LIBS = @JOURNAL_LIBS@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBASYNCNS_CFLAGS = @LIBASYNCNS_CFLAGS@
@@ -433,6 +437,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
PA_ACCESS_GROUP = @PA_ACCESS_GROUP@
PA_API_VERSION = @PA_API_VERSION@
PA_BINARY = @PA_BINARY@
PA_DEFAULT_AUTOSPAWN = @PA_DEFAULT_AUTOSPAWN@
PA_DEFAULT_CONFIG_DIR = @PA_DEFAULT_CONFIG_DIR@
PA_DLSEARCHPATH = @PA_DLSEARCHPATH@
PA_INCDIR = @PA_INCDIR@
@@ -466,6 +471,12 @@ SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STOW = @STOW@
STRIP = @STRIP@
SYSTEMDDAEMON_CFLAGS = @SYSTEMDDAEMON_CFLAGS@
SYSTEMDDAEMON_LIBS = @SYSTEMDDAEMON_LIBS@
SYSTEMDJOURNAL_CFLAGS = @SYSTEMDJOURNAL_CFLAGS@
SYSTEMDJOURNAL_LIBS = @SYSTEMDJOURNAL_LIBS@
SYSTEMDLOGIN_CFLAGS = @SYSTEMDLOGIN_CFLAGS@
SYSTEMDLOGIN_LIBS = @SYSTEMDLOGIN_LIBS@
SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@
SYSTEMD_LIBS = @SYSTEMD_LIBS@
TDB_CFLAGS = @TDB_CFLAGS@
@@ -538,16 +549,19 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
systemduserunitdir = @systemduserunitdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
udevrulesdir = @udevrulesdir@
zshcompletiondir = @zshcompletiondir@
ACLOCAL_AMFLAGS = -I m4
EXTRA_DIST = \
bootstrap.sh \
git-version-gen \
LICENSE \
pulseaudio.supp \
GPL \
LGPL \
doxygen/Makefile.am \
@@ -556,7 +570,6 @@ EXTRA_DIST = \
PROTOCOL \
README \
todo \
shell-completion/pulseaudio-zsh-completion.zsh \
.gitignore \
doxygen/.gitignore \
m4/.gitignore \
@@ -572,14 +585,16 @@ noinst_DATA =
vapidir = $(datadir)/vala/vapi
dist_vapi_DATA = \
vala/libpulse.deps vala/libpulse.vapi \
vala/libpulse-mainloop-glib.deps vala/libpulse-mainloop-glib.vapi
vala/libpulse-mainloop-glib.deps vala/libpulse-mainloop-glib.vapi \
vala/libpulse-simple.deps vala/libpulse-simple.vapi

pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libpulse.pc libpulse-simple.pc $(am__append_1)
cmakedir = $(libdir)/cmake/PulseAudio
cmake_DATA = PulseAudioConfig.cmake PulseAudioConfigVersion.cmake
bashcompletiondir = $(sysconfdir)/bash_completion.d
dist_bashcompletion_DATA = shell-completion/pulseaudio-bash-completion.sh
dist_bashcompletion_DATA = shell-completion/bash/pulseaudio
dist_zshcompletion_DATA = shell-completion/zsh/_pulseaudio

# see git-version-gen
BUILT_SOURCES = $(top_srcdir)/.version
@@ -724,6 +739,27 @@ uninstall-dist_vapiDATA:
@list='$(dist_vapi_DATA)'; test -n "$(vapidir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(vapidir)'; $(am__uninstall_files_from_dir)
install-dist_zshcompletionDATA: $(dist_zshcompletion_DATA)
@$(NORMAL_INSTALL)
@list='$(dist_zshcompletion_DATA)'; test -n "$(zshcompletiondir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(zshcompletiondir)'"; \
$(MKDIR_P) "$(DESTDIR)$(zshcompletiondir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(zshcompletiondir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(zshcompletiondir)" || exit $$?; \
done

uninstall-dist_zshcompletionDATA:
@$(NORMAL_UNINSTALL)
@list='$(dist_zshcompletion_DATA)'; test -n "$(zshcompletiondir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(zshcompletiondir)'; $(am__uninstall_files_from_dir)
install-pkgconfigDATA: $(pkgconfig_DATA)
@$(NORMAL_INSTALL)
@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
@@ -1048,7 +1084,7 @@ check: $(BUILT_SOURCES)
all-am: Makefile $(DATA) config.h
installdirs: installdirs-recursive
installdirs-am:
for dir in "$(DESTDIR)$(cmakedir)" "$(DESTDIR)$(bashcompletiondir)" "$(DESTDIR)$(vapidir)" "$(DESTDIR)$(pkgconfigdir)"; do \
for dir in "$(DESTDIR)$(cmakedir)" "$(DESTDIR)$(bashcompletiondir)" "$(DESTDIR)$(vapidir)" "$(DESTDIR)$(zshcompletiondir)" "$(DESTDIR)$(pkgconfigdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: $(BUILT_SOURCES)
@@ -1108,8 +1144,10 @@ info: info-recursive
info-am:

install-data-am: install-cmakeDATA install-dist_bashcompletionDATA \
install-dist_vapiDATA install-pkgconfigDATA

install-dist_vapiDATA install-dist_zshcompletionDATA \
install-pkgconfigDATA
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
install-dvi: install-dvi-recursive

install-dvi-am:
@@ -1155,10 +1193,11 @@ ps: ps-recursive
ps-am:

uninstall-am: uninstall-cmakeDATA uninstall-dist_bashcompletionDATA \
uninstall-dist_vapiDATA uninstall-pkgconfigDATA
uninstall-dist_vapiDATA uninstall-dist_zshcompletionDATA \
uninstall-pkgconfigDATA

.MAKE: $(am__recursive_targets) all check install install-am \
install-strip
install-data-am install-strip

.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
am--refresh check check-am clean clean-cscope clean-generic \
@@ -1169,7 +1208,8 @@ uninstall-am: uninstall-cmakeDATA uninstall-dist_bashcompletionDATA \
distclean-tags distcleancheck distdir distuninstallcheck dvi \
dvi-am html html-am info info-am install install-am \
install-cmakeDATA install-data install-data-am \
install-dist_bashcompletionDATA install-dist_vapiDATA \
install-data-hook install-dist_bashcompletionDATA \
install-dist_vapiDATA install-dist_zshcompletionDATA \
install-dvi install-dvi-am install-exec install-exec-am \
install-html install-html-am install-info install-info-am \
install-man install-pdf install-pdf-am install-pkgconfigDATA \
@@ -1179,8 +1219,20 @@ uninstall-am: uninstall-cmakeDATA uninstall-dist_bashcompletionDATA \
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
uninstall-am uninstall-cmakeDATA \
uninstall-dist_bashcompletionDATA uninstall-dist_vapiDATA \
uninstall-pkgconfigDATA
uninstall-dist_zshcompletionDATA uninstall-pkgconfigDATA


install-bashcompletion-aliases:
$(LN_S) -f pulseaudio $(DESTDIR)$(bashcompletiondir)/pactl
$(LN_S) -f pulseaudio $(DESTDIR)$(bashcompletiondir)/pacmd
$(LN_S) -f pulseaudio $(DESTDIR)$(bashcompletiondir)/pasuspender
$(LN_S) -f pulseaudio $(DESTDIR)$(bashcompletiondir)/padsp
$(LN_S) -f pulseaudio $(DESTDIR)$(bashcompletiondir)/pacat
$(LN_S) -f pulseaudio $(DESTDIR)$(bashcompletiondir)/paplay
$(LN_S) -f pulseaudio $(DESTDIR)$(bashcompletiondir)/parec
$(LN_S) -f pulseaudio $(DESTDIR)$(bashcompletiondir)/parecord

install-data-hook: install-bashcompletion-aliases

homepage: all dist doxygen
test -d $$HOME/homepage/private


+ 61
- 0
NEWS View File

@@ -1,3 +1,64 @@
PulseAudio 6.0

Changes at a glance:

* Bluez 5 HSP (headset profile) support, both with and without oFono
* SystemD socket activation support
* Better support for multichannel and 2.1 profiles
* Protocol optimisations
* Zsh shell completion support
* Remap optimisations
* Lots of other enhancements, bug fixes, and documenation and i18n updates

Detailed change log:

http://www.freedesktop.org/wiki/Software/PulseAudio/Notes/6.0

Contributors:

Alexander Couzens
Alexander E. Patrakov
Alexander Kurtz
Alexander Potashev
Andrey Semashev
Arun Raghavan
Bradley Broom
Colin Guthrie
David Henningsson
Dimitris Spingos
Dušan Kazik
Evan Nemerson
Felipe Sateler
Hemanth Meenakshisundaram
Hui Wang
James Bunton
Javier Jardón
João Paulo Rechi Vita
Joe Marcus Clarke
Juho Hämäläinen
Luiz Augusto von Dentz
Lukas Peleska
Lukasz Marek
Mauro Guerrera
Michał Górny
Niels Ole Salscheider
Pali Rohár
Parin Porecha
Pete Beardmore
Peter Meerwald
Peter Ujfalusi
Pierre Ossman
poljar (Damir Jelić)
Rafael Ferreira
Rex Dieter
Ricardo Salveti de Araujo
Sajeesh Sidharthan
Sjoerd Simons
Tanu Kaskinen
Wim Taymans
Yuri Chornoivan


PulseAudio 5.0

Changes at a glance:


+ 21
- 1
PROTOCOL View File

@@ -30,7 +30,7 @@ SHM data transfer support

### v11, implemented by >= 0.9.7

Reply to to PA_COMMAND_GET_SINK_INPUT_INFO, PA_COMMAND_GET_SINK_INPUT_INFO_LIST gets new field at the end:
Reply to PA_COMMAND_GET_SINK_INPUT_INFO, PA_COMMAND_GET_SINK_INPUT_INFO_LIST gets new field at the end:

mute

@@ -351,6 +351,26 @@ New field in all commands that send/receive profile introspection data

The field is added once for every profile.

## v30, implemented by >= 6.0
#
A new protocol mechanism supported: Two ringbuffers in shared memory.
Pulseaudio fdsem (wrappers around event file descriptors) are used for
signalling new data.
The protocol has a new SHM flag telling whether a SHM memblock is writable
by both sides.

PA_COMMAND_ENABLE_SRBCHANNEL
First sent from server to client, tells the client to start listening on
the additional SHM ringbuffer channel.
This command also has ancillary data (two eventfds attached to it).
Must be directly followed by a memblock which is the ringbuffer memory.
When memblock is received by the client, it acks by sending
PA_COMMAND_ENABLE_SRBCHANNEL back (without ancillary or memblock data).

PA_COMMAND_DISABLE_SRBCHANNEL
Tells the client to stop listening on the additional SHM ringbuffer channel.
Acked by client by sending PA_COMMAND_DISABLE_SRBCHANNEL back.

#### If you just changed the protocol, read this
## module-tunnel depends on the sink/source/sink-input/source-input protocol
## internals, so if you changed these, you might have broken module-tunnel.


+ 0
- 3
README View File

@@ -21,9 +21,6 @@ TRAC/BUGZILLA TICKET CHANGES MAILING LIST:
IRC:
#pulseaudio on irc.freenode.org

CIA:
http://cia.navi.cx/stats/project/polypaudio

FRESHMEAT:
http://freshmeat.net/projects/pulseaudio/



+ 0
- 4
bootstrap.sh View File

@@ -47,10 +47,6 @@ fi
intltoolize --version >/dev/null || DIE=1
test "$DIE" = 1 && exit 1

if type -p colorgcc > /dev/null ; then
export CC=colorgcc
fi

autopoint --force
AUTOPOINT='intltoolize --automake --copy' autoreconf --force --install --verbose



+ 2
- 2
build-aux/ltmain.sh View File

@@ -70,7 +70,7 @@
# compiler: $LTCC
# compiler flags: $LTCFLAGS
# linker: $LD (gnu? $with_gnu_ld)
# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.7
# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.7ubuntu1
# automake: $automake_version
# autoconf: $autoconf_version
#
@@ -80,7 +80,7 @@

PROGRAM=libtool
PACKAGE=libtool
VERSION="2.4.2 Debian-2.4.2-1.7"
VERSION="2.4.2 Debian-2.4.2-1.7ubuntu1"
TIMESTAMP=""
package_revision=1.3337



+ 17
- 8
config.h.in View File

@@ -68,6 +68,12 @@
/* Define to 1 if you have the <atomic_ops.h> header file. */
#undef HAVE_ATOMIC_OPS_H

/* Bluez 5 native headset backend enabled */
#undef HAVE_BLUEZ_5_NATIVE_HEADSET

/* Bluez 5 ofono headset backend enabled */
#undef HAVE_BLUEZ_5_OFONO_HEADSET

/* Define to 1 if you have the <byteswap.h> header file. */
#undef HAVE_BYTESWAP_H

@@ -108,6 +114,9 @@
don't. */
#undef HAVE_DECL_ENVIRON

/* Have dladdr? */
#undef HAVE_DLADDR

/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H

@@ -186,9 +195,6 @@
/* Define this to enable IPv6 connection support */
#undef HAVE_IPV6

/* Have JOURNAL? */
#undef HAVE_JOURNAL

/* Define to 1 if you have the <langinfo.h> header file. */
#undef HAVE_LANGINFO_H

@@ -408,8 +414,14 @@
/* Define to 1 if you have the <syslog.h> header file. */
#undef HAVE_SYSLOG_H

/* Have SYSTEMD? */
#undef HAVE_SYSTEMD
/* Have SYSTEMDDAEMON? */
#undef HAVE_SYSTEMD_DAEMON

/* Have SYSTEMDJOURNAL? */
#undef HAVE_SYSTEMD_JOURNAL

/* Have SYSTEMDLOGIN? */
#undef HAVE_SYSTEMD_LOGIN

/* Define to 1 if you have the <sys/atomic.h> header file. */
#undef HAVE_SYS_ATOMIC_H
@@ -658,9 +670,6 @@
/* Version number of package */
#undef VERSION

/* Just a test. */
#undef WIBBLE

/* Needed to avoid including unnecessary headers on Windows */
#undef WIN32_LEAN_AND_MEAN



+ 623
- 296
configure
File diff suppressed because it is too large
View File


+ 122
- 32
configure.ac View File

@@ -41,11 +41,11 @@ AC_SUBST(PA_MINOR, pa_minor)
AC_SUBST(PA_MAJORMINOR, pa_major.pa_minor)

AC_SUBST(PA_API_VERSION, 12)
AC_SUBST(PA_PROTOCOL_VERSION, 29)
AC_SUBST(PA_PROTOCOL_VERSION, 30)

# The stable ABI for client applications, for the version info x:y:z
# always will hold y=z
AC_SUBST(LIBPULSE_VERSION_INFO, [17:3:17])
AC_SUBST(LIBPULSE_VERSION_INFO, [18:0:18])

# A simplified, synchronous, ABI-stable interface for client
# applications, for the version info x:y:z always will hold y=z
@@ -74,6 +74,10 @@ AM_SILENT_RULES([yes])

AC_PROG_MKDIR_P

# ln -s

AC_PROG_LN_S

# CC

AC_PROG_CC
@@ -174,17 +178,23 @@ esac
#### Compiler flags ####

AX_APPEND_COMPILE_FLAGS(
[-Wall -W -Wextra -pipe -Wno-long-long -Wno-overlength-strings -Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align -Wstrict-aliasing -Wwrite-strings -Wno-unused-parameter -ffast-math -fno-common -fdiagnostics-show-option],
[-Wall -W -Wextra -pipe -Wno-long-long -Wno-overlength-strings -Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align -Wstrict-aliasing -Wwrite-strings -Wno-unused-parameter -ffast-math -fno-common -fdiagnostics-show-option -fdiagnostics-color=auto],
[], [-pedantic -Werror])

# Only enable fastpath asserts when doing a debug build, e.g. from bootstrap.sh.
AS_CASE([" $CFLAGS "], [*" -O0 "*], [], [AX_APPEND_FLAG(["-DFASTPATH"], [CPPFLAGS])])
AS_CASE([" $CFLAGS "], [*" -O0 "*], [], [
# Don't append the flag if it already exists.
# Only enable fastpath asserts when doing a debug build, e.g. from bootstrap.sh.
AX_APPEND_FLAG([-DFASTPATH], [CPPFLAGS])

# Only set _FORTIFY_SOURCE when optimizations are enabled. If optimizations
# are disabled, _FORTIFY_SOURCE doesn't do anything, and causes tons of
# warnings during compiling on some distributions (at least Fedora).
AS_CASE([" $CFLAGS "], [*" -O0 "*], [], [AX_APPEND_FLAG(["-D_FORTIFY_SOURCE=2"], [CPPFLAGS])])
# Cannot use AX_APPEND_FLAG here, as it assumes no space inside the added flags.
# Cannot append flags with AX_APPEND_FLAG one by one, as this would destroy all fortifications
# if CPPFLAGS already contain -D_FORTIFY_SOURCE=2.

# Warnings to be aware of that appear with -D_FORTIFY_SOURCE=2 but without -U_FORTIFY_SOURCE:
# On Fedora 20 with -O0: #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Wcpp]
# On Gentoo with -O2: "_FORTIFY_SOURCE" redefined [enabled by default]
AS_VAR_APPEND([CPPFLAGS],[" -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2"])
])

#### Linker flags ####

@@ -574,6 +584,8 @@ AC_SYS_LARGEFILE
# Check for open64 to know if the current system does have open64() and similar functions
AC_CHECK_FUNCS_ONCE([open64])

AC_SEARCH_LIBS([dladdr], [dl], [HAVE_DLADDR=1], [HAVE_DLADDR=0])
AC_DEFINE(HAVE_DLADDR, [1], [Have dladdr?])

###################################
# External libraries #
@@ -636,8 +648,7 @@ AM_CONDITIONAL([HAVE_TESTS], [test "x$HAVE_LIBCHECK" = x1])

#### json parsing ####

PKG_CHECK_MODULES(LIBJSON, [ json-c >= 0.11 ], [],
[PKG_CHECK_MODULES(LIBJSON, [ json >= 0.9 ])])
PKG_CHECK_MODULES(LIBJSON, [ json-c >= 0.11 ])

#### Sound file ####

@@ -673,6 +684,8 @@ AS_IF([test "x$enable_samplerate" = "xyes" && test "x$HAVE_LIBSAMPLERATE" = "x0"
AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1])
AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?]))

AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], AC_MSG_WARN([Support for libsamplerate is DEPRECATED]))

#### Database support ####

AC_ARG_WITH([database],
@@ -1022,6 +1035,25 @@ AS_IF([test "x$HAVE_BLUEZ_4" = "x1" || test "x$HAVE_BLUEZ_5" = "x1"], HAVE_BLUEZ
AC_SUBST(HAVE_BLUEZ)
AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])

## Bluetooth Headset profiles backend ##

AC_ARG_ENABLE([bluez5-ofono-headset],
AS_HELP_STRING([--disable-bluez5-ofono-headset],[Disable optional ofono headset backend support (Bluez 5)]))
AS_IF([test "x$HAVE_BLUEZ_5" = "x1" && test "x$enable_bluez5_ofono_headset" != "xno"], HAVE_BLUEZ_5_OFONO_HEADSET=1)
AC_SUBST(HAVE_BLUEZ_5_OFONO_HEADSET)
AM_CONDITIONAL([HAVE_BLUEZ_5_OFONO_HEADSET], [test "x$HAVE_BLUEZ_5_OFONO_HEADSET" = x1])
AS_IF([test "x$HAVE_BLUEZ_5_OFONO_HEADSET" = "x1"], AC_DEFINE([HAVE_BLUEZ_5_OFONO_HEADSET], 1, [Bluez 5 ofono headset backend enabled]))

AC_ARG_ENABLE([bluez5-native-headset],
AS_HELP_STRING([--disable-bluez5-native-headset],[Disable optional native headset backend support (Bluez 5)]))
AS_IF([test "x$HAVE_BLUEZ_5" = "x1" && test "x$enable_bluez5_native_headset" != "xno"], HAVE_BLUEZ_5_NATIVE_HEADSET=1)
AS_IF([test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = "x1"], [PKG_CHECK_MODULES(BLUEZ, [ bluez >= 4.101 ], [],
[AC_MSG_ERROR([*** Bluez library not found (required by native headset backend)])])])

AC_SUBST(HAVE_BLUEZ_5_NATIVE_HEADSET)
AM_CONDITIONAL([HAVE_BLUEZ_5_NATIVE_HEADSET], [test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = x1])
AS_IF([test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = "x1"], AC_DEFINE([HAVE_BLUEZ_5_NATIVE_HEADSET], 1, [Bluez 5 native headset backend enabled]))

#### UDEV support (optional) ####

AC_ARG_ENABLE([udev],
@@ -1154,27 +1186,69 @@ ORC_CHECK([0.4.11])

#### systemd support (optional) ####

AC_ARG_ENABLE([systemd],
AS_HELP_STRING([--disable-systemd],[Disable optional systemd support]))
AC_ARG_ENABLE([systemd-daemon],
AS_HELP_STRING([--disable-systemd-daemon],[Disable optional systemd daemon (socket activation) support]))

AS_IF([test "x$enable_systemd" != "xno"],
[PKG_CHECK_MODULES(SYSTEMD, [ libsystemd-login ], HAVE_SYSTEMD=1, HAVE_SYSTEMD=0)],
AC_ARG_ENABLE([systemd-login],
AS_HELP_STRING([--disable-systemd-login],[Disable optional systemd login support]))

AC_ARG_ENABLE([systemd-journal],
AS_HELP_STRING([--disable-systemd-journal],[Disable optional systemd journal support]))

# Newer systemd's combine their subcomponent libraries into one
# If it exists, we should use it for the further checks

AS_IF([test "x$enable_systemd_daemon" != "xno" || test "x$enable_systemd_login" != "xno" || test "x$enable_systemd_journal" != "xno"],
[PKG_CHECK_MODULES(SYSTEMD, [ libsystemd ], HAVE_SYSTEMD=1, HAVE_SYSTEMD=0)],
HAVE_SYSTEMD=0)

AS_IF([test "x$enable_systemd" = "xyes" && test "x$HAVE_SYSTEMD" = "x0"],
[AC_MSG_ERROR([*** Needed systemd support not found])])
AS_IF([test "x$HAVE_SYSTEMD" = "x1"],
[
HAVE_SYSTEMD_DAEMON=1
HAVE_SYSTEMD_LOGIN=1
HAVE_SYSTEMD_JOURNAL=1
])

AC_SUBST(HAVE_SYSTEMD)
AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$HAVE_SYSTEMD" = x1])
AS_IF([test "x$HAVE_SYSTEMD" = "x1"], AC_DEFINE([HAVE_SYSTEMD], 1, [Have SYSTEMD?]))
AC_ARG_WITH([systemduserunitdir],
AS_HELP_STRING([--with-systemduserunitdir=DIR], [Directory for systemd user service files]),
[], [with_systemduserunitdir=$($PKG_CONFIG --variable=systemduserunitdir systemd)])
if test "x$with_systemduserunitdir" != xno; then
AC_SUBST([systemduserunitdir], [$with_systemduserunitdir])
fi

#### journal support (optional) ####
#### systemd daemon support (optional) ####

AC_ARG_ENABLE([systemd-journal],
AS_HELP_STRING([--disable-systemd-journal],[Disable optional systemd journal support]))
AS_IF([test "x$enable_systemd_daemon" != "xno"],
[AS_IF([test "x$HAVE_SYSTEMD_DAEMON" != "x1"], [PKG_CHECK_MODULES(SYSTEMDDAEMON, [ libsystemd-daemon ], HAVE_SYSTEMD_DAEMON=1, HAVE_SYSTEMD_DAEMON=0)])],
HAVE_SYSTEMD_DAEMON=0)

AS_IF([test "x$enable_systemd_daemon" = "xyes" && test "x$HAVE_SYSTEMD_DAEMON" = "x0"],
[AC_MSG_ERROR([*** Needed systemd daemon support not found])])

AS_IF([test "x$HAVE_SYSTEMD_DAEMON" = "x1"], [ PA_DEFAULT_AUTOSPAWN=no ], [ PA_DEFAULT_AUTOSPAWN=yes ])
AC_SUBST(PA_DEFAULT_AUTOSPAWN)

AC_SUBST(HAVE_SYSTEMD_DAEMON)
AM_CONDITIONAL([HAVE_SYSTEMD_DAEMON], [test "x$HAVE_SYSTEMD_DAEMON" = x1])
AS_IF([test "x$HAVE_SYSTEMD_DAEMON" = "x1"], AC_DEFINE([HAVE_SYSTEMD_DAEMON], 1, [Have SYSTEMDDAEMON?]))

#### systemd login support (optional) ####

AS_IF([test "x$enable_systemd_login" != "xno"],
[AS_IF([test "x$HAVE_SYSTEMD_LOGIN" != "x1"], [PKG_CHECK_MODULES(SYSTEMDLOGIN, [ libsystemd-login ], HAVE_SYSTEMD_LOGIN=1, HAVE_SYSTEMD_LOGIN=0)])],
HAVE_SYSTEMD_LOGIN=0)

AS_IF([test "x$enable_systemd_login" = "xyes" && test "x$HAVE_SYSTEMD_LOGIN" = "x0"],
[AC_MSG_ERROR([*** Needed systemd login support not found])])

AC_SUBST(HAVE_SYSTEMD_LOGIN)
AM_CONDITIONAL([HAVE_SYSTEMD_LOGIN], [test "x$HAVE_SYSTEMD_LOGIN" = x1])
AS_IF([test "x$HAVE_SYSTEMD_LOGIN" = "x1"], AC_DEFINE([HAVE_SYSTEMD_LOGIN], 1, [Have SYSTEMDLOGIN?]))

#### systemd journal support (optional) ####

AS_IF([test "x$enable_systemd_journal" != "xno"],
[PKG_CHECK_MODULES(JOURNAL, [ libsystemd-journal ], HAVE_SYSTEMD_JOURNAL=1, HAVE_SYSTEMD_JOURNAL=0)],
[AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" != "x1"], [PKG_CHECK_MODULES(SYSTEMDJOURNAL, [ libsystemd-journal ], HAVE_SYSTEMD_JOURNAL=1, HAVE_SYSTEMD_JOURNAL=0)])],
HAVE_SYSTEMD_JOURNAL=0)

AS_IF([test "x$enable_systemd_journal" = "xyes" && test "x$HAVE_SYSTEMD_JOURNAL" = "x0"],
@@ -1182,7 +1256,7 @@ AS_IF([test "x$enable_systemd_journal" = "xyes" && test "x$HAVE_SYSTEMD_JOURNAL"

AC_SUBST(HAVE_SYSTEMD_JOURNAL)
AM_CONDITIONAL([HAVE_SYSTEMD_JOURNAL], [test "x$HAVE_SYSTEMD_JOURNAL" = x1])
AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" = "x1"], AC_DEFINE([HAVE_JOURNAL], 1, [Have JOURNAL?]))
AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" = "x1"], AC_DEFINE([HAVE_SYSTEMD_JOURNAL], 1, [Have SYSTEMDJOURNAL?]))

#### Build and Install man pages ####

@@ -1312,7 +1386,6 @@ AC_ARG_ENABLE([legacy-database-entry-format],
if test "x$enable_legacy_database_entry_format" != "xno" ; then
AC_DEFINE(ENABLE_LEGACY_DATABASE_ENTRY_FORMAT, [1], [Legacy database entry format])
fi
AC_DEFINE([WIBBLE], 1, [Just a test.])

AC_ARG_ENABLE([static-bins],
AS_HELP_STRING([--enable-static-bins],[Statically link executables.]))
@@ -1347,6 +1420,13 @@ AC_ARG_WITH(

AC_SUBST(udevrulesdir)

AC_ARG_WITH(
[zsh-completion-dir],
AS_HELP_STRING([--with-zsh-completion-dir], [Zsh completions directory (defaults to ${datadir}/zsh/site-functions)]),
[zshcompletiondir=$withval], [zshcompletiondir="${datadir}/zsh/site-functions"])

AC_SUBST(zshcompletiondir)

AC_ARG_ENABLE([force-preopen],
AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]))

@@ -1382,13 +1462,11 @@ man/pulse-daemon.conf.5.xml
man/pulse-client.conf.5.xml
man/default.pa.5.xml
man/pulse-cli-syntax.5.xml
man/start-pulseaudio-kde.1.xml
man/start-pulseaudio-x11.1.xml
])

AC_CONFIG_FILES([src/esdcompat:src/daemon/esdcompat.in], [chmod +x src/esdcompat])
AC_CONFIG_FILES([src/start-pulseaudio-x11:src/daemon/start-pulseaudio-x11.in], [chmod +x src/start-pulseaudio-x11])
AC_CONFIG_FILES([src/start-pulseaudio-kde:src/daemon/start-pulseaudio-kde.in], [chmod +x src/start-pulseaudio-kde])
AC_CONFIG_FILES([src/client.conf:src/pulse/client.conf.in])
AC_CONFIG_FILES([src/daemon.conf:src/daemon/daemon.conf.in],
[m4 src/daemon.conf > src/daemon.conf.gen && mv src/daemon.conf.gen src/daemon.conf])
@@ -1396,6 +1474,10 @@ AC_CONFIG_FILES([src/default.pa:src/daemon/default.pa.in],
[m4 src/default.pa > src/default.pa.gen && mv src/default.pa.gen src/default.pa])
AC_CONFIG_FILES([src/system.pa:src/daemon/system.pa.in],
[m4 src/system.pa > src/system.pa.gen && mv src/system.pa.gen src/system.pa])
AS_IF([test "x$HAVE_SYSTEMD_DAEMON" = "x1"],
[
AC_CONFIG_FILES([src/pulseaudio.service:src/daemon/systemd/user/pulseaudio.service.in])
])

# CMake related ProjectConfig files
PA_LIBDIR="$libdir"
@@ -1428,13 +1510,16 @@ AS_IF([test "x$HAVE_LIRC" = "x1"], ENABLE_LIRC=yes, ENABLE_LIRC=no)
AS_IF([test "x$HAVE_XEN" = "x1"], ENABLE_XEN=yes, ENABLE_XEN=no)
AS_IF([test "x$HAVE_DBUS" = "x1"], ENABLE_DBUS=yes, ENABLE_DBUS=no)
AS_IF([test "x$HAVE_UDEV" = "x1"], ENABLE_UDEV=yes, ENABLE_UDEV=no)
AS_IF([test "x$HAVE_SYSTEMD" = "x1"], ENABLE_SYSTEMD=yes, ENABLE_SYSTEMD=no)
AS_IF([test "x$HAVE_SYSTEMD_DAEMON" = "x1"], ENABLE_SYSTEMD_DAEMON=yes, ENABLE_SYSTEMD_DAEMON=no)
AS_IF([test "x$HAVE_SYSTEMD_LOGIN" = "x1"], ENABLE_SYSTEMD_LOGIN=yes, ENABLE_SYSTEMD_LOGIN=no)
AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" = "x1"], ENABLE_SYSTEMD_JOURNAL=yes, ENABLE_SYSTEMD_JOURNAL=no)
AS_IF([test "x$HAVE_BLUEZ_4" = "x1"], ENABLE_BLUEZ_4=yes, ENABLE_BLUEZ_4=no)
AS_IF([test "x$HAVE_BLUEZ_5" = "x1"], ENABLE_BLUEZ_5=yes, ENABLE_BLUEZ_5=no)
AS_IF([test "x$HAVE_BLUEZ_5_OFONO_HEADSET" = "x1"], ENABLE_BLUEZ_5_OFONO_HEADSET=yes, ENABLE_BLUEZ_5_OFONO_HEADSET=no)
AS_IF([test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = "x1"], ENABLE_BLUEZ_5_NATIVE_HEADSET=yes, ENABLE_BLUEZ_5_NATIVE_HEADSET=no)
AS_IF([test "x$HAVE_HAL_COMPAT" = "x1"], ENABLE_HAL_COMPAT=yes, ENABLE_HAL_COMPAT=no)
AS_IF([test "x$HAVE_TCPWRAP" = "x1"], ENABLE_TCPWRAP=yes, ENABLE_TCPWRAP=no)
AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], ENABLE_LIBSAMPLERATE=yes, ENABLE_LIBSAMPLERATE=no)
AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], ENABLE_LIBSAMPLERATE="yes (DEPRECATED)", ENABLE_LIBSAMPLERATE=no)
AS_IF([test "x$HAVE_IPV6" = "x1"], ENABLE_IPV6=yes, ENABLE_IPV6=no)
AS_IF([test "x$HAVE_OPENSSL" = "x1"], ENABLE_OPENSSL=yes, ENABLE_OPENSSL=no)
AS_IF([test "x$HAVE_FFTW" = "x1"], ENABLE_FFTW=yes, ENABLE_FFTW=no)
@@ -1461,6 +1546,7 @@ echo "
System Runtime Path: ${PA_SYSTEM_RUNTIME_PATH}
System State Path: ${PA_SYSTEM_STATE_PATH}
System Config Path: ${PA_SYSTEM_CONFIG_PATH}
Zsh completions directory: ${zshcompletiondir}
Compiler: ${CC}
CFLAGS: ${CFLAGS}
CPPFLAGS: ${CPPFLAGS}
@@ -1485,10 +1571,14 @@ echo "
Enable D-Bus: ${ENABLE_DBUS}
Enable BlueZ 4: ${ENABLE_BLUEZ_4}
Enable BlueZ 5: ${ENABLE_BLUEZ_5}
Enable ofono headsets: ${ENABLE_BLUEZ_5_OFONO_HEADSET}
Enable native headsets: ${ENABLE_BLUEZ_5_NATIVE_HEADSET}
Enable udev: ${ENABLE_UDEV}
Enable HAL->udev compat: ${ENABLE_HAL_COMPAT}
Enable systemd login: ${ENABLE_SYSTEMD}
Enable systemd journal: ${ENABLE_SYSTEMD_JOURNAL}
Enable systemd
Daemon (Socket Activation): ${ENABLE_SYSTEMD_DAEMON}
Login (Session Tracking): ${ENABLE_SYSTEMD_LOGIN}
Journal (Logging): ${ENABLE_SYSTEMD_JOURNAL}
Enable TCP Wrappers: ${ENABLE_TCPWRAP}
Enable libsamplerate: ${ENABLE_LIBSAMPLERATE}
Enable IPv6: ${ENABLE_IPV6}


+ 15
- 3
doxygen/Makefile.in View File

@@ -154,6 +154,8 @@ AUTOMAKE = @AUTOMAKE@
AVAHI_CFLAGS = @AVAHI_CFLAGS@
AVAHI_LIBS = @AVAHI_LIBS@
AWK = @AWK@
BLUEZ_CFLAGS = @BLUEZ_CFLAGS@
BLUEZ_LIBS = @BLUEZ_LIBS@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -201,13 +203,16 @@ HAVE_AVAHI = @HAVE_AVAHI@
HAVE_BLUEZ = @HAVE_BLUEZ@
HAVE_BLUEZ_4 = @HAVE_BLUEZ_4@
HAVE_BLUEZ_5 = @HAVE_BLUEZ_5@
HAVE_BLUEZ_5_NATIVE_HEADSET = @HAVE_BLUEZ_5_NATIVE_HEADSET@
HAVE_BLUEZ_5_OFONO_HEADSET = @HAVE_BLUEZ_5_OFONO_HEADSET@
HAVE_DBUS = @HAVE_DBUS@
HAVE_GLIB20 = @HAVE_GLIB20@
HAVE_MKFIFO = @HAVE_MKFIFO@
HAVE_NEON = @HAVE_NEON@
HAVE_OSS_OUTPUT = @HAVE_OSS_OUTPUT@
HAVE_SYSTEMD = @HAVE_SYSTEMD@
HAVE_SYSTEMD_DAEMON = @HAVE_SYSTEMD_DAEMON@
HAVE_SYSTEMD_JOURNAL = @HAVE_SYSTEMD_JOURNAL@
HAVE_SYSTEMD_LOGIN = @HAVE_SYSTEMD_LOGIN@
HAVE_SYS_RESOURCE_H = @HAVE_SYS_RESOURCE_H@
HAVE_UDEV = @HAVE_UDEV@
HAVE_WAVEOUT = @HAVE_WAVEOUT@
@@ -230,8 +235,6 @@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
JACK_CFLAGS = @JACK_CFLAGS@
JACK_LIBS = @JACK_LIBS@
JOURNAL_CFLAGS = @JOURNAL_CFLAGS@
JOURNAL_LIBS = @JOURNAL_LIBS@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBASYNCNS_CFLAGS = @LIBASYNCNS_CFLAGS@
@@ -298,6 +301,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
PA_ACCESS_GROUP = @PA_ACCESS_GROUP@
PA_API_VERSION = @PA_API_VERSION@
PA_BINARY = @PA_BINARY@
PA_DEFAULT_AUTOSPAWN = @PA_DEFAULT_AUTOSPAWN@
PA_DEFAULT_CONFIG_DIR = @PA_DEFAULT_CONFIG_DIR@
PA_DLSEARCHPATH = @PA_DLSEARCHPATH@
PA_INCDIR = @PA_INCDIR@
@@ -331,6 +335,12 @@ SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STOW = @STOW@
STRIP = @STRIP@
SYSTEMDDAEMON_CFLAGS = @SYSTEMDDAEMON_CFLAGS@
SYSTEMDDAEMON_LIBS = @SYSTEMDDAEMON_LIBS@
SYSTEMDJOURNAL_CFLAGS = @SYSTEMDJOURNAL_CFLAGS@
SYSTEMDJOURNAL_LIBS = @SYSTEMDJOURNAL_LIBS@
SYSTEMDLOGIN_CFLAGS = @SYSTEMDLOGIN_CFLAGS@
SYSTEMDLOGIN_LIBS = @SYSTEMDLOGIN_LIBS@
SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@
SYSTEMD_LIBS = @SYSTEMD_LIBS@
TDB_CFLAGS = @TDB_CFLAGS@
@@ -403,11 +413,13 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
systemduserunitdir = @systemduserunitdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
udevrulesdir = @udevrulesdir@
zshcompletiondir = @zshcompletiondir@
all: all-am

.SUFFIXES:


+ 916
- 199
doxygen/doxygen.conf.in
File diff suppressed because it is too large
View File


+ 0
- 3
man/Makefile.am View File

@@ -32,7 +32,6 @@ noinst_DATA = \
pulse-client.conf.5.xml \
default.pa.5.xml \
pulse-cli-syntax.5.xml \
start-pulseaudio-kde.1.xml \
start-pulseaudio-x11.1.xml

xmllint: $(noinst_DATA)
@@ -56,7 +55,6 @@ dist_man_MANS = \
pulse-client.conf.5 \
default.pa.5 \
pulse-cli-syntax.5 \
start-pulseaudio-kde.1 \
start-pulseaudio-x11.1

CLEANFILES = \
@@ -81,7 +79,6 @@ EXTRA_DIST = \
pulse-client.conf.5.xml.in \
default.pa.5.xml.in \
pulse-cli-syntax.5.xml.in \
start-pulseaudio-kde.1.xml.in \
start-pulseaudio-x11.1.xml.in \
xmltoman \
xmltoman.css \


+ 16
- 10
man/Makefile.in View File

@@ -105,7 +105,6 @@ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(srcdir)/pulse-client.conf.5.xml.in \
$(srcdir)/default.pa.5.xml.in \
$(srcdir)/pulse-cli-syntax.5.xml.in \
$(srcdir)/start-pulseaudio-kde.1.xml.in \
$(srcdir)/start-pulseaudio-x11.1.xml.in $(dist_man_MANS)
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/acx_libwrap.m4 \
@@ -131,7 +130,7 @@ CONFIG_CLEAN_FILES = pulseaudio.1.xml esdcompat.1.xml \
pactl.1.xml pasuspender.1.xml padsp.1.xml \
pulse-daemon.conf.5.xml pulse-client.conf.5.xml \
default.pa.5.xml pulse-cli-syntax.5.xml \
start-pulseaudio-kde.1.xml start-pulseaudio-x11.1.xml
start-pulseaudio-x11.1.xml
CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
@@ -202,6 +201,8 @@ AUTOMAKE = @AUTOMAKE@
AVAHI_CFLAGS = @AVAHI_CFLAGS@
AVAHI_LIBS = @AVAHI_LIBS@
AWK = @AWK@
BLUEZ_CFLAGS = @BLUEZ_CFLAGS@
BLUEZ_LIBS = @BLUEZ_LIBS@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -249,13 +250,16 @@ HAVE_AVAHI = @HAVE_AVAHI@
HAVE_BLUEZ = @HAVE_BLUEZ@
HAVE_BLUEZ_4 = @HAVE_BLUEZ_4@
HAVE_BLUEZ_5 = @HAVE_BLUEZ_5@
HAVE_BLUEZ_5_NATIVE_HEADSET = @HAVE_BLUEZ_5_NATIVE_HEADSET@
HAVE_BLUEZ_5_OFONO_HEADSET = @HAVE_BLUEZ_5_OFONO_HEADSET@
HAVE_DBUS = @HAVE_DBUS@
HAVE_GLIB20 = @HAVE_GLIB20@
HAVE_MKFIFO = @HAVE_MKFIFO@
HAVE_NEON = @HAVE_NEON@
HAVE_OSS_OUTPUT = @HAVE_OSS_OUTPUT@
HAVE_SYSTEMD = @HAVE_SYSTEMD@
HAVE_SYSTEMD_DAEMON = @HAVE_SYSTEMD_DAEMON@
HAVE_SYSTEMD_JOURNAL = @HAVE_SYSTEMD_JOURNAL@
HAVE_SYSTEMD_LOGIN = @HAVE_SYSTEMD_LOGIN@
HAVE_SYS_RESOURCE_H = @HAVE_SYS_RESOURCE_H@
HAVE_UDEV = @HAVE_UDEV@
HAVE_WAVEOUT = @HAVE_WAVEOUT@
@@ -278,8 +282,6 @@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
JACK_CFLAGS = @JACK_CFLAGS@
JACK_LIBS = @JACK_LIBS@
JOURNAL_CFLAGS = @JOURNAL_CFLAGS@
JOURNAL_LIBS = @JOURNAL_LIBS@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBASYNCNS_CFLAGS = @LIBASYNCNS_CFLAGS@
@@ -346,6 +348,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
PA_ACCESS_GROUP = @PA_ACCESS_GROUP@
PA_API_VERSION = @PA_API_VERSION@
PA_BINARY = @PA_BINARY@
PA_DEFAULT_AUTOSPAWN = @PA_DEFAULT_AUTOSPAWN@
PA_DEFAULT_CONFIG_DIR = @PA_DEFAULT_CONFIG_DIR@
PA_DLSEARCHPATH = @PA_DLSEARCHPATH@
PA_INCDIR = @PA_INCDIR@
@@ -379,6 +382,12 @@ SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STOW = @STOW@
STRIP = @STRIP@
SYSTEMDDAEMON_CFLAGS = @SYSTEMDDAEMON_CFLAGS@
SYSTEMDDAEMON_LIBS = @SYSTEMDDAEMON_LIBS@
SYSTEMDJOURNAL_CFLAGS = @SYSTEMDJOURNAL_CFLAGS@
SYSTEMDJOURNAL_LIBS = @SYSTEMDJOURNAL_LIBS@
SYSTEMDLOGIN_CFLAGS = @SYSTEMDLOGIN_CFLAGS@
SYSTEMDLOGIN_LIBS = @SYSTEMDLOGIN_LIBS@
SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@
SYSTEMD_LIBS = @SYSTEMD_LIBS@
TDB_CFLAGS = @TDB_CFLAGS@
@@ -451,11 +460,13 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
systemduserunitdir = @systemduserunitdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
udevrulesdir = @udevrulesdir@
zshcompletiondir = @zshcompletiondir@
DISTCLEANFILES = \
$(noinst_DATA)

@@ -473,7 +484,6 @@ noinst_DATA = \
pulse-client.conf.5.xml \
default.pa.5.xml \
pulse-cli-syntax.5.xml \
start-pulseaudio-kde.1.xml \
start-pulseaudio-x11.1.xml

@BUILD_MANPAGES_TRUE@dist_man_MANS = \
@@ -490,7 +500,6 @@ noinst_DATA = \
@BUILD_MANPAGES_TRUE@ pulse-client.conf.5 \
@BUILD_MANPAGES_TRUE@ default.pa.5 \
@BUILD_MANPAGES_TRUE@ pulse-cli-syntax.5 \
@BUILD_MANPAGES_TRUE@ start-pulseaudio-kde.1 \
@BUILD_MANPAGES_TRUE@ start-pulseaudio-x11.1

@BUILD_MANPAGES_TRUE@CLEANFILES = \
@@ -510,7 +519,6 @@ EXTRA_DIST = \
pulse-client.conf.5.xml.in \
default.pa.5.xml.in \
pulse-cli-syntax.5.xml.in \
start-pulseaudio-kde.1.xml.in \
start-pulseaudio-x11.1.xml.in \
xmltoman \
xmltoman.css \
@@ -576,8 +584,6 @@ default.pa.5.xml: $(top_builddir)/config.status $(srcdir)/default.pa.5.xml.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
pulse-cli-syntax.5.xml: $(top_builddir)/config.status $(srcdir)/pulse-cli-syntax.5.xml.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
start-pulseaudio-kde.1.xml: $(top_builddir)/config.status $(srcdir)/start-pulseaudio-kde.1.xml.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
start-pulseaudio-x11.1.xml: $(top_builddir)/config.status $(srcdir)/start-pulseaudio-x11.1.xml.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@



+ 2
- 2
man/default.pa.5 View File

@@ -4,10 +4,10 @@ default.pa \- PulseAudio Sound Server Startup Script
.SH SYNOPSIS
\fB\fI~/.config/pulse/default.pa\fB

\fI/etc/pulse/default.pa\fB
\fI/usr/local/etc/pulse/default.pa\fB
\f1
.SH DESCRIPTION
The PulseAudio sound server interprets the file \fI~/.config/pulse/default.pa\f1 on startup, and when that file doesn't exist \fI/etc/pulse/default.pa\f1. It should contain directives in the PulseAudio CLI language, as documented in \fBpulse-cli-syntax(5)\f1.
The PulseAudio sound server interprets the file \fI~/.config/pulse/default.pa\f1 on startup, and when that file doesn't exist \fI/usr/local/etc/pulse/default.pa\f1. It should contain directives in the PulseAudio CLI language, as documented in \fBpulse-cli-syntax(5)\f1.

The same commands can also be entered during runtime in the \fBpacmd(1)\f1 tool, allowing flexible runtime reconfiguration.
.SH AUTHORS


+ 10
- 10
man/pactl.1 View File

@@ -27,8 +27,8 @@ Choose the server to connect to.
Specify the client name \fIpactl\f1 shall pass to the server when connecting.
.SH COMMANDS
.TP
\fBstat\f1 [\fIshort\f1]
Dump a few statistics about the memory usage of the PulseAudio daemon. (Note: for backwards compatibility, we also show the output of the \fIinfo\f1 command. In order to only show statistics, use the optional \fIshort\f1 argument. In a future version of PA we will make this the default)
\fBstat\f1
Dump a few statistics about the memory usage of the PulseAudio daemon.
.TP
\fBinfo\f1
Dump some info about the PulseAudio daemon.
@@ -84,17 +84,17 @@ Set the specified source (identified by its symbolic name or numerical index) to
\fBset-port-latency-offset\f1 \fICARD\f1 \fIPORT\f1 \fIOFFSET\f1
Set a latency offset to a specified port (identified by its symbolic name) that belongs to a card (identified by its symbolic name or numerical index). \fIOFFSET\f1 is a number which represents the latency offset in microseconds
.TP
\fBset-sink-volume\f1 \fISINK\f1 \fIVOLUME\f1
Set the volume of the specified sink (identified by its symbolic name or numerical index). \fIVOLUME\f1 can be specified as an integer (e.g. 2000, 16384), a linear factor (e.g. 0.4, 1.100), a percentage (e.g. 10%, 100%) or a decibel value (e.g. 0dB, 20dB). If the volume specification start with a + or - the volume adjustment will be relative to the current sink volume.
\fBset-sink-volume\f1 \fISINK\f1 \fIVOLUME [VOLUME ...]\f1
Set the volume of the specified sink (identified by its symbolic name or numerical index). \fIVOLUME\f1 can be specified as an integer (e.g. 2000, 16384), a linear factor (e.g. 0.4, 1.100), a percentage (e.g. 10%, 100%) or a decibel value (e.g. 0dB, 20dB). If the volume specification start with a + or - the volume adjustment will be relative to the current sink volume. A single volume value affects all channels; if multiple volume values are given their number has to match the sink's number of channels.
.TP
\fBset-source-volume\f1 \fISOURCE\f1 \fIVOLUME\f1
Set the volume of the specified source (identified by its symbolic name or numerical index). \fIVOLUME\f1 can be specified as an integer (e.g. 2000, 16384), a linear factor (e.g. 0.4, 1.100), a percentage (e.g. 10%, 100%) or a decibel value (e.g. 0dB, 20dB). If the volume specification start with a + or - the volume adjustment will be relative to the current source volume.
\fBset-source-volume\f1 \fISOURCE\f1 \fIVOLUME [VOLUME ...]\f1
Set the volume of the specified source (identified by its symbolic name or numerical index). \fIVOLUME\f1 can be specified as an integer (e.g. 2000, 16384), a linear factor (e.g. 0.4, 1.100), a percentage (e.g. 10%, 100%) or a decibel value (e.g. 0dB, 20dB). If the volume specification start with a + or - the volume adjustment will be relative to the current source volume. A single volume value affects all channels; if multiple volume values are given their number has to match the source's number of channels.
.TP
\fBset-sink-input-volume\f1 \fIINPUT\f1 \fIVOLUME\f1
Set the volume of the specified sink input (identified by its numerical index). \fIVOLUME\f1 can be specified as an integer (e.g. 2000, 16384), a linear factor (e.g. 0.4, 1.100), a percentage (e.g. 10%, 100%) or a decibel value (e.g. 0dB, 20dB). If the volume specification start with a + or - the volume adjustment will be relative to the current sink input volume.
\fBset-sink-input-volume\f1 \fIINPUT\f1 \fIVOLUME [VOLUME ...]\f1
Set the volume of the specified sink input (identified by its numerical index). \fIVOLUME\f1 can be specified as an integer (e.g. 2000, 16384), a linear factor (e.g. 0.4, 1.100), a percentage (e.g. 10%, 100%) or a decibel value (e.g. 0dB, 20dB). If the volume specification start with a + or - the volume adjustment will be relative to the current sink input volume. A single volume value affects all channels; if multiple volume values are given their number has to match the sink input's number of channels.
.TP
\fBset-source-output-volume\f1 \fIOUTPUT\f1 \fIVOLUME\f1
Set the volume of the specified source output (identified by its numerical index). \fIVOLUME\f1 can be specified as an integer (e.g. 2000, 16384), a linear factor (e.g. 0.4, 1.100), a percentage (e.g. 10%, 100%) or a decibel value (e.g. 0dB, 20dB). If the volume specification start with a + or - the volume adjustment will be relative to the current source output volume.
\fBset-source-output-volume\f1 \fIOUTPUT\f1 \fIVOLUME [VOLUME ...]\f1
Set the volume of the specified source output (identified by its numerical index). \fIVOLUME\f1 can be specified as an integer (e.g. 2000, 16384), a linear factor (e.g. 0.4, 1.100), a percentage (e.g. 10%, 100%) or a decibel value (e.g. 0dB, 20dB). If the volume specification start with a + or - the volume adjustment will be relative to the current source output volume. A single volume value affects all channels; if multiple volume values are given their number has to match the source output's number of channels.
.TP
\fBset-sink-mute\f1 \fISINK\f1 \fI1|0|toggle\f1
Set the mute status of the specified sink (identified by its symbolic name or numerical index).


+ 14
- 13
man/pactl.1.xml.in View File

@@ -66,11 +66,8 @@ USA.
<section name="Commands">

<option>
<p><opt>stat</opt> [<arg>short</arg>]</p>
<optdesc><p>Dump a few statistics about the memory usage of the PulseAudio daemon. (Note: for backwards
compatibility, we also show the output of the <arg>info</arg> command. In order to only show
statistics, use the optional <arg>short</arg> argument. In a future version of PA we will
make this the default)</p></optdesc>
<p><opt>stat</opt></p>
<optdesc><p>Dump a few statistics about the memory usage of the PulseAudio daemon.</p></optdesc>
</option>

<option>
@@ -189,33 +186,37 @@ USA.
</option>

<option>
<p><opt>set-sink-volume</opt> <arg>SINK</arg> <arg>VOLUME</arg></p>
<p><opt>set-sink-volume</opt> <arg>SINK</arg> <arg>VOLUME [VOLUME ...]</arg></p>
<optdesc><p>Set the volume of the specified sink (identified by its symbolic name or numerical index).
<arg>VOLUME</arg> can be specified as an integer (e.g. 2000, 16384), a linear factor (e.g. 0.4, 1.100), a percentage
(e.g. 10%, 100%) or a decibel value (e.g. 0dB, 20dB). If the volume specification start with a + or - the volume
adjustment will be relative to the current sink volume.</p></optdesc>
adjustment will be relative to the current sink volume. A single volume value affects all channels; if multiple
volume values are given their number has to match the sink's number of channels.</p></optdesc>
</option>

<option>
<p><opt>set-source-volume</opt> <arg>SOURCE</arg> <arg>VOLUME</arg></p>
<p><opt>set-source-volume</opt> <arg>SOURCE</arg> <arg>VOLUME [VOLUME ...]</arg></p>
<optdesc><p>Set the volume of the specified source (identified by its symbolic name or numerical index).
<arg>VOLUME</arg> can be specified as an integer (e.g. 2000, 16384), a linear factor (e.g. 0.4, 1.100), a percentage
(e.g. 10%, 100%) or a decibel value (e.g. 0dB, 20dB). If the volume specification start with a + or - the volume
adjustment will be relative to the current source volume.</p></optdesc> </option>
adjustment will be relative to the current source volume. A single volume value affects all channels; if multiple
volume values are given their number has to match the source's number of channels.</p></optdesc> </option>

<option>
<p><opt>set-sink-input-volume</opt> <arg>INPUT</arg> <arg>VOLUME</arg></p>
<p><opt>set-sink-input-volume</opt> <arg>INPUT</arg> <arg>VOLUME [VOLUME ...]</arg></p>
<optdesc><p>Set the volume of the specified sink input (identified by its numerical index).
<arg>VOLUME</arg> can be specified as an integer (e.g. 2000, 16384), a linear factor (e.g. 0.4, 1.100), a percentage
(e.g. 10%, 100%) or a decibel value (e.g. 0dB, 20dB). If the volume specification start with a + or - the volume
adjustment will be relative to the current sink input volume.</p></optdesc> </option>
adjustment will be relative to the current sink input volume. A single volume value affects all channels; if multiple
volume values are given their number has to match the sink input's number of channels.</p></optdesc> </option>

<option>
<p><opt>set-source-output-volume</opt> <arg>OUTPUT</arg> <arg>VOLUME</arg></p>
<p><opt>set-source-output-volume</opt> <arg>OUTPUT</arg> <arg>VOLUME [VOLUME ...]</arg></p>
<optdesc><p>Set the volume of the specified source output (identified by its numerical index).
<arg>VOLUME</arg> can be specified as an integer (e.g. 2000, 16384), a linear factor (e.g. 0.4, 1.100), a percentage
(e.g. 10%, 100%) or a decibel value (e.g. 0dB, 20dB). If the volume specification start with a + or - the volume
adjustment will be relative to the current source output volume.</p></optdesc>
adjustment will be relative to the current source output volume. A single volume value affects all channels; if multiple
volume values are given their number has to match the source output's number of channels.</p></optdesc>
</option>

<option>


+ 1
- 1
man/pax11publish.1 View File

@@ -32,7 +32,7 @@ Read the PulseAudio server credentials currently set on the X11 root window and
Similar to \fB-d\f1, however dumps them in a Bourne shell compatible format so they may be used together with the \fIeval\f1 shell command to set the $PULSE_SERVER, $PULSE_SINK, $PULSE_SOURCE environment variables. Also reads the authentication cookie from the root window and stores it in \fI~/.config/pulse/cookie\f1.
.TP
\fB-e\f1
Export the currently locally used sound server, sink, source configuration to the X11 root window. This takes the data from the $PULSE_SERVER, $PULSE_SINK, $PULSE_SOURCE environment variables and combines them with the data from \fI~/.config/pulse/client.conf\f1 (or \fI/etc/pulse/client.conf\f1 if that file does not exist). If specific options are passed on the command line (\fB-S\f1, \fB-O\f1, \fB-I\f1, \fB-c\f1, see below), they take precedence. Also uploads the local authentication cookie \fI~/.config/pulse/cookie\f1 to the X11 server.
Export the currently locally used sound server, sink, source configuration to the X11 root window. This takes the data from the $PULSE_SERVER, $PULSE_SINK, $PULSE_SOURCE environment variables and combines them with the data from \fI~/.config/pulse/client.conf\f1 (or \fI/usr/local/etc/pulse/client.conf\f1 if that file does not exist). If specific options are passed on the command line (\fB-S\f1, \fB-O\f1, \fB-I\f1, \fB-c\f1, see below), they take precedence. Also uploads the local authentication cookie \fI~/.config/pulse/cookie\f1 to the X11 server.
.TP
\fB-r\f1
Removes the configured PulseAudio configuration from the X11 root window.


+ 2
- 2
man/pulse-cli-syntax.5 View File

@@ -4,9 +4,9 @@ pulse-cli-syntax \- PulseAudio Command Line Interface Syntax
.SH SYNOPSIS
\fB\fI~/.config/pulse/default.pa\fB

\fI/etc/pulse/default.pa\fB
\fI/usr/local/etc/pulse/default.pa\fB

\fI/etc/pulse/system.pa\fB
\fI/usr/local/etc/pulse/system.pa\fB
\f1
.SH DESCRIPTION
PulseAudio provides a simple command line language used by configuration scripts, the pacmd interactive shell, and the modules module-cli and module-cli-protocol-{unix,tcp}. Empty lines and lines beginning with a hashmark (#) are silently ignored. Several commands are supported.


+ 3
- 3
man/pulse-client.conf.5 View File

@@ -4,10 +4,10 @@ pulse-client.conf \- PulseAudio client configuration file
.SH SYNOPSIS
\fB\fI~/.config/pulse/client.conf\fB

\fI/etc/pulse/client.conf\fB
\fI/usr/local/etc/pulse/client.conf\fB
\f1
.SH DESCRIPTION
The PulseAudio client library reads configuration directives from a file \fI~/.config/pulse/client.conf\f1 on startup and when that file doesn't exist from \fI/etc/pulse/client.conf\f1.
The PulseAudio client library reads configuration directives from a file \fI~/.config/pulse/client.conf\f1 on startup and when that file doesn't exist from \fI/usr/local/etc/pulse/client.conf\f1.

The configuration file is a simple collection of variable declarations. If the configuration file parser encounters either ; or # it ignores the rest of the line until its end.

@@ -20,7 +20,7 @@ For the settings that take a boolean argument the values \fBtrue\f1, \fByes\f1,
.TP
\fBdefault-server=\f1 The default sever to connect to. The environment variable \fB$PULSE_SERVER\f1 takes precedence.
.TP
\fBautospawn=\f1 Autospawn a PulseAudio daemon when needed. Takes a boolean value, defaults to \fByes\f1.
\fBautospawn=\f1 Autospawn a PulseAudio daemon when needed. Takes a boolean value, defaults to \fBno\f1.
.TP
\fBdaemon-binary=\f1 Path to the PulseAudio daemon to run when autospawning. Defaults to a path configured at compile time.
.TP


+ 1
- 1
man/pulse-client.conf.5.xml.in View File

@@ -69,7 +69,7 @@ USA.

<option>
<p><opt>autospawn=</opt> Autospawn a PulseAudio daemon when
needed. Takes a boolean value, defaults to <opt>yes</opt>.</p>
needed. Takes a boolean value, defaults to <opt>@PA_DEFAULT_AUTOSPAWN@</opt>.</p>
</option>

<option>


+ 9
- 9
man/pulse-daemon.conf.5 View File

@@ -4,10 +4,10 @@ pulse-daemon.conf \- PulseAudio daemon configuration file
.SH SYNOPSIS
\fB\fI~/.config/pulse/daemon.conf\fB

\fI/etc/pulse/daemon.conf\fB
\fI/usr/local/etc/pulse/daemon.conf\fB
\f1
.SH DESCRIPTION
The PulseAudio sound server reads configuration directives from a file \fI~/.config/pulse/daemon.conf\f1 on startup and when that file doesn't exist from \fI/etc/pulse/daemon.conf\f1. Please note that the server also reads a configuration script on startup \fIdefault.pa\f1 which also contains runtime configuration directives.
The PulseAudio sound server reads configuration directives from a file \fI~/.config/pulse/daemon.conf\f1 on startup and when that file doesn't exist from \fI/usr/local/etc/pulse/daemon.conf\f1. Please note that the server also reads a configuration script on startup \fIdefault.pa\f1 which also contains runtime configuration directives.

The configuration file is a simple collection of variable declarations. If the configuration file parser encounters either ; or # it ignores the rest of the line until its end.

@@ -28,7 +28,7 @@ For the settings that take a boolean argument the values \fBtrue\f1, \fByes\f1,
.TP
\fBenable-lfe-remixing=\f1 If disabled when upmixing or downmixing ignore LFE channels. When this option is disabled the output LFE channel will only get a signal when an input LFE channel is available as well. If no input LFE channel is available the output LFE channel will always be 0. If no output LFE channel is available the signal on the input LFE channel will be ignored. Defaults to \fBno\f1.
.TP
\fBuse-pid-file=\f1 Create a PID file in the runtime directory (\fI$XDG_RUNTIMEDIR/pulse/pid\f1). If this is enabled you may use commands like \fB--kill\f1 or \fB--check\f1. If you are planning to start more than one PulseAudio process per user, you better disable this option since it effectively disables multiple instances. Takes a boolean argument, defaults to \fByes\f1. The \fB--use-pid-file\f1 command line option takes precedence.
\fBuse-pid-file=\f1 Create a PID file in the runtime directory (\fI$XDG_RUNTIME_DIR/pulse/pid\f1). If this is enabled you may use commands like \fB--kill\f1 or \fB--check\f1. If you are planning to start more than one PulseAudio process per user, you better disable this option since it effectively disables multiple instances. Takes a boolean argument, defaults to \fByes\f1. The \fB--use-pid-file\f1 command line option takes precedence.
.TP
\fBcpu-limit=\f1 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 \fBno\f1. The \fB--no-cpu-limit\f1 command line argument takes precedence.
.TP
@@ -59,9 +59,9 @@ For the settings that take a boolean argument the values \fBtrue\f1, \fByes\f1,
\fBscache-idle-time=\f1 Unload autoloaded sample cache entries after being idle for this time in seconds. Defaults to 20. The \fB--scache-idle-time\f1 command line option takes precedence.
.SH PATHS
.TP
\fBdl-search-path=\f1 The path were to look for dynamic shared objects (DSOs/plugins). You may specify more than one path separated by colons. The default path depends on compile time settings. The \fB--dl-search-path\f1 command line option takes precedence.
\fBdl-search-path=\f1 The path where to look for dynamic shared objects (DSOs/plugins). You may specify more than one path separated by colons. The default path depends on compile time settings. The \fB--dl-search-path\f1 command line option takes precedence.
.TP
\fBdefault-script-file=\f1 The default configuration script file to load. Specify an empty string for not loading a default script file. The default behaviour is to load \fI~/.config/pulse/default.pa\f1, and if that file does not exist fall back to the system wide installed version \fI/etc/pulse/default.pa\f1. If run in system-wide mode the file \fI/etc/pulse/system.pa\f1 is used instead. If \fB-n\f1 is passed on the command line or \fBdefault-script-file=\f1 is disabled the default configuration script is ignored.
\fBdefault-script-file=\f1 The default configuration script file to load. Specify an empty string for not loading a default script file. The default behaviour is to load \fI~/.config/pulse/default.pa\f1, and if that file does not exist fall back to the system wide installed version \fI/usr/local/etc/pulse/default.pa\f1. If run in system-wide mode the file \fI/usr/local/etc/pulse/system.pa\f1 is used instead. If \fB-n\f1 is passed on the command line or \fBdefault-script-file=\f1 is disabled the default configuration script is ignored.
.TP
\fBload-default-script-file=\f1 Load the default configuration script file as specified in \fBdefault-script-file=\f1. Defaults to \fByes\f1.
.SH LOGGING
@@ -72,7 +72,7 @@ For the settings that take a boolean argument the values \fBtrue\f1, \fByes\f1,
.TP
\fBlog-meta=\f1 With each logged message log the code location the message was generated from. Defaults to \fBno\f1.
.TP
\fBlog-time=\f1 With each logged messages log the relative time since startup. Defaults to \fBno\f1.
\fBlog-time=\f1 With each logged message log the relative time since startup. Defaults to \fBno\f1.
.TP
\fBlog-backtrace=\f1 When greater than 0, with each logged message log a code stack trace up the specified number of stack frames. Defaults to \fB0\f1.
.SH RESOURCE LIMITS
@@ -104,7 +104,7 @@ See \fBgetrlimit(2)\f1 for more information. Set to -1 if PulseAudio shall not t
.TP
\fBrlimit-nice\f1 Defaults to 31. Please make sure that the default nice level as configured with \fBnice-level\f1 fits in this resource limit, if \fBhigh-priority\f1 is enabled.
.TP
\fBrlimit-rtprio\f1 Defaults to 9. Please make sure that the default real-time priority level as configured with \fBrealtime-priority=\f1 fits in this resource limit, if \fBrealtime-scheduling\f1 is enabled. The JACK client libraries require a real-time prority of 9 by default.
\fBrlimit-rtprio\f1 Defaults to 9. Please make sure that the default real-time priority level as configured with \fBrealtime-priority=\f1 fits in this resource limit, if \fBrealtime-scheduling\f1 is enabled. The JACK client libraries require a real-time priority of 9 by default.
.TP
\fBrlimit-rttime\f1 Defaults to 1000000.
.SH DEFAULT DEVICE SETTINGS
@@ -118,9 +118,9 @@ Most drivers try to open the audio device with these settings and then fall back
.TP
\fBdefault-channel-map\f1 The default channel map.
.TP
\fBalternate-sample-rate\f1 The alternate sample frequency. Sinks and sources will use either the default-rate-rate value or this alternate value, typically 44.1 or 48kHz. Switching between default and alternate values is enabled only when the sinks/sources are suspended. This option is ignored in passthrough mode where the stream rate will be used. If set to the same as the default sample rate, this feature is disabled.
\fBalternate-sample-rate\f1 The alternate sample frequency. Sinks and sources will use either the default-sample-rate value or this alternate value, typically 44.1 or 48kHz. Switching between default and alternate values is enabled only when the sinks/sources are suspended. This option is ignored in passthrough mode where the stream rate will be used. If set to the same value as the default sample rate, this feature is disabled.
.SH DEFAULT FRAGMENT SETTINGS
Some hardware drivers require the hardware playback buffer to be subdivided into several fragments. It is possible to change these buffer metrics for machines with high scheduling latencies. Not all possible values that may be configured here are available in all hardware. The driver will to find the nearest setting supported. Modern drivers that support timer-based scheduling ignore these options.
Some hardware drivers require the hardware playback buffer to be subdivided into several fragments. It is possible to change these buffer metrics for machines with high scheduling latencies. Not all possible values that may be configured here are available in all hardware. The driver will find the nearest setting supported. Modern drivers that support timer-based scheduling ignore these options.
.TP
\fBdefault-fragments=\f1 The default number of fragments. Defaults to 4.
.TP


+ 7
- 7
man/pulse-daemon.conf.5.xml.in View File

@@ -124,7 +124,7 @@ USA.

<option>
<p><opt>use-pid-file=</opt> Create a PID file in the runtime directory
(<file>$XDG_RUNTIMEDIR/pulse/pid</file>). If this is enabled you may
(<file>$XDG_RUNTIME_DIR/pulse/pid</file>). If this is enabled you may
use commands like <opt>--kill</opt> or <opt>--check</opt>. If
you are planning to start more than one PulseAudio process per
user, you better disable this option since it effectively
@@ -265,7 +265,7 @@ USA.
<section name="Paths">

<option>
<p><opt>dl-search-path=</opt> The path were to look for dynamic
<p><opt>dl-search-path=</opt> The path where to look for dynamic
shared objects (DSOs/plugins). You may specify more than one
path separated by colons. The default path depends on compile
time settings. The <opt>--dl-search-path</opt> command line
@@ -326,7 +326,7 @@ USA.
</option>

<option>
<p><opt>log-time=</opt> With each logged messages log the
<p><opt>log-time=</opt> With each logged message log the
relative time since startup. Defaults to <opt>no</opt>.</p>
</option>

@@ -394,7 +394,7 @@ USA.
the default real-time priority level as configured with
<opt>realtime-priority=</opt> fits in this resource limit, if
<opt>realtime-scheduling</opt> is enabled. The JACK client
libraries require a real-time prority of 9 by default. </p>
libraries require a real-time priority of 9 by default.</p>
</option>
<option>
<p><opt>rlimit-rttime</opt> Defaults to 1000000.</p>
@@ -437,11 +437,11 @@ USA.
<option>
<p><opt>alternate-sample-rate</opt> The alternate sample
frequency. Sinks and sources will use either the
default-rate-rate value or this alternate value, typically 44.1
default-sample-rate value or this alternate value, typically 44.1
or 48kHz. Switching between default and alternate values is
enabled only when the sinks/sources are suspended. This option
is ignored in passthrough mode where the stream rate will be used.
If set to the same as the default sample rate, this feature is
If set to the same value as the default sample rate, this feature is
disabled.</p>
</option>

@@ -453,7 +453,7 @@ USA.
be subdivided into several fragments. It is possible to change
these buffer metrics for machines with high scheduling
latencies. Not all possible values that may be configured here are
available in all hardware. The driver will to find the nearest
available in all hardware. The driver will find the nearest
setting supported. Modern drivers that support timer-based
scheduling ignore these options.</p>



+ 3
- 3
man/pulseaudio.1 View File

@@ -125,11 +125,11 @@ Open a command interpreter on STDIN/STDOUT after startup. This may be used to co
\fB-n\f1
Don't load default script file \fIdefault.pa\f1 (see below) on startup. Useful in conjunction with \fB-C\f1 or \fB--file\f1.
.SH FILES
\fI~/.config/pulse/daemon.conf\f1, \fI/etc/pulse/daemon.conf\f1: configuration settings for the PulseAudio daemon. If the version in the user's home directory does not exist the global configuration file is loaded. See \fBpulse-daemon.conf(5)\f1 for more information.
\fI~/.config/pulse/daemon.conf\f1, \fI/usr/local/etc/pulse/daemon.conf\f1: configuration settings for the PulseAudio daemon. If the version in the user's home directory does not exist the global configuration file is loaded. See \fBpulse-daemon.conf(5)\f1 for more information.

\fI~/.config/pulse/default.pa\f1, \fI/etc/pulse/default.pa\f1: the default configuration script to execute when the PulseAudio daemon is started. If the version in the user's home directory does not exist the global configuration script is loaded. See \fBdefault.pa(5)\f1 for more information.
\fI~/.config/pulse/default.pa\f1, \fI/usr/local/etc/pulse/default.pa\f1: the default configuration script to execute when the PulseAudio daemon is started. If the version in the user's home directory does not exist the global configuration script is loaded. See \fBdefault.pa(5)\f1 for more information.

\fI~/.config/pulse/client.conf\f1, \fI/etc/pulse/client.conf\f1: configuration settings for PulseAudio client applications. If the version in the user's home directory does not exist the global configuration file is loaded. See \fBpulse-client.conf(5)\f1 for more information.
\fI~/.config/pulse/client.conf\f1, \fI/usr/local/etc/pulse/client.conf\f1: configuration settings for PulseAudio client applications. If the version in the user's home directory does not exist the global configuration file is loaded. See \fBpulse-client.conf(5)\f1 for more information.
.SH SIGNALS
\fISIGINT, SIGTERM\f1: the PulseAudio daemon will shut down (Same as \fB--kill\f1).



+ 0
- 14
man/start-pulseaudio-kde.1 View File

@@ -1,14 +0,0 @@
.TH start-pulseaudio-kde 1 User Manuals
.SH NAME
start-pulseaudio-kde \- PulseAudio Sound Server KDE Startup Script
.SH SYNOPSIS
\fBstart-pulseaudio-kde [\fIpulseaudio options\fB]
\f1
.SH DESCRIPTION
This script starts pulseaudio (if not already running) and loads module-device-manager to use KDE routing policies.

All arguments are directly passed to pulseaudio.
.SH AUTHORS
The PulseAudio Developers <pulseaudio-discuss (at) lists (dot) freedesktop (dot) org>; PulseAudio is available from \fBhttp://pulseaudio.org/\f1
.SH SEE ALSO
\fBpulseaudio(1)\f1

+ 0
- 48
man/start-pulseaudio-kde.1.xml.in View File

@@ -1,48 +0,0 @@
<?xml version="1.0"?><!--*-nxml-*-->
<!DOCTYPE manpage SYSTEM "xmltoman.dtd">
<?xml-stylesheet type="text/xsl" href="xmltoman.xsl" ?>

<!--
This file is part of PulseAudio.

PulseAudio is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation; either version 2.1 of the
License, or (at your option) any later version.

PulseAudio is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with PulseAudio; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
USA.
-->

<manpage name="start-pulseaudio-kde" section="1" desc="PulseAudio Sound Server KDE Startup Script">

<synopsis>
<cmd>start-pulseaudio-kde [<arg>pulseaudio options</arg>]</cmd>
</synopsis>

<description>
<p>This script starts pulseaudio (if not already running) and loads
module-device-manager to use KDE routing policies.</p>

<p>All arguments are directly passed to pulseaudio.</p>
</description>

<section name="Authors">
<p>The PulseAudio Developers &lt;@PACKAGE_BUGREPORT@&gt;;
PulseAudio is available from <url href="@PACKAGE_URL@"/></p>
</section>

<section name="See also">
<p>
<manref name="pulseaudio" section="1"/>
</p>
</section>

</manpage>

+ 1
- 0
po/LINGUAS View File

@@ -25,6 +25,7 @@ pl
pt_BR
pt
ru
sk
sr@latin
sr
sv


+ 3
- 1
po/POTFILES.in View File

@@ -6,7 +6,7 @@ src/daemon/dumpmodules.c
src/daemon/ltdl-bind-now.c
src/daemon/main.c
src/daemon/pulseaudio.desktop.in
src/daemon/pulseaudio-kde.desktop.in
src/daemon/systemd/user/pulseaudio.service.in
src/modules/alsa/alsa-mixer.c
src/modules/alsa/alsa-sink.c
src/modules/alsa/alsa-source.c
@@ -73,6 +73,7 @@ src/pulse/channelmap.c
src/pulse/client-conf.c
src/pulse/client-conf-x11.c
src/pulse/context.c
src/pulse/direction.c
src/pulsecore/asyncmsgq.c
src/pulsecore/asyncq.c
src/pulsecore/auth-cookie.c
@@ -88,6 +89,7 @@ src/pulsecore/core-error.c
src/pulsecore/core-scache.c
src/pulsecore/core-subscribe.c
src/pulsecore/core-util.c
src/pulsecore/core-util.h
src/pulsecore/dbus-util.c
src/pulsecore/dllmain.c
src/pulsecore/dynarray.c


+ 2227
- 1360
po/el.po
File diff suppressed because it is too large
View File


+ 453
- 401
po/pt_BR.po
File diff suppressed because it is too large
View File


+ 254
- 211
po/ru.po
File diff suppressed because it is too large
View File


+ 2740
- 0
po/sk.po
File diff suppressed because it is too large
View File


+ 350
- 231
po/uk.po
File diff suppressed because it is too large
View File


+ 50
- 0
pulseaudio.supp View File

@@ -0,0 +1,50 @@
# This file contains error suppression rules for Valgrind. These rules suppress
# errors in alsa-lib that are caused by Valgrind not handling the
# SNDRV_CTL_IOCTL_TLV_READ ioctl. More information about the Valgrind bug:
# http://thread.gmane.org/gmane.comp.debugging.valgrind/11888
#
# To use this file, pass the command line option --suppressions=<filename> to
# Valgrind.
#
# If you find new false positives, and want to add new suppressions, the
# --gen-suppression=all option can be very useful. It prints automatically
# generated suppression rules that can be copy-pasted here.

{
alsa-lib/snd_tlv_get_dB_range
Memcheck:Cond
fun:snd_tlv_get_dB_range
}

{
alsa-lib/snd_tlv_convert_to_dB
Memcheck:Cond
fun:snd_tlv_convert_to_dB
}

{
alsa-lib/snd_tlv_convert_from_dB
Memcheck:Cond
fun:snd_tlv_convert_from_dB
}

{
alsa-lib/set_volume_ops
Memcheck:Cond
fun:set_volume_ops
}

{
alsa-lib/snd_ctl_hw_elem_write
Memcheck:Param
ioctl(generic)
fun:ioctl
fun:snd_ctl_hw_elem_write
}

{
alsa-lib/selem_read
Memcheck:Cond
fun:bcmp
fun:selem_read
}

shell-completion/pulseaudio-bash-completion.sh → shell-completion/bash/pulseaudio View File

@@ -179,8 +179,6 @@ _pactl() {
case $prev in
list) COMPREPLY=($(compgen -W '${list_types[*]}' -- "$cur")) ;;

stat) COMPREPLY=($(compgen -W 'short' -- "$cur")) ;;

upload-sample) _filedir ;;

play-sample) ;; # TODO
@@ -492,7 +490,7 @@ _pacat () {
;;
esac
}
complete -F _pacat pacat paplay parecord
complete -F _pacat pacat paplay parec parecord

_pulseaudio()
{

shell-completion/pulseaudio-zsh-completion.zsh → shell-completion/zsh/_pulseaudio View File

@@ -1,13 +1,26 @@
#compdef pulseaudio pactl pacmd pacat paplay parecord padsp pasuspender
#compdef pulseaudio pactl pacmd pacat paplay parec parecord padsp pasuspender

_set_remote() {
for (( i = 0; i < ${#words[@]}; i++ )) do
if [[ ${words[$i]} == -s || ${words[$i]} == --server ]]; then
remote="-s ${words[$i+1]}"
break;
elif [[ ${words[$i]} == --server=* ]]; then
remote=${words[$i]}
fi
done
}

_devices() {
local -a _device_list
local cmd _device _device_description _remote_cmd
local cmd _device _device_description

if [[ $service == pactl || $service == pacmd ]]; then
case $words[$((CURRENT - 1))] in
set-sink-input-*) cmd=('sink-inputs');;
set-sink-*) cmd=('sinks');;
set-default-sink) cmd=('sinks');;
set-default-source) cmd=('sources');;
set-source-output-*) cmd=('source-outputs');;
set-source-*) cmd=('sources');;
suspend-sink) cmd=('sinks');;
@@ -23,14 +36,14 @@ _devices() {
move-source-output) cmd=('sources');;
esac

elif [[ $service == (pacat|paplay|parecord) ]]; then
elif [[ $service == (pacat|paplay|parec|parecord) ]]; then
case $words[$((CURRENT))] in
--device=*)
if [[ $words == *(--playback|-p)[[:space:]]* ||
$service == paplay ]]; then
cmd=('sinks')
elif [[ $words == *(--record|-r)[[:space:]]* ||
$service == parecord ]]; then
$service == (parec|parecord) ]]; then
cmd=('sources')
else
cmd=('sinks' 'sources')
@@ -45,7 +58,7 @@ _devices() {
$service == paplay ]]; then
cmd=('sinks')
elif [[ $words == *(--record|-r)[[:space:]]* ||
$service == parecord ]]; then
$service == (parec|parecord) ]]; then
cmd=('sources')
else
cmd=('sinks' 'sources')
@@ -55,15 +68,8 @@ _devices() {

fi

for (( i = 0; i < ${#words[@]}; i++ )) do
if [[ ${words[$i]} == -s ]]; then
_remote_cmd="-s ${words[$i+1]}"
break;
fi
done

for target in $cmd; do
for device_info in ${(ps:\n\n:)"$(_call_program device_tag "pactl $_remote_cmd list $target 2> /dev/null")"}; do
for device_info in ${(ps:\n\n:)"$(_call_program device_tag "pactl $remote list $target 2> /dev/null")"}; do
for line in ${(f)device_info}; do
if [[ $target == (sink-inputs|source-outputs) ]]; then
if [[ $line == (Sink*Input|Source*Output)* ]]; then
@@ -98,18 +104,11 @@ _devices() {

_profiles() {
local -a _profile_list
local _current_card _raw_profiles _profile_name _profile_description _remote_cmd
local _current_card _raw_profiles _profile_name _profile_description

_current_card=$words[$((CURRENT - 1))]

for (( i = 0; i < ${#words[@]}; i++ )) do
if [[ ${words[$i]} == -s ]]; then
_remote_cmd="-s ${words[$i+1]}"
break;
fi
done

for card in ${(ps:\n\n:)"$(_call_program profiles_tag "pactl $_remote_cmd list cards 2> /dev/null")"}; do
for card in ${(ps:\n\n:)"$(_call_program profiles_tag "pactl $remote list cards 2> /dev/null")"}; do
if [[ $card == *$_current_card* ]]; then
_raw_profiles=${card##*Profiles:}
_raw_profiles=${_raw_profiles%%Active Profile:*}
@@ -130,7 +129,7 @@ _profiles() {

_ports() {
local -a _port_list
local _raw_ports _port_name _port_description _current_device _remote_cmd
local _raw_ports _port_name _port_description _current_device

case $words[$((CURRENT - 2))] in
set-sink-port) cmd="sinks";;
@@ -140,14 +139,7 @@ _ports() {

_current_device=$words[$((CURRENT - 1))]

for (( i = 0; i < ${#words[@]}; i++ )) do
if [[ ${words[$i]} == -s ]]; then
_remote_cmd="-s ${words[$i+1]}"
break;
fi
done

for device in ${(ps:\n\n:)"$(_call_program port_tag "pactl $_remote_cmd list $cmd 2> /dev/null")"}; do
for device in ${(ps:\n\n:)"$(_call_program port_tag "pactl $remote list $cmd 2> /dev/null")"}; do
if [[ $device == *Ports:* && $device == *$_current_device* ]]; then
_raw_ports=${device##*Ports:}
_raw_ports=${_raw_ports%%Active Port:*}
@@ -168,16 +160,9 @@ _ports() {

_cards(){
local -a _card_list
local _card _cad_name _remote_cmd
local _card _cad_name

for (( i = 0; i < ${#words[@]}; i++ )) do
if [[ ${words[$i]} == -s ]]; then
_remote_cmd="-s ${words[$i+1]}"
break;
fi
done

for card_info in ${(ps:\n\n:)"$(_call_program card_tag "pactl $_remote_cmd list cards 2> /dev/null")"}; do
for card_info in ${(ps:\n\n:)"$(_call_program card_tag "pactl $remote list cards 2> /dev/null")"}; do
for line in ${(f)card_info}; do
if [[ $line == *Name:* ]]; then
_card=${line#*: }
@@ -201,16 +186,9 @@ _all_modules(){
}

_loaded_modules(){
local -a _loaded_modules_list _remote_cmd
local -a _loaded_modules_list

for (( i = 0; i < ${#words[@]}; i++ )) do
if [[ ${words[$i]} == -s ]]; then
_remote_cmd="-s ${words[$i+1]}"
break;
fi
done

for module in ${(f)"$(_call_program modules_tag "pactl $_remote_cmd list modules short 2> /dev/null")"}; do
for module in ${(f)"$(_call_program modules_tag "pactl $remote list modules short 2> /dev/null")"}; do
_loaded_modules_list+=(${${(ps:\t:)module}[1]}:${${(ps:\t:)module}[2]})
done
_describe 'module list' _loaded_modules_list
@@ -226,16 +204,9 @@ _resample_methods() {

_clients() {
local -a _client_list
local _client _client_description _remote_cmd

for (( i = 0; i < ${#words[@]}; i++ )) do
if [[ ${words[$i]} == -s ]]; then
_remote_cmd="-s ${words[$i+1]}"
break;
fi
done
local _client _client_description

for client_info in ${(ps:\n\n:)"$(_call_program clients_tag "pactl $_remote_cmd list clients 2> /dev/null")"}; do
for client_info in ${(ps:\n\n:)"$(_call_program clients_tag "pactl $remote list clients 2> /dev/null")"}; do
for line in ${(f)client_info}; do
if [[ $line == Client[[:space:]]#* ]]; then
_client=${line#*\#}
@@ -257,7 +228,11 @@ _pacat_file_formats() {
}

_pactl_completion() {
_set_remote

_pactl_command(){
local -a _pactl_commands

_pactl_commands=(
'help: show help and exit'
'stat: dump statistics about the PulseAudio daemon'
@@ -273,9 +248,9 @@ _pactl_completion() {
'move-source-output: move a recording stream to a source'
'suspend-sink: suspend or resume a sink'
'suspend-source: suspend or resume a source'
'set-card-profile: set a card profile:cards:_cards'
'set-sink-default: set the default sink'
'set-source-default: set the default source'
'set-card-profile: set a card profile'
'set-default-sink: set the default sink'
'set-default-source: set the default source'
'set-sink-port: set the sink port of a sink'
'set-source-port: set the source port of a source'
'set-port-latency-offset: set a latency offset on a port'
@@ -290,55 +265,243 @@ _pactl_completion() {
'set-sink-formats: set supported formats of a sink'
'subscribe: subscribe to events'
)

_describe 'pactl commands' _pactl_commands
}

_pactl_list_commands=(
'modules: list loaded modules'
'sinks: list available sinks'
'sources: list available sources'
'sink-inputs: list connected sink inputs'
'source-outputs: list connected source outputs'
'clients: list connected clients'
'samples: list samples'
'cards: list available cards'
)
_pactl_command_parameter() {
local _command

_list_parameter() {
local -a _objects;

_objects=(
'modules: list loaded modules'
'sinks: list available sinks'
'sources: list available sources'
'sink-inputs: list connected sink inputs'
'source-outputs: list connected source outputs'
'clients: list connected clients'
'samples: list samples'
'cards: list available cards'
)

if ((CURRENT == 2)); then
# We're completing the first parameter after "list".
# "pactl list cards short" and "pactl list short cards" are
# treated as equivalent by pactl, but here we only support the
# first form, so "short" isn't a valid completion.
_describe 'objects' _objects
elif ((CURRENT == 3)); then
# We're completing the second parameter after "list". As
# explained in the previous comment, we only support the
# "pactl list cards short" form, so "short" is the only valid
# completion here.
compadd short
fi
}

_play_sample_parameter() {
if ((CURRENT == 2)); then
# We're completing the first parameter after "play-sample".
# TODO: Implement sample name completion.
elif ((CURRENT == 3)); then
# We're completing the second parameter after "play-sample".
# TODO: Implement sink name completion.
fi
}

_load_module_parameter() {
if ((CURRENT == 2)); then
# We're completing the first parameter after "load-module".
_all_modules
else
# We're completing the second or later parameter after