mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2026-06-15 10:28:23 +02:00
Compare commits
No commits in common. "master" and "v0.98-dev" have entirely different histories.
929 changed files with 95744 additions and 264564 deletions
21
.gitignore
vendored
21
.gitignore
vendored
|
|
@ -1,15 +1,14 @@
|
|||
.tarball-version
|
||||
.version
|
||||
.*.swp
|
||||
ABOUT-NLS
|
||||
build*
|
||||
intltool-extract.in
|
||||
intltool-merge.in
|
||||
intltool-update.in
|
||||
*~
|
||||
*.tar.gz
|
||||
*.pc
|
||||
PulseAudioConfig.cmake
|
||||
PulseAudioConfigVersion.cmake
|
||||
/Makefile
|
||||
/Makefile.in
|
||||
Makefile
|
||||
Makefile.in
|
||||
aclocal.m4
|
||||
autom4te.cache
|
||||
compile
|
||||
|
|
@ -21,20 +20,10 @@ config.rpath
|
|||
config.status
|
||||
config.sub
|
||||
configure
|
||||
cscope.out
|
||||
cscope.in.out
|
||||
cscope.po.out
|
||||
pulse-daemon.log
|
||||
depcomp
|
||||
install/
|
||||
install-sh
|
||||
libltdl
|
||||
libtool
|
||||
ltmain.sh
|
||||
missing
|
||||
mkinstalldirs
|
||||
stamp-*
|
||||
.dirstamp
|
||||
*.orig
|
||||
*.rej
|
||||
subprojects/*/
|
||||
|
|
|
|||
121
.gitlab-ci.yml
121
.gitlab-ci.yml
|
|
@ -1,121 +0,0 @@
|
|||
# The build has two stages. The 'container' stage is used to build a Docker
|
||||
# container and push it to the project's container registry on fd.o GitLab.
|
||||
# This step is only run when the tag for the container changes, else it is
|
||||
# effectively a no-op. All of this infrastructure is inherited from the
|
||||
# freedesktop/ci-templates repository which is the recommended way to set up CI
|
||||
# infrastructure on fd.o GitLab.
|
||||
#
|
||||
# Once the container stage is done, we move on to the 'build' stage where we
|
||||
# run meson build. Currently, tests are also run as part of the build stage as
|
||||
# there doesn't seem to be significant value to splitting the stages at the
|
||||
# moment.
|
||||
|
||||
# Create merge request pipelines for open merge requests, branch pipelines
|
||||
# otherwise. This allows MRs for new users to run CI.
|
||||
workflow:
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
||||
- if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
|
||||
when: never
|
||||
- if: $CI_COMMIT_BRANCH
|
||||
|
||||
stages:
|
||||
- container
|
||||
- build
|
||||
|
||||
variables:
|
||||
# Update this tag when you want to trigger a rebuild the container in which
|
||||
# CI runs, for example when adding new packages to FDO_DISTRIBUTION_PACKAGES.
|
||||
# The tag is an arbitrary string that identifies the exact container
|
||||
# contents.
|
||||
FDO_DISTRIBUTION_TAG: '2023-08-13-00'
|
||||
FDO_DISTRIBUTION_VERSION: '20.04'
|
||||
FDO_UPSTREAM_REPO: 'pulseaudio/pulseaudio'
|
||||
|
||||
include:
|
||||
# We pull templates from master to avoid the overhead of periodically
|
||||
# scanning for changes upstream. This does means builds might occasionally
|
||||
# break due to upstream changing things, so if you see unexpected build
|
||||
# failures, this might be one cause.
|
||||
- project: 'freedesktop/ci-templates'
|
||||
ref: 'master'
|
||||
file: '/templates/ubuntu.yml'
|
||||
|
||||
build-container:
|
||||
extends: .fdo.container-build@ubuntu
|
||||
stage: container
|
||||
variables:
|
||||
GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image
|
||||
|
||||
# Remember to update FDO_DISTRIBUTION_TAG when modifying this package list!
|
||||
# Otherwise the changes won't have effect since an old container image will
|
||||
# be used.
|
||||
FDO_DISTRIBUTION_PACKAGES: >-
|
||||
autopoint
|
||||
bash-completion
|
||||
check
|
||||
curl
|
||||
dbus-x11
|
||||
doxygen
|
||||
g++
|
||||
gcc
|
||||
gettext
|
||||
git-core
|
||||
libasound2-dev
|
||||
libasyncns-dev
|
||||
libavahi-client-dev
|
||||
libbluetooth-dev
|
||||
libcap-dev
|
||||
libfftw3-dev
|
||||
libglib2.0-dev
|
||||
libgtk-3-dev
|
||||
libice-dev
|
||||
libjack-dev
|
||||
liblircclient-dev
|
||||
libltdl-dev
|
||||
liborc-0.4-dev
|
||||
libsbc-dev
|
||||
libsndfile1-dev
|
||||
libsoxr-dev
|
||||
libspeexdsp-dev
|
||||
libssl-dev
|
||||
libsystemd-dev
|
||||
libtdb-dev
|
||||
libudev-dev
|
||||
libwebrtc-audio-processing-dev
|
||||
libwrap0-dev
|
||||
libx11-xcb-dev
|
||||
libxcb1-dev
|
||||
libxml-parser-perl
|
||||
libxml2-utils
|
||||
libxtst-dev
|
||||
m4
|
||||
ninja-build
|
||||
pkg-config
|
||||
python3-setuptools
|
||||
systemd
|
||||
wget
|
||||
|
||||
build-meson:
|
||||
extends: .fdo.distribution-image@ubuntu
|
||||
stage: build
|
||||
script:
|
||||
# Install meson (higher than our min version to support our wrap file)
|
||||
- wget -q https://github.com/mesonbuild/meson/releases/download/0.63.2/meson-0.63.2.tar.gz
|
||||
- tar -xf meson-0.63.2.tar.gz
|
||||
- cd meson-0.63.2
|
||||
- python3 setup.py install
|
||||
- cd ..
|
||||
# needed to generate a version
|
||||
- git fetch https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git --tags
|
||||
# Do the actual build
|
||||
- meson build -Dwebrtc-aec=enabled
|
||||
- cd build
|
||||
- ninja
|
||||
- ulimit -c 0 # don't dump core files on tests that are supposed to assert
|
||||
- ninja test
|
||||
- ninja test-daemon
|
||||
- ninja dist
|
||||
artifacts:
|
||||
paths:
|
||||
- build/
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
### Warning
|
||||
Missing data may cause bugs to languish.
|
||||
|
||||
### Summary
|
||||
(Summarize the bug encountered concisely)
|
||||
|
||||
### environment
|
||||
Check to see if you have pa-info installed by running `which pa-info`
|
||||
If yes please run it
|
||||
If no please download and run https://gitlab.freedesktop.org/pulseaudio/pulseaudio/blob/master/src/utils/pa-info
|
||||
Attach the output to this bug report as pa-info.txt
|
||||
|
||||
### Steps to reproduce
|
||||
(How one can reproduce the issue - this is very important)
|
||||
|
||||
|
||||
### What is the current *bug* behavior?
|
||||
(What actually happens)
|
||||
|
||||
### What is the expected *correct* behavior?
|
||||
(What you should see instead)
|
||||
|
|
@ -1,67 +0,0 @@
|
|||
# Contribution Guidelines
|
||||
|
||||
## A note for contributors
|
||||
|
||||
Thank you for your contribution!
|
||||
|
||||
Please make sure you tick the box labelled `Allow commits from members who can
|
||||
merge to the target branch`. This allows us to make minor edits ourselves, and
|
||||
then automatically rebase and merge your changes.
|
||||
|
||||
PulseAudio is currently maintained by three volunteer developers in their free
|
||||
time (probably amounting to less than one full time developer), which is not
|
||||
really enough, given the project size and scope. For this reason bug reports
|
||||
and patch submissions are sometimes handled very slowly.
|
||||
|
||||
For non-trivial patches, we meet biweekly on IRC to discuss and prioritise
|
||||
outstanding MRs. If you haven't heard from us a few days after you create the
|
||||
MR, please take a look at [the patch status
|
||||
page](https://www.freedesktop.org/wiki/Software/PulseAudio/PatchStatus/).
|
||||
|
||||
If you don't see your MR in that list either, please don't hesitate to drop a
|
||||
comment pinging us, and we'll try to at least respond and make sure your
|
||||
request is tracked on that list.
|
||||
|
||||
## Coding Style
|
||||
|
||||
Please take a look at the [coding style
|
||||
documentation](https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/Developer/CodingStyle/)
|
||||
on our wiki.
|
||||
|
||||
## Commit messagse
|
||||
|
||||
We follow the standard git commit message format of a summary on the first line
|
||||
(<=50 characterss for preference, <=72 characters otherwise), followed by a new
|
||||
line, followed by a detailed commit message. An additional line at the end may
|
||||
link to an issue being fixed by this MR.
|
||||
|
||||
The first line is usually a short description of "what" your commit does, and
|
||||
the rest of the message describes the "why", along with any additional
|
||||
information that readers might need to understand the rationale for the change.
|
||||
If in doubt, more verbose is better than less.
|
||||
|
||||
If you need to describe the "how" of the commit, that is usually best
|
||||
documented along with the code itself.
|
||||
|
||||
Commit messages are prefixed with the subsystem being affected. Your best bet
|
||||
to figure out what is appropriate is to look at previous commit messages. An
|
||||
example:
|
||||
|
||||
```
|
||||
sink: Reduce chat sink priority
|
||||
|
||||
Some gaming sound cards have custom profiles with analog-game and
|
||||
analog-chat mappings that exist simultaneously. The game sink should
|
||||
have higher priority than the chat sink, but currently there's no way to
|
||||
affect the sink priorities from the profile-set configuration (the
|
||||
mapping priority is not propagated to the sink priority).
|
||||
|
||||
I first thought about adding the mapping priority to the sink priority,
|
||||
but that could mess up the prioritization system in
|
||||
pa_device_init_priority(). I ended up checking for the intended roles
|
||||
property to reduce the chat sink priority. I also reduced the iec958
|
||||
priority so that the chat and iec958 sinks don't end up with the same
|
||||
priority.
|
||||
|
||||
Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/818
|
||||
```
|
||||
|
|
@ -1,73 +0,0 @@
|
|||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as
|
||||
contributors and maintainers pledge to making participation in our project and
|
||||
our community a harassment-free experience for everyone, regardless of age, body
|
||||
size, disability, ethnicity, sex characteristics, gender identity and expression,
|
||||
level of experience, education, socio-economic status, nationality, personal
|
||||
appearance, race, religion, or sexual identity and orientation.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment
|
||||
include:
|
||||
|
||||
* Using welcoming and inclusive language
|
||||
* Being respectful of differing viewpoints and experiences
|
||||
* Gracefully accepting constructive criticism
|
||||
* Focusing on what is best for the community
|
||||
* Showing empathy towards other community members
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
|
||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
||||
advances
|
||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or electronic
|
||||
address, without explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Our Responsibilities
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of acceptable
|
||||
behavior and are expected to take appropriate and fair corrective action in
|
||||
response to any instances of unacceptable behavior.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit, or
|
||||
reject comments, commits, code, wiki edits, issues, and other contributions
|
||||
that are not aligned to this Code of Conduct, or to ban temporarily or
|
||||
permanently any contributor for other behaviors that they deem inappropriate,
|
||||
threatening, offensive, or harmful.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies both within project spaces and in public spaces
|
||||
when an individual is representing the project or its community. Examples of
|
||||
representing a project or community include using an official project e-mail
|
||||
address, posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event. Representation of a project may be
|
||||
further defined and clarified by project maintainers.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported by contacting the project team at pulseaudio-maintainers@lists.freedesktop.org. All
|
||||
complaints will be reviewed and investigated and will result in a response that
|
||||
is deemed necessary and appropriate to the circumstances. The project team is
|
||||
obligated to maintain confidentiality with regard to the reporter of an incident.
|
||||
Further details of specific enforcement policies may be posted separately.
|
||||
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in good
|
||||
faith may face temporary or permanent repercussions as determined by other
|
||||
members of the project's leadership.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
||||
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
|
|
@ -1,67 +0,0 @@
|
|||
# Contribution Guidelines
|
||||
|
||||
## A note for contributors
|
||||
|
||||
Thank you for your contribution!
|
||||
|
||||
Please make sure you tick the box labelled `Allow commits from members who can
|
||||
merge to the target branch`. This allows us to make minor edits ourselves, and
|
||||
then automatically rebase and merge your changes.
|
||||
|
||||
PulseAudio is currently maintained by three volunteer developers in their free
|
||||
time (probably amounting to less than one full time developer), which is not
|
||||
really enough, given the project size and scope. For this reason bug reports
|
||||
and patch submissions are sometimes handled very slowly.
|
||||
|
||||
For non-trivial patches, we meet biweekly on IRC to discuss and prioritise
|
||||
outstanding MRs. If you haven't heard from us a few days after you create the
|
||||
MR, please take a look at [the patch status
|
||||
page](https://www.freedesktop.org/wiki/Software/PulseAudio/PatchStatus/).
|
||||
|
||||
If you don't see your MR in that list either, please don't hesitate to drop a
|
||||
comment pinging us, and we'll try to at least respond and make sure your
|
||||
request is tracked on that list.
|
||||
|
||||
## Coding Style
|
||||
|
||||
Please take a look at the [coding style
|
||||
documentation](https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/Developer/CodingStyle/)
|
||||
on our wiki.
|
||||
|
||||
## Commit messages
|
||||
|
||||
We follow the standard git commit message format of a summary on the first line
|
||||
(<=50 characters for preference, <=72 characters otherwise), followed by a new
|
||||
line, followed by a detailed commit message. An additional line at the end may
|
||||
link to an issue being fixed by this MR.
|
||||
|
||||
The first line is usually a short description of "what" your commit does, and
|
||||
the rest of the message describes the "why", along with any additional
|
||||
information that readers might need to understand the rationale for the change.
|
||||
If in doubt, more verbose is better than less.
|
||||
|
||||
If you need to describe the "how" of the commit, that is usually best
|
||||
documented along with the code itself.
|
||||
|
||||
Commit messages are prefixed with the subsystem being affected. Your best bet
|
||||
to figure out what is appropriate is to look at previous commit messages. An
|
||||
example:
|
||||
|
||||
```
|
||||
sink: Reduce chat sink priority
|
||||
|
||||
Some gaming sound cards have custom profiles with analog-game and
|
||||
analog-chat mappings that exist simultaneously. The game sink should
|
||||
have higher priority than the chat sink, but currently there's no way to
|
||||
affect the sink priorities from the profile-set configuration (the
|
||||
mapping priority is not propagated to the sink priority).
|
||||
|
||||
I first thought about adding the mapping priority to the sink priority,
|
||||
but that could mess up the prioritization system in
|
||||
pa_device_init_priority(). I ended up checking for the intended roles
|
||||
property to reduce the chat sink priority. I also reduced the iec958
|
||||
priority so that the chat and iec958 sinks don't end up with the same
|
||||
priority.
|
||||
|
||||
Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/818
|
||||
```
|
||||
43
LICENSE
43
LICENSE
|
|
@ -1,40 +1,17 @@
|
|||
All PulseAudio source files, except as noted below, are licensed under the GNU
|
||||
Lesser General Public License. (see file LGPL for details)
|
||||
All PulseAudio source files are licensed under the GNU Lesser General Public
|
||||
License. (see file LGPL for details)
|
||||
|
||||
However, the server side has optional GPL dependencies. These include the
|
||||
libsamplerate and gdbm (core libraries), LIRC (lirc module) and FFTW (equalizer
|
||||
module), although others may also be included in the future. If PulseAudio is
|
||||
compiled with these optional components, this effectively downgrades the
|
||||
license of the server part to GPL (see the file GPL for details), exercising
|
||||
section 3 of the LGPL. In such circumstances, you should treat the client
|
||||
library (libpulse) of PulseAudio as being LGPL licensed and the server part
|
||||
(libpulsecore) as being GPL licensed. Since the PulseAudio daemon, tests,
|
||||
various utilities/helpers and the modules link to libpulsecore and/or the afore
|
||||
mentioned optional GPL dependencies they are of course also GPL licensed also
|
||||
in this scenario.
|
||||
However, the server side links to the GPL-only library 'libsamplerate' which
|
||||
practically downgrades the license of the server part to GPL (see file GPL for
|
||||
details), exercising section 3 of the LGPL.
|
||||
|
||||
In addition to this, if D-Bus support is enabled, the PulseAudio client library
|
||||
(libpulse) MAY need to be licensed under the GPL, depending on the license
|
||||
adopted for libdbus. libdbus is licensed under either of the Academic Free
|
||||
License 2.1 or GPL 2.0 or above. Which of these applies is your choice, and the
|
||||
result affects the licensing of libpulse and thus, potentially, all programs
|
||||
that link to libpulse.
|
||||
Hence you should treat the client library ('libpulse') of PulseAudio as being
|
||||
LGPL licensed and the server part ('libpulsecore') as being GPL licensed. Since
|
||||
the PulseAudio daemon and the modules link to 'libpulsecore' they are of course
|
||||
also GPL licensed.
|
||||
|
||||
Andre Adrian's echo cancellation implementation is licensed under a less
|
||||
restrictive license - see src/modules/echo-cancel/adrian-license.txt for
|
||||
details.
|
||||
|
||||
Some other files pulled into PA source (i.e. reference implementations that are
|
||||
considered too small and stable to be considered as an external library) use the
|
||||
more permissive MIT license. These include the device reservation DBus protocol
|
||||
and realtime kit implementations.
|
||||
|
||||
A more permissive BSD-style license is used for LFE filters, see
|
||||
src/pulsecore/filter/LICENSE.WEBKIT for details.
|
||||
|
||||
Additionally, a more permissive Sun license is used for code that performs
|
||||
u-law, A-law and linear PCM conversions.
|
||||
|
||||
While we attempt to provide a summary here, it is the ultimate responsibility of
|
||||
the packager to ensure the components they use in their build of PulseAudio
|
||||
meets their license requirements.
|
||||
-- Lennart Poettering, April 20th, 2006.
|
||||
|
|
|
|||
88
Makefile.am
Normal file
88
Makefile.am
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
# 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 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.
|
||||
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
|
||||
EXTRA_DIST = \
|
||||
bootstrap.sh \
|
||||
git-version-gen \
|
||||
LICENSE \
|
||||
GPL \
|
||||
LGPL \
|
||||
doxygen/Makefile.am \
|
||||
doxygen/Makefile.in \
|
||||
doxygen/doxygen.conf.in \
|
||||
README \
|
||||
todo \
|
||||
vala/libpulse.vapi
|
||||
|
||||
SUBDIRS = src doxygen man po
|
||||
|
||||
MAINTAINERCLEANFILES =
|
||||
noinst_DATA =
|
||||
|
||||
vapidir = $(datadir)/vala/vapi
|
||||
vapi_DATA = vala/libpulse.vapi
|
||||
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = libpulse.pc libpulse-simple.pc
|
||||
|
||||
if HAVE_AVAHI
|
||||
pkgconfig_DATA += \
|
||||
libpulse-browse.pc
|
||||
endif
|
||||
|
||||
if HAVE_GLIB20
|
||||
pkgconfig_DATA += \
|
||||
libpulse-mainloop-glib.pc
|
||||
endif
|
||||
|
||||
homepage: all dist doxygen
|
||||
test -d $$HOME/homepage/private
|
||||
mkdir -p $$HOME/homepage/private/projects/pulseaudio $$HOME/homepage/private/projects/pulseaudio/doxygen
|
||||
cp pulseaudio-@PACKAGE_VERSION@.tar.gz $$HOME/homepage/private/projects/pulseaudio
|
||||
cp -a doxygen/html/* $$HOME/homepage/private/projects/pulseaudio/doxygen
|
||||
|
||||
doxygen:
|
||||
$(MAKE) -C doxygen doxygen
|
||||
|
||||
eolspace:
|
||||
find \( -name '*.c' -o -name '*.h' -o -name 'Makefile.am' \) -exec perl -i -pe 's/\s+\n$$/\1\n/;' \{\} \;
|
||||
|
||||
untabify:
|
||||
find \( -name '*.c' -o -name '*.h' \) -exec perl -i -pe 's/\t/ /g;' \{\} \;
|
||||
|
||||
fedora-snapshot: dist
|
||||
cp $(distdir).tar.gz $$HOME/cvs.fedora/pulseaudio/devel/$(distdir).tar.gz
|
||||
|
||||
dist-hook:
|
||||
if test -d .git ; then \
|
||||
test -z $$SKIP_GIT && git pull ; \
|
||||
chmod u+w ${distdir}/ChangeLog || true ; \
|
||||
( git-changelog.perl || echo "git-changelog.perl failed." ) > ${distdir}/ChangeLog 2>&1 ; \
|
||||
fi
|
||||
echo $(VERSION) > $(distdir)/.tarball-version
|
||||
|
||||
.PHONY: homepage distcleancheck doxygen
|
||||
|
||||
# see git-version-gen
|
||||
BUILT_SOURCES = $(top_srcdir)/.version
|
||||
$(top_srcdir)/.version:
|
||||
echo $(VERSION) > $@-t && mv $@-t $@
|
||||
|
||||
DISTCLEANFILES = \
|
||||
po/.intltool-merge-cache
|
||||
254
PROTOCOL
254
PROTOCOL
|
|
@ -30,7 +30,7 @@ SHM data transfer support
|
|||
|
||||
### v11, implemented by >= 0.9.7
|
||||
|
||||
Reply to PA_COMMAND_GET_SINK_INPUT_INFO, PA_COMMAND_GET_SINK_INPUT_INFO_LIST gets new field at the end:
|
||||
Reply to to PA_COMMAND_GET_SINK_INPUT_INFO, PA_COMMAND_GET_SINK_INPUT_INFO_LIST gets new field at the end:
|
||||
|
||||
mute
|
||||
|
||||
|
|
@ -203,257 +203,7 @@ new flag at end of CREATE_PLAYBACK_STREAM:
|
|||
|
||||
## v19, implemented by >= 0.9.22
|
||||
|
||||
New flag at the end of sink input and source output introspection data:
|
||||
New proplist field for sink input, source output introspection opcodes and at the end:
|
||||
|
||||
bool corked
|
||||
|
||||
## v20, implemented by >= 1.0
|
||||
|
||||
Two new flags at the end of sink input introspection data:
|
||||
|
||||
bool has_volume
|
||||
bool volume_writable
|
||||
|
||||
## v21, implemented by >= 1.0
|
||||
|
||||
Changes for format negotiation in the extended API.
|
||||
|
||||
New fields PA_COMMAND_CREATE_PLAYBACK_STREAM:
|
||||
|
||||
uint8_t n_formats
|
||||
format_info format1
|
||||
...
|
||||
format_info formatn
|
||||
|
||||
One new field in reply from PA_COMMAND_CREATE_PLAYBACK_STREAM:
|
||||
|
||||
format_info format
|
||||
|
||||
New fields in reply from PA_COMMAND_GET_SINK_INFO (and thus
|
||||
PA_COMMAND_GET_SINK_INFO_LIST)
|
||||
|
||||
uint8_t n_formats
|
||||
format_info format1
|
||||
...
|
||||
format_info formatn
|
||||
|
||||
One new field in reply from PA_COMMAND_GET_SINK_INPUT_INFO (and thus
|
||||
PA_COMMAND_GET_SINK_INPUT_INFO_LIST)
|
||||
|
||||
format_info format
|
||||
|
||||
## v22, implemented by >= 1.0
|
||||
|
||||
New fields PA_COMMAND_CREATE_RECORD_STREAM:
|
||||
|
||||
uint8_t n_formats
|
||||
format_info format1
|
||||
...
|
||||
format_info formatn
|
||||
volume
|
||||
bool muted
|
||||
bool volume_set
|
||||
bool muted_set
|
||||
bool relative_volume
|
||||
bool passthrough
|
||||
|
||||
One new field in reply from PA_COMMAND_CREATE_RECORD_STREAM:
|
||||
|
||||
format_info format
|
||||
|
||||
New fields in reply from PA_COMMAND_GET_SOURCE_INFO (and thus
|
||||
PA_COMMAND_GET_SOURCE_INFO_LIST)
|
||||
|
||||
uint8_t n_formats
|
||||
format_info format1
|
||||
...
|
||||
format_info formatn
|
||||
|
||||
Five new fields in reply from PA_COMMAND_GET_SOURCE_OUTPUT_INFO (and thus
|
||||
PA_COMMAND_GET_SOURCE_OUTPUT_INFO_LIST)
|
||||
|
||||
volume
|
||||
bool mute
|
||||
bool has_volume
|
||||
bool volume_writable
|
||||
format_info format
|
||||
|
||||
## v23, implemented by >= 1.0
|
||||
|
||||
New field in PA_COMMAND_UNDERFLOW:
|
||||
|
||||
int64_t index
|
||||
|
||||
## v24, implemented by >= 2.0
|
||||
|
||||
New field in all commands that send/receive port introspection data
|
||||
(PA_COMMAND_GET_(SOURCE|SINK)_INFO,
|
||||
PA_COMMAND_GET_(SOURCE|SINK)_INFO_LIST):
|
||||
|
||||
uint32_t available
|
||||
|
||||
The field is added once for every port.
|
||||
|
||||
## v25, implemented by >= 2.0
|
||||
|
||||
When port availability changes, send a subscription event for the
|
||||
owning card.
|
||||
|
||||
## v26, implemented by >= 2.0
|
||||
|
||||
In reply from PA_COMMAND_GET_CARD_INFO (and thus
|
||||
PA_COMMAND_GET_CARD_INFO_LIST), the following is added:
|
||||
|
||||
uint32_t n_ports
|
||||
|
||||
...followed by n_ports extended port entries, which look like this:
|
||||
|
||||
string name
|
||||
string description
|
||||
uint32_t priority
|
||||
uint32_t available
|
||||
uint8_t direction
|
||||
proplist
|
||||
uint32_t n_profiles
|
||||
string profile_name_1
|
||||
...
|
||||
string profile_name_n
|
||||
|
||||
Profile names must match earlier sent profile names for the same card.
|
||||
|
||||
## v27, implemented by >= 3.0
|
||||
|
||||
New opcodes:
|
||||
PA_COMMAND_SET_PORT_LATENCY_OFFSET
|
||||
|
||||
New field in the card commands that send/receive port introspection data
|
||||
PA_COMMAND_GET_CARD_INFO(_LIST)):
|
||||
|
||||
int64_t latency_offset
|
||||
|
||||
The field is added once for every port.
|
||||
|
||||
## v28, implemented by >= 4.0
|
||||
|
||||
New value for encoding format type in format_info
|
||||
PA_COMMAND_CREATE_(PLAYBACK|RECORDING)_STREAM and its reply,
|
||||
In reply from PA_COMMAND_GET_(SOURCE|SOURCE_OUTPUT|SINK|SINK_INPUT)_INFO[_LIST],
|
||||
SUBCOMMAND_SAVE_FORMATS, in reply from SUBCOMMAND_READ_FORMATS[_ALL]
|
||||
|
||||
(uint8_t ) PA_ENCODING_MPEG2_AAC_IEC61937 := 6
|
||||
|
||||
## v29, implemented by >= 5.0
|
||||
#
|
||||
New field in all commands that send/receive profile introspection data
|
||||
(PA_COMMAND_GET_CARD_INFO)
|
||||
|
||||
uint32 available
|
||||
|
||||
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.
|
||||
|
||||
## v31, implemented by >= 9.0
|
||||
|
||||
Memfd shared-memory support is now added to PulseAudio as an opt-in feature.
|
||||
Add 'enable-memfd=yes' to daemon's configuration to use memfds, instead of
|
||||
POSIX shm, by default.
|
||||
|
||||
Memfd is a simple memory sharing mechanism, added by the systemd/kdbus
|
||||
developers, to share pages between processes in an anonymous, no global
|
||||
registry needed, no mount-point required, relatively secure, manner.
|
||||
|
||||
PulseAudio memfd support builds the necessary (but not yet sufficient)
|
||||
groundwork for a better integration with per-app containers (e.g. xdg-app)
|
||||
|
||||
For further details on memfds in general, please check:
|
||||
|
||||
https://dvdhrm.wordpress.com/2014/06/10/memfd_create2/
|
||||
Archived at: http://www.webcitation.org/6gnHTy9Kr
|
||||
|
||||
Moreover, for both client and server, the second most-significant bit of
|
||||
the version tag is now used to flag memfd SHM support. On the way forward,
|
||||
the two most-significant _bytes_ of the version tag are now also reserved
|
||||
for flags.
|
||||
|
||||
PA_COMMAND_REGISTER_MEMFD_SHMID
|
||||
New command that can be sent both ways, from client to server and vice versa.
|
||||
This is needed to transfer a memfd pool's blocks without passing its fd every
|
||||
time, thus minimizing overhead and avoiding fd leaks.
|
||||
|
||||
The registration command above sends a packet with the pool's memfd fd as
|
||||
ancillary data. Such packet has an ID that uniquely identifies the pool's
|
||||
memfd memory area. Upon arrival, the other end (client or server) creates a
|
||||
permanent ID<->memfd mapping.
|
||||
|
||||
By doing so, there's need to reference the pool's memfd file descriptor any
|
||||
further -- just its ID. Thus both endpoints can then quickly and safely
|
||||
close their memfd file descriptors.
|
||||
|
||||
## v32, implemented by >= 10.0
|
||||
|
||||
Enable memfd transport by default.
|
||||
|
||||
This protocol bump was only created to mark 9.0 clients. Although they
|
||||
support memfd transport, such older clients has an iochannel bug that would
|
||||
break memfd audio if they're run in 32-bit mode over a 64-bit kernel. Thus
|
||||
influence these buggy libraries to use POSIX shared memory, by signalling
|
||||
memfd support only to 10.0+ clients.
|
||||
|
||||
Check commit 451d1d676237c81 for further details.
|
||||
|
||||
## v33, implemented by >= 13.0
|
||||
|
||||
Added two values to the pa_encoding_t enum:
|
||||
|
||||
PA_ENCODING_TRUEHD_IEC61937 := 7
|
||||
PA_ENCODING_DTSHD_IEC61937 := 8
|
||||
|
||||
## v34, implemented by >= 14.0
|
||||
|
||||
New fields in the port introspection data (duplicated for all port types:
|
||||
sink, source and card ports):
|
||||
|
||||
string availability_group
|
||||
uint32 type
|
||||
|
||||
## v35, implemented by >= 15.0
|
||||
|
||||
Added new command for communication with objects.
|
||||
|
||||
PA_COMMAND_SEND_OBJECT_MESSAGE:
|
||||
sends a message to an object identified by an object path
|
||||
|
||||
parameters:
|
||||
string object_path - unique path identifying the object
|
||||
string message - message name
|
||||
string message_parameters - additional parameters if required (may be
|
||||
NULL, which should be treated the same as an
|
||||
empty string)
|
||||
|
||||
The command returns a string, which may be empty or NULL (NULL should be
|
||||
treated the same as an empty string).
|
||||
|
||||
#### 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.
|
||||
## Don't forget to test module-tunnel-{source,sink} when pushing protocol
|
||||
## changes.
|
||||
|
|
|
|||
|
|
@ -1,12 +0,0 @@
|
|||
set(PULSEAUDIO_FOUND TRUE)
|
||||
|
||||
set(PULSEAUDIO_VERSION_MAJOR @PA_MAJOR@)
|
||||
set(PULSEAUDIO_VERSION_MINOR @PA_MINOR@)
|
||||
set(PULSEAUDIO_VERSION @PA_MAJOR@.@PA_MINOR@)
|
||||
set(PULSEAUDIO_VERSION_STRING "@PA_MAJOR@.@PA_MINOR@")
|
||||
|
||||
find_path(PULSEAUDIO_INCLUDE_DIR pulse/pulseaudio.h HINTS "@PA_INCDIR@")
|
||||
find_library(PULSEAUDIO_LIBRARY NAMES pulse libpulse HINTS "@PA_LIBDIR@")
|
||||
ifelse(@HAVE_GLIB20@, 1, dnl
|
||||
find_library(PULSEAUDIO_MAINLOOP_LIBRARY NAMES pulse-mainloop-glib libpulse-mainloop-glib HINTS "@PA_LIBDIR@")
|
||||
)dnl
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
set(PACKAGE_VERSION @PA_MAJOR@.@PA_MINOR@)
|
||||
|
||||
if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}" )
|
||||
set(PACKAGE_VERSION_COMPATIBLE FALSE)
|
||||
else("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}" )
|
||||
set(PACKAGE_VERSION_COMPATIBLE TRUE)
|
||||
if( "${PACKAGE_FIND_VERSION}" STREQUAL "${PACKAGE_VERSION}")
|
||||
set(PACKAGE_VERSION_EXACT TRUE)
|
||||
endif( "${PACKAGE_FIND_VERSION}" STREQUAL "${PACKAGE_VERSION}")
|
||||
endif("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}" )
|
||||
|
||||
28
README
28
README
|
|
@ -4,22 +4,25 @@ WEB SITE:
|
|||
http://pulseaudio.org/
|
||||
|
||||
GIT:
|
||||
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
|
||||
git://git.0pointer.de/pulseaudio.git
|
||||
|
||||
GitLab:
|
||||
https://gitlab.freedesktop.org/pulseaudio/pulseaudio
|
||||
GITWEB:
|
||||
http://git.0pointer.de/?p=pulseaudio.git;a=summary
|
||||
|
||||
MAILING LIST:
|
||||
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
|
||||
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss
|
||||
|
||||
GIT COMMITS MAILING LIST:
|
||||
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-commits
|
||||
https://tango.0pointer.de/mailman/listinfo/pulseaudio-commits
|
||||
|
||||
TRAC/BUGZILLA TICKET CHANGES MAILING LIST:
|
||||
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-bugs
|
||||
TRAC TICKET CHANGES MAILING LIST:
|
||||
https://tango.0pointer.de/mailman/listinfo/pulseaudio-tickets
|
||||
|
||||
IRC:
|
||||
https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Community/#ircandmatrix
|
||||
#pulseaudio on irc.freenode.org
|
||||
|
||||
CIA:
|
||||
http://cia.navi.cx/stats/project/polypaudio
|
||||
|
||||
FRESHMEAT:
|
||||
http://freshmeat.net/projects/pulseaudio/
|
||||
|
|
@ -29,12 +32,3 @@ OHLOH:
|
|||
|
||||
AUTHORS:
|
||||
Several
|
||||
|
||||
HACKING:
|
||||
In order to run pulseaudio from the build dir:
|
||||
meson build
|
||||
meson compile -C build
|
||||
build/src/daemon/pulseaudio -n -F build/src/daemon/default.pa -p $(pwd)/build/src/modules/
|
||||
|
||||
SPELLING:
|
||||
PulseAudio
|
||||
|
|
|
|||
23
autogen.sh
Executable file
23
autogen.sh
Executable file
|
|
@ -0,0 +1,23 @@
|
|||
#!/bin/sh
|
||||
|
||||
# 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 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.
|
||||
|
||||
# Only there to make jhbuild happy
|
||||
|
||||
NOCONFIGURE=1 ./bootstrap.sh
|
||||
|
||||
exec ./configure "$@"
|
||||
100
bootstrap.sh
Executable file
100
bootstrap.sh
Executable file
|
|
@ -0,0 +1,100 @@
|
|||
#!/bin/bash
|
||||
|
||||
# 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 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.
|
||||
|
||||
VERSION=1.11
|
||||
|
||||
run_versioned() {
|
||||
local P
|
||||
local V
|
||||
|
||||
V=$(echo "$2" | sed -e 's,\.,,g')
|
||||
|
||||
if [ -e "`which $1$V 2> /dev/null`" ] ; then
|
||||
P="$1$V"
|
||||
else
|
||||
if [ -e "`which $1-$2 2> /dev/null`" ] ; then
|
||||
P="$1-$2"
|
||||
else
|
||||
P="$1"
|
||||
fi
|
||||
fi
|
||||
|
||||
shift 2
|
||||
"$P" "$@"
|
||||
}
|
||||
|
||||
set -ex
|
||||
|
||||
case $(uname) in
|
||||
*Darwin*)
|
||||
LIBTOOLIZE="glibtoolize"
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -f .git/hooks/pre-commit.sample -a ! -f .git/hooks/pre-commit ] ; then
|
||||
cp -p .git/hooks/pre-commit.sample .git/hooks/pre-commit && \
|
||||
chmod +x .git/hooks/pre-commit && \
|
||||
echo "Activated pre-commit hook."
|
||||
fi
|
||||
|
||||
if [ -f .tarball-version ]; then
|
||||
echo "Marking tarball version as modified."
|
||||
echo -n `cat .tarball-version | sed 's/-rebootstrapped$//'`-rebootstrapped >.tarball-version
|
||||
fi
|
||||
|
||||
# We check for this here, because if pkg-config is not found in the
|
||||
# system, it's likely that the pkg.m4 macro file is also not present,
|
||||
# which will make PKG_PROG_PKG_CONFIG be undefined and the generated
|
||||
# configure file faulty.
|
||||
if ! pkg-config --version &>/dev/null; then
|
||||
echo "pkg-config is required to bootstrap this program" &>/dev/null
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if type -p colorgcc > /dev/null ; then
|
||||
export CC=colorgcc
|
||||
fi
|
||||
|
||||
if [ "x$1" = "xam" ] ; then
|
||||
run_versioned automake "$VERSION" -a -c --foreign
|
||||
./config.status
|
||||
else
|
||||
rm -rf autom4te.cache
|
||||
rm -f config.cache
|
||||
|
||||
rm -f Makefile.am~ configure.ac~
|
||||
# Evil, evil, evil, evil hack
|
||||
sed 's/read dummy/\#/' `which gettextize` | bash -s -- --copy --force
|
||||
test -f Makefile.am~ && mv Makefile.am~ Makefile.am
|
||||
test -f configure.ac~ && mv configure.ac~ configure.ac
|
||||
|
||||
touch config.rpath
|
||||
test "x$LIBTOOLIZE" = "x" && LIBTOOLIZE=libtoolize
|
||||
|
||||
intltoolize --copy --force --automake
|
||||
"$LIBTOOLIZE" -c --force
|
||||
run_versioned aclocal "$VERSION" -I m4
|
||||
run_versioned autoconf 2.63 -Wall
|
||||
run_versioned autoheader 2.63
|
||||
run_versioned automake "$VERSION" --copy --foreign --add-missing
|
||||
|
||||
if test "x$NOCONFIGURE" = "x"; then
|
||||
CFLAGS="$CFLAGS -g -O0" ./configure --sysconfdir=/etc --localstatedir=/var --enable-force-preopen "$@"
|
||||
make clean
|
||||
fi
|
||||
fi
|
||||
72
build/orc.mak
Normal file
72
build/orc.mak
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
#
|
||||
# This is a makefile.am fragment to build Orc code.
|
||||
#
|
||||
# Define ORC_SOURCE and then include this file, such as:
|
||||
#
|
||||
# ORC_SOURCE=gstadderorc
|
||||
# include $(top_srcdir)/common/orc.mak
|
||||
#
|
||||
# This fragment will create tmp-orc.c and gstadderorc.h from
|
||||
# gstadderorc.orc.
|
||||
#
|
||||
# When 'make dist' is run at the top level, or 'make orc-update'
|
||||
# in a directory including this fragment, the generated source
|
||||
# files will be copied to $(ORC_SOURCE)-dist.[ch]. These files
|
||||
# should be checked in to git, since they are used if Orc is
|
||||
# disabled.
|
||||
#
|
||||
# Note that this file defines BUILT_SOURCES, so any later usage
|
||||
# of BUILT_SOURCES in the Makefile.am that includes this file
|
||||
# must use '+='.
|
||||
#
|
||||
|
||||
|
||||
EXTRA_DIST += $(ORC_SOURCE).orc
|
||||
|
||||
ORC_NODIST_SOURCES = tmp-orc.c $(ORC_SOURCE).h
|
||||
BUILT_SOURCES += tmp-orc.c $(ORC_SOURCE).h
|
||||
|
||||
|
||||
orc-update: tmp-orc.c $(ORC_SOURCE).h
|
||||
cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c
|
||||
cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h
|
||||
|
||||
orcc_v_gen = $(orcc_v_gen_$(V))
|
||||
orcc_v_gen_ = $(orcc_v_gen_$(AM_DEFAULT_VERBOSITY))
|
||||
orcc_v_gen_0 = @echo " ORCC $@";
|
||||
|
||||
cp_v_gen = $(cp_v_gen_$(V))
|
||||
cp_v_gen_ = $(cp_v_gen_$(AM_DEFAULT_VERBOSITY))
|
||||
cp_v_gen_0 = @echo " CP $@";
|
||||
|
||||
if HAVE_ORC
|
||||
tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc
|
||||
$(orcc_v_gen)$(ORCC) --implementation -o $(builddir)/tmp-orc.c $(srcdir)/$(ORC_SOURCE).orc
|
||||
|
||||
$(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc
|
||||
mkdir -p $$(dirname $(builddir)/$(ORC_SOURCE).h)
|
||||
$(orcc_v_gen)$(ORCC) --header -o $(builddir)/$(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE).orc
|
||||
else
|
||||
tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc
|
||||
$(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.c tmp-orc.c
|
||||
|
||||
$(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc
|
||||
$(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.h $(ORC_SOURCE).h
|
||||
endif
|
||||
|
||||
clean-local: clean-orc
|
||||
.PHONY: clean-orc
|
||||
clean-orc:
|
||||
rm -f tmp-orc.c $(ORC_SOURCE).h
|
||||
|
||||
dist-hook: dist-hook-orc
|
||||
.PHONY: dist-hook-orc
|
||||
dist-hook-orc: tmp-orc.c $(ORC_SOURCE).h
|
||||
rm -f tmp-orc.c~
|
||||
cmp -s tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c || \
|
||||
cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c
|
||||
cmp -s $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h || \
|
||||
cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h
|
||||
mkdir -p $$(dirname $(ORC_SOURCE))
|
||||
cp -p $(srcdir)/$(ORC_SOURCE)-dist.c $(distdir)/$$(dirname $(ORC_SOURCE))
|
||||
cp -p $(srcdir)/$(ORC_SOURCE)-dist.h $(distdir)/$$(dirname $(ORC_SOURCE))
|
||||
1673
configure.ac
Normal file
1673
configure.ac
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -1,18 +0,0 @@
|
|||
/* Coverity Scan model
|
||||
* Copyright (C) 2017 Peter Meerwald-Stadler <pmeerw@pmeerw.net>
|
||||
*
|
||||
* This is a modeling file for Coverity Scan which helps to avoid false
|
||||
* positives and increase scanning accuracy by explaining code Coverity
|
||||
* can't see (out of tree libraries); the model file must be uploaded by
|
||||
* an admin to:
|
||||
* https://scan.coverity.com/projects/pulseaudio?tab=analysis_settings
|
||||
*/
|
||||
|
||||
void fail(void) {
|
||||
__coverity_panic__();
|
||||
}
|
||||
|
||||
void fail_unless(int x) {
|
||||
if (!x)
|
||||
__coverity_panic__();
|
||||
}
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
Message API reference
|
||||
|
||||
The message API allows any object within pulseaudio to register a message
|
||||
handler. A message handler is a function that can be called by clients using
|
||||
PA_COMMAND_SEND_OBJECT_MESSAGE. A message consists at least of an object path
|
||||
and a message command, both specified as strings. Additional parameters can
|
||||
be specified using a single string in JSON format, but are not mandatory.
|
||||
|
||||
The message handler returns an error number as defined in def.h and also returns
|
||||
a string in the "response" variable. Non-empty response will be in JSON format.
|
||||
|
||||
The reference further down lists available messages, their parameters
|
||||
and return values.
|
||||
|
||||
Reference:
|
||||
|
||||
Object path: /core
|
||||
Message: list-handlers
|
||||
Parameters: None
|
||||
Return value: JSON array of handler description objects
|
||||
[{"name":"Handler name","description":"Description"} ...]
|
||||
|
||||
Object path: /card/bluez_card.XX_XX_XX_XX_XX_XX/bluez
|
||||
Message: list-codecs
|
||||
Parameters: None
|
||||
Return value: JSON array of codec description objects
|
||||
[{"name":"codec1","description":"Codec 1"} ...]
|
||||
|
||||
Object path: /card/bluez_card.XX_XX_XX_XX_XX_XX/bluez
|
||||
Message: get-codec
|
||||
Parameters: None
|
||||
Return value: "codec name"
|
||||
|
||||
Object path: /card/bluez_card.XX_XX_XX_XX_XX_XX/bluez
|
||||
Message: switch-codec
|
||||
Parameters: "codec name"
|
||||
Return value: none
|
||||
|
||||
Description: Set if card profile selection should be sticky instead of being automated
|
||||
Object path: /card/<card_name>
|
||||
Message: set-profile-sticky
|
||||
Parameters: JSON "true" or "false"
|
||||
Return value: none
|
||||
|
||||
Description: Get if card profile selection should be sticky instead of being automated
|
||||
Object path: /card/<card_name>
|
||||
Message: get-profile-sticky
|
||||
Parameters: None
|
||||
Return value: JSON "true" or "false"
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
# This is an example fallback table file for module-stream-restore.
|
||||
# Lines starting with '#' or ';' are regarded as comments and ignored.
|
||||
# Empty lines are allowed.
|
||||
#
|
||||
# Each non-comment and non-empty line defines the default volume
|
||||
# for one stream-restore database key. For example:
|
||||
|
||||
sink-input-by-media-role:phone -4.2
|
||||
|
||||
# That line sets the volume of sink inputs with media role "phone"
|
||||
# to -4.2 dB (relative to the sink volume), if the
|
||||
# "sink-input-by-media-role:phone" key doesn't already exist in the
|
||||
# stream-restore database. Positive dB values are not allowed.
|
||||
6
doxygen/.gitignore
vendored
6
doxygen/.gitignore
vendored
|
|
@ -1,4 +1,2 @@
|
|||
/doxygen.conf
|
||||
/html/
|
||||
/Makefile
|
||||
/Makefile.in
|
||||
doxygen.conf
|
||||
html
|
||||
|
|
|
|||
24
doxygen/Makefile.am
Normal file
24
doxygen/Makefile.am
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
# 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 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.
|
||||
|
||||
doxygen: doxygen.conf
|
||||
doxygen $<
|
||||
|
||||
clean-local:
|
||||
-rm -rf html
|
||||
|
||||
.PHONY: all doxygen
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,15 +0,0 @@
|
|||
doxygen = find_program('doxygen', required: get_option('doxygen'))
|
||||
if not doxygen.found()
|
||||
subdir_done()
|
||||
endif
|
||||
|
||||
cdata.set('DOXYGEN_OUTPUT_DIRECTORY', meson.current_build_dir())
|
||||
|
||||
doxygen_conf = configure_file(
|
||||
input : 'doxygen.conf.in',
|
||||
output : 'doxygen.conf',
|
||||
configuration : cdata,
|
||||
)
|
||||
|
||||
run_target('doxygen',
|
||||
command : [doxygen, doxygen_conf])
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
# Print a version string.
|
||||
scriptversion=2012-09-25.20
|
||||
scriptversion=2008-04-08.07
|
||||
|
||||
# Copyright (C) 2007-2008 Free Software Foundation
|
||||
#
|
||||
|
|
@ -15,7 +15,9 @@ scriptversion=2012-09-25.20
|
|||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
# 02110-1301, USA.
|
||||
|
||||
# This script is derived from GIT-VERSION-GEN from GIT: http://git.or.cz/.
|
||||
# It may be run two ways:
|
||||
|
|
@ -65,7 +67,6 @@ scriptversion=2012-09-25.20
|
|||
# echo $(VERSION) > $@-t && mv $@-t $@
|
||||
# dist-hook:
|
||||
# echo $(VERSION) > $(distdir)/.tarball-version
|
||||
# echo $(VERSION) > $(distdir)/.version
|
||||
|
||||
case $# in
|
||||
1) ;;
|
||||
|
|
@ -75,7 +76,6 @@ esac
|
|||
tarball_version_file=$1
|
||||
nl='
|
||||
'
|
||||
v=
|
||||
|
||||
# First see if there is a tarball-only version file.
|
||||
# then try "git describe", then default.
|
||||
|
|
@ -84,43 +84,24 @@ then
|
|||
v=`cat $tarball_version_file` || exit 1
|
||||
case $v in
|
||||
*$nl*) v= ;; # reject multi-line output
|
||||
[0-9]*)
|
||||
echo "$v" | tr -d '\012'
|
||||
exit 0
|
||||
;;
|
||||
[0-9]*) ;;
|
||||
*) v= ;;
|
||||
esac
|
||||
test -z "$v" \
|
||||
&& echo "$0: WARNING: $tarball_version_file seems to be damaged" 1>&2
|
||||
fi
|
||||
|
||||
# This is presently used by the GNOME-OSTree build system; it
|
||||
# helps support the case where the meta-build system has already
|
||||
# determined the git revision, but we may not be able to run "git describe"
|
||||
# because we're inside a chroot.
|
||||
if test -n "$GIT_DESCRIBE_FOR_BUILD";
|
||||
then
|
||||
v=$GIT_DESCRIBE_FOR_BUILD
|
||||
fi
|
||||
|
||||
if test -n "$v"
|
||||
then
|
||||
: # use $v
|
||||
elif test -e .git \
|
||||
&& v=`git describe --abbrev=4 --match='v[0-9]*' HEAD 2>/dev/null` \
|
||||
&& [ -n "$v" ]
|
||||
elif test -d .git \
|
||||
&& v=`git describe --abbrev=4 --match='v*' HEAD 2>/dev/null \
|
||||
|| git describe --abbrev=4 HEAD 2>/dev/null` \
|
||||
&& case $v in
|
||||
v[0-9]*) ;;
|
||||
*) (exit 1) ;;
|
||||
esac
|
||||
then
|
||||
# If we are on a "dev" tag, we need to check that it is not the same
|
||||
# reference as the a previous version tag (this only happens when we are
|
||||
# working with a release tag).
|
||||
# NB The below trick relies on the $v being an exact tag to work which
|
||||
# will only work when HEAD == tag. When further commits have been made on top
|
||||
# of the tag, the $v will be supplimented with the number of commits since
|
||||
# that tag and the commit ref of the most recent commit and thus will
|
||||
# fail the test below (as intended)
|
||||
v2=`git describe --abbrev=4 --match='v[0-9]\.[0-9]' --contains $v 2>/dev/null | cut -d'^' -f1`
|
||||
[ -n "$v2" ] && v=$v2
|
||||
|
||||
# Is this a new git that lists number of commits since the last
|
||||
# tag or the previous older version that did not?
|
||||
# Newer: v6.10-77-g0f8faeb
|
||||
|
|
@ -143,8 +124,7 @@ then
|
|||
# v=`echo "$v" | sed 's/-/./;s/\(.*\)-g/\1-/'`;
|
||||
:
|
||||
else
|
||||
echo 1>&2 "$0: Failed to determine git revision"
|
||||
exit 1
|
||||
v=UNKNOWN
|
||||
fi
|
||||
|
||||
v=`echo "$v" |sed 's/^v//'`
|
||||
|
|
|
|||
12
libpulse-browse.pc.in
Normal file
12
libpulse-browse.pc.in
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
libdir=@libdir@
|
||||
includedir=@includedir@
|
||||
|
||||
Name: libpulse-browse
|
||||
Description: PulseAudio Network Browsing Interface
|
||||
Version: @PACKAGE_VERSION@
|
||||
Libs: -L${libdir} -lpulse-browse @PTHREAD_LIBS@
|
||||
Libs.private: -lpulsecommon-@PA_MAJORMINOR@
|
||||
Cflags: -I${includedir} -D_REENTRANT
|
||||
Requires: libpulse
|
||||
|
|
@ -7,6 +7,6 @@ Name: libpulse-mainloop-glib
|
|||
Description: PulseAudio GLib 2.0 Main Loop Wrapper
|
||||
Version: @PACKAGE_VERSION@
|
||||
Libs: -L${libdir} -lpulse-mainloop-glib @PTHREAD_LIBS@
|
||||
Libs.private: -L${libdir}/pulseaudio -lpulsecommon-@PA_MAJORMINOR@
|
||||
Libs.private: -lpulsecommon-@PA_MAJORMINOR@
|
||||
Cflags: -I${includedir} -D_REENTRANT
|
||||
Requires: libpulse glib-2.0
|
||||
|
|
|
|||
|
|
@ -7,6 +7,6 @@ Name: libpulse-simple
|
|||
Description: PulseAudio Simplified Synchronous Client Interface
|
||||
Version: @PACKAGE_VERSION@
|
||||
Libs: -L${libdir} -lpulse-simple @PTHREAD_LIBS@
|
||||
Libs.private: -L${libdir}/pulseaudio -lpulsecommon-@PA_MAJORMINOR@
|
||||
Libs.private: -lpulsecommon-@PA_MAJORMINOR@
|
||||
Cflags: -I${includedir} -D_REENTRANT
|
||||
Requires: libpulse
|
||||
|
|
|
|||
|
|
@ -8,5 +8,5 @@ Name: libpulse
|
|||
Description: PulseAudio Client Interface
|
||||
Version: @PACKAGE_VERSION@
|
||||
Libs: -L${libdir} -lpulse @PTHREAD_LIBS@
|
||||
Libs.private: -L${libdir}/pulseaudio -lpulsecommon-@PA_MAJORMINOR@
|
||||
Libs.private: -lpulsecommon-@PA_MAJORMINOR@
|
||||
Cflags: -I${includedir} -D_REENTRANT
|
||||
|
|
|
|||
17
m4/.gitignore
vendored
Normal file
17
m4/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
ChangeLog
|
||||
gettext.m4
|
||||
iconv.m4
|
||||
lib-ld.m4
|
||||
lib-link.m4
|
||||
lib-prefix.m4
|
||||
nls.m4
|
||||
po.m4
|
||||
progtest.m4
|
||||
argz.m4
|
||||
intltool.m4
|
||||
libtool.m4
|
||||
ltdl.m4
|
||||
ltoptions.m4
|
||||
ltsugar.m4
|
||||
ltversion.m4
|
||||
lt~obsolete.m4
|
||||
19
m4/acx_libwrap.m4
Normal file
19
m4/acx_libwrap.m4
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
AC_DEFUN([ACX_LIBWRAP], [
|
||||
LIBWRAP_LIBS=
|
||||
saved_LIBS="$LIBS"
|
||||
LIBS="$LIBS -lwrap"
|
||||
AC_MSG_CHECKING([for tcpwrap library and headers])
|
||||
AC_LINK_IFELSE(
|
||||
AC_LANG_PROGRAM(
|
||||
[#include <tcpd.h>
|
||||
#include <syslog.h>
|
||||
int allow_severity = LOG_INFO;
|
||||
int deny_severity = LOG_WARNING;],
|
||||
[struct request_info *req;
|
||||
return hosts_access (req);]),
|
||||
[AC_DEFINE(HAVE_LIBWRAP, [], [Have tcpwrap?])
|
||||
LIBWRAP_LIBS="-lwrap"
|
||||
AC_MSG_RESULT(yes)],
|
||||
[AC_MSG_RESULT(no)])
|
||||
LIBS="$saved_LIBS"
|
||||
])
|
||||
6
m4/acx_lirc.m4
Normal file
6
m4/acx_lirc.m4
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
AC_DEFUN([ACX_LIRC], [
|
||||
LIRC_CFLAGS=
|
||||
LIRC_LIBS=
|
||||
AC_CHECK_HEADER(lirc/lirc_client.h,[AC_CHECK_LIB(lirc_client,lirc_init,[HAVE_LIRC=1
|
||||
LIRC_LIBS=-llirc_client],HAVE_LIRC=0)],HAVE_LIRC=0)
|
||||
])
|
||||
348
m4/acx_pthread.m4
Normal file
348
m4/acx_pthread.m4
Normal file
|
|
@ -0,0 +1,348 @@
|
|||
dnl @synopsis ACX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
|
||||
dnl
|
||||
dnl @summary figure out how to build C programs using POSIX threads
|
||||
dnl
|
||||
dnl This macro figures out how to build C programs using POSIX threads.
|
||||
dnl It sets the PTHREAD_LIBS output variable to the threads library and
|
||||
dnl linker flags, and the PTHREAD_CFLAGS output variable to any special
|
||||
dnl C compiler flags that are needed. (The user can also force certain
|
||||
dnl compiler flags/libs to be tested by setting these environment
|
||||
dnl variables.)
|
||||
dnl
|
||||
dnl Also sets PTHREAD_CC to any special C compiler that is needed for
|
||||
dnl multi-threaded programs (defaults to the value of CC otherwise).
|
||||
dnl (This is necessary on AIX to use the special cc_r compiler alias.)
|
||||
dnl
|
||||
dnl NOTE: You are assumed to not only compile your program with these
|
||||
dnl flags, but also link it with them as well. e.g. you should link
|
||||
dnl with $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS
|
||||
dnl $LIBS
|
||||
dnl
|
||||
dnl If you are only building threads programs, you may wish to use
|
||||
dnl these variables in your default LIBS, CFLAGS, and CC:
|
||||
dnl
|
||||
dnl LIBS="$PTHREAD_LIBS $LIBS"
|
||||
dnl CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
||||
dnl CC="$PTHREAD_CC"
|
||||
dnl
|
||||
dnl In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute
|
||||
dnl constant has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to
|
||||
dnl that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
|
||||
dnl
|
||||
dnl ACTION-IF-FOUND is a list of shell commands to run if a threads
|
||||
dnl library is found, and ACTION-IF-NOT-FOUND is a list of commands to
|
||||
dnl run it if it is not found. If ACTION-IF-FOUND is not specified, the
|
||||
dnl default action will define HAVE_PTHREAD.
|
||||
dnl
|
||||
dnl Please let the authors know if this macro fails on any platform, or
|
||||
dnl if you have any other suggestions or comments. This macro was based
|
||||
dnl on work by SGJ on autoconf scripts for FFTW (www.fftw.org) (with
|
||||
dnl help from M. Frigo), as well as ac_pthread and hb_pthread macros
|
||||
dnl posted by Alejandro Forero Cuervo to the autoconf macro repository.
|
||||
dnl We are also grateful for the helpful feedback of numerous users.
|
||||
dnl
|
||||
dnl @category InstalledPackages
|
||||
dnl @author Steven G. Johnson <stevenj@alum.mit.edu>
|
||||
dnl @version 2006-05-29
|
||||
dnl @license GPLWithACException
|
||||
dnl
|
||||
dnl Checks for GCC shared/pthread inconsistency based on work by
|
||||
dnl Marcin Owsiany <marcin@owsiany.pl>
|
||||
|
||||
|
||||
AC_DEFUN([ACX_PTHREAD], [
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_LANG_SAVE
|
||||
AC_LANG_C
|
||||
acx_pthread_ok=no
|
||||
|
||||
# We used to check for pthread.h first, but this fails if pthread.h
|
||||
# requires special compiler flags (e.g. on True64 or Sequent).
|
||||
# It gets checked for in the link test anyway.
|
||||
|
||||
# First of all, check if the user has set any of the PTHREAD_LIBS,
|
||||
# etcetera environment variables, and if threads linking works using
|
||||
# them:
|
||||
if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
|
||||
save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
||||
save_LIBS="$LIBS"
|
||||
LIBS="$PTHREAD_LIBS $LIBS"
|
||||
AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
|
||||
AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes)
|
||||
AC_MSG_RESULT($acx_pthread_ok)
|
||||
if test x"$acx_pthread_ok" = xno; then
|
||||
PTHREAD_LIBS=""
|
||||
PTHREAD_CFLAGS=""
|
||||
fi
|
||||
LIBS="$save_LIBS"
|
||||
CFLAGS="$save_CFLAGS"
|
||||
fi
|
||||
|
||||
# We must check for the threads library under a number of different
|
||||
# names; the ordering is very important because some systems
|
||||
# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
|
||||
# libraries is broken (non-POSIX).
|
||||
|
||||
# Create a list of thread flags to try. Items starting with a "-" are
|
||||
# C compiler flags, and other items are library names, except for "none"
|
||||
# which indicates that we try without any flags at all, and "pthread-config"
|
||||
# which is a program returning the flags for the Pth emulation library.
|
||||
|
||||
acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
|
||||
|
||||
# The ordering *is* (sometimes) important. Some notes on the
|
||||
# individual items follow:
|
||||
|
||||
# pthreads: AIX (must check this before -lpthread)
|
||||
# none: in case threads are in libc; should be tried before -Kthread and
|
||||
# other compiler flags to prevent continual compiler warnings
|
||||
# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
|
||||
# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
|
||||
# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
|
||||
# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
|
||||
# -pthreads: Solaris/gcc
|
||||
# -mthreads: Mingw32/gcc, Lynx/gcc
|
||||
# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
|
||||
# doesn't hurt to check since this sometimes defines pthreads too;
|
||||
# also defines -D_REENTRANT)
|
||||
# ... -mt is also the pthreads flag for HP/aCC
|
||||
# pthread: Linux, etcetera
|
||||
# --thread-safe: KAI C++
|
||||
# pthread-config: use pthread-config program (for GNU Pth library)
|
||||
|
||||
case "${host_cpu}-${host_os}" in
|
||||
*solaris*)
|
||||
|
||||
# On Solaris (at least, for some versions), libc contains stubbed
|
||||
# (non-functional) versions of the pthreads routines, so link-based
|
||||
# tests will erroneously succeed. (We need to link with -pthreads/-mt/
|
||||
# -lpthread.) (The stubs are missing pthread_cleanup_push, or rather
|
||||
# a function called by this macro, so we could check for that, but
|
||||
# who knows whether they'll stub that too in a future libc.) So,
|
||||
# we'll just look for -pthreads and -lpthread first:
|
||||
|
||||
acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags"
|
||||
;;
|
||||
esac
|
||||
|
||||
if test x"$acx_pthread_ok" = xno; then
|
||||
for flag in $acx_pthread_flags; do
|
||||
|
||||
case $flag in
|
||||
none)
|
||||
AC_MSG_CHECKING([whether pthreads work without any flags])
|
||||
;;
|
||||
|
||||
-*)
|
||||
AC_MSG_CHECKING([whether pthreads work with $flag])
|
||||
PTHREAD_CFLAGS="$flag"
|
||||
;;
|
||||
|
||||
pthread-config)
|
||||
AC_CHECK_PROG(acx_pthread_config, pthread-config, yes, no)
|
||||
if test x"$acx_pthread_config" = xno; then continue; fi
|
||||
PTHREAD_CFLAGS="`pthread-config --cflags`"
|
||||
PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
|
||||
;;
|
||||
|
||||
*)
|
||||
AC_MSG_CHECKING([for the pthreads library -l$flag])
|
||||
PTHREAD_LIBS="-l$flag"
|
||||
;;
|
||||
esac
|
||||
|
||||
save_LIBS="$LIBS"
|
||||
save_CFLAGS="$CFLAGS"
|
||||
LIBS="$PTHREAD_LIBS $LIBS"
|
||||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
||||
|
||||
# Check for various functions. We must include pthread.h,
|
||||
# since some functions may be macros. (On the Sequent, we
|
||||
# need a special flag -Kthread to make this header compile.)
|
||||
# We check for pthread_join because it is in -lpthread on IRIX
|
||||
# while pthread_create is in libc. We check for pthread_attr_init
|
||||
# due to DEC craziness with -lpthreads. We check for
|
||||
# pthread_cleanup_push because it is one of the few pthread
|
||||
# functions on Solaris that doesn't have a non-functional libc stub.
|
||||
# We try pthread_create on general principles.
|
||||
AC_TRY_LINK([#include <pthread.h>],
|
||||
[pthread_t th; pthread_join(th, 0);
|
||||
pthread_attr_init(0); pthread_cleanup_push(0, 0);
|
||||
pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
|
||||
[acx_pthread_ok=yes])
|
||||
|
||||
LIBS="$save_LIBS"
|
||||
CFLAGS="$save_CFLAGS"
|
||||
|
||||
AC_MSG_RESULT($acx_pthread_ok)
|
||||
if test "x$acx_pthread_ok" = xyes; then
|
||||
break;
|
||||
fi
|
||||
|
||||
PTHREAD_LIBS=""
|
||||
PTHREAD_CFLAGS=""
|
||||
done
|
||||
fi
|
||||
|
||||
# Various other checks:
|
||||
if test "x$acx_pthread_ok" = xyes; then
|
||||
save_LIBS="$LIBS"
|
||||
LIBS="$PTHREAD_LIBS $LIBS"
|
||||
save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
||||
|
||||
# Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
|
||||
AC_MSG_CHECKING([for joinable pthread attribute])
|
||||
attr_name=unknown
|
||||
for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
|
||||
AC_TRY_LINK([#include <pthread.h>], [int attr=$attr; return attr;],
|
||||
[attr_name=$attr; break])
|
||||
done
|
||||
AC_MSG_RESULT($attr_name)
|
||||
if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
|
||||
AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name,
|
||||
[Define to necessary symbol if this constant
|
||||
uses a non-standard name on your system.])
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING([if more special flags are required for pthreads])
|
||||
flag=no
|
||||
case "${host_cpu}-${host_os}" in
|
||||
*-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";;
|
||||
*solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";;
|
||||
esac
|
||||
AC_MSG_RESULT(${flag})
|
||||
if test "x$flag" != xno; then
|
||||
PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
|
||||
fi
|
||||
|
||||
LIBS="$save_LIBS"
|
||||
CFLAGS="$save_CFLAGS"
|
||||
# More AIX lossage: must compile with xlc_r or cc_r
|
||||
if test x"$GCC" != xyes; then
|
||||
AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC})
|
||||
else
|
||||
PTHREAD_CC=$CC
|
||||
fi
|
||||
|
||||
# The next part tries to detect GCC inconsistency with -shared on some
|
||||
# architectures and systems. The problem is that in certain
|
||||
# configurations, when -shared is specified, GCC "forgets" to
|
||||
# internally use various flags which are still necessary.
|
||||
|
||||
AC_MSG_CHECKING([whether to check for GCC pthread/shared inconsistencies])
|
||||
check_inconsistencies=yes
|
||||
case "${host_cpu}-${host_os}" in
|
||||
*-darwin*) check_inconsistencies=no ;;
|
||||
esac
|
||||
if test x"$GCC" != xyes -o "x$check_inconsistencies" != xyes ; then
|
||||
AC_MSG_RESULT([no])
|
||||
else
|
||||
AC_MSG_RESULT([yes])
|
||||
|
||||
# In order not to create several levels of indentation, we test
|
||||
# the value of "$ok" until we find out the cure or run out of
|
||||
# ideas.
|
||||
ok="no"
|
||||
|
||||
#
|
||||
# Prepare the flags
|
||||
#
|
||||
save_CFLAGS="$CFLAGS"
|
||||
save_LIBS="$LIBS"
|
||||
save_CC="$CC"
|
||||
# Try with the flags determined by the earlier checks.
|
||||
#
|
||||
# -Wl,-z,defs forces link-time symbol resolution, so that the
|
||||
# linking checks with -shared actually have any value
|
||||
#
|
||||
# FIXME: -fPIC is required for -shared on many architectures,
|
||||
# so we specify it here, but the right way would probably be to
|
||||
# properly detect whether it is actually required.
|
||||
CFLAGS="-shared -fPIC -Wl,-z,defs $CFLAGS $PTHREAD_CFLAGS"
|
||||
LIBS="$PTHREAD_LIBS $LIBS"
|
||||
CC="$PTHREAD_CC"
|
||||
|
||||
AC_MSG_CHECKING([whether -pthread is sufficient with -shared])
|
||||
AC_TRY_LINK([#include <pthread.h>],
|
||||
[pthread_t th; pthread_join(th, 0);
|
||||
pthread_attr_init(0); pthread_cleanup_push(0, 0);
|
||||
pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
|
||||
[ok=yes])
|
||||
|
||||
if test "x$ok" = xyes; then
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
|
||||
#
|
||||
# Linux gcc on some architectures such as mips/mipsel forgets
|
||||
# about -lpthread
|
||||
#
|
||||
if test x"$ok" = xno; then
|
||||
AC_MSG_CHECKING([whether -lpthread fixes that])
|
||||
LIBS="-lpthread $PTHREAD_LIBS $save_LIBS"
|
||||
AC_TRY_LINK([#include <pthread.h>],
|
||||
[pthread_t th; pthread_join(th, 0);
|
||||
pthread_attr_init(0); pthread_cleanup_push(0, 0);
|
||||
pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
|
||||
[ok=yes])
|
||||
|
||||
if test "x$ok" = xyes; then
|
||||
AC_MSG_RESULT([yes])
|
||||
PTHREAD_LIBS="-lpthread $PTHREAD_LIBS"
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
fi
|
||||
#
|
||||
# FreeBSD 4.10 gcc forgets to use -lc_r instead of -lc
|
||||
#
|
||||
if test x"$ok" = xno; then
|
||||
AC_MSG_CHECKING([whether -lc_r fixes that])
|
||||
LIBS="-lc_r $PTHREAD_LIBS $save_LIBS"
|
||||
AC_TRY_LINK([#include <pthread.h>],
|
||||
[pthread_t th; pthread_join(th, 0);
|
||||
pthread_attr_init(0); pthread_cleanup_push(0, 0);
|
||||
pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
|
||||
[ok=yes])
|
||||
|
||||
if test "x$ok" = xyes; then
|
||||
AC_MSG_RESULT([yes])
|
||||
PTHREAD_LIBS="-lc_r $PTHREAD_LIBS"
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
fi
|
||||
if test x"$ok" = xno; then
|
||||
# OK, we have run out of ideas
|
||||
AC_MSG_WARN([Impossible to determine how to use pthreads with shared libraries])
|
||||
|
||||
# so it's not safe to assume that we may use pthreads
|
||||
acx_pthread_ok=no
|
||||
fi
|
||||
|
||||
CFLAGS="$save_CFLAGS"
|
||||
LIBS="$save_LIBS"
|
||||
CC="$save_CC"
|
||||
fi
|
||||
else
|
||||
PTHREAD_CC="$CC"
|
||||
fi
|
||||
|
||||
AC_SUBST(PTHREAD_LIBS)
|
||||
AC_SUBST(PTHREAD_CFLAGS)
|
||||
AC_SUBST(PTHREAD_CC)
|
||||
|
||||
# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
|
||||
if test x"$acx_pthread_ok" = xyes; then
|
||||
ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1])
|
||||
:
|
||||
else
|
||||
acx_pthread_ok=no
|
||||
$2
|
||||
fi
|
||||
AC_LANG_RESTORE
|
||||
])dnl ACX_PTHREAD
|
||||
311
m4/attributes.m4
Normal file
311
m4/attributes.m4
Normal file
|
|
@ -0,0 +1,311 @@
|
|||
dnl Macros to check the presence of generic (non-typed) symbols.
|
||||
dnl Copyright (c) 2006-2008 Diego Pettenò <flameeyes@gmail.com>
|
||||
dnl Copyright (c) 2006-2008 xine project
|
||||
dnl
|
||||
dnl This program is free software; you can redistribute it and/or modify
|
||||
dnl it under the terms of the GNU General Public License as published by
|
||||
dnl the Free Software Foundation; either version 2, or (at your option)
|
||||
dnl any later version.
|
||||
dnl
|
||||
dnl This program is distributed in the hope that it will be useful,
|
||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
dnl GNU General Public License for more details.
|
||||
dnl
|
||||
dnl You should have received a copy of the GNU General Public License
|
||||
dnl along with this program; if not, write to the Free Software
|
||||
dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
dnl 02110-1301, USA.
|
||||
dnl
|
||||
dnl As a special exception, the copyright owners of the
|
||||
dnl macro gives unlimited permission to copy, distribute and modify the
|
||||
dnl configure scripts that are the output of Autoconf when processing the
|
||||
dnl Macro. You need not follow the terms of the GNU General Public
|
||||
dnl License when using or distributing such scripts, even though portions
|
||||
dnl of the text of the Macro appear in them. The GNU General Public
|
||||
dnl License (GPL) does govern all other use of the material that
|
||||
dnl constitutes the Autoconf Macro.
|
||||
dnl
|
||||
dnl This special exception to the GPL applies to versions of the
|
||||
dnl Autoconf Macro released by this project. When you make and
|
||||
dnl distribute a modified version of the Autoconf Macro, you may extend
|
||||
dnl this special exception to the GPL to apply to your modified version as
|
||||
dnl well.
|
||||
|
||||
dnl Check if the flag is supported by compiler
|
||||
dnl CC_CHECK_CFLAGS_SILENT([FLAG], [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND])
|
||||
|
||||
AC_DEFUN([CC_CHECK_CFLAGS_SILENT], [
|
||||
AC_CACHE_VAL(AS_TR_SH([cc_cv_cflags_$1]),
|
||||
[ac_save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS $1"
|
||||
AC_COMPILE_IFELSE([int a;],
|
||||
[eval "AS_TR_SH([cc_cv_cflags_$1])='yes'"],
|
||||
[eval "AS_TR_SH([cc_cv_cflags_$1])='no'"])
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
])
|
||||
|
||||
AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes],
|
||||
[$2], [$3])
|
||||
])
|
||||
|
||||
dnl Check if the flag is supported by compiler (cacheable)
|
||||
dnl CC_CHECK_CFLAGS([FLAG], [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND])
|
||||
|
||||
AC_DEFUN([CC_CHECK_CFLAGS], [
|
||||
AC_CACHE_CHECK([if $CC supports $1 flag],
|
||||
AS_TR_SH([cc_cv_cflags_$1]),
|
||||
CC_CHECK_CFLAGS_SILENT([$1]) dnl Don't execute actions here!
|
||||
)
|
||||
|
||||
AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes],
|
||||
[$2], [$3])
|
||||
])
|
||||
|
||||
dnl CC_CHECK_CFLAG_APPEND(FLAG, [action-if-found], [action-if-not-found])
|
||||
dnl Check for CFLAG and appends them to CFLAGS if supported
|
||||
AC_DEFUN([CC_CHECK_CFLAG_APPEND], [
|
||||
AC_CACHE_CHECK([if $CC supports $1 flag],
|
||||
AS_TR_SH([cc_cv_cflags_$1]),
|
||||
CC_CHECK_CFLAGS_SILENT([$1]) dnl Don't execute actions here!
|
||||
)
|
||||
|
||||
AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes],
|
||||
[CFLAGS="$CFLAGS $1"; DEBUG_CFLAGS="$DEBUG_CFLAGS $1"; $2], [$3])
|
||||
])
|
||||
|
||||
dnl CC_CHECK_CFLAGS_APPEND([FLAG1 FLAG2], [action-if-found], [action-if-not])
|
||||
AC_DEFUN([CC_CHECK_CFLAGS_APPEND], [
|
||||
for flag in $1; do
|
||||
CC_CHECK_CFLAG_APPEND($flag, [$2], [$3])
|
||||
done
|
||||
])
|
||||
|
||||
dnl Check if the flag is supported by linker (cacheable)
|
||||
dnl CC_CHECK_LDFLAGS([FLAG], [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND])
|
||||
|
||||
AC_DEFUN([CC_CHECK_LDFLAGS], [
|
||||
AC_CACHE_CHECK([if $CC supports $1 flag],
|
||||
AS_TR_SH([cc_cv_ldflags_$1]),
|
||||
[ac_save_LDFLAGS="$LDFLAGS"
|
||||
LDFLAGS="$LDFLAGS $1"
|
||||
AC_LINK_IFELSE([int main() { return 1; }],
|
||||
[eval "AS_TR_SH([cc_cv_ldflags_$1])='yes'"],
|
||||
[eval "AS_TR_SH([cc_cv_ldflags_$1])="])
|
||||
LDFLAGS="$ac_save_LDFLAGS"
|
||||
])
|
||||
|
||||
AS_IF([eval test x$]AS_TR_SH([cc_cv_ldflags_$1])[ = xyes],
|
||||
[$2], [$3])
|
||||
])
|
||||
|
||||
dnl define the LDFLAGS_NOUNDEFINED variable with the correct value for
|
||||
dnl the current linker to avoid undefined references in a shared object.
|
||||
AC_DEFUN([CC_NOUNDEFINED], [
|
||||
dnl We check $host for which systems to enable this for.
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
|
||||
case $host in
|
||||
dnl FreeBSD (et al.) does not complete linking for shared objects when pthreads
|
||||
dnl are requested, as different implementations are present; to avoid problems
|
||||
dnl use -Wl,-z,defs only for those platform not behaving this way.
|
||||
*-freebsd* | *-openbsd*) ;;
|
||||
*)
|
||||
dnl First of all check for the --no-undefined variant of GNU ld. This allows
|
||||
dnl for a much more readable commandline, so that people can understand what
|
||||
dnl it does without going to look for what the heck -z defs does.
|
||||
for possible_flags in "-Wl,--no-undefined" "-Wl,-z,defs"; do
|
||||
CC_CHECK_LDFLAGS([$possible_flags], [LDFLAGS_NOUNDEFINED="$possible_flags"])
|
||||
break
|
||||
done
|
||||
;;
|
||||
esac
|
||||
|
||||
AC_SUBST([LDFLAGS_NOUNDEFINED])
|
||||
])
|
||||
|
||||
dnl Check for a -Werror flag or equivalent. -Werror is the GCC
|
||||
dnl and ICC flag that tells the compiler to treat all the warnings
|
||||
dnl as fatal. We usually need this option to make sure that some
|
||||
dnl constructs (like attributes) are not simply ignored.
|
||||
dnl
|
||||
dnl Other compilers don't support -Werror per se, but they support
|
||||
dnl an equivalent flag:
|
||||
dnl - Sun Studio compiler supports -errwarn=%all
|
||||
AC_DEFUN([CC_CHECK_WERROR], [
|
||||
AC_CACHE_CHECK(
|
||||
[for $CC way to treat warnings as errors],
|
||||
[cc_cv_werror],
|
||||
[CC_CHECK_CFLAGS_SILENT([-Werror], [cc_cv_werror=-Werror],
|
||||
[CC_CHECK_CFLAGS_SILENT([-errwarn=%all], [cc_cv_werror=-errwarn=%all])])
|
||||
])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_CHECK_ATTRIBUTE], [
|
||||
AC_REQUIRE([CC_CHECK_WERROR])
|
||||
AC_CACHE_CHECK([if $CC supports __attribute__(( ifelse([$2], , [$1], [$2]) ))],
|
||||
AS_TR_SH([cc_cv_attribute_$1]),
|
||||
[ac_save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS $cc_cv_werror"
|
||||
AC_COMPILE_IFELSE([$3],
|
||||
[eval "AS_TR_SH([cc_cv_attribute_$1])='yes'"],
|
||||
[eval "AS_TR_SH([cc_cv_attribute_$1])='no'"])
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
])
|
||||
|
||||
AS_IF([eval test x$]AS_TR_SH([cc_cv_attribute_$1])[ = xyes],
|
||||
[AC_DEFINE(
|
||||
AS_TR_CPP([SUPPORT_ATTRIBUTE_$1]), 1,
|
||||
[Define this if the compiler supports __attribute__(( ifelse([$2], , [$1], [$2]) ))]
|
||||
)
|
||||
$4],
|
||||
[$5])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_ATTRIBUTE_CONSTRUCTOR], [
|
||||
CC_CHECK_ATTRIBUTE(
|
||||
[constructor],,
|
||||
[void __attribute__((constructor)) ctor() { int a; }],
|
||||
[$1], [$2])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_ATTRIBUTE_FORMAT], [
|
||||
CC_CHECK_ATTRIBUTE(
|
||||
[format], [format(printf, n, n)],
|
||||
[void __attribute__((format(printf, 1, 2))) printflike(const char *fmt, ...) { fmt = (void *)0; }],
|
||||
[$1], [$2])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_ATTRIBUTE_FORMAT_ARG], [
|
||||
CC_CHECK_ATTRIBUTE(
|
||||
[format_arg], [format_arg(printf)],
|
||||
[char *__attribute__((format_arg(1))) gettextlike(const char *fmt) { fmt = (void *)0; }],
|
||||
[$1], [$2])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_ATTRIBUTE_VISIBILITY], [
|
||||
CC_CHECK_ATTRIBUTE(
|
||||
[visibility_$1], [visibility("$1")],
|
||||
[void __attribute__((visibility("$1"))) $1_function() { }],
|
||||
[$2], [$3])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_ATTRIBUTE_NONNULL], [
|
||||
CC_CHECK_ATTRIBUTE(
|
||||
[nonnull], [nonnull()],
|
||||
[void __attribute__((nonnull())) some_function(void *foo, void *bar) { foo = (void*)0; bar = (void*)0; }],
|
||||
[$1], [$2])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_ATTRIBUTE_UNUSED], [
|
||||
CC_CHECK_ATTRIBUTE(
|
||||
[unused], ,
|
||||
[void some_function(void *foo, __attribute__((unused)) void *bar);],
|
||||
[$1], [$2])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_ATTRIBUTE_SENTINEL], [
|
||||
CC_CHECK_ATTRIBUTE(
|
||||
[sentinel], ,
|
||||
[void some_function(void *foo, ...) __attribute__((sentinel));],
|
||||
[$1], [$2])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_ATTRIBUTE_DEPRECATED], [
|
||||
CC_CHECK_ATTRIBUTE(
|
||||
[deprecated], ,
|
||||
[void some_function(void *foo, ...) __attribute__((deprecated));],
|
||||
[$1], [$2])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_ATTRIBUTE_ALIAS], [
|
||||
CC_CHECK_ATTRIBUTE(
|
||||
[alias], [weak, alias],
|
||||
[void other_function(void *foo) { }
|
||||
void some_function(void *foo) __attribute__((weak, alias("other_function")));],
|
||||
[$1], [$2])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_ATTRIBUTE_MALLOC], [
|
||||
CC_CHECK_ATTRIBUTE(
|
||||
[malloc], ,
|
||||
[void * __attribute__((malloc)) my_alloc(int n);],
|
||||
[$1], [$2])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_ATTRIBUTE_PACKED], [
|
||||
CC_CHECK_ATTRIBUTE(
|
||||
[packed], ,
|
||||
[struct astructure { char a; int b; long c; void *d; } __attribute__((packed));],
|
||||
[$1], [$2])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_ATTRIBUTE_CONST], [
|
||||
CC_CHECK_ATTRIBUTE(
|
||||
[const], ,
|
||||
[int __attribute__((const)) twopow(int n) { return 1 << n; } ],
|
||||
[$1], [$2])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_FLAG_VISIBILITY], [
|
||||
AC_REQUIRE([CC_CHECK_WERROR])
|
||||
AC_CACHE_CHECK([if $CC supports -fvisibility=hidden],
|
||||
[cc_cv_flag_visibility],
|
||||
[cc_flag_visibility_save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS $cc_cv_werror"
|
||||
CC_CHECK_CFLAGS_SILENT([-fvisibility=hidden],
|
||||
cc_cv_flag_visibility='yes',
|
||||
cc_cv_flag_visibility='no')
|
||||
CFLAGS="$cc_flag_visibility_save_CFLAGS"])
|
||||
|
||||
AS_IF([test "x$cc_cv_flag_visibility" = "xyes"],
|
||||
[AC_DEFINE([SUPPORT_FLAG_VISIBILITY], 1,
|
||||
[Define this if the compiler supports the -fvisibility flag])
|
||||
$1],
|
||||
[$2])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_FUNC_EXPECT], [
|
||||
AC_REQUIRE([CC_CHECK_WERROR])
|
||||
AC_CACHE_CHECK([if compiler has __builtin_expect function],
|
||||
[cc_cv_func_expect],
|
||||
[ac_save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS $cc_cv_werror"
|
||||
AC_COMPILE_IFELSE(
|
||||
[int some_function() {
|
||||
int a = 3;
|
||||
return (int)__builtin_expect(a, 3);
|
||||
}],
|
||||
[cc_cv_func_expect=yes],
|
||||
[cc_cv_func_expect=no])
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
])
|
||||
|
||||
AS_IF([test "x$cc_cv_func_expect" = "xyes"],
|
||||
[AC_DEFINE([SUPPORT__BUILTIN_EXPECT], 1,
|
||||
[Define this if the compiler supports __builtin_expect() function])
|
||||
$1],
|
||||
[$2])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_ATTRIBUTE_ALIGNED], [
|
||||
AC_REQUIRE([CC_CHECK_WERROR])
|
||||
AC_CACHE_CHECK([highest __attribute__ ((aligned ())) supported],
|
||||
[cc_cv_attribute_aligned],
|
||||
[ac_save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS $cc_cv_werror"
|
||||
for cc_attribute_align_try in 64 32 16 8 4 2; do
|
||||
AC_COMPILE_IFELSE([
|
||||
int main() {
|
||||
static char c __attribute__ ((aligned($cc_attribute_align_try))) = 0;
|
||||
return c;
|
||||
}], [cc_cv_attribute_aligned=$cc_attribute_align_try; break])
|
||||
done
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
])
|
||||
|
||||
if test "x$cc_cv_attribute_aligned" != "x"; then
|
||||
AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX], [$cc_cv_attribute_aligned],
|
||||
[Define the highest alignment supported])
|
||||
fi
|
||||
])
|
||||
13
m4/check_define.m4
Normal file
13
m4/check_define.m4
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
AC_DEFUN([AC_CHECK_DEFINE],[
|
||||
AS_VAR_PUSHDEF([ac_var],[ac_cv_defined_$1_$2])dnl
|
||||
AC_CACHE_CHECK([for $1 in $2], ac_var,
|
||||
AC_TRY_COMPILE([#include <$2>],[
|
||||
#ifdef $1
|
||||
int ok;
|
||||
#else
|
||||
choke me
|
||||
#endif
|
||||
],AS_VAR_SET(ac_var, yes),AS_VAR_SET(ac_var, no)))
|
||||
AS_IF([test AS_VAR_GET(ac_var) != "no"], [$3], [$4])dnl
|
||||
AS_VAR_POPDEF([ac_var])dnl
|
||||
])
|
||||
56
m4/orc.m4
Normal file
56
m4/orc.m4
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
dnl pkg-config-based checks for Orc
|
||||
|
||||
dnl specific:
|
||||
dnl ORC_CHECK([REQUIRED_VERSION])
|
||||
|
||||
AC_DEFUN([ORC_CHECK],
|
||||
[
|
||||
ORC_REQ=ifelse([$1], , "0.4.5", [$1])
|
||||
|
||||
AC_ARG_ENABLE(orc,
|
||||
AC_HELP_STRING([--enable-orc],[use Orc if installed]),
|
||||
[case "${enableval}" in
|
||||
auto) enable_orc=auto ;;
|
||||
yes) enable_orc=yes ;;
|
||||
no) enable_orc=no ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --enable-orc) ;;
|
||||
esac
|
||||
],
|
||||
[enable_orc=auto]) dnl Default value
|
||||
|
||||
if test "x$enable_orc" != "xno" ; then
|
||||
PKG_CHECK_MODULES(ORC, orc-0.4 >= $ORC_REQ, [
|
||||
AC_DEFINE(HAVE_ORC, 1, [Use Orc])
|
||||
ORCC=`$PKG_CONFIG --variable=orcc orc-0.4`
|
||||
AC_SUBST(ORCC)
|
||||
HAVE_ORC=yes
|
||||
], [
|
||||
if test "x$enable_orc" = "xyes" ; then
|
||||
AC_MSG_ERROR([--enable-orc specified, but Orc >= $ORC_REQ not found])
|
||||
fi
|
||||
AC_DEFINE(DISABLE_ORC, 1, [Disable Orc])
|
||||
HAVE_ORC=no
|
||||
])
|
||||
else
|
||||
AC_DEFINE(DISABLE_ORC, 1, [Disable Orc])
|
||||
HAVE_ORC=no
|
||||
fi
|
||||
AM_CONDITIONAL(HAVE_ORC, test "x$HAVE_ORC" = "xyes")
|
||||
|
||||
]))
|
||||
|
||||
AC_DEFUN([ORC_OUTPUT],
|
||||
[
|
||||
if test "$HAVE_ORC" = yes ; then
|
||||
printf "configure: *** Orc acceleration enabled.\n"
|
||||
else
|
||||
if test "x$enable_orc" = "xno" ; then
|
||||
printf "configure: *** Orc acceleration disabled by --disable-orc. Slower code paths\n"
|
||||
printf " will be used.\n"
|
||||
else
|
||||
printf "configure: *** Orc acceleration disabled. Requires Orc >= $ORC_REQ, which was\n"
|
||||
printf " not found. Slower code paths will be used.\n"
|
||||
fi
|
||||
fi
|
||||
printf "\n"
|
||||
])
|
||||
17
m4/tls.m4
Normal file
17
m4/tls.m4
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
AC_DEFUN([CC_CHECK_TLS], [
|
||||
AC_CACHE_CHECK([whether $CC knows __thread for Thread-Local Storage],
|
||||
cc_cv_tls___thread,
|
||||
[AC_COMPILE_IFELSE(
|
||||
AC_LANG_PROGRAM(
|
||||
[[static __thread int a = 6;]],
|
||||
[[a = 5;]]),
|
||||
[cc_cv_tls___thread=yes],
|
||||
[cc_cv_tls___thread=no])
|
||||
])
|
||||
|
||||
AS_IF([test "x$cc_cv_tls___thread" = "xyes"],
|
||||
[AC_DEFINE([SUPPORT_TLS___THREAD], 1,
|
||||
[Define this if the compiler supports __thread for Thread-Local Storage])
|
||||
$1],
|
||||
[$2])
|
||||
])
|
||||
10
man/.gitignore
vendored
10
man/.gitignore
vendored
|
|
@ -1,6 +1,4 @@
|
|||
/*.1
|
||||
/*.1.xml
|
||||
/*.5
|
||||
/*.5.xml
|
||||
/Makefile
|
||||
/Makefile.in
|
||||
*.1
|
||||
*.1.xml
|
||||
*.5
|
||||
*.5.xml
|
||||
|
|
|
|||
90
man/Makefile.am
Normal file
90
man/Makefile.am
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
# 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 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.
|
||||
|
||||
pulseconfdir=$(sysconfdir)/pulse
|
||||
|
||||
CLEANFILES = \
|
||||
$(noinst_DATA)
|
||||
|
||||
noinst_DATA = \
|
||||
pulseaudio.1.xml \
|
||||
esdcompat.1.xml \
|
||||
pax11publish.1.xml \
|
||||
paplay.1.xml \
|
||||
pacat.1.xml \
|
||||
pacmd.1.xml \
|
||||
pactl.1.xml \
|
||||
pasuspender.1.xml \
|
||||
padsp.1.xml \
|
||||
pabrowse.1.xml \
|
||||
pulse-daemon.conf.5.xml \
|
||||
pulse-client.conf.5.xml \
|
||||
default.pa.5.xml
|
||||
|
||||
%.xml: %.xml.in Makefile
|
||||
sed -e 's,@pulseconfdir\@,$(pulseconfdir),g' \
|
||||
-e 's,@PACKAGE_BUGREPORT\@,$(PACKAGE_BUGREPORT),g' \
|
||||
-e 's,@PACKAGE_URL\@,$(PACKAGE_URL),g' $< > $@
|
||||
|
||||
xmllint: $(noinst_DATA)
|
||||
for f in $(noinst_DATA) ; do \
|
||||
xmllint --noout --valid "$$f" || exit 1 ; \
|
||||
done
|
||||
|
||||
if BUILD_MANPAGES
|
||||
|
||||
dist_man_MANS = \
|
||||
pulseaudio.1 \
|
||||
esdcompat.1 \
|
||||
pax11publish.1 \
|
||||
paplay.1 \
|
||||
pacat.1 \
|
||||
pacmd.1 \
|
||||
pactl.1 \
|
||||
pasuspender.1 \
|
||||
padsp.1 \
|
||||
pabrowse.1 \
|
||||
pulse-daemon.conf.5 \
|
||||
pulse-client.conf.5 \
|
||||
default.pa.5
|
||||
|
||||
CLEANFILES += \
|
||||
$(dist_man_MANS)
|
||||
|
||||
%: %.xml Makefile
|
||||
perl $(srcdir)/xmltoman $< > $@ || rm -f $@
|
||||
|
||||
endif
|
||||
|
||||
EXTRA_DIST = \
|
||||
pulseaudio.1.xml.in \
|
||||
esdcompat.1.xml.in \
|
||||
pax11publish.1.xml.in \
|
||||
paplay.1.xml.in \
|
||||
pacat.1.xml.in \
|
||||
pacmd.1.xml.in \
|
||||
pactl.1.xml.in \
|
||||
pasuspender.1.xml.in \
|
||||
padsp.1.xml.in \
|
||||
pabrowse.1.xml.in \
|
||||
pulse-daemon.conf.5.xml.in \
|
||||
pulse-client.conf.5.xml.in \
|
||||
default.pa.5.xml.in \
|
||||
xmltoman \
|
||||
xmltoman.css \
|
||||
xmltoman.xsl \
|
||||
xmltoman.dtd
|
||||
|
|
@ -16,29 +16,28 @@ 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, see <http://www.gnu.org/licenses/>.
|
||||
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="default.pa" section="5" desc="PulseAudio Sound Server Startup Script">
|
||||
|
||||
<synopsis>
|
||||
<p><file>~/.config/pulse/default.pa</file></p>
|
||||
<p><file>@PA_DEFAULT_CONFIG_DIR@/default.pa</file></p>
|
||||
<p><file>@PA_DEFAULT_CONFIG_DIR@/system.pa</file></p>
|
||||
<p><file>~/.pulse/default.pa</file></p>
|
||||
|
||||
<p><file>@pulseconfdir@/default.pa</file></p>
|
||||
</synopsis>
|
||||
|
||||
<description>
|
||||
<p>The PulseAudio sound server interprets a configuration script on
|
||||
startup, which is mainly used to define the set of modules to load. When
|
||||
PulseAudio runs in the per-user mode and
|
||||
<file>~/.config/pulse/default.pa</file> exists, that file is used. When
|
||||
PulseAudio runs in the per-user mode and that file doesn't exist,
|
||||
<file>@PA_DEFAULT_CONFIG_DIR@/default.pa</file> is used. When PulseAudio
|
||||
runs as a system service, <file>@PA_DEFAULT_CONFIG_DIR@/system.pa</file> is
|
||||
used.</p>
|
||||
<p>The PulseAudio sound server interprets the file
|
||||
<file>~/.pulse/default.pa</file> on startup, and when that file
|
||||
doesn't exist <file>@pulseconfdir@/default.pa</file>. It
|
||||
should contain directives in the PulseAudio CLI languages, as
|
||||
documented on <url href="http://pulseaudio.org/wiki/CLI"/>.</p>
|
||||
|
||||
<p>The script should contain directives in the PulseAudio CLI language, as
|
||||
documented in <manref name="pulse-cli-syntax" section="5"/>.</p>
|
||||
<p>The same commands can also be entered during runtime in the <manref name="pacmd"
|
||||
section="1"/> tool, allowing flexible runtime reconfiguration.</p>
|
||||
</description>
|
||||
|
||||
<section name="Authors">
|
||||
|
|
@ -48,10 +47,9 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
<section name="See also">
|
||||
<p>
|
||||
<manref name="pulse-cli-syntax" section="5"/>,
|
||||
<manref name="pulse-daemon.conf" section="5"/>,
|
||||
<manref name="pulseaudio" section="1"/>,
|
||||
<manref name="pacmd" section="1"/>
|
||||
<manref name="pulse-daemon.conf" section="5"/>, <manref
|
||||
name="pulseaudio" section="1"/>, <manref name="pacmd"
|
||||
section="1"/>
|
||||
</p>
|
||||
</section>
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,9 @@ 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, see <http://www.gnu.org/licenses/>.
|
||||
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="esdcompat" section="1" desc="PulseAudio ESD wrapper script">
|
||||
|
|
@ -28,7 +30,7 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
</synopsis>
|
||||
|
||||
<description>
|
||||
<p><file>esdcompat</file> is a compatibility script that takes the
|
||||
<p><file>esdcompat</file> is a compatiblity script that takes the
|
||||
same arguments as the ESD sound daemon <manref name="esd"
|
||||
section="1"/>, but uses them to start a the PulseAudio sound server with the appropriate parameters. It is
|
||||
required to make PulseAudio a drop-in replacement for esd, i.e. it
|
||||
|
|
|
|||
|
|
@ -1,93 +0,0 @@
|
|||
|
||||
# man page name, section, [aliases]
|
||||
manpages = []
|
||||
|
||||
if get_option('daemon')
|
||||
manpages += [
|
||||
['default.pa', '5'],
|
||||
['pacmd', '1'],
|
||||
['pasuspender', '1'],
|
||||
['pulse-cli-syntax', '5'],
|
||||
['pulse-daemon.conf', '5'],
|
||||
['pulseaudio', '1'],
|
||||
['start-pulseaudio-x11', '1'],
|
||||
]
|
||||
endif
|
||||
|
||||
if get_option('client')
|
||||
manpages += [
|
||||
['pacat', '1', ['paplay', 'parec', 'parecord', 'pamon']],
|
||||
['pactl', '1'],
|
||||
['pulse-client.conf', '5'],
|
||||
]
|
||||
|
||||
if cdata.has('HAVE_OSS_WRAPPER')
|
||||
manpages += [
|
||||
['padsp', '1'],
|
||||
]
|
||||
endif
|
||||
|
||||
if x11_dep.found()
|
||||
manpages += [
|
||||
['pax11publish', '1'],
|
||||
]
|
||||
endif
|
||||
endif
|
||||
|
||||
# FIXME: Add esdcompat if HAVE_ESOUND
|
||||
#manpages += ['esdcompat', '1'],
|
||||
|
||||
man_data = configuration_data()
|
||||
man_data.set('PACKAGE_URL', 'http://pulseaudio.org/')
|
||||
man_data.set('PACKAGE_BUGREPORT', 'pulseaudio-discuss (at) lists (dot) freedesktop (dot) org')
|
||||
man_data.set('PA_DEFAULT_CONFIG_DIR', cdata.get_unquoted('PA_DEFAULT_CONFIG_DIR'))
|
||||
|
||||
perl = find_program('perl', required: true)
|
||||
xmltoman_cmd = [perl, join_paths(meson.current_source_dir(), 'xmltoman')]
|
||||
xmllint = find_program('xmllint', required: false)
|
||||
|
||||
foreach tuple : manpages
|
||||
stem = tuple[0]
|
||||
section = tuple[1]
|
||||
aliases = tuple.get(2, [])
|
||||
|
||||
man = stem + '.' + section
|
||||
xmlin = man + '.xml.in'
|
||||
xml = man + '.xml'
|
||||
|
||||
xml_file = configure_file(
|
||||
input : xmlin,
|
||||
output : xml,
|
||||
configuration : man_data,
|
||||
)
|
||||
|
||||
mandirn = join_paths(mandir, 'man' + section)
|
||||
|
||||
custom_target(
|
||||
man + '-target',
|
||||
input : xml_file,
|
||||
output : man,
|
||||
capture : true,
|
||||
command : xmltoman_cmd + ['@INPUT@'],
|
||||
install : true,
|
||||
install_dir : mandirn,
|
||||
)
|
||||
|
||||
foreach alias_stem : aliases
|
||||
alias = alias_stem + '.' + section
|
||||
dst = join_paths(mandirn, alias)
|
||||
cmd = 'ln -fs @0@ $DESTDIR@1@'.format(man, dst)
|
||||
meson.add_install_script('sh', '-c', cmd)
|
||||
endforeach
|
||||
|
||||
if xmllint.found()
|
||||
test(
|
||||
'Validate xml file ' + xml,
|
||||
xmllint,
|
||||
args : [
|
||||
'--noout', '--valid',
|
||||
'--path', meson.current_source_dir(),
|
||||
join_paths(meson.current_build_dir(), xml)]
|
||||
)
|
||||
endif
|
||||
endforeach
|
||||
|
|
@ -16,32 +16,31 @@ 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, see <http://www.gnu.org/licenses/>.
|
||||
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-x11" section="1" desc="PulseAudio Sound Server X11 Startup Script">
|
||||
<manpage name="pabrowse" section="1" desc="List PulseAudio sound servers on the network">
|
||||
|
||||
<synopsis>
|
||||
<cmd>start-pulseaudio-x11 [<arg>pulseaudio options</arg>]</cmd>
|
||||
<cmd>pabrowse</cmd>
|
||||
</synopsis>
|
||||
|
||||
<description>
|
||||
<p>This script starts pulseaudio (if not already running) and loads modules to
|
||||
publish access credentials to the PulseAudio server in the X11 root window and to synthesize
|
||||
X11 media key events on cork/uncork requests. Additionally it registers
|
||||
PulseAudio to the X11 Session Manager.</p>
|
||||
<p><file>pabrowse</file> lists all PulseAudio sound servers on the
|
||||
local network that are being announced with Zeroconf/Avahi.</p>
|
||||
|
||||
<p>All arguments are directly passed to pulseaudio.</p>
|
||||
<p>This program takes no command line arguments.</p>
|
||||
</description>
|
||||
|
||||
<section name="Authors">
|
||||
<p>The PulseAudio Developers <@PACKAGE_BUGREPORT@>;
|
||||
PulseAudio is available from <url href="@PACKAGE_URL@"/></p>
|
||||
<p>The PulseAudio Developers <@PACKAGE_BUGREPORT@>; PulseAudio is available from <url href="@PACKAGE_URL@"/></p>
|
||||
</section>
|
||||
|
||||
<section name="See also">
|
||||
<p>
|
||||
<manref name="pulseaudio" section="1"/>
|
||||
<manref name="pulseaudio" section="1"/>, <manref name="avahi-daemon" section="8"/>
|
||||
</p>
|
||||
</section>
|
||||
|
||||
|
|
@ -16,7 +16,9 @@ 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, see <http://www.gnu.org/licenses/>.
|
||||
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="pacat" section="1" desc="Play back or record raw or encoded audio streams on a PulseAudio sound server">
|
||||
|
|
@ -34,8 +36,7 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
<description>
|
||||
<p><file>pacat</file> is a simple tool for playing back or
|
||||
capturing raw or encoded audio files on a PulseAudio sound
|
||||
server. It understands all audio file formats supported by
|
||||
<file>libsndfile</file>.</p>
|
||||
server.</p>
|
||||
</description>
|
||||
|
||||
<options>
|
||||
|
|
@ -79,13 +80,7 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
<option>
|
||||
<p><opt>-d | --device</opt><arg>=SINKORSOURCE</arg></p>
|
||||
|
||||
<optdesc><p>Specify the symbolic name of the sink/source to play/record this stream on/from. The special names @DEFAULT_SINK@, @DEFAULT_SOURCE@ and @DEFAULT_MONITOR@ can be used to specify the default sink, source and monitor respectively.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>--monitor-stream</opt><arg>=INDEX</arg></p>
|
||||
|
||||
<optdesc><p>Record from the sink input with index INDEX.</p></optdesc>
|
||||
<optdesc><p>Specify the symbolic name of the sink/source to play/record this stream on/from.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
|
|
@ -116,9 +111,18 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
<p><opt>--format</opt><arg>=FORMAT</arg></p>
|
||||
|
||||
<optdesc><p>Capture or play back audio with the specified sample
|
||||
format. See
|
||||
https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SupportedAudioFormats/
|
||||
for supported values. Defaults to s16ne.</p></optdesc>
|
||||
format. Specify one of <opt>u8</opt>, <opt>s16le</opt>,
|
||||
<opt>s16be</opt>, <opt>s32le</opt>, <opt>s32be</opt>,
|
||||
<opt>float32le</opt>, <opt>float32be</opt>, <opt>ulaw</opt>,
|
||||
<opt>alaw</opt>, <opt>s32le</opt>, <opt>s32be</opt>,
|
||||
<opt>s24le</opt>, <opt>s24be</opt>, <opt>s24-32le</opt>,
|
||||
<opt>s24-32be</opt>. Depending on the endianess of the CPU the
|
||||
formats <opt>s16ne</opt>, <opt>s16re</opt>, <opt>s32ne</opt>,
|
||||
<opt>s32re</opt>, <opt>float32ne</opt>, <opt>float32re</opt>,
|
||||
<opt>s32ne</opt>, <opt>s32re</opt>, <opt>s24ne</opt>,
|
||||
<opt>s24re</opt>, <opt>s24-32ne</opt>, <opt>s24-32re</opt> (for
|
||||
native, resp. reverse endian) are available as aliases. Defaults
|
||||
to s16ne.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
|
|
@ -185,7 +189,7 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
<option>
|
||||
<p><opt>--latency-msec</opt><arg>=MSEC</arg></p>
|
||||
<optdesc><p>Explicitly configure the latency, with a time
|
||||
specified in milliseconds. If left out the server will pick the
|
||||
specified in miliseconds. If left out the server will pick the
|
||||
latency, usually relatively high for power saving reasons. Use
|
||||
either this option or <opt>--latency</opt>, but not
|
||||
both.</p></optdesc>
|
||||
|
|
@ -202,7 +206,7 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
<option>
|
||||
<p><opt>--process-time-msec</opt><arg>=MSEC</arg></p>
|
||||
<optdesc><p>Explicitly configure the process time, with a time
|
||||
specified in milliseconds. If left out the server will pick the
|
||||
specified in miliseconds. If left out the server will pick the
|
||||
process time. Use either this option or <opt>--process-time</opt>,
|
||||
but not both.</p></optdesc>
|
||||
</option>
|
||||
|
|
@ -216,15 +220,15 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
<option>
|
||||
<p><opt>--raw</opt></p>
|
||||
<optdesc><p>Play/record raw audio data. This is the default if
|
||||
this program is invoked as <file>pacat</file>, <file>parec</file> or
|
||||
<file>pamon</file>.</p></optdesc>
|
||||
this program is invoked as <cmd>pacat</cmd>, <cmd>parec</cmd> or
|
||||
<cmd>pamon</cmd>.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>--file-format</opt><arg>[=FFORMAT]</arg></p>
|
||||
<optdesc><p>Play/record encoded audio data in the file format
|
||||
specified. This is the default if this program is invoked as
|
||||
<file>paplay</file> and <file>parecord</file>.</p></optdesc>
|
||||
<cmd>paplay</cmd> and <cmd>parecord</cmd>.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
|
|
@ -234,13 +238,6 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
</options>
|
||||
|
||||
<section name="Limitations">
|
||||
<p>Due to a limitation in <file>libsndfile</file>
|
||||
<file>paplay</file> currently does not always set the correct channel
|
||||
mapping for playback of multichannel (i.e. surround) audio files, even
|
||||
if the channel mapping information is available in the audio file.</p>
|
||||
</section>
|
||||
|
||||
<section name="Authors">
|
||||
<p>The PulseAudio Developers <@PACKAGE_BUGREPORT@>; PulseAudio is available from <url href="@PACKAGE_URL@"/></p>
|
||||
</section>
|
||||
|
|
|
|||
|
|
@ -16,15 +16,15 @@ 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, see <http://www.gnu.org/licenses/>.
|
||||
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="pacmd" section="1" desc="Reconfigure a PulseAudio sound server during runtime">
|
||||
|
||||
<synopsis>
|
||||
<cmd>pacmd</cmd>
|
||||
<cmd>pacmd <opt>--help</opt></cmd>
|
||||
<cmd>pacmd <opt>--version</opt></cmd>
|
||||
</synopsis>
|
||||
|
||||
<description>
|
||||
|
|
@ -34,39 +34,16 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
the commands also understood in the <file>default.pa</file>
|
||||
configuration scripts.</p>
|
||||
|
||||
<p>To exit the live shell, use ctrl+d. Note that the 'exit' command
|
||||
inside the shell will tell the PulseAudio daemon itself to shutdown!</p>
|
||||
|
||||
<p>If any arguments are passed on the command line, they will be
|
||||
passed into the live shell which will process the command and exit.</p>
|
||||
<p>This program takes no command line options.</p>
|
||||
</description>
|
||||
|
||||
<options>
|
||||
|
||||
<option>
|
||||
<p><opt>-h | --help</opt></p>
|
||||
|
||||
<optdesc><p>Show help.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>--version</opt></p>
|
||||
|
||||
<optdesc><p>Show version information.</p></optdesc>
|
||||
</option>
|
||||
|
||||
</options>
|
||||
|
||||
<section name="Authors">
|
||||
<p>The PulseAudio Developers <@PACKAGE_BUGREPORT@>; PulseAudio is available from <url href="@PACKAGE_URL@"/></p>
|
||||
</section>
|
||||
|
||||
<section name="See also">
|
||||
<p>
|
||||
<manref name="pulse-cli-syntax" section="5"/>,
|
||||
<manref name="pulseaudio" section="1"/>,
|
||||
<manref name="pactl" section="1"/>,
|
||||
<manref name="default.pa" section="5"/>
|
||||
<manref name="pulseaudio" section="1"/>, <manref name="pactl" section="1"/>, <manref name="default.pa" section="5"/>
|
||||
</p>
|
||||
</section>
|
||||
|
||||
|
|
|
|||
|
|
@ -16,13 +16,26 @@ 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, see <http://www.gnu.org/licenses/>.
|
||||
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="pactl" section="1" desc="Control a running PulseAudio sound server">
|
||||
|
||||
<synopsis>
|
||||
<cmd>pactl [<arg>options</arg>] <arg>COMMAND</arg> [<arg>ARGS ...</arg>]</cmd>
|
||||
<cmd>pactl [<arg>options</arg>] stat</cmd>
|
||||
<cmd>pactl [<arg>options</arg>] list</cmd>
|
||||
<cmd>pactl [<arg>options</arg>] exit</cmd>
|
||||
<cmd>pactl [<arg>options</arg>] upload-sample <arg>FILENAME</arg> [<arg>NAME</arg>]</cmd>
|
||||
<cmd>pactl [<arg>options</arg>] play-sample <arg>NAME</arg> [<arg>SINK</arg>]</cmd>
|
||||
<cmd>pactl [<arg>options</arg>] remove-sample <arg>NAME</arg></cmd>
|
||||
<cmd>pactl [<arg>options</arg>] move-sink-input <arg>ID</arg> <arg>SINK</arg></cmd>
|
||||
<cmd>pactl [<arg>options</arg>] move-source-input <arg>ID</arg> <arg>SOURCE</arg></cmd>
|
||||
<cmd>pactl [<arg>options</arg>] load-module <arg>NAME</arg> [<arg>ARGUMENTS ...</arg>]</cmd>
|
||||
<cmd>pactl [<arg>options</arg>] unload-module <arg>ID</arg></cmd>
|
||||
<cmd>pactl [<arg>options</arg>] suspend-sink [<arg>SINK</arg>] <arg>1|0</arg></cmd>
|
||||
<cmd>pactl [<arg>options</arg>] suspend-source [<arg>SOURCE</arg>] <arg>1|0</arg></cmd>
|
||||
<cmd>pactl <opt>--help</opt></cmd>
|
||||
<cmd>pactl <opt>--version</opt></cmd>
|
||||
</synopsis>
|
||||
|
|
@ -53,270 +66,118 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
<optdesc><p>Choose the server to connect to.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>-f | --format</opt><arg>=FORMAT</arg></p>
|
||||
|
||||
<optdesc><p>Choose output format, available options are "text" or "json".</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>-n | --client-name</opt><arg>=NAME</arg></p>
|
||||
|
||||
<optdesc><p>Specify the client name <file>pactl</file> shall pass to the server when connecting.</p></optdesc>
|
||||
</option>
|
||||
|
||||
</options>
|
||||
|
||||
<section name="Commands">
|
||||
<p>
|
||||
When supplied as arguments to the commands below, the special names \@DEFAULT_SINK@, \@DEFAULT_SOURCE@ and \@DEFAULT_MONITOR@
|
||||
can be used to specify the default sink, source and monitor respectively.
|
||||
</p>
|
||||
|
||||
<option>
|
||||
<p><opt>stat</opt></p>
|
||||
<optdesc><p>Dump a few statistics about the memory usage of the PulseAudio daemon.</p></optdesc>
|
||||
|
||||
<optdesc><p>Dump a few statistics about the PulseAudio daemon.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>info</opt></p>
|
||||
<optdesc><p>Dump some info about the PulseAudio daemon.</p></optdesc>
|
||||
</option>
|
||||
<p><opt>list</opt></p>
|
||||
|
||||
<option>
|
||||
<p><opt>list</opt> [<arg>short</arg>] [<arg>TYPE</arg>]</p>
|
||||
<optdesc><p>Dump all currently loaded modules, available sinks, sources, streams, etc. <arg>TYPE</arg> must be one of:
|
||||
modules, sinks, sources, sink-inputs, source-outputs, clients, samples, cards, message-handlers. If not specified, all info is listed
|
||||
with the exception of the message-handlers. If short is given, output is in a tabular format, for easy parsing by scripts.</p></optdesc>
|
||||
<optdesc><p>Dump all currently loaded modules, available sinks, sources, streams and clients.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>exit</opt></p>
|
||||
|
||||
<optdesc><p>Asks the PulseAudio server to terminate.</p></optdesc>
|
||||
</option>
|
||||
|
||||
|
||||
<option>
|
||||
<p><opt>upload-sample</opt> <arg>FILENAME</arg> [<arg>NAME</arg>]</p>
|
||||
|
||||
<optdesc><p>Upload a sound from the specified audio file into
|
||||
the sample cache. The file types supported are those understood
|
||||
by <file>libsndfile</file>. The sample in the cache is named
|
||||
after the audio file, unless the name is explicitly
|
||||
specified.</p></optdesc>
|
||||
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>play-sample</opt> <arg>NAME</arg> [<arg>SINK</arg>]</p>
|
||||
|
||||
<optdesc><p>Play the specified sample from the sample cache. It
|
||||
is played on the default sink, unless the symbolic name or the
|
||||
numerical index of the sink to play it on is
|
||||
specified.</p></optdesc>
|
||||
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>remove-sample</opt> <arg>NAME</arg></p>
|
||||
|
||||
<optdesc><p>Remove the specified sample from the sample cache.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>load-module</opt> <arg>NAME</arg> [<arg>ARGUMENTS ...</arg>]</p>
|
||||
<optdesc><p>Load the specified module with the specified arguments into the running sound server.
|
||||
Prints the numeric index of the module just loaded to STDOUT. You can use it to unload the module later.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>unload-module</opt> <arg>ID|NAME</arg></p>
|
||||
<optdesc><p>Unload the module instance identified by the specified numeric index or unload all modules by the specified name.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>move-sink-input</opt> <arg>ID</arg> <arg>SINK</arg></p>
|
||||
|
||||
<optdesc><p>Move the specified playback stream (identified by its numerical index) to the specified sink (identified by its symbolic name or numerical index).</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>move-source-output</opt> <arg>ID</arg> <arg>SOURCE</arg></p>
|
||||
|
||||
<optdesc><p>Move the specified recording stream (identified by its numerical index) to the specified source (identified by its symbolic name or numerical index).</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>suspend-sink</opt> <arg>SINK</arg> <arg>true|false</arg></p>
|
||||
<optdesc><p>Suspend or resume the specified sink (which may be
|
||||
specified either by its symbolic name or numerical index), depending whether true
|
||||
(suspend) or false (resume) is passed as last argument. Suspending
|
||||
a sink will pause all playback. Depending on the module implementing
|
||||
the sink this might have the effect that the underlying device is
|
||||
closed, making it available for other applications to use. The exact
|
||||
behaviour depends on the module.
|
||||
</p></optdesc>
|
||||
<p><opt>load-module</opt> <arg>NAME</arg> [<arg>ARGUMENTS ...</arg>]</p>
|
||||
|
||||
<optdesc><p>Load the specified module with the specified arguments into the running sound server. Prints the numeric index of the module just loaded to STDOUT. You can use it to unload the module later.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>suspend-source</opt> <arg>SOURCE</arg> <arg>true|false</arg></p>
|
||||
<optdesc><p>Suspend or resume the specified source (which may be
|
||||
specified either by its symbolic name or numerical index), depending whether true
|
||||
(suspend) or false (resume) is passed as last argument. Suspending
|
||||
a source will pause all capturing. Depending on the module implementing
|
||||
the source this might have the effect that the underlying device is
|
||||
closed, making it available for other applications to use. The exact
|
||||
behaviour depends on the module.
|
||||
</p></optdesc>
|
||||
<p><opt>unload-module</opt> <arg>ID</arg></p>
|
||||
|
||||
<optdesc><p>Unload the module instance identified by the specified numeric index.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>set-card-profile</opt> <arg>CARD</arg> <arg>PROFILE</arg></p>
|
||||
<optdesc><p>Set the specified card (identified by its symbolic name or numerical index) to the specified profile (identified by its symbolic name).</p></optdesc>
|
||||
<p><opt>suspend-sink</opt> <arg>SINK</arg> <arg>1|0</arg></p>
|
||||
|
||||
<optdesc><p>Suspend or resume the specified sink (which my be
|
||||
specified either by its symbolic name, or by its numeric index),
|
||||
depending whether 1 (suspend) or 0 (resume) is passed as last
|
||||
argument. Suspending a sink will pause all playback. Depending
|
||||
on the module implementing the sink this might have the effect
|
||||
that the underlying device is closed, making it available for
|
||||
other applications to use. The exact behaviour depends on the
|
||||
module.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>get-default-sink</opt></p>
|
||||
<optdesc><p>Returns the symbolic name of the default sink.</p></optdesc>
|
||||
<p><opt>suspend-source</opt> <arg>SOURCE</arg> <arg>1|0</arg></p>
|
||||
|
||||
<optdesc><p>Suspend or resume the specified source (which my be
|
||||
specified either by its symbolic name, or by its numeric index),
|
||||
depending whether 1 (suspend) or 0 (resume) is passed as last
|
||||
argument. Suspending a source will pause all
|
||||
capturing. Depending on the module implementing the source this
|
||||
might have the effect that the underlying device is closed,
|
||||
making it available for other applications to use. The exact
|
||||
behaviour depends on the module.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>set-default-sink</opt> <arg>SINK</arg></p>
|
||||
<optdesc><p>Make the specified sink (identified by its symbolic name or numerical index) the default sink.
|
||||
Use the special name \@NONE@ to unset the user defined default sink. This will make pulseaudio return to the default
|
||||
sink selection based on sink priority.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>set-sink-port</opt> <arg>SINK</arg> <arg>PORT</arg></p>
|
||||
<optdesc><p>Set the specified sink (identified by its symbolic name or numerical index) to the specified port (identified by its symbolic name).</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>get-default-source</opt></p>
|
||||
<optdesc><p>Returns the symbolic name of the default source.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>set-default-source</opt> <arg>SOURCE</arg></p>
|
||||
<optdesc><p>Make the specified source (identified by its symbolic name or numerical index) the default source.
|
||||
Use the special name \@NONE@ to unset the user defined default source. This will make pulseaudio return to the default
|
||||
source selection based on source priority.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>set-source-port</opt> <arg>SOURCE</arg> <arg>PORT</arg></p>
|
||||
<optdesc><p>Set the specified source (identified by its symbolic name or numerical index) to the specified port (identified by its symbolic name).</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>set-port-latency-offset</opt> <arg>CARD</arg> <arg>PORT</arg> <arg>OFFSET</arg></p>
|
||||
<optdesc><p>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).
|
||||
<arg>OFFSET</arg> is a number which represents the latency offset in microseconds</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>get-sink-volume</opt> <arg>SINK</arg></p>
|
||||
<optdesc><p>Get the volume of the specified sink (identified by its symbolic name or numerical index) displayed in the same format as the `info` command.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<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. 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>get-source-volume</opt> <arg>SOURCE</arg></p>
|
||||
```
|
||||
<optdesc><p>Get the volume of the specified source (identified by its symbolic name or numerical index) displayed in the same format as the `info` command.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<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. 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 [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. 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 [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. 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>
|
||||
<p><opt>get-sink-mute</opt> <arg>SINK</arg></p>
|
||||
<optdesc><p>Get the mute status of the specified sink (identified by its symbolic name or numerical index).</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>set-sink-mute</opt> <arg>SINK</arg> <arg>1|0|toggle</arg></p>
|
||||
<optdesc><p>Set the mute status of the specified sink (identified by its symbolic name or numerical index).</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>get-source-mute</opt> <arg>SOURCE</arg></p>
|
||||
<optdesc><p>Get the mute status of the specified source (identified by its symbolic name or numerical index).</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>set-source-mute</opt> <arg>SOURCE</arg> <arg>1|0|toggle</arg></p>
|
||||
<optdesc><p>Set the mute status of the specified source (identified by its symbolic name or numerical index).</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>set-sink-input-mute</opt> <arg>INPUT</arg> <arg>1|0|toggle</arg></p>
|
||||
<optdesc><p>Set the mute status of the specified sink input (identified by its numerical index).</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>set-source-output-mute</opt> <arg>OUTPUT</arg> <arg>1|0|toggle</arg></p>
|
||||
<optdesc><p>Set the mute status of the specified source output (identified by its numerical index).</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>set-sink-formats</opt> <arg>SINK</arg> <arg>FORMATS</arg></p>
|
||||
<optdesc><p>Set the supported formats of the specified sink (identified
|
||||
by its numerical index) if supported by the sink. <arg>FORMATS</arg> is
|
||||
specified as a semi-colon (;) separated list of formats in the form
|
||||
'encoding[, key1=value1, key2=value2, ...]' (for example, AC3 at 32000,
|
||||
44100 and 48000 Hz would be specified as
|
||||
'ac3-iec61937, format.rate = "[ 32000, 44100, 48000 ]"'). See
|
||||
https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SupportedAudioFormats/
|
||||
for possible encodings. </p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>send-message</opt> <arg>RECIPIENT</arg> <arg>MESSAGE</arg> <arg>MESSAGE_PARAMETERS</arg></p>
|
||||
<optdesc><p>Send a message to the specified recipient object. If applicable an additional string containing
|
||||
message parameters can be specified. A string is returned as a response to the message. For available messages
|
||||
see https://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/doc/messaging_api.txt.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>subscribe</opt></p>
|
||||
<optdesc><p>Subscribe to events, pactl does not exit by itself, but keeps waiting for new events.</p></optdesc>
|
||||
</option>
|
||||
|
||||
</section>
|
||||
</options>
|
||||
|
||||
<section name="Authors">
|
||||
<p>The PulseAudio Developers <@PACKAGE_BUGREPORT@>; PulseAudio is available from <url href="@PACKAGE_URL@"/></p>
|
||||
</section>
|
||||
|
||||
<seealso>
|
||||
<section name="See also">
|
||||
<p>
|
||||
<manref name="pulseaudio" section="1"/>,
|
||||
<manref name="pacmd" section="1"/>
|
||||
<manref name="pulseaudio" section="1"/>, <manref name="pacmd" section="1"/>
|
||||
</p>
|
||||
</seealso>
|
||||
</section>
|
||||
|
||||
</manpage>
|
||||
|
|
|
|||
|
|
@ -16,7 +16,9 @@ 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, see <http://www.gnu.org/licenses/>.
|
||||
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="padsp" section="1" desc="PulseAudio OSS Wrapper">
|
||||
|
|
|
|||
127
man/paplay.1.xml.in
Normal file
127
man/paplay.1.xml.in
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
<?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="paplay" section="1" desc="Play back audio files on a PulseAudio sound server">
|
||||
|
||||
<synopsis>
|
||||
<cmd>paplay [<arg>options</arg>] <arg>FILE</arg></cmd>
|
||||
<cmd>paplay <opt>--help</opt></cmd>
|
||||
<cmd>paplay <opt>--version</opt></cmd>
|
||||
</synopsis>
|
||||
|
||||
<description>
|
||||
<p><file>paplay</file> is a simple tool for playing back audio
|
||||
files on a PulseAudio sound server. It understands all audio file
|
||||
formats supported by <file>libsndfile</file>.</p>
|
||||
</description>
|
||||
|
||||
<options>
|
||||
|
||||
<option>
|
||||
<p><opt>-h | --help</opt></p>
|
||||
|
||||
<optdesc><p>Show help.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>--version</opt></p>
|
||||
|
||||
<optdesc><p>Show version information.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>-v | --verbose</opt></p>
|
||||
|
||||
<optdesc><p>Enable verbose operation. Dumps the current playback time to STDERR during playback.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>-s | --server</opt><arg>=SERVER</arg></p>
|
||||
|
||||
<optdesc><p>Choose the server to connect to.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>-d | --device</opt><arg>=SINK</arg></p>
|
||||
|
||||
<optdesc><p>Specify the symbolic name of the sink to play this file on.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>-n | --client-name</opt><arg>=NAME</arg></p>
|
||||
|
||||
<optdesc><p>Specify the client name <file>paplay</file> shall pass to the server when connecting.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>--stream-name</opt><arg>=NAME</arg></p>
|
||||
|
||||
<optdesc><p>Specify the stream name <file>paplay</file> shall pass to the server when creating the stream.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>--volume</opt><arg>=VOLUME</arg></p>
|
||||
|
||||
<optdesc><p>Specify the initial playback volume to use. Choose a value between 0 (silent) and 65536 (100% volume).</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>--channel-map</opt><arg>=CHANNELMAP</arg></p>
|
||||
|
||||
<optdesc><p>Explicitly choose a channel map when playing back
|
||||
this stream. The argument should be a comma separated list of
|
||||
channel names: <arg>front-left</arg>, <arg>front-right</arg>,
|
||||
<arg>mono</arg>, <arg>front-center</arg>, <arg>rear-left</arg>,
|
||||
<arg>rear-right</arg>, <arg>rear-center</arg>, <arg>lfe</arg>,
|
||||
<arg>front-left-of-center</arg>,
|
||||
<arg>front-right-of-center</arg>, <arg>side-left</arg>,
|
||||
<arg>side-right</arg>, <arg>top-center</arg>,
|
||||
<arg>top-front-center</arg>, <arg>top-front-left</arg>,
|
||||
<arg>top-front-right</arg>, <arg>top-rear-left</arg>,
|
||||
<arg>top-rear-right</arg>, <arg>top-rear-center</arg>, or any of
|
||||
the 32 auxiliary channel names <arg>aux0</arg> to
|
||||
<arg>aux31</arg>.</p></optdesc>
|
||||
</option>
|
||||
|
||||
</options>
|
||||
|
||||
<section name="Limitations">
|
||||
|
||||
<p>Due to a limitation in <file>libsndfile</file>
|
||||
<file>paplay</file> currently does not always set the correct channel
|
||||
mapping for playback of multichannel (i.e. surround) audio files, even if the channel mapping information is
|
||||
available in the audio file.</p>
|
||||
|
||||
</section>
|
||||
|
||||
<section name="Authors">
|
||||
<p>The PulseAudio Developers <@PACKAGE_BUGREPORT@>; PulseAudio is available from <url href="@PACKAGE_URL@"/></p>
|
||||
</section>
|
||||
|
||||
<section name="See also">
|
||||
<p>
|
||||
<manref name="pulseaudio" section="1"/>, <manref name="pacat" section="1"/>
|
||||
</p>
|
||||
</section>
|
||||
|
||||
</manpage>
|
||||
|
|
@ -16,7 +16,9 @@ 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, see <http://www.gnu.org/licenses/>.
|
||||
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="pasuspender" section="1" desc="Temporarily suspend PulseAudio">
|
||||
|
|
|
|||
|
|
@ -16,7 +16,9 @@ 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, see <http://www.gnu.org/licenses/>.
|
||||
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="pax11publish" section="1" desc="PulseAudio X11 Credential Utility">
|
||||
|
|
@ -71,7 +73,7 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
the <file>eval</file> 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
|
||||
<file>~/.config/pulse/cookie</file>. </p></optdesc>
|
||||
<file>~/.pulse-cookie</file>. </p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
|
|
@ -81,12 +83,12 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
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
|
||||
<file>~/.config/pulse/client.conf</file> (or
|
||||
<file>@PA_DEFAULT_CONFIG_DIR@/client.conf</file> if that file does not
|
||||
<file>~/.pulse/client.conf</file> (or
|
||||
<file>@pulseconfdir@/client.conf</file> if that file does not
|
||||
exist). If specific options are passed on the command line
|
||||
(<opt>-S</opt>, <opt>-O</opt>, <opt>-I</opt>, <opt>-c</opt>, see
|
||||
below), they take precedence. Also uploads the local
|
||||
authentication cookie <file>~/.config/pulse/cookie</file> to the X11
|
||||
authentication cookie <file>~/.pulse-cookie</file> to the X11
|
||||
server.</p></optdesc>
|
||||
</option>
|
||||
|
||||
|
|
@ -131,7 +133,7 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
<optdesc><p>Only valid for <opt>-e</opt>: export the PulseAudio
|
||||
authentication cookie stored in the specified file to the X11
|
||||
display instead of the one stored in <file>~/.config/pulse/cookie</file>.</p></optdesc>
|
||||
display instead of the one stored in <file>~/.pulse-cookie</file>.</p></optdesc>
|
||||
</option>
|
||||
|
||||
</options>
|
||||
|
|
|
|||
|
|
@ -1,369 +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, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<manpage name="pulse-cli-syntax" section="5" desc="PulseAudio Command Line Interface Syntax">
|
||||
|
||||
<synopsis>
|
||||
<p><file>~/.config/pulse/default.pa</file></p>
|
||||
<p><file>@PA_DEFAULT_CONFIG_DIR@/default.pa</file></p>
|
||||
<p><file>@PA_DEFAULT_CONFIG_DIR@/system.pa</file></p>
|
||||
</synopsis>
|
||||
|
||||
<description>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Note that any boolean arguments can be given positively as '1', 't', 'y',
|
||||
'true', 'yes' or 'on'. Likewise, negative values can be given as '0',
|
||||
'f', 'n', 'false', 'no' or 'off'. Case is ignored.
|
||||
</p>
|
||||
</description>
|
||||
|
||||
<section name="General Commands">
|
||||
|
||||
<option>
|
||||
<p><opt>help</opt></p>
|
||||
<optdesc><p>Show a quick help on the commands available.</p></optdesc>
|
||||
</option>
|
||||
</section>
|
||||
|
||||
<section name="Status Commands">
|
||||
<option>
|
||||
<p><opt>list-modules</opt></p>
|
||||
<optdesc><p>Show all currently loaded modules with their arguments.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>list-cards</opt></p>
|
||||
<optdesc><p>Show all currently registered cards</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>list-sinks</opt> or <opt>list-sources</opt></p>
|
||||
<optdesc><p>Show all currently registered sinks (resp. sources).</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>list-clients</opt></p>
|
||||
<optdesc><p>Show all currently active clients.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>list-sink-inputs</opt> or <opt>list-source-outputs</opt></p>
|
||||
<optdesc><p>Show all currently active inputs to sinks a.k.a. playback
|
||||
streams (resp. outputs of sources a.k.a. recording streams).</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>stat</opt></p>
|
||||
<optdesc><p>Show some simple statistics about the allocated memory blocks and the space used by them.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>info</opt> or <opt>ls</opt> or <opt>list</opt></p>
|
||||
<optdesc><p>A combination of all status commands described above (all
|
||||
three commands are synonyms).</p></optdesc>
|
||||
</option>
|
||||
</section>
|
||||
|
||||
<section name="Module Management">
|
||||
<option>
|
||||
<p><opt>load-module</opt> <arg>name</arg> [<arg>arguments...</arg>]</p>
|
||||
<optdesc><p>Load a module specified by its name and arguments. For most
|
||||
modules it is OK to be loaded more than once.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>unload-module</opt> <arg>index|name</arg></p>
|
||||
<optdesc><p>Unload a module, specified either by its index in the module
|
||||
list or its name.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>describe-module</opt> <arg>name</arg></p>
|
||||
<optdesc><p>Give information about a module specified by its name.</p></optdesc>
|
||||
</option>
|
||||
</section>
|
||||
|
||||
<section name="Volume Commands">
|
||||
<option>
|
||||
<p><opt>set-sink-volume|set-source-volume</opt> <arg>index|name</arg> <arg>volume</arg></p>
|
||||
<optdesc><p>Set the volume of the specified sink (resp. source). You may
|
||||
specify the sink (resp. source) either by its index in the sink/source list
|
||||
or by its name. The volume should be an integer value greater or equal than
|
||||
0 (muted). Volume 65536 (0x10000) is 'normal' volume a.k.a. 100%. Values
|
||||
greater than this amplify the audio signal (with clipping).</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>set-sink-mute|set-source-mute</opt> <arg>index|name</arg> <arg>boolean</arg></p>
|
||||
<optdesc><p>Mute or unmute the specified sink (resp. source). You may
|
||||
specify the sink (resp. source) either by its index or by its name.
|
||||
The mute value is either 0 (not muted) or 1 (muted).</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>set-sink-input-volume|set-source-output-volume</opt> <arg>index</arg> <arg>volume</arg></p>
|
||||
<optdesc><p>Set the volume of a sink input (resp. source output) specified
|
||||
by its index. The same volume rules apply as with set-sink-volume.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>set-sink-input-mute|set-source-output-mute</opt> <arg>index</arg> <arg>boolean</arg></p>
|
||||
<optdesc><p>Mute or unmute a sink input (resp. source output) specified
|
||||
by its index. The same mute rules apply as with set-sink-mute.</p></optdesc>
|
||||
</option>
|
||||
</section>
|
||||
|
||||
<section name="Configuration Commands">
|
||||
<option>
|
||||
<p><opt>set-default-sink|set-default-source</opt> <arg>index|name</arg></p>
|
||||
<optdesc><p>Make a sink (resp. source) the default. You may specify the
|
||||
sink (resp. source) by its index in the sink (resp. source) list or by its
|
||||
name. Use the special name \@NONE@ to unset the user defined default sink or
|
||||
source. In this case, pulseaudio will return to the default sink or source
|
||||
selection based on priority.</p><p>Note that defaults may be overridden by
|
||||
various policy modules or by specific stream configurations.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>set-card-profile</opt> <arg>index|name</arg> <arg>profile-name</arg></p>
|
||||
<optdesc><p>Change the profile of a card.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>set-sink-port|set-source-port</opt> <arg>index|name</arg> <arg>port-name</arg></p>
|
||||
<optdesc><p>Change the profile of a sink (resp. source).</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>set-port-latency-offset</opt> <arg>card-index|card-name</arg> <arg>port-name</arg> <arg>offset</arg> </p>
|
||||
<optdesc><p>Change the latency offset of a port belonging to the specified card</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>suspend-sink|suspend-source</opt> <arg>name|index</arg>
|
||||
<arg>true|false</arg>
|
||||
</p>
|
||||
<optdesc><p>Suspend or resume the specified sink or source (which may be
|
||||
specified either by its name or index), depending whether true
|
||||
(suspend) or false (resume) is passed as last argument. Suspending
|
||||
a sink will pause all playback and suspending a source will pause all
|
||||
capturing. Depending on the module implementing the sink or source this
|
||||
might have the effect that the underlying device is closed, making it
|
||||
available for other applications to use. The exact behaviour depends on
|
||||
the module.
|
||||
</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>suspend</opt> <arg>boolean</arg></p>
|
||||
<optdesc><p>Suspend all sinks and sources.</p></optdesc>
|
||||
</option>
|
||||
</section>
|
||||
|
||||
<section name="Moving streams">
|
||||
<option>
|
||||
<p><opt>move-sink-input|move-source-output</opt> <arg>index</arg> <arg>sink-index|sink-name</arg></p>
|
||||
<optdesc><p>Move sink input (resp. source output) to another sink
|
||||
(resp. source).</p></optdesc>
|
||||
</option>
|
||||
</section>
|
||||
|
||||
<section name="Property lists">
|
||||
<option>
|
||||
<p><opt>update-sink-proplist|update-source-proplist</opt> <arg>index|name</arg> <arg>properties</arg></p>
|
||||
<optdesc><p>Update the properties of a sink (resp. source) specified by
|
||||
name or index. The property is specified as e.g. device.description="My
|
||||
Preferred Name"</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>update-sink-input-proplist|update-source-output-proplist</opt> <arg>index</arg> <arg>properties</arg></p>
|
||||
<optdesc><p>Update the properties of a sink input (resp. source output)
|
||||
specified by index. The properties are specified as above.</p></optdesc>
|
||||
</option>
|
||||
</section>
|
||||
|
||||
<section name="Sample Cache">
|
||||
<option>
|
||||
<p><opt>list-samples</opt></p>
|
||||
<optdesc><p>Lists the contents of the sample cache.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>play-sample</opt> <arg>name</arg> <arg>sink-index|sink-name</arg></p>
|
||||
<optdesc><p>Play a sample cache entry to a sink.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>remove-sample</opt> <arg>name</arg></p>
|
||||
<optdesc><p>Remove an entry from the sample cache.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>load-sample</opt> <arg>name</arg> <arg>filename</arg></p>
|
||||
<optdesc><p>Load an audio file to the sample cache.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>load-sample-lazy</opt> <arg>name</arg> <arg>filename</arg></p>
|
||||
<optdesc><p>Create a new entry in the sample cache, but don't load the
|
||||
sample immediately. The sample is loaded only when it is first used.
|
||||
After a certain idle time it is freed again.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>load-sample-dir-lazy</opt> <arg>path</arg></p>
|
||||
<optdesc><p>Load all entries in the specified directory into the sample
|
||||
cache as lazy entries. A shell globbing expression (e.g. *.wav) may be
|
||||
appended to the path of the directory to add.</p></optdesc>
|
||||
</option>
|
||||
</section>
|
||||
|
||||
<section name="Killing Clients/Streams">
|
||||
<option>
|
||||
<p><opt>kill-client</opt> <arg>index</arg></p>
|
||||
<optdesc><p>Remove a client forcibly from the server. There is no protection
|
||||
against the client reconnecting immediately.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>kill-sink-input|kill-source-output</opt> <arg>index</arg></p>
|
||||
<optdesc><p>Remove a sink input (resp. source output) forcibly from the
|
||||
server. This will not remove the owning client or any other streams opened
|
||||
by the same client from the server.</p></optdesc>
|
||||
</option>
|
||||
</section>
|
||||
|
||||
<section name="Log Commands">
|
||||
<option>
|
||||
<p><opt>set-log-level</opt> <arg>numeric-level</arg></p>
|
||||
<optdesc><p>Change the log level.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>set-log-meta</opt> <arg>boolean</arg></p>
|
||||
<optdesc><p>Show source code location in log messages.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>set-log-target</opt> <arg>target</arg></p>
|
||||
<optdesc><p>Change the log target (null, auto, journal, syslog, stderr,
|
||||
file:PATH, newfile:PATH).</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>set-log-time</opt> <arg>boolean</arg></p>
|
||||
<optdesc><p>Show timestamps in log messages.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>set-log-backtrace</opt> <arg>num-frames</arg></p>
|
||||
<optdesc><p>Show backtrace in log messages.</p></optdesc>
|
||||
</option>
|
||||
</section>
|
||||
|
||||
<section name="Miscellaneous Commands">
|
||||
<option>
|
||||
<p><opt>play-file</opt> <arg>filename</arg> <arg>sink-index|sink-name</arg></p>
|
||||
<optdesc><p>Play an audio file to a sink.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>dump</opt></p>
|
||||
<optdesc><p>Dump the daemon's current configuration in CLI commands.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>dump-volumes</opt></p>
|
||||
<optdesc><p>Debug: Shows the current state of all volumes.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>shared</opt></p>
|
||||
<optdesc><p>Debug: Show shared properties.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>send-message</opt> <arg>recipient</arg> <arg>message</arg> <arg>message_parameters</arg></p>
|
||||
<optdesc><p>Send a message to the specified recipient object. If applicable an additional string containing
|
||||
message parameters can be specified. A string is returned as a response to the message. For available messages
|
||||
see https://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/doc/messaging_api.txt.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>exit</opt></p>
|
||||
<optdesc><p>Terminate the daemon. If you want to terminate a CLI
|
||||
connection ("log out") you might want to use ctrl+d</p></optdesc>
|
||||
</option>
|
||||
</section>
|
||||
|
||||
<section name="Meta Commands">
|
||||
<p>
|
||||
In addition to the commands described above there are a few meta directives
|
||||
supported by the command line interpreter.
|
||||
</p>
|
||||
<option>
|
||||
<p><opt>.include</opt> <arg>filename|folder</arg></p>
|
||||
<optdesc><p>Executes the commands from the specified script file or in all
|
||||
of the *.pa files within the folder.</p></optdesc>
|
||||
</option>
|
||||
<option>
|
||||
<p><opt>.fail</opt> and <opt>.nofail</opt></p>
|
||||
<optdesc><p>Enable (resp. disable) that following failing commands will
|
||||
cancel the execution of the current script file. This is ignored when
|
||||
used on the interactive command line.</p></optdesc>
|
||||
</option>
|
||||
<option>
|
||||
<p><opt>.ifexists</opt> <arg>filename</arg></p>
|
||||
<optdesc><p>Execute the subsequent block of commands only if the specified
|
||||
file exists. Typically <arg>filename</arg> indicates a module. Relative
|
||||
paths are resolved using the module directory as the base. By using an
|
||||
absolute path, the existence of other files can be checked as well.</p></optdesc>
|
||||
</option>
|
||||
<option>
|
||||
<p><opt>.else</opt> and <opt>.endif</opt></p>
|
||||
<optdesc><p>A block of commands is delimited by an <opt>.else</opt> or
|
||||
<opt>.endif</opt> meta command. Nesting conditional commands is not
|
||||
supported.</p></optdesc>
|
||||
</option>
|
||||
</section>
|
||||
|
||||
<section name="Authors">
|
||||
<p>The PulseAudio Developers <@PACKAGE_BUGREPORT@>;
|
||||
PulseAudio is available from <url href="@PACKAGE_URL@"/></p>
|
||||
</section>
|
||||
|
||||
<section name="See also">
|
||||
<p>
|
||||
<manref name="default.pa" section="5"/>,
|
||||
<manref name="pacmd" section="1"/>,
|
||||
<manref name="pulseaudio" section="1"/>
|
||||
</p>
|
||||
</section>
|
||||
|
||||
</manpage>
|
||||
|
|
@ -16,33 +16,24 @@ 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, see <http://www.gnu.org/licenses/>.
|
||||
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="pulse-client.conf" section="5" desc="PulseAudio client configuration file">
|
||||
|
||||
<synopsis>
|
||||
<p><file>~/.config/pulse/client.conf</file></p>
|
||||
<p><file>~/.config/pulse/client.conf.d/*.conf</file></p>
|
||||
<p><file>@PA_DEFAULT_CONFIG_DIR@/client.conf</file></p>
|
||||
<p><file>@PA_DEFAULT_CONFIG_DIR@/client.conf.d/*.conf</file></p>
|
||||
<p><file>~/.pulse/client.conf</file></p>
|
||||
|
||||
<p><file>@pulseconfdir@/client.conf</file></p>
|
||||
</synopsis>
|
||||
|
||||
<description>
|
||||
<p>The PulseAudio client library reads configuration directives from
|
||||
a configuration file on startup. If the per-user file
|
||||
<file>~/.config/pulse/client.conf</file> exists, it is used, otherwise the
|
||||
system configuration file <file>@PA_DEFAULT_CONFIG_DIR@/client.conf</file>
|
||||
is used. In addition to those main files, configuration directives can also
|
||||
be put in files under directories
|
||||
<file>~/.config/pulse/client.conf.d/</file> and
|
||||
<file>@PA_DEFAULT_CONFIG_DIR@/client.conf.d/</file>. Those files have to
|
||||
have the .conf file name extension, but otherwise the file names can be
|
||||
chosen freely. The files under client.conf.d are processed in alphabetical
|
||||
order. In case the same option is set in multiple files, the last file to
|
||||
set an option overrides earlier files. The main client.conf file is
|
||||
processed first, so options set in files under client.conf.d override the
|
||||
main file.</p>
|
||||
a file <file>~/.pulse/client.conf</file> on startup and when that
|
||||
file doesn't exist from
|
||||
<file>@pulseconfdir@/client.conf</file>.</p>
|
||||
|
||||
<p>The configuration file is a simple collection of variable
|
||||
declarations. If the configuration file parser encounters either ;
|
||||
|
|
@ -71,23 +62,14 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>default-server=</opt> The default server to connect
|
||||
<p><opt>default-server=</opt> The default sever to connect
|
||||
to. The environment variable <opt>$PULSE_SERVER</opt> takes
|
||||
precedence.</p>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>autospawn=</opt> Autospawn a PulseAudio daemon when needed. Takes
|
||||
a boolean value, defaults to <opt>yes</opt>. Note that setting this to
|
||||
"no" doesn't disable the systemd service. The autospawn option is only
|
||||
meant to be used on systems without systemd. If you use systemd to start
|
||||
PulseAudio, use "systemctl --user stop pulseaudio.service
|
||||
pulseaudio.socket" to stop the daemon temporarily, or "systemctl --user
|
||||
mask pulseaudio.service pulseaudio.socket" to permanently disable the
|
||||
units (the "disable" command of systemctl probably won't work, because
|
||||
the pulseaudio.socket unit is often installed to
|
||||
/usr/lib/systemd/user/sockets.target.wants/, which makes it impossible to
|
||||
disable the unit with the "disable" command).</p>
|
||||
<p><opt>autospawn=</opt> Autospawn a PulseAudio daemon when
|
||||
needed. Takes a boolean value, defaults to <opt>yes</opt>.</p>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
|
|
@ -106,19 +88,11 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
<option>
|
||||
<p><opt>cookie-file=</opt> Specify the path to the PulseAudio
|
||||
authentication cookie. Defaults to
|
||||
<file>~/.config/pulse/cookie</file>.</p>
|
||||
<file>~/.pulse-cookie</file>.</p>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>enable-shm=</opt> Enable data transfer via POSIX
|
||||
or memfd shared memory. Takes a boolean argument, defaults to
|
||||
<opt>yes</opt>. If set to <opt>no</opt>, communication with
|
||||
the server will be exclusively done through data-copy over
|
||||
sockets.</p>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>enable-memfd=</opt>. Enable data transfer via memfd
|
||||
shared memory. Takes a boolean argument, defaults to
|
||||
<opt>yes</opt>.</p>
|
||||
</option>
|
||||
|
|
|
|||
|
|
@ -16,36 +16,27 @@ 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, see <http://www.gnu.org/licenses/>.
|
||||
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="pulse-daemon.conf" section="5" desc="PulseAudio daemon configuration file">
|
||||
|
||||
<synopsis>
|
||||
<p><file>~/.config/pulse/daemon.conf</file></p>
|
||||
<p><file>~/.config/pulse/daemon.conf.d/*.conf</file></p>
|
||||
<p><file>@PA_DEFAULT_CONFIG_DIR@/daemon.conf</file></p>
|
||||
<p><file>@PA_DEFAULT_CONFIG_DIR@/daemon.conf.d/*.conf</file></p>
|
||||
<p><file>~/.pulse/daemon.conf</file></p>
|
||||
|
||||
<p><file>@pulseconfdir@/daemon.conf</file></p>
|
||||
</synopsis>
|
||||
|
||||
<description>
|
||||
<p>The PulseAudio sound server reads configuration directives from
|
||||
a configuration file on startup. If the per-user file
|
||||
<file>~/.config/pulse/daemon.conf</file> exists, it is used, otherwise the
|
||||
system configuration file <file>@PA_DEFAULT_CONFIG_DIR@/daemon.conf</file>
|
||||
is used. In addition to those main files, configuration directives can also
|
||||
be put in files under directories
|
||||
<file>~/.config/pulse/daemon.conf.d/</file> and
|
||||
<file>@PA_DEFAULT_CONFIG_DIR@/daemon.conf.d/</file>. Those files have to
|
||||
have the .conf file name extension, but otherwise the file names can be
|
||||
chosen freely. The files under daemon.conf.d are processed in alphabetical
|
||||
order. In case the same option is set in multiple files, the last file to
|
||||
set an option overrides earlier files. The main daemon.conf file is
|
||||
processed first, so options set in files under daemon.conf.d override the
|
||||
main file.</p>
|
||||
|
||||
<p>Please note that the server also reads a configuration script on
|
||||
startup. See <manref name="default.pa" section="5"/>.</p>
|
||||
a file <file>~/.pulse/daemon.conf</file> on startup and when that
|
||||
file doesn't exist from
|
||||
<file>@pulseconfdir@/daemon.conf</file>. Please note that the
|
||||
server also reads a configuration script on startup
|
||||
<file>default.pa</file> which also contains runtime configuration
|
||||
directives.</p>
|
||||
|
||||
<p>The configuration file is a simple collection of variable
|
||||
declarations. If the configuration file parser encounters either ;
|
||||
|
|
@ -61,7 +52,7 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
<section name="General Directives">
|
||||
|
||||
<option>
|
||||
<p><opt>daemonize=</opt> Daemonize after startup. Takes a
|
||||
<p><opt>daemonize= </opt> Daemonize after startup. Takes a
|
||||
boolean value, defaults to <opt>no</opt>. The <opt>--daemonize</opt>
|
||||
command line option takes precedence.</p>
|
||||
</option>
|
||||
|
|
@ -76,7 +67,7 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
<option>
|
||||
<p><opt>allow-module-loading=</opt> Allow/disallow module
|
||||
loading after startup. This is a security feature that if
|
||||
disabled makes sure that no further modules may be loaded into
|
||||
dsabled makes sure that no further modules may be loaded into
|
||||
the PulseAudio server after startup completed. It is recommended
|
||||
to disable this when <opt>system-instance</opt> is
|
||||
enabled. Please note that certain features like automatic
|
||||
|
|
@ -97,96 +88,47 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
<opt>src-sinc-medium-quality</opt>, <opt>src-sinc-fastest</opt>,
|
||||
<opt>src-zero-order-hold</opt>, <opt>src-linear</opt>,
|
||||
<opt>trivial</opt>, <opt>speex-float-N</opt>,
|
||||
<opt>speex-fixed-N</opt>, <opt>ffmpeg</opt>, <opt>soxr-mq</opt>,
|
||||
<opt>soxr-hq</opt>, <opt>soxr-vhq</opt>. See the
|
||||
documentation of libsamplerate and speex for explanations of the
|
||||
different src- and speex- methods, respectively. The method
|
||||
<opt>trivial</opt> is the most basic algorithm implemented. If
|
||||
you're tight on CPU consider using this. On the other hand it has
|
||||
the worst quality of them all. The Speex resamplers take an
|
||||
integer quality setting in the range 0..10 (bad...good). They
|
||||
exist in two flavours: <opt>fixed</opt> and <opt>float</opt>. The former uses fixed point
|
||||
numbers, the latter relies on floating point numbers. On most
|
||||
desktop CPUs the float point resampler is a lot faster, and it
|
||||
also offers slightly better quality. The soxr-family methods
|
||||
are based on libsoxr, a resampler library from the SoX sound processing utility.
|
||||
The mq variant has the best performance of the three. The hq is more expensive
|
||||
and, according to SoX developers, is considered the best choice for audio of up to 16 bits per sample.
|
||||
The vhq variant has more precision than hq and is more suitable for larger samples. The Soxr resamplers
|
||||
generally offer better quality at less CPU compared to other resamplers, such as speex.
|
||||
The downside is that they can add a significant delay to the output
|
||||
(usually up to around 20 ms, in rare cases more).
|
||||
See the output of <opt>dump-resample-methods</opt> for a complete list of all
|
||||
available resamplers. Defaults to <opt>speex-float-1</opt>. The
|
||||
<opt>--resample-method</opt> command line option takes precedence.
|
||||
Note that some modules overwrite or allow overwriting of the
|
||||
resampler to use.</p>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>avoid-resampling=</opt> If set, try to configure the
|
||||
device to avoid resampling. This only works on devices which
|
||||
support reconfiguring their rate, and when no other streams are
|
||||
already playing or capturing audio. The device will also not be
|
||||
configured to a rate less than the default and alternate sample
|
||||
rates.</p>
|
||||
<opt>speex-fixed-N</opt>, <opt>ffmpeg</opt>. See the
|
||||
documentation of libsamplerate for an explanation for the
|
||||
different src- methods. The method <opt>trivial</opt> is the most basic
|
||||
algorithm implemented. If you're tight on CPU consider using
|
||||
this. On the other hand it has the worst quality of them
|
||||
all. The Speex resamplers take an integer quality setting in the
|
||||
range 0..9 (bad...good). They exist in two flavours: <opt>fixed</opt> and
|
||||
<opt>float</opt>. The former uses fixed point numbers, the latter relies on
|
||||
floating point numbers. On most desktop CPUs the float point
|
||||
resmampler is a lot faster, and it also offers slightly better
|
||||
quality. See the output of <opt>dump-resample-methods</opt> for
|
||||
a complete list of all available resamplers. Defaults to
|
||||
<opt>speex-float-3</opt>. The <opt>--resample-method</opt>
|
||||
command line option takes precedence. Note that some modules
|
||||
overwrite or allow overwriting of the resampler to use.</p>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>enable-remixing=</opt> If disabled never upmix or
|
||||
downmix channels to different channel maps. Instead, do a simple
|
||||
name-based matching only. Defaults to <opt>yes</opt>.
|
||||
There is no known valid use case for setting this option to
|
||||
<opt>no</opt>, therefore, this option is deprecated and may be
|
||||
removed in a future version of PulseAudio.</p>
|
||||
name-based matching only. Defaults to <opt>yes.</opt></p>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>remixing-use-all-sink-channels=</opt> If enabled, use
|
||||
all sink channels when remixing. Otherwise, remix to the minimal
|
||||
set of sink channels needed to reproduce all of the source
|
||||
channels. (This has no effect on LFE remixing.) Defaults to
|
||||
<opt>yes</opt>.</p>
|
||||
<p><opt>enable-lfe-remixing=</opt> if disabeld when upmixing or
|
||||
downmixing ignore LFE channels. When this option is dsabled 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 <opt>no</opt>.</p>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>enable-lfe-remixing=</opt> This is a way to set
|
||||
<opt>remixing-produce-lfe</opt> and <opt>remixing-consume-lfe</opt>
|
||||
to the same value at once. This option only exists for backward
|
||||
compatibility and may be removed in a future version of PulseAudio.</p>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>remixing-produce-lfe=</opt> If enabled, and the sink input
|
||||
does not have the LFE channel, synthesize the output LFE channel
|
||||
as a (lowpass-filtered, if <opt>lfe-crossover-freq</opt> is not 0)
|
||||
average of all input channels. Also, when <opt>lfe-crossover-freq</opt>
|
||||
is not 0, filter out low frequencies from other channels while
|
||||
producing a synthetic LFE output. If disabled, the output LFE channel
|
||||
will only get a signal when an input LFE channel is available as well.
|
||||
Defaults to <opt>no</opt>.</p>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>remixing-consume-lfe=</opt> If enabled, and the sink does not
|
||||
have an LFE channel, redirect the input LFE channel (if any) to other
|
||||
channels. If disabled, the input LFE channel will remain unused unless
|
||||
the sink has the LFE channel as well. Defaults to <opt>no</opt>.</p>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>lfe-crossover-freq=</opt> The crossover frequency (in Hz) for the
|
||||
LFE filter. Set it to 0 to disable the LFE filter. Defaults to 0.</p>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>use-pid-file=</opt> Create a PID file in the runtime directory
|
||||
(<file>$XDG_RUNTIME_DIR/pulse/pid</file>). If this is enabled you may
|
||||
<p><opt>use-pid-file=</opt> Create a PID file in
|
||||
<file>/tmp/pulse-$USER/pid</file>. Of 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
|
||||
disables multiple instances. Takes a boolean argument, defaults
|
||||
to <opt>yes</opt>. The <opt>--use-pid-file</opt> command line
|
||||
to <opt>yes</opt>. The <opt>--no-cpu-limit</opt> command line
|
||||
option takes precedence.</p>
|
||||
</option>
|
||||
|
||||
|
|
@ -201,39 +143,18 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
<option>
|
||||
<p><opt>system-instance=</opt> Run the daemon as system-wide
|
||||
instance, requires root privileges. Takes a boolean argument,
|
||||
instance, requires root priviliges. Takes a boolean argument,
|
||||
defaults to <opt>no</opt>. The <opt>--system</opt> command line
|
||||
argument takes precedence.</p>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>local-server-type=</opt> Please don't use this option if
|
||||
you don't have to! This option is currently only useful when you
|
||||
want D-Bus clients to use a remote server. This option may be
|
||||
removed in future versions. If you only want to run PulseAudio
|
||||
in the system mode, use the <opt>system-instance</opt> option.
|
||||
This option takes one of <opt>user</opt>, <opt>system</opt> or
|
||||
<opt>none</opt> as the argument. This is essentially a duplicate
|
||||
for the <opt>system-instance</opt> option. The difference is the
|
||||
<opt>none</opt> option, which is useful when you want to use a
|
||||
remote server with D-Bus clients. If both this and
|
||||
<opt>system-instance</opt> are defined, this option takes
|
||||
precedence. Defaults to whatever the <opt>system-instance</opt>
|
||||
is set.</p>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>enable-shm=</opt> Enable data transfer via POSIX
|
||||
or memfd shared memory. Takes a boolean argument, defaults to
|
||||
shared memory. Takes a boolean argument, defaults to
|
||||
<opt>yes</opt>. The <opt>--disable-shm</opt> command line
|
||||
argument takes precedence.</p>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>enable-memfd=</opt>. Enable memfd shared memory. Takes
|
||||
a boolean argument, defaults to <opt>yes</opt>.</p>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>shm-size-bytes=</opt> Sets the shared memory segment
|
||||
size for the daemon, in bytes. If left unspecified or is set to 0
|
||||
|
|
@ -255,16 +176,7 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
<p><opt>flat-volumes=</opt> Enable 'flat' volumes, i.e. where
|
||||
possible let the sink volume equal the maximum of the volumes of
|
||||
the inputs connected to it. Takes a boolean argument, defaults
|
||||
to <opt>no</opt>.</p>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>rescue-streams=</opt> Enable rescuing of streams if the
|
||||
used sink or source becomes unavailable. Takes a boolean argument.
|
||||
If set to <opt>yes</opt>, pulseaudio will try to move the streams
|
||||
from a sink or source that becomes unavailable to the default sink
|
||||
or source. If set to <opt>no</opt>, streams will be killed if the
|
||||
corresponding sink or source disappears. Defaults to <opt>yes</opt>.</p>
|
||||
to <opt>yes</opt>.</p>
|
||||
</option>
|
||||
|
||||
</section>
|
||||
|
|
@ -289,7 +201,7 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
mentioned above apply. However, if PA enters an endless loop,
|
||||
realtime scheduling causes a system lockup. Thus, realtime
|
||||
scheduling should only be enabled on trusted machines for
|
||||
now. Please note that only the IO threads of PulseAudio are made
|
||||
now. Please not that only the IO threads of PulseAudio are made
|
||||
real-time. The controlling thread is left a normally scheduled
|
||||
thread. Thus enabling the high-priority option is orthogonal.
|
||||
See <manref section="1" name="pulseaudio"/> for more
|
||||
|
|
@ -319,19 +231,9 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
<option>
|
||||
<p><opt>exit-idle-time=</opt> Terminate the daemon after the
|
||||
last client quit and this time in seconds passed. Use a negative value to
|
||||
disable this feature. Defaults to 20. The <opt>--exit-idle-time</opt>
|
||||
command line option takes precedence.</p>
|
||||
|
||||
<p>When PulseAudio runs in the per-user mode and detects a login
|
||||
session, then any positive value will be reset to 0 so that PulseAudio
|
||||
will terminate immediately on logout. A positive value therefore has
|
||||
effect only in environments where there's no support for login session
|
||||
tracking (or if the user is logged in without a session spawned, a.k.a.
|
||||
lingering). A negative value can still be used to disable any automatic
|
||||
exit.</p>
|
||||
|
||||
<p>When PulseAudio runs in the system mode, automatic exit is always
|
||||
disabled, so this option does nothing.</p>
|
||||
disable this feature. Defaults to 20. The
|
||||
<opt>--exit-idle-time</opt> command line option takes
|
||||
precedence.</p>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
|
|
@ -346,9 +248,9 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
<section name="Paths">
|
||||
|
||||
<option>
|
||||
<p><opt>dl-search-path=</opt> The path where to look for dynamic
|
||||
<p><opt>dl-search-path=</opt> 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
|
||||
path seperated by colons. The default path depends on compile
|
||||
time settings. The <opt>--dl-search-path</opt> command line
|
||||
option takes precedence. </p>
|
||||
</option>
|
||||
|
|
@ -357,10 +259,10 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
<p><opt>default-script-file=</opt> The default configuration
|
||||
script file to load. Specify an empty string for not loading a
|
||||
default script file. The default behaviour is to load
|
||||
<file>~/.config/pulse/default.pa</file>, and if that file does not
|
||||
<file>~/.pulse/default.pa</file>, and if that file does not
|
||||
exist fall back to the system wide installed version
|
||||
<file>@PA_DEFAULT_CONFIG_DIR@/default.pa</file>. If run in system-wide
|
||||
mode the file <file>@PA_DEFAULT_CONFIG_DIR@/system.pa</file> is used
|
||||
<file>@pulseconfdir@/default.pa</file>. If run in system-wide
|
||||
mode the file <file>@pulseconfdir@/system.pa</file> is used
|
||||
instead. If <opt>-n</opt> is passed on the command line
|
||||
or <opt>default-script-file=</opt> is disabled the default
|
||||
configuration script is ignored.</p>
|
||||
|
|
@ -378,16 +280,12 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
<option>
|
||||
<p><opt>log-target=</opt> The default log target. Use either
|
||||
<opt>stderr</opt>, <opt>syslog</opt>, <opt>journal</opt> (optional),
|
||||
<opt>auto</opt>, <opt>file:PATH</opt> or <opt>newfile:PATH</opt>. On traditional
|
||||
systems <opt>auto</opt> is equivalent to <opt>syslog</opt>. On systemd-enabled
|
||||
systems, auto is equivalent to <opt>journal</opt>, in case <opt>daemonize</opt>
|
||||
is enabled, and to <opt>stderr</opt> otherwise. If set to <opt>file:PATH</opt>,
|
||||
logging is directed to the file indicated by PATH. <opt>newfile:PATH</opt> is
|
||||
otherwise the same as <opt>file:PATH</opt>, but existing files are never
|
||||
overwritten. If the specified file already exists, a suffix is added to
|
||||
the file name to avoid overwriting. Defaults to <opt>auto</opt>. The
|
||||
<opt>--log-target</opt> command line option takes precedence.</p>
|
||||
<opt>stderr</opt>, <opt>syslog</opt> or <opt>auto</opt>. The
|
||||
latter is equivalent to <opt>sylog</opt> in case
|
||||
<opt>daemonize</opt> is enabled, otherwise to
|
||||
<opt>stderr</opt>. Defaults to <opt>auto</opt>. The
|
||||
<opt>--log-target</opt> command line option takes
|
||||
precedence.</p>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
|
|
@ -407,13 +305,13 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>log-time=</opt> With each logged message log the
|
||||
<p><opt>log-time=</opt> With each logged messages log the
|
||||
relative time since startup. Defaults to <opt>no</opt>.</p>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>log-backtrace=</opt> When greater than 0, with each
|
||||
logged message log a code stack trace up the specified
|
||||
logged message log a code stack trace up the the specified
|
||||
number of stack frames. Defaults to <opt>0</opt>.</p>
|
||||
</option>
|
||||
|
||||
|
|
@ -475,7 +373,7 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
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 priority of 9 by default.</p>
|
||||
libraries require a real-time prority of 9 by default. </p>
|
||||
</option>
|
||||
<option>
|
||||
<p><opt>rlimit-rttime</opt> Defaults to 1000000.</p>
|
||||
|
|
@ -491,9 +389,16 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
<option>
|
||||
<p><opt>default-sample-format=</opt> The default sampling
|
||||
format. See
|
||||
https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SupportedAudioFormats/
|
||||
for possible values.</p>
|
||||
format. Specify one of <opt>u8</opt>, <opt>s16le</opt>,
|
||||
<opt>s16be</opt>, <opt>s24le</opt>, <opt>s24be</opt>,
|
||||
<opt>s24-32le</opt>, <opt>s24-32be</opt>, <opt>s32le</opt>,
|
||||
<opt>s32be</opt> <opt>float32le</opt>, <opt>float32be</opt>,
|
||||
<opt>ulaw</opt>, <opt>alaw</opt>. Depending on the endianess of
|
||||
the CPU the formats <opt>s16ne</opt>, <opt>s16re</opt>,
|
||||
<opt>s24ne</opt>, <opt>s24re</opt>, <opt>s24-32ne</opt>,
|
||||
<opt>s24-32re</opt>, <opt>s32ne</opt>, <opt>s32re</opt>,
|
||||
<opt>float32ne</opt>, <opt>float32re</opt> (for native,
|
||||
resp. reverse endian) are available as aliases.</p>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
|
|
@ -508,17 +413,6 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
<p><opt>default-channel-map</opt> The default channel map.</p>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>alternate-sample-rate</opt> 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.</p>
|
||||
</option>
|
||||
|
||||
</section>
|
||||
|
||||
<section name="Default Fragment Settings">
|
||||
|
|
@ -527,7 +421,7 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
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
|
||||
available in all hardware. The driver will to find the nearest
|
||||
setting supported. Modern drivers that support timer-based
|
||||
scheduling ignore these options.</p>
|
||||
|
||||
|
|
@ -543,30 +437,30 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
</section>
|
||||
|
||||
<section name="Default Deferred Volume Settings">
|
||||
<section name="Default Sync Volume Settings">
|
||||
|
||||
<p>With the flat volume feature enabled, the sink HW volume is set
|
||||
to the same level as the highest volume input stream. Any other streams
|
||||
(with lower volumes) have the appropriate adjustment applied in SW to
|
||||
bring them to the correct overall level. Sadly hardware mixer changes
|
||||
cannot be timed accurately and thus this change of volumes can sometimes
|
||||
bring them to the correct overall level. Sadly hadware mixer changes
|
||||
cannot be timed accurately and thus this change of volumes can somtimes
|
||||
cause the resulting output sound to be momentarily too loud or too soft.
|
||||
So to ensure SW and HW volumes are applied concurrently without any
|
||||
glitches, their application needs to be synchronized. The sink
|
||||
implementation needs to support deferred volumes. The following
|
||||
implementation needs to support synchronized volumes. The following
|
||||
parameters can be used to refine the process.</p>
|
||||
|
||||
<option>
|
||||
<p><opt>enable-deferred-volume=</opt> Enable deferred volume for the sinks that
|
||||
<p><opt>enable-sync-volume=</opt> Enable sync volume for the sinks that
|
||||
support it. This feature is enabled by default.</p>
|
||||
</option>
|
||||
<option>
|
||||
<p><opt>deferred-volume-safety-margin-usec=</opt> The amount of time (in
|
||||
<p><opt>sync-volume-safety-margin-usec=</opt> The amount of time (in
|
||||
usec) by which the HW volume increases are delayed and HW volume
|
||||
decreases are advanced. Defaults to 8000 usec.</p>
|
||||
</option>
|
||||
<option>
|
||||
<p><opt>deferred-volume-extra-delay-usec=</opt> The amount of time (in usec)
|
||||
<p><opt>sync-volume-extra-delay-usec=</opt> The amount of time (in usec)
|
||||
by which HW volume changes are delayed. Negative values are also allowed.
|
||||
Defaults to 0.</p>
|
||||
</option>
|
||||
|
|
|
|||
|
|
@ -16,7 +16,9 @@ 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, see <http://www.gnu.org/licenses/>.
|
||||
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="pulseaudio" section="1" desc="The PulseAudio Sound System">
|
||||
|
|
@ -94,7 +96,7 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
different from starting PulseAudio without <opt>--start</opt>
|
||||
which would fail if PA is already running. PulseAudio is
|
||||
guaranteed to be fully initialized when this call
|
||||
returns. Implies <opt>--daemonize</opt>.</p></optdesc>
|
||||
returns. Implies <opt>--daemon</opt>.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
|
|
@ -110,23 +112,7 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
<optdesc><p>Return 0 as return code when the PulseAudio daemon
|
||||
is already running for the calling user, or non-zero
|
||||
otherwise. Produces no output on the console except for errors
|
||||
to stderr.</p>
|
||||
|
||||
<p>Note that a non-zero return value doesn't necessarily mean that
|
||||
PulseAudio is not usable. Even if the server is not running, it
|
||||
may get automatically started via PulseAudio's autospawning
|
||||
mechanism or systemd's socket activation, or the environment might
|
||||
be such that checking for processes doesn't work (for example, the
|
||||
running server might not show up in a container, even if the
|
||||
server is accessible via a socket). Also disabling PID files with
|
||||
<opt>--use-pid-file=no</opt> prevents <opt>--check</opt> from
|
||||
detecting running servers.</p>
|
||||
|
||||
<p>A more robust check in most situations would be to try
|
||||
establishing a client connection to the server. Unfortunately
|
||||
there's currently no <opt>--check-connection</opt> option to
|
||||
replace <opt>--check</opt>, but running "pactl info" could be a
|
||||
pretty good substitute.</p></optdesc>
|
||||
to stderr.</p></optdesc>
|
||||
</option>
|
||||
|
||||
|
||||
|
|
@ -146,9 +132,7 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
<p><opt>-D | --daemonize</opt><arg>[=BOOL]</arg></p>
|
||||
|
||||
<optdesc><p>Daemonize after startup, i.e. detach from the
|
||||
terminal. Note that when running as a systemd service you should
|
||||
use <opt>--daemonize=no</opt> for systemd notification to work.
|
||||
</p></optdesc>
|
||||
terminal.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
|
|
@ -165,7 +149,7 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
<optdesc><p>Try to acquire a high Unix nice level. This will
|
||||
only succeed if the calling user has a non-zero RLIMIT_NICE
|
||||
resource limit set (on systems that support this), or we're
|
||||
configured to be run as
|
||||
called SUID root (see below), or we are configure to be run as
|
||||
system daemon (see <arg>--system</arg> above). It is recommended
|
||||
to enable this, since it is only a negligible security risk (see
|
||||
below).</p></optdesc>
|
||||
|
|
@ -177,9 +161,11 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
<optdesc><p>Try to acquire a real-time scheduling for
|
||||
PulseAudio's I/O threads. This will only succeed if the calling
|
||||
user has a non-zero RLIMIT_RTPRIO resource limit set (on systems
|
||||
that support this), or rtkit is available and allows PulseAudio
|
||||
to enable real-time scheduling, or we are configured to be run as
|
||||
system daemon (see <arg>--system</arg> above).</p></optdesc>
|
||||
that support this), or we're called SUID root (see below), or we
|
||||
are configure to be run as system daemon (see
|
||||
<arg>--system</arg> above). It is recommended to enable this
|
||||
only for trusted users, since it is a major security risk (see
|
||||
below).</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
|
|
@ -195,36 +181,23 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>--disallow-exit</opt><arg>[=BOOL]</arg></p>
|
||||
<p><opt>--exit-idle-time</opt><arg>=SECS</arg></p>
|
||||
|
||||
<optdesc><p>Disallow user requested exit</p></optdesc>
|
||||
<optdesc><p>Terminate the daemon when idle and the specified
|
||||
number of seconds passed.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>--exit-idle-time</opt><arg>=SECS</arg></p>
|
||||
<p><opt>--module-idle-time</opt><arg>=SECS</arg></p>
|
||||
|
||||
<optdesc>
|
||||
<p>Terminate the daemon after the last client quit and this time in
|
||||
seconds passed. Use a negative value to disable this feature. Defaults
|
||||
to 20.</p>
|
||||
|
||||
<p>When PulseAudio runs in the per-user mode and detects a login
|
||||
session, then any positive value will be reset to 0 so that PulseAudio
|
||||
will terminate immediately on logout. A positive value therefore has
|
||||
effect only in environments where there's no support for login session
|
||||
tracking (or if the user is logged in without a session spawned,
|
||||
a.k.a. lingering). A negative value can still be used to disable any
|
||||
automatic exit.</p>
|
||||
|
||||
<p>When PulseAudio runs in the system mode, automatic exit is always
|
||||
disabled, so this option does nothing.</p>
|
||||
</optdesc>
|
||||
<optdesc><p>Unload autoloaded modules when idle and the
|
||||
specified number of seconds passed.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>--scache-idle-time</opt><arg>=SECS</arg></p>
|
||||
|
||||
<optdesc><p>Unload autoloaded samples from the cache when they
|
||||
<optdesc><p>Unload autoloaded samples from the cache when the
|
||||
haven't been used for the specified number of
|
||||
seconds.</p></optdesc>
|
||||
</option>
|
||||
|
|
@ -243,7 +216,7 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>-v | --verbose</opt></p>
|
||||
<p><opt>-v</opt></p>
|
||||
|
||||
<optdesc><p>Increase the configured verbosity level by one (see
|
||||
<opt>--log-level</opt> above). Specify multiple times to
|
||||
|
|
@ -251,40 +224,16 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>--log-target</opt><arg>={auto,syslog,journal,stderr,file:PATH,newfile:PATH}</arg></p>
|
||||
<p><opt>--log-target</opt><arg>={auto,syslog,stderr}</arg></p>
|
||||
|
||||
<optdesc><p>Specify the log target. If set to <arg>auto</arg>
|
||||
(which is the default), then logging is directed to syslog when
|
||||
<opt>--daemonize</opt> is passed, otherwise to
|
||||
STDERR. If set to <arg>journal</arg> logging is directed to the systemd
|
||||
journal. If set to <arg>file:PATH</arg>, logging is directed to
|
||||
the file indicated by PATH. <arg>newfile:PATH</arg> is otherwise
|
||||
the same as file:PATH, but existing files are never overwritten.
|
||||
If the specified file already exists, a suffix is added to the
|
||||
file name to avoid overwriting.</p></optdesc>
|
||||
STDERR.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>--log-meta</opt><arg>[=BOOL]</arg></p>
|
||||
|
||||
<optdesc><p>Show source code location in log messages.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>--log-time</opt><arg>[=BOOL]</arg></p>
|
||||
|
||||
<optdesc><p>Show timestamps in log messages.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>--log-backtrace</opt><arg>=FRAMES</arg></p>
|
||||
|
||||
<optdesc><p>When FRAMES is greater than 0, log for each message a
|
||||
stack trace up to the number of specified stack frames.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>-p | --dl-search-path</opt><arg>=PATH</arg></p>
|
||||
<p><opt>--p | --dl-search-path</opt><arg>=PATH</arg></p>
|
||||
|
||||
<optdesc><p>Set the search path for dynamic shared objects
|
||||
(plugins).</p></optdesc>
|
||||
|
|
@ -311,7 +260,7 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
support it. By default, PulseAudio will terminate itself when it
|
||||
notices that it takes up too much CPU time. This is useful as a
|
||||
protection against system lockups when real-time scheduling is
|
||||
used (see below). Disabling this mechanism is useful when
|
||||
used (see below). Disabling this meachnism is useful when
|
||||
debugging PulseAudio with tools like <manref name="valgrind"
|
||||
section="1"/> which slow down execution.</p></optdesc>
|
||||
</option>
|
||||
|
|
@ -320,22 +269,13 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
<p><opt>--disable-shm</opt><arg>[=BOOL]</arg></p>
|
||||
|
||||
<optdesc><p>PulseAudio clients and the server can exchange audio
|
||||
data via POSIX or memfd shared memory segments (on systems that
|
||||
support this). If disabled PulseAudio will communicate exclusively
|
||||
over sockets. Please note that data transfer via shared memory
|
||||
data via POSIX shared memory segments (on systems that support
|
||||
this). If disabled PulseAudio will communicate exclusively over
|
||||
sockets. Please note that data transfer via shared memory
|
||||
segments is always disabled when PulseAudio is running with
|
||||
<opt>--system</opt> enabled (see above).</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>--enable-memfd</opt><arg>[=BOOL]</arg></p>
|
||||
|
||||
<optdesc><p>PulseAudio clients and the server can exchange audio
|
||||
data via memfds - the anonymous Linux Kernel shared memory mechanism
|
||||
(on kernels that support this). If disabled PulseAudio will
|
||||
communicate via POSIX shared memory.</p></optdesc>
|
||||
</option>
|
||||
|
||||
<option>
|
||||
<p><opt>-L | --load</opt><arg>="MODULE ARGUMENTS"</arg></p>
|
||||
|
||||
|
|
@ -373,22 +313,22 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
<section name="Files">
|
||||
|
||||
<p><file>~/.config/pulse/daemon.conf</file>,
|
||||
<file>@PA_DEFAULT_CONFIG_DIR@/daemon.conf</file>: configuration settings
|
||||
<p><file>~/.pulse/daemon.conf</file>,
|
||||
<file>@pulseconfdir@/daemon.conf</file>: 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 <manref name="pulse-daemon.conf" section="5"/> for
|
||||
more information.</p>
|
||||
|
||||
<p><file>~/.config/pulse/default.pa</file>,
|
||||
<file>@PA_DEFAULT_CONFIG_DIR@/default.pa</file>: the default configuration
|
||||
<p><file>~/.pulse/default.pa</file>,
|
||||
<file>@pulseconfdir@/default.pa</file>: 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 <manref name="default.pa"
|
||||
section="5"/> for more information.</p>
|
||||
|
||||
<p><file>~/.config/pulse/client.conf</file>,
|
||||
<file>@PA_DEFAULT_CONFIG_DIR@/client.conf</file>: configuration settings
|
||||
<p><file>~/.pulse/client.conf</file>,
|
||||
<file>@pulseconfdir@/client.conf</file>: 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 <manref name="pulse-client.conf" section="5"/> for
|
||||
|
|
@ -415,6 +355,12 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
<section name="UNIX Groups and users">
|
||||
|
||||
<p>Group <arg>pulse-rt</arg>: if the PulseAudio binary is marked
|
||||
SUID root, then membership of the calling user in this group
|
||||
decides whether real-time and/or high-priority scheduling is
|
||||
enabled. Please note that enabling real-time scheduling is a
|
||||
security risk (see below).</p>
|
||||
|
||||
<p>Group <arg>pulse-access</arg>: if PulseAudio is running as a system
|
||||
daemon (see <opt>--system</opt> above) access is granted to
|
||||
members of this group when they connect via AF_UNIX sockets. If
|
||||
|
|
@ -423,7 +369,7 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
<p>User <arg>pulse</arg>, group <arg>pulse</arg>: if PulseAudio is running as a system
|
||||
daemon (see <opt>--system</opt> above) and is started as root the
|
||||
daemon will drop privileges and become a normal user process using
|
||||
daemon will drop priviliges and become a normal user process using
|
||||
this user and group. If PulseAudio is running as a user daemon
|
||||
this user and group has no meaning.</p>
|
||||
</section>
|
||||
|
|
@ -435,20 +381,43 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
latency of the PulseAudio daemon from the system load and is thus
|
||||
the best way to make sure that PulseAudio always gets CPU time
|
||||
when it needs it to refill the hardware playback
|
||||
buffers. Unfortunately this can be a security risk on some systems,
|
||||
buffers. Unfortunately this is a security risk on most systems,
|
||||
since PulseAudio runs as user process, and giving realtime
|
||||
scheduling privileges to a user always comes with the risk
|
||||
scheduling priviliges to a user process always comes with the risk
|
||||
that the user misuses it to lock up the system -- which is
|
||||
possible since making a process real-time effectively disables
|
||||
preemption. To solve this problem, PulseAudio uses rtkit to safely
|
||||
acquire real-time scheduling when available.</p>
|
||||
preemption.</p>
|
||||
|
||||
<p>If the risk of locking up the machine is
|
||||
<p>To minimize the risk PulseAudio by default does not enable
|
||||
real-time scheduling. It is however recommended to enable it
|
||||
on trusted systems. To do that start PulseAudio with
|
||||
<opt>--realtime</opt> (see above) or enabled the appropriate option in
|
||||
<file>daemon.conf</file>. Since acquiring realtime scheduling is a
|
||||
priviliged operation on most systems, some special changes to the
|
||||
system configuration need to be made to allow them to the calling
|
||||
user. Two options are available:</p>
|
||||
|
||||
<p>On newer Linux systems the system resource limit RLIMIT_RTPRIO
|
||||
(see <manref name="setrlimit" section="2"/> for more information)
|
||||
can be used to allow specific users to acquire real-time
|
||||
scheduling. This can be configured in
|
||||
<file>/etc/security/limits.conf</file>, a resource limit of 9 is recommended.</p>
|
||||
|
||||
<p>Alternatively, the SUID root bit can be set for the PulseAudio
|
||||
binary. Then, the daemon will drop root priviliges immediately on
|
||||
startup, however retain the CAP_NICE capability (on systems that
|
||||
support it), but only if the calling user is a member of the
|
||||
<arg>pulse-rt</arg> group (see above). For all other users all
|
||||
capababilities are dropped immediately. The advantage of this
|
||||
solution is that the real-time priviliges are only granted to the
|
||||
PulseAudio daemon -- not to all the user's processes.</p>
|
||||
|
||||
<p>Alternatively, if the risk of locking up the machine is
|
||||
considered too big to enable real-time scheduling, high-priority
|
||||
scheduling can be enabled instead (i.e. negative nice level). This
|
||||
can be enabled by passing <opt>--high-priority</opt> (see above)
|
||||
when starting PulseAudio and may also be enabled with the
|
||||
appropriate option in <file>daemon.conf</file>. Negative nice
|
||||
approriate option in <file>daemon.conf</file>. Negative nice
|
||||
levels can only be enabled when the appropriate resource limit
|
||||
RLIMIT_NICE is set (see <manref name="setrlimit" section="2"/> for
|
||||
more information), possibly configured in
|
||||
|
|
@ -458,18 +427,10 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
<section name="Environment variables">
|
||||
|
||||
<p>The PulseAudio client libraries check for the existence of the
|
||||
<p>The PulseAudio client libraries check for the existance of the
|
||||
following environment variables and change their local configuration accordingly:</p>
|
||||
|
||||
<p><arg>$PULSE_SERVER</arg>: the server string specifying the server
|
||||
to connect to when a client asks for a sound server connection and doesn't
|
||||
explicitly ask for a specific server. The server string is a list of
|
||||
server addresses separated by whitespace which are tried in turn. A server
|
||||
address consists of an optional address type specifier (unix:, tcp:, tcp4:,
|
||||
tcp6:), followed by a path or host address. A host address may include an
|
||||
optional port number. A server address may be prefixed by a string enclosed
|
||||
in {}. In this case the following server address is ignored unless the prefix
|
||||
string equals the local hostname or the machine id (/etc/machine-id).</p>
|
||||
<p><arg>$PULSE_SERVER</arg>: the server string specifying the server to connect to when a client asks for a sound server connection and doesn't explicitly ask for a specific server.</p>
|
||||
|
||||
<p><arg>$PULSE_SINK</arg>: the symbolic name of the sink to connect to when a client creates a playback stream and doesn't explicitly ask for a specific sink.</p>
|
||||
|
||||
|
|
@ -479,9 +440,6 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
<p><arg>$PULSE_CLIENTCONFIG</arg>: path of file that shall be read instead of <file>client.conf</file> (see above) for client configuration.</p>
|
||||
|
||||
<p><arg>$PULSE_COOKIE</arg>: path of file that contains the PulseAudio
|
||||
authentication cookie. Defaults to <file>~/.config/pulse/cookie</file>.</p>
|
||||
|
||||
<p>These environment settings take precedence -- if set -- over the configuration settings from <file>client.conf</file> (see above).</p>
|
||||
|
||||
</section>
|
||||
|
|
|
|||
|
|
@ -15,7 +15,8 @@
|
|||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
use XML::Parser;
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,8 @@
|
|||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
||||
along with PulseAudio; if not, write to the Free Software Foundation,
|
||||
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||
***/
|
||||
|
||||
body { color: black; background-color: white; }
|
||||
|
|
|
|||
|
|
@ -12,7 +12,8 @@
|
|||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
||||
along with PulseAudio; if not, write to the Free Software Foundation,
|
||||
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||
-->
|
||||
|
||||
<!ELEMENT manpage (synopsis | description | section | options | seealso)*>
|
||||
|
|
|
|||
|
|
@ -15,7 +15,8 @@
|
|||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
||||
along with PulseAudio; if not, write to the Free Software Foundation,
|
||||
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||
-->
|
||||
|
||||
<xsl:output method="xml" version="1.0" encoding="iso-8859-15" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes"/>
|
||||
|
|
|
|||
1074
meson.build
1074
meson.build
File diff suppressed because it is too large
Load diff
|
|
@ -1,182 +0,0 @@
|
|||
option('daemon',
|
||||
type : 'boolean', value : true,
|
||||
description : 'Enable building and installation of pulseaudio daemon and supporting configuration files')
|
||||
option('client',
|
||||
type : 'boolean', value : true,
|
||||
description : 'Build and install pulseaudio client libraries and utilities')
|
||||
option('doxygen',
|
||||
type : 'feature',
|
||||
description : 'Enable building and installation of documentation generated with doxygen')
|
||||
option('gcov',
|
||||
type : 'boolean', value : false,
|
||||
description : 'Enable optional gcov coverage analysis')
|
||||
option('man',
|
||||
type : 'boolean',
|
||||
description : 'Enable building and installation of man pages')
|
||||
option('tests',
|
||||
type : 'feature',
|
||||
description : 'Enable unit tests')
|
||||
|
||||
option('system_user',
|
||||
type : 'string', value : 'pulse',
|
||||
description : 'User for running the PulseAudio daemon as a system-wide instance (pulse)')
|
||||
option('system_group',
|
||||
type : 'string', value : 'pulse',
|
||||
description : 'Group for running the PulseAudio daemon as a system-wide instance (pulse)')
|
||||
option('access_group',
|
||||
type : 'string', value : 'pulse-access',
|
||||
description : 'Group which is allowed access to a system-wide PulseAudio daemon (pulse-access)')
|
||||
option('database',
|
||||
type : 'combo', value : 'tdb',
|
||||
choices : [ 'gdbm', 'tdb', 'simple' ],
|
||||
description : 'Database backend')
|
||||
option('legacy-database-entry-format',
|
||||
type : 'boolean',
|
||||
description : 'Try to load legacy (< 1.0) database files (card, device and volume restore)')
|
||||
option('stream-restore-clear-old-devices',
|
||||
type : 'boolean', value : false,
|
||||
description : 'Forget per-stream routing settings that have been set before version 14.0. Recommended when using GNOME. See https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/832')
|
||||
option('running-from-build-tree',
|
||||
type : 'boolean',
|
||||
description : 'Enable running from build tree')
|
||||
option('atomic-arm-linux-helpers',
|
||||
type : 'boolean', value : true,
|
||||
description : 'Use inline asm or libatomic_ops instead')
|
||||
option('atomic-arm-memory-barrier',
|
||||
type : 'boolean', value : false,
|
||||
description : 'Enable memory barriers (only really needed in SMP arm systems)')
|
||||
|
||||
# Paths
|
||||
|
||||
option('padsplibdir',
|
||||
type : 'string',
|
||||
description : 'Specify location where OSS wrapper library will be installed')
|
||||
# This one gets inserted into a shell double-quoted string, so needs to be escaped (\$LIB). Meson
|
||||
# removes a layer of escapes when parsing the description string, so we need to double the
|
||||
# backslashes for "meson configure" to display the right text.
|
||||
option('pulsedsp-location',
|
||||
type : 'string',
|
||||
description : 'Specify location where OSS wrapper library will be loaded from; can use \\$LIB')
|
||||
option('modlibexecdir',
|
||||
type : 'string',
|
||||
description : 'Specify location where modules will be installed')
|
||||
option('alsadatadir',
|
||||
type : 'string',
|
||||
description : 'Directory for ALSA card profiles (defaults to ${datadir}/pulseaudio/alsa-mixer)')
|
||||
option('systemduserunitdir',
|
||||
type : 'string',
|
||||
description : 'Directory for systemd user service files')
|
||||
option('udevrulesdir',
|
||||
type : 'string',
|
||||
description : 'Directory for udev rules (defaults to /lib/udev/rules.d)')
|
||||
option('bashcompletiondir',
|
||||
type : 'string',
|
||||
description : 'Directory for bash completion scripts ["no" disables]')
|
||||
option('zshcompletiondir',
|
||||
type : 'string',
|
||||
description : 'Directory for zsh completion scripts ["no" disables]')
|
||||
|
||||
# Optional features
|
||||
|
||||
option('alsa',
|
||||
type : 'feature', value : 'auto',
|
||||
description : 'Optional ALSA support')
|
||||
option('asyncns',
|
||||
type : 'feature', value : 'auto',
|
||||
description : 'Optional Async DNS support')
|
||||
option('avahi',
|
||||
type : 'feature', value : 'auto',
|
||||
description : 'Optional Avahi support')
|
||||
option('bluez5',
|
||||
type : 'feature', value : 'auto',
|
||||
description : 'Optional BlueZ 5 support')
|
||||
option('bluez5-gstreamer',
|
||||
type : 'feature', value: 'auto',
|
||||
description : 'Optional BlueZ 5 GStreamer support')
|
||||
option('bluez5-native-headset',
|
||||
type : 'boolean',
|
||||
description : 'Optional native headset backend support (BlueZ 5)')
|
||||
option('bluez5-ofono-headset',
|
||||
type : 'boolean',
|
||||
description : 'Optional oFono headset backend support (BlueZ 5)')
|
||||
option('consolekit',
|
||||
type : 'feature', value : 'auto',
|
||||
description : 'Optional ConsoleKit support')
|
||||
option('dbus',
|
||||
type : 'feature', value : 'auto',
|
||||
description : 'Optional D-Bus support')
|
||||
option('elogind',
|
||||
type : 'feature', value : 'auto',
|
||||
description : 'Optional elogind support')
|
||||
option('fftw',
|
||||
type : 'feature', value : 'auto',
|
||||
description : 'Optional FFTW support')
|
||||
option('glib',
|
||||
type : 'feature', value : 'auto',
|
||||
description : 'Optional GLib 2 support')
|
||||
option('gsettings',
|
||||
type : 'feature', value : 'auto',
|
||||
description : 'Optional GSettings support')
|
||||
option('gstreamer',
|
||||
type : 'feature', value : 'auto',
|
||||
description : 'Optional GStreamer dependency for media-related functionality')
|
||||
option('gtk',
|
||||
type : 'feature', value : 'auto',
|
||||
description : 'Optional Gtk+ 3 support')
|
||||
option('hal-compat',
|
||||
type : 'boolean',
|
||||
description : 'Optional HAL->udev transition compatibility support (needs udev)')
|
||||
option('ipv6',
|
||||
type : 'boolean',
|
||||
description : 'Optional IPv6 support')
|
||||
option('jack',
|
||||
type : 'feature', value : 'auto',
|
||||
description : 'Optional JACK support')
|
||||
option('lirc',
|
||||
type : 'feature', value : 'auto',
|
||||
description : 'Optional LIRC support')
|
||||
option('openssl',
|
||||
type : 'feature', value : 'auto',
|
||||
description : 'Optional OpenSSL support (used for Airtunes/RAOP)')
|
||||
option('orc',
|
||||
type : 'feature', value : 'auto',
|
||||
description : 'Optimized Inner Loop Runtime Compiler')
|
||||
option('oss-output',
|
||||
type : 'feature', value : 'auto',
|
||||
description : 'Optional OSS output support')
|
||||
option('samplerate',
|
||||
type : 'feature', value : 'disabled',
|
||||
description : 'Optional libsamplerate support (DEPRECATED)')
|
||||
option('soxr',
|
||||
type : 'feature', value : 'auto',
|
||||
description : 'Optional SoXR support (resampling)')
|
||||
option('speex',
|
||||
type : 'feature', value : 'auto',
|
||||
description : 'Optional Speex support (resampling, AEC)')
|
||||
option('systemd',
|
||||
type : 'feature', value : 'auto',
|
||||
description : 'Optional systemd support')
|
||||
option('tcpwrap',
|
||||
type : 'feature', value : 'auto',
|
||||
description : 'Optional TCP wrappers support')
|
||||
option('udev',
|
||||
type : 'feature', value : 'auto',
|
||||
description : 'Optional udev support')
|
||||
option('valgrind',
|
||||
type : 'feature', value : 'auto',
|
||||
description : 'Optional Valgrind support')
|
||||
option('x11',
|
||||
type : 'feature', value : 'auto',
|
||||
description : 'Optional X11 support')
|
||||
option('enable-smoother-2',
|
||||
type : 'boolean', value : true,
|
||||
description : 'Use alternative time smoother implementation')
|
||||
|
||||
# Echo cancellation
|
||||
|
||||
option('adrian-aec',
|
||||
type : 'boolean',
|
||||
description : 'Optional Adrian\'s echo canceller')
|
||||
option('webrtc-aec',
|
||||
type : 'feature', value : 'auto',
|
||||
description : 'Optional WebRTC-based echo canceller')
|
||||
29
po/.gitignore
vendored
29
po/.gitignore
vendored
|
|
@ -1,14 +1,15 @@
|
|||
/Makefile.in.in
|
||||
/Makevars.template
|
||||
/POTFILES
|
||||
/Rules-quot
|
||||
/boldquot.sed
|
||||
/en@boldquot.header
|
||||
/en@quot.header
|
||||
/insert-header.sin
|
||||
/quot.sed
|
||||
/remove-potcdate.*
|
||||
/*.mo
|
||||
/*.gmo
|
||||
/Makefile
|
||||
/Makefile.in
|
||||
.intltool-merge-cache
|
||||
Makefile.in.in
|
||||
Makevars.template
|
||||
POTFILES
|
||||
Rules-quot
|
||||
boldquot.sed
|
||||
en@boldquot.header
|
||||
en@quot.header
|
||||
insert-header.sin
|
||||
pulseaudio.pot
|
||||
quot.sed
|
||||
remove-potcdate.sin
|
||||
ChangeLog
|
||||
*.mo
|
||||
*.gmo
|
||||
|
|
|
|||
21
po/LINGUAS
21
po/LINGUAS
|
|
@ -1,55 +1,34 @@
|
|||
af
|
||||
as
|
||||
be
|
||||
bg
|
||||
bn_IN
|
||||
ca
|
||||
cs
|
||||
da
|
||||
de_CH
|
||||
de
|
||||
el
|
||||
es
|
||||
fi
|
||||
fr
|
||||
gl
|
||||
gu
|
||||
he
|
||||
hi
|
||||
hr
|
||||
hu
|
||||
id
|
||||
it
|
||||
ja
|
||||
kk
|
||||
kn
|
||||
ko
|
||||
lt
|
||||
ml
|
||||
mr
|
||||
nl
|
||||
nn
|
||||
oc
|
||||
or
|
||||
pa
|
||||
pl
|
||||
pt_BR
|
||||
pt
|
||||
ru
|
||||
sk
|
||||
sr@latin
|
||||
sr
|
||||
sv
|
||||
ta
|
||||
te
|
||||
tr
|
||||
uk
|
||||
zh_CN
|
||||
zh_TW
|
||||
eo
|
||||
si
|
||||
ka
|
||||
eu
|
||||
ar
|
||||
sl
|
||||
ro
|
||||
|
|
|
|||
78
po/Makevars
78
po/Makevars
|
|
@ -1,78 +0,0 @@
|
|||
# Makefile variables for PO directory in any package using GNU gettext.
|
||||
|
||||
# Usually the message domain is the same as the package name.
|
||||
DOMAIN = $(PACKAGE)
|
||||
|
||||
# These two variables depend on the location of this directory.
|
||||
subdir = po
|
||||
top_builddir = ..
|
||||
|
||||
# These options get passed to xgettext.
|
||||
XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ --from-code=UTF-8
|
||||
|
||||
# This is the copyright holder that gets inserted into the header of the
|
||||
# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
|
||||
# package. (Note that the msgstr strings, extracted from the package's
|
||||
# sources, belong to the copyright holder of the package.) Translators are
|
||||
# expected to transfer the copyright for their translations to this person
|
||||
# or entity, or to disclaim their copyright. The empty string stands for
|
||||
# the public domain; in this case the translators are expected to disclaim
|
||||
# their copyright.
|
||||
COPYRIGHT_HOLDER = PulseAudio contributors
|
||||
|
||||
# This tells whether or not to prepend "GNU " prefix to the package
|
||||
# name that gets inserted into the header of the $(DOMAIN).pot file.
|
||||
# Possible values are "yes", "no", or empty. If it is empty, try to
|
||||
# detect it automatically by scanning the files in $(top_srcdir) for
|
||||
# "GNU packagename" string.
|
||||
PACKAGE_GNU =
|
||||
|
||||
# This is the email address or URL to which the translators shall report
|
||||
# bugs in the untranslated strings:
|
||||
# - Strings which are not entire sentences, see the maintainer guidelines
|
||||
# in the GNU gettext documentation, section 'Preparing Strings'.
|
||||
# - Strings which use unclear terms or require additional context to be
|
||||
# understood.
|
||||
# - Strings which make invalid assumptions about notation of date, time or
|
||||
# money.
|
||||
# - Pluralisation problems.
|
||||
# - Incorrect English spelling.
|
||||
# - Incorrect formatting.
|
||||
# It can be your email address, or a mailing list address where translators
|
||||
# can write to without being subscribed, or the URL of a web page through
|
||||
# which the translators can contact you.
|
||||
MSGID_BUGS_ADDRESS =
|
||||
|
||||
# This is the list of locale categories, beyond LC_MESSAGES, for which the
|
||||
# message catalogs shall be used. It is usually empty.
|
||||
EXTRA_LOCALE_CATEGORIES =
|
||||
|
||||
# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt'
|
||||
# context. Possible values are "yes" and "no". Set this to yes if the
|
||||
# package uses functions taking also a message context, like pgettext(), or
|
||||
# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument.
|
||||
USE_MSGCTXT = no
|
||||
|
||||
# These options get passed to msgmerge.
|
||||
# Useful options are in particular:
|
||||
# --previous to keep previous msgids of translated messages,
|
||||
# --quiet to reduce the verbosity.
|
||||
MSGMERGE_OPTIONS =
|
||||
|
||||
# These options get passed to msginit.
|
||||
# If you want to disable line wrapping when writing PO files, add
|
||||
# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and
|
||||
# MSGINIT_OPTIONS.
|
||||
MSGINIT_OPTIONS =
|
||||
|
||||
# This tells whether or not to regenerate a PO file when $(DOMAIN).pot
|
||||
# has changed. Possible values are "yes" and "no". Set this to no if
|
||||
# the POT file is checked in the repository and the version control
|
||||
# program ignores timestamps.
|
||||
PO_DEPENDS_ON_POT = no
|
||||
|
||||
# This tells whether or not to forcibly update $(DOMAIN).pot and
|
||||
# regenerate PO files on "make dist". Possible values are "yes" and
|
||||
# "no". Set this to no if the POT file and PO files are maintained
|
||||
# externally.
|
||||
DIST_DEPENDS_ON_UPDATE_PO = no
|
||||
358
po/POTFILES.in
358
po/POTFILES.in
|
|
@ -1,204 +1,196 @@
|
|||
src/daemon/caps.c
|
||||
src/daemon/cmdline.c
|
||||
src/daemon/cpulimit.c
|
||||
src/daemon/daemon-conf.c
|
||||
src/daemon/dumpmodules.c
|
||||
src/daemon/ltdl-bind-now.c
|
||||
src/daemon/main.c
|
||||
src/daemon/pulseaudio.desktop.in
|
||||
src/daemon/systemd/user/pulseaudio.service.in
|
||||
src/daemon/systemd/user/pulseaudio-x11.service.in
|
||||
src/modules/alsa/alsa-mixer.c
|
||||
src/modules/alsa/alsa-sink.c
|
||||
src/modules/alsa/alsa-source.c
|
||||
src/modules/alsa/alsa-util.c
|
||||
src/modules/alsa/module-alsa-card.c
|
||||
src/modules/alsa/module-alsa-sink.c
|
||||
src/modules/alsa/module-alsa-source.c
|
||||
src/modules/bluetooth/module-bluez5-device.c
|
||||
src/modules/echo-cancel/module-echo-cancel.c
|
||||
src/modules/jack/module-jack-sink.c
|
||||
src/modules/jack/module-jack-source.c
|
||||
src/modules/macosx/module-coreaudio-device.c
|
||||
src/modules/module-allow-passthrough.c
|
||||
src/modules/module-always-sink.c
|
||||
src/modules/module-always-source.c
|
||||
src/modules/module-cli.c
|
||||
src/modules/module-combine.c
|
||||
src/modules/module-console-kit.c
|
||||
src/modules/module-default-device-restore.c
|
||||
src/modules/module-detect.c
|
||||
src/modules/module-device-restore.c
|
||||
src/modules/module-equalizer-sink.c
|
||||
src/modules/module-esound-compat-spawnfd.c
|
||||
src/modules/module-esound-compat-spawnpid.c
|
||||
src/modules/module-esound-sink.c
|
||||
src/modules/module-filter-apply.c
|
||||
src/modules/module-ladspa-sink.c
|
||||
src/modules/module-lirc.c
|
||||
src/modules/module-match.c
|
||||
src/modules/module-mmkbd-evdev.c
|
||||
src/modules/module-native-protocol-fd.c
|
||||
src/modules/module-null-sink.c
|
||||
src/modules/module-pipe-sink.c
|
||||
src/modules/module-pipe-source.c
|
||||
src/modules/module-position-event-sounds.c
|
||||
src/modules/module-protocol-stub.c
|
||||
src/modules/module-remap-sink.c
|
||||
src/modules/module-rescue-streams.c
|
||||
src/modules/module-rygel-media-server.c
|
||||
src/modules/module-sine.c
|
||||
src/modules/module-solaris.c
|
||||
src/modules/module-stream-restore.c
|
||||
src/modules/module-suspend-on-idle.c
|
||||
src/modules/module-tunnel.c
|
||||
src/modules/module-tunnel-sink-new.c
|
||||
src/modules/module-tunnel-source-new.c
|
||||
src/modules/module-virtual-surround-sink.c
|
||||
src/modules/module-volume-restore.c
|
||||
src/modules/module-native-protocol-fd.c
|
||||
src/modules/module-zeroconf-discover.c
|
||||
src/modules/module-zeroconf-publish.c
|
||||
src/modules/alsa/module-alsa-source.c
|
||||
src/modules/module-device-restore.c
|
||||
src/modules/module-match.c
|
||||
src/pulsecore/dbus-util.c
|
||||
src/modules/module-console-kit.c
|
||||
src/modules/oss/module-oss.c
|
||||
src/modules/oss/oss-util.c
|
||||
src/modules/raop/module-raop-discover.c
|
||||
src/modules/raop/raop-sink.c
|
||||
src/modules/reserve-wrap.c
|
||||
src/modules/rtp/module-rtp-recv.c
|
||||
src/modules/rtp/module-rtp-send.c
|
||||
src/modules/rtp/rtp-common.c
|
||||
src/modules/rtp/rtp-native.c
|
||||
src/modules/rtp/rtp-gstreamer.c
|
||||
src/modules/rtp/sap.c
|
||||
src/modules/rtp/sdp.c
|
||||
src/modules/x11/module-x11-bell.c
|
||||
src/modules/x11/module-x11-publish.c
|
||||
src/modules/module-mmkbd-evdev.c
|
||||
src/modules/module-position-event-sounds.c
|
||||
src/modules/alsa/alsa-util.c
|
||||
src/modules/module-pipe-source.c
|
||||
src/modules/module-solaris.c
|
||||
src/modules/module-default-device-restore.c
|
||||
src/modules/x11/module-x11-xsmp.c
|
||||
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
|
||||
src/pulsecore/authkey.c
|
||||
src/pulsecore/avahi-wrap.c
|
||||
src/pulsecore/cli.c
|
||||
src/pulsecore/cli-command.c
|
||||
src/pulsecore/client.c
|
||||
src/pulsecore/cli-text.c
|
||||
src/pulsecore/conf-parser.c
|
||||
src/pulsecore/core.c
|
||||
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/dynarray.c
|
||||
src/pulsecore/fdsem.c
|
||||
src/pulsecore/ffmpeg/resample2.c
|
||||
src/pulsecore/flist.c
|
||||
src/pulsecore/g711.c
|
||||
src/pulsecore/hashmap.c
|
||||
src/pulsecore/hook-list.c
|
||||
src/pulsecore/i18n.c
|
||||
src/pulsecore/idxset.c
|
||||
src/pulsecore/iochannel.c
|
||||
src/pulsecore/ioline.c
|
||||
src/pulsecore/ipacl.c
|
||||
src/pulsecore/lock-autospawn.c
|
||||
src/pulsecore/log.c
|
||||
src/pulsecore/ltdl-helper.c
|
||||
src/pulsecore/mcalign.c
|
||||
src/modules/module-remap-sink.c
|
||||
src/modules/bluetooth/module-bluetooth-proximity.c
|
||||
src/modules/module-detect.c
|
||||
src/modules/module-always-sink.c
|
||||
src/modules/module-lirc.c
|
||||
src/modules/module-hal-detect.c
|
||||
src/modules/module-sine.c
|
||||
src/modules/module-zeroconf-publish.c
|
||||
src/modules/jack/module-jack-source.c
|
||||
src/modules/module-cli.c
|
||||
src/modules/gconf/module-gconf.c
|
||||
src/modules/gconf/gconf-helper.c
|
||||
src/modules/module-esound-sink.c
|
||||
src/modules/alsa/module-alsa-sink.c
|
||||
src/modules/module-volume-restore.c
|
||||
src/modules/x11/module-x11-bell.c
|
||||
src/modules/module-protocol-stub.c
|
||||
src/modules/module-stream-restore.c
|
||||
src/modules/jack/module-jack-sink.c
|
||||
src/modules/module-esound-compat-spawnfd.c
|
||||
src/modules/module-esound-compat-spawnpid.c
|
||||
#src/modules/module-waveout.c
|
||||
src/modules/module-combine.c
|
||||
src/modules/bluetooth/proximity-helper.c
|
||||
src/modules/x11/module-x11-publish.c
|
||||
src/modules/rtp/module-rtp-recv.c
|
||||
src/modules/rtp/sdp.c
|
||||
src/modules/rtp/rtp.c
|
||||
src/modules/rtp/sap.c
|
||||
src/modules/rtp/module-rtp-send.c
|
||||
src/modules/module-ladspa-sink.c
|
||||
src/modules/module-suspend-on-idle.c
|
||||
src/modules/module-pipe-sink.c
|
||||
src/modules/module-null-sink.c
|
||||
src/pulsecore/memblock.c
|
||||
src/pulsecore/memblockq.c
|
||||
src/pulsecore/memchunk.c
|
||||
src/pulsecore/modargs.c
|
||||
src/pulsecore/modinfo.c
|
||||
src/pulsecore/module.c
|
||||
src/pulsecore/msgobject.c
|
||||
src/pulsecore/mutex-posix.c
|
||||
src/pulsecore/mutex-win32.c
|
||||
src/pulsecore/namereg.c
|
||||
src/pulsecore/object.c
|
||||
src/pulsecore/once.c
|
||||
src/pulsecore/packet.c
|
||||
src/pulsecore/parseaddr.c
|
||||
src/pulsecore/pdispatch.c
|
||||
src/pulsecore/pid.c
|
||||
src/pulsecore/pipe.c
|
||||
src/pulsecore/play-memblockq.c
|
||||
src/pulsecore/play-memchunk.c
|
||||
src/pulsecore/poll-posix.c
|
||||
src/pulsecore/poll-win32.c
|
||||
src/pulsecore/proplist-util.c
|
||||
src/pulsecore/protocol-cli.c
|
||||
src/pulsecore/protocol-esound.c
|
||||
src/pulsecore/protocol-http.c
|
||||
src/pulsecore/protocol-native.c
|
||||
src/pulsecore/protocol-simple.c
|
||||
src/pulsecore/pstream.c
|
||||
src/pulsecore/pstream-util.c
|
||||
src/pulsecore/queue.c
|
||||
src/pulsecore/random.c
|
||||
src/pulsecore/resampler.c
|
||||
src/pulsecore/rtpoll.c
|
||||
src/pulsecore/sample-util.c
|
||||
src/pulsecore/sconv.c
|
||||
src/pulsecore/sconv-s16be.c
|
||||
src/pulsecore/sconv-s16le.c
|
||||
src/pulsecore/semaphore-posix.c
|
||||
src/pulsecore/semaphore-win32.c
|
||||
src/pulsecore/shared.c
|
||||
src/pulsecore/shm.c
|
||||
src/pulsecore/sink.c
|
||||
src/pulsecore/sink-input.c
|
||||
src/pulsecore/sioman.c
|
||||
src/pulsecore/socket-client.c
|
||||
src/pulsecore/socket-server.c
|
||||
src/pulsecore/socket-util.c
|
||||
src/pulsecore/sound-file.c
|
||||
src/pulsecore/sound-file-stream.c
|
||||
src/pulsecore/source.c
|
||||
src/pulsecore/source-output.c
|
||||
src/pulsecore/start-child.c
|
||||
src/pulsecore/strbuf.c
|
||||
src/pulsecore/strlist.c
|
||||
src/pulsecore/tagstruct.c
|
||||
src/pulsecore/thread-mq.c
|
||||
src/pulsecore/thread-posix.c
|
||||
src/pulsecore/thread-win32.c
|
||||
src/pulsecore/time-smoother.c
|
||||
src/pulsecore/time-smoother_2.c
|
||||
src/pulsecore/tokenizer.c
|
||||
src/pulsecore/x11prop.c
|
||||
src/pulsecore/core.c
|
||||
#src/pulsecore/shmasyncq.c
|
||||
src/pulsecore/x11wrap.c
|
||||
src/pulsecore/ioline.c
|
||||
src/pulsecore/asyncq.c
|
||||
src/pulsecore/mutex-posix.c
|
||||
src/pulsecore/protocol-esound.c
|
||||
src/pulsecore/proplist-util.c
|
||||
src/pulsecore/pstream.c
|
||||
src/pulsecore/cli-command.c
|
||||
src/pulsecore/ltdl-helper.c
|
||||
src/pulsecore/ipacl.c
|
||||
src/pulsecore/sample-util.c
|
||||
src/pulsecore/log.c
|
||||
src/pulsecore/auth-cookie.c
|
||||
src/pulsecore/protocol-cli.c
|
||||
src/pulsecore/resampler.c
|
||||
src/pulsecore/pdispatch.c
|
||||
src/pulsecore/hook-list.c
|
||||
src/pulsecore/conf-parser.c
|
||||
src/pulsecore/mcalign.c
|
||||
src/pulsecore/core-subscribe.c
|
||||
src/pulsecore/protocol-native.c
|
||||
src/pulsecore/source-output.c
|
||||
src/pulsecore/modargs.c
|
||||
src/pulsecore/core-scache.c
|
||||
src/pulsecore/iochannel.c
|
||||
src/pulsecore/shared.c
|
||||
src/pulsecore/socket-client.c
|
||||
src/pulsecore/idxset.c
|
||||
src/pulsecore/pipe.c
|
||||
src/pulsecore/asyncmsgq.c
|
||||
src/pulsecore/inet_pton.c
|
||||
src/pulsecore/socket-util.c
|
||||
src/pulsecore/object.c
|
||||
src/pulsecore/sioman.c
|
||||
src/pulsecore/sink-input.c
|
||||
src/pulsecore/x11prop.c
|
||||
src/pulsecore/sconv-s16be.c
|
||||
src/pulsecore/thread-posix.c
|
||||
src/pulsecore/client.c
|
||||
src/pulsecore/inet_ntop.c
|
||||
src/pulsecore/strlist.c
|
||||
src/pulsecore/msgobject.c
|
||||
src/pulsecore/mutex-win32.c
|
||||
src/pulsecore/dynarray.c
|
||||
src/pulsecore/once.c
|
||||
src/pulsecore/source.c
|
||||
src/pulsecore/memchunk.c
|
||||
src/pulsecore/protocol-simple.c
|
||||
src/pulsecore/sink.c
|
||||
src/pulsecore/sconv-s16le.c
|
||||
src/pulsecore/sconv.c
|
||||
src/pulsecore/core-error.c
|
||||
src/pulsecore/strbuf.c
|
||||
src/pulsecore/play-memblockq.c
|
||||
src/pulsecore/dllmain.c
|
||||
src/pulsecore/envelope.c
|
||||
src/pulsecore/pid.c
|
||||
src/pulsecore/thread-mq.c
|
||||
src/pulsecore/shm.c
|
||||
src/pulsecore/play-memchunk.c
|
||||
src/pulsecore/hashmap.c
|
||||
src/pulsecore/avahi-wrap.c
|
||||
src/pulsecore/authkey.c
|
||||
src/pulsecore/namereg.c
|
||||
src/pulsecore/poll.c
|
||||
src/pulsecore/tokenizer.c
|
||||
src/pulsecore/semaphore-posix.c
|
||||
src/pulsecore/cli-text.c
|
||||
src/pulsecore/g711.c
|
||||
src/pulsecore/core-util.c
|
||||
src/pulsecore/thread-win32.c
|
||||
src/pulsecore/tagstruct.c
|
||||
src/pulsecore/socket-server.c
|
||||
src/pulsecore/flist.c
|
||||
src/pulsecore/fdsem.c
|
||||
src/pulsecore/random.c
|
||||
src/pulsecore/modinfo.c
|
||||
src/pulsecore/start-child.c
|
||||
src/pulsecore/packet.c
|
||||
src/pulsecore/pstream-util.c
|
||||
src/pulsecore/rtpoll.c
|
||||
src/pulsecore/sound-file.c
|
||||
src/pulsecore/module.c
|
||||
src/pulsecore/ffmpeg/resample2.c
|
||||
src/pulsecore/cli.c
|
||||
src/pulsecore/time-smoother.c
|
||||
src/pulsecore/parseaddr.c
|
||||
src/pulsecore/sound-file-stream.c
|
||||
src/pulsecore/memblockq.c
|
||||
src/pulsecore/protocol-http.c
|
||||
src/pulsecore/semaphore-win32.c
|
||||
src/daemon/cpulimit.c
|
||||
src/daemon/ltdl-bind-now.c
|
||||
src/daemon/main.c
|
||||
src/daemon/cmdline.c
|
||||
src/daemon/dumpmodules.c
|
||||
src/daemon/daemon-conf.c
|
||||
src/daemon/caps.c
|
||||
src/daemon/pulseaudio.desktop.in
|
||||
src/pulse/channelmap.c
|
||||
src/pulse/error.c
|
||||
src/pulse/proplist.c
|
||||
src/pulse/xmalloc.c
|
||||
src/pulse/ext-stream-restore.c
|
||||
src/pulse/format.c
|
||||
src/pulse/glib-mainloop.c
|
||||
src/pulse/introspect.c
|
||||
src/pulse/stream.c
|
||||
src/pulse/i18n.c
|
||||
src/pulse/util.c
|
||||
src/pulse/utf8.c
|
||||
src/pulse/mainloop-api.c
|
||||
src/pulse/sample.c
|
||||
src/pulse/client-conf-x11.c
|
||||
src/pulse/client-conf.c
|
||||
src/pulse/browser.c
|
||||
src/pulse/volume.c
|
||||
src/pulse/simple.c
|
||||
src/pulse/subscribe.c
|
||||
src/pulse/introspect.c
|
||||
src/pulse/mainloop.c
|
||||
src/pulse/mainloop-signal.c
|
||||
src/pulse/operation.c
|
||||
src/pulse/proplist.c
|
||||
src/pulse/sample.c
|
||||
src/pulse/scache.c
|
||||
src/pulse/simple.c
|
||||
src/pulse/stream.c
|
||||
src/pulse/subscribe.c
|
||||
src/pulse/context.c
|
||||
src/pulse/thread-mainloop.c
|
||||
src/pulse/scache.c
|
||||
src/pulse/glib-mainloop.c
|
||||
src/pulse/timeval.c
|
||||
src/pulse/utf8.c
|
||||
src/pulse/util.c
|
||||
src/pulse/volume.c
|
||||
src/pulse/xmalloc.c
|
||||
src/tests/resampler-test.c
|
||||
src/utils/pacat.c
|
||||
src/utils/pacmd.c
|
||||
src/utils/pasuspender.c
|
||||
src/utils/pabrowse.c
|
||||
src/utils/pactl.c
|
||||
src/utils/padsp.c
|
||||
src/utils/pasuspender.c
|
||||
src/utils/pax11publish.c
|
||||
src/utils/pacmd.c
|
||||
src/pulsecore/lock-autospawn.c
|
||||
src/modules/alsa/alsa-sink.c
|
||||
src/modules/alsa/alsa-source.c
|
||||
src/modules/alsa/module-alsa-card.c
|
||||
src/modules/bluetooth/module-bluetooth-device.c
|
||||
src/modules/reserve-wrap.c
|
||||
src/modules/module-rygel-media-server.c
|
||||
src/modules/alsa/alsa-mixer.c
|
||||
|
|
|
|||
|
|
@ -1,3 +1 @@
|
|||
src/pulsecore/atomic.h
|
||||
src/modules/module-virtual-sink.c
|
||||
src/modules/module-virtual-source.c
|
||||
|
|
|
|||
3425
po/bn_IN.po
3425
po/bn_IN.po
File diff suppressed because it is too large
Load diff
3553
po/de_CH.po
3553
po/de_CH.po
File diff suppressed because it is too large
Load diff
|
|
@ -1,8 +0,0 @@
|
|||
i18n.gettext(
|
||||
meson.project_name(),
|
||||
preset: 'glib',
|
||||
# Page width is set to 90 characters in order to avoid bad wrapping of the
|
||||
# bug reporting address.
|
||||
args: ['--msgid-bugs-address=https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/new',
|
||||
'--width=90'],
|
||||
)
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue