man: Document the cli inteface a little.

This just documents the cli interface syntax. Mostly a lift from
http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/CLI
with some minor editing and bringing up to date.

Also document a few undocumented commands.

Shuffle around the order in 'pacmd help' output to match the order
in the new docs for consistency.

https://bugs.freedesktop.org/show_bug.cgi?id=45029
This commit is contained in:
Colin Guthrie 2012-04-05 11:41:18 +01:00
parent 87edc1ccb0
commit aa19646d34
7 changed files with 379 additions and 31 deletions

View File

@ -1330,6 +1330,7 @@ man/padsp.1.xml
man/pulse-daemon.conf.5.xml
man/pulse-client.conf.5.xml
man/default.pa.5.xml
man/pulse-cli-syntax.5.xml
man/start-pulseaudio-kde.1.xml
man/start-pulseaudio-x11.1.xml
])

View File

@ -31,6 +31,7 @@ noinst_DATA = \
pulse-daemon.conf.5.xml \
pulse-client.conf.5.xml \
default.pa.5.xml \
pulse-cli-syntax.5.xml \
start-pulseaudio-kde.1.xml \
start-pulseaudio-x11.1.xml
@ -54,6 +55,7 @@ dist_man_MANS = \
pulse-daemon.conf.5 \
pulse-client.conf.5 \
default.pa.5 \
pulse-cli-syntax.5 \
start-pulseaudio-kde.1 \
start-pulseaudio-x11.1
@ -78,6 +80,7 @@ EXTRA_DIST = \
pulse-daemon.conf.5.xml.in \
pulse-client.conf.5.xml.in \
default.pa.5.xml.in \
pulse-cli-syntax.5.xml.in \
start-pulseaudio-kde.1.xml.in \
start-pulseaudio-x11.1.xml.in \
xmltoman \

View File

@ -34,7 +34,7 @@ USA.
<file>~/.pulse/default.pa</file> on startup, and when that file
doesn't exist <file>@PA_DEFAULT_CONFIG_DIR@/default.pa</file>. It
should contain directives in the PulseAudio CLI languages, as
documented on <url href="http://pulseaudio.org/wiki/CLI"/>.</p>
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>
@ -47,9 +47,10 @@ USA.
<section name="See also">
<p>
<manref name="pulse-daemon.conf" section="5"/>, <manref
name="pulseaudio" section="1"/>, <manref name="pacmd"
section="1"/>
<manref name="pulse-cli-syntax" section="5"/>,
<manref name="pulse-daemon.conf" section="5"/>,
<manref name="pulseaudio" section="1"/>,
<manref name="pacmd" section="1"/>
</p>
</section>

View File

@ -34,7 +34,11 @@ USA.
the commands also understood in the <file>default.pa</file>
configuration scripts.</p>
<p>This program takes no command line options.</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>
</description>
<section name="Authors">
@ -43,7 +47,10 @@ USA.
<section name="See also">
<p>
<manref name="pulseaudio" section="1"/>, <manref name="pactl" section="1"/>, <manref name="default.pa" section="5"/>
<manref name="pulse-cli-syntax" section="5"/>,
<manref name="pulseaudio" section="1"/>,
<manref name="pactl" section="1"/>,
<manref name="default.pa" section="5"/>
</p>
</section>

View File

@ -66,7 +66,7 @@ USA.
<section name="Commands">
<option>
<p><opt>stat</opt> [short]</p>
<p><opt>stat</opt> [<arg>short</arg>]</p>
<optdesc><p>Dump a few statistics about the memory usage of the PulseAudio daemon. (Note: for backwards
compatibility, we also show the output of the <arg>info</arg> command. In order to only show
statistics, use the optional <arg>short</arg> argument. In a future version of PA we will
@ -79,7 +79,7 @@ USA.
</option>
<option>
<p><opt>list</opt> [short] [<arg>TYPE</arg>]</p>
<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. If not specified, all info is listed. If
short is given, output is in a tabular format, for easy parsing by scripts.</p></optdesc>
@ -243,7 +243,8 @@ USA.
<seealso>
<p>
<manref name="pulseaudio" section="1"/>, <manref name="pacmd" section="1"/>
<manref name="pulseaudio" section="1"/>,
<manref name="pacmd" section="1"/>
</p>
</seealso>

View File

@ -0,0 +1,335 @@
<?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="pulse-cli-syntax" section="5" desc="PulseAudio Command Line Interface Syntax">
<synopsis>
<p><file>~/.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 and 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', 'on' or any
word starting with the letters 't' or 'y'. Likewise, negative values can be
given as '0', 'off' or any word starting with the letters 'f' or 'n'.
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</arg></p>
<optdesc><p>Unload a module specified by its index in the module list as
returned by list-modules.</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</opt> <arg>index</arg> <arg>volume</arg></p>
<optdesc><p>Set the volume of a sink input specified
by its index. The same volume rules apply as with set-sink-volume.</p></optdesc>
</option>
<option>
<p><opt>set-sink-input-mute</opt> <arg>index</arg> <arg>boolean</arg></p>
<optdesc><p>Mute or unmute a sink input 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.</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>suspend-sink|suspend-source</opt> <arg>index|name</arg> <arg>boolean</arg></p>
<optdesc><p>Suspend (i.e. disconnect from the underlying hardware) a sink
(resp. source).</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-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>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 the the commands described above there 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 file 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 a ignored when
used on the interactive command line.</p></optdesc>
</option>
<option>
<p><opt>.verbose</opt> and <opt>.noverbose</opt></p>
<optdesc><p>Enable (resp. disable) extra verbosity.</p></optdesc>
</option>
</section>
<section name="Authors">
<p>The PulseAudio Developers &lt;@PACKAGE_BUGREPORT@&gt;;
PulseAudio is available from <url href="@PACKAGE_URL@"/></p>
</section>
<section name="See also">
<p>
<manref name="default.pa" section="5"/>,
<manref name="pacmd" section="1"/>,
<manref name="pulseaudio" section="1"/>
</p>
</section>
</manpage>

View File

@ -135,15 +135,14 @@ static int pa_cli_command_dump_volumes(pa_core *c, pa_tokenizer *t, pa_strbuf *b
/* A method table for all available commands */
static const struct command commands[] = {
{ "exit", pa_cli_command_exit, "Terminate the daemon", 1 },
{ "help", pa_cli_command_help, "Show this help", 1 },
{ "list-modules", pa_cli_command_modules, "List loaded modules", 1 },
{ "list-cards", pa_cli_command_cards, "List cards", 1 },
{ "list-sinks", pa_cli_command_sinks, "List loaded sinks", 1 },
{ "list-sources", pa_cli_command_sources, "List loaded sources", 1 },
{ "list-clients", pa_cli_command_clients, "List loaded clients", 1 },
{ "list-sink-inputs", pa_cli_command_sink_inputs, "List sink inputs", 1 },
{ "list-source-outputs", pa_cli_command_source_outputs, "List source outputs", 1 },
{ "list-cards", pa_cli_command_cards, "List cards", 1 },
{ "stat", pa_cli_command_stat, "Show memory block statistics", 1 },
{ "info", pa_cli_command_info, "Show comprehensive status", 1 },
{ "ls", pa_cli_command_info, NULL, 1 },
@ -152,43 +151,44 @@ static const struct command commands[] = {
{ "unload-module", pa_cli_command_unload, "Unload a module (args: index)", 2},
{ "describe-module", pa_cli_command_describe, "Describe a module (arg: name)", 2},
{ "set-sink-volume", pa_cli_command_sink_volume, "Set the volume of a sink (args: index|name, volume)", 3},
{ "set-sink-input-volume", pa_cli_command_sink_input_volume, "Set the volume of a sink input (args: index, volume)", 3},
{ "set-source-volume", pa_cli_command_source_volume, "Set the volume of a source (args: index|name, volume)", 3},
{ "set-sink-mute", pa_cli_command_sink_mute, "Set the mute switch of a sink (args: index|name, bool)", 3},
{ "set-sink-input-mute", pa_cli_command_sink_input_mute, "Set the mute switch of a sink input (args: index, bool)", 3},
{ "set-source-mute", pa_cli_command_source_mute, "Set the mute switch of a source (args: index|name, bool)", 3},
{ "set-sink-input-volume", pa_cli_command_sink_input_volume, "Set the volume of a sink input (args: index, volume)", 3},
{ "set-sink-input-mute", pa_cli_command_sink_input_mute, "Set the mute switch of a sink input (args: index, bool)", 3},
{ "set-default-sink", pa_cli_command_sink_default, "Set the default sink (args: index|name)", 2},
{ "set-default-source", pa_cli_command_source_default, "Set the default source (args: index|name)", 2},
{ "set-card-profile", pa_cli_command_card_profile, "Change the profile of a card (args: index|name, profile-name)", 3},
{ "set-sink-port", pa_cli_command_sink_port, "Change the port of a sink (args: index|name, port-name)", 3},
{ "set-source-port", pa_cli_command_source_port, "Change the port of a source (args: index|name, port-name)", 3},
{ "suspend-sink", pa_cli_command_suspend_sink, "Suspend sink (args: index|name, bool)", 3},
{ "suspend-source", pa_cli_command_suspend_source, "Suspend source (args: index|name, bool)", 3},
{ "suspend", pa_cli_command_suspend, "Suspend all sinks and all sources (args: bool)", 2},
{ "move-sink-input", pa_cli_command_move_sink_input, "Move sink input to another sink (args: index, sink)", 3},
{ "move-source-output", pa_cli_command_move_source_output, "Move source output to another source (args: index, source)", 3},
{ "update-sink-proplist", pa_cli_command_update_sink_proplist, "Update the properties of a sink (args: index|name, properties)", 3},
{ "update-source-proplist", pa_cli_command_update_source_proplist, "Update the properties of a source (args: index|name, properties)", 3},
{ "update-sink-input-proplist", pa_cli_command_update_sink_input_proplist, "Update the properties of a sink input (args: index, properties)", 3},
{ "update-source-output-proplist", pa_cli_command_update_source_output_proplist, "Update the properties of a source_output (args: index, properties)", 3},
{ "set-default-sink", pa_cli_command_sink_default, "Set the default sink (args: index|name)", 2},
{ "set-default-source", pa_cli_command_source_default, "Set the default source (args: index|name)", 2},
{ "kill-client", pa_cli_command_kill_client, "Kill a client (args: index)", 2},
{ "kill-sink-input", pa_cli_command_kill_sink_input, "Kill a sink input (args: index)", 2},
{ "kill-source-output", pa_cli_command_kill_source_output, "Kill a source output (args: index)", 2},
{ "list-samples", pa_cli_command_scache_list, "List all entries in the sample cache", 1},
{ "play-sample", pa_cli_command_scache_play, "Play a sample from the sample cache (args: name, sink|index)", 3},
{ "remove-sample", pa_cli_command_scache_remove, "Remove a sample from the sample cache (args: name)", 2},
{ "load-sample", pa_cli_command_scache_load, "Load a sound file into the sample cache (args: name, filename)", 3},
{ "load-sample-lazy", pa_cli_command_scache_load, "Lazily load a sound file into the sample cache (args: name, filename)", 3},
{ "load-sample-dir-lazy", pa_cli_command_scache_load_dir, "Lazily load all files in a directory into the sample cache (args: pathname)", 2},
{ "play-file", pa_cli_command_play_file, "Play a sound file (args: filename, sink|index)", 3},
{ "dump", pa_cli_command_dump, "Dump daemon configuration", 1},
{ "shared", pa_cli_command_list_shared_props, NULL, 1},
{ "move-sink-input", pa_cli_command_move_sink_input, "Move sink input to another sink (args: index, sink)", 3},
{ "move-source-output", pa_cli_command_move_source_output, "Move source output to another source (args: index, source)", 3},
{ "vacuum", pa_cli_command_vacuum, NULL, 1},
{ "suspend-sink", pa_cli_command_suspend_sink, "Suspend sink (args: index|name, bool)", 3},
{ "suspend-source", pa_cli_command_suspend_source, "Suspend source (args: index|name, bool)", 3},
{ "suspend", pa_cli_command_suspend, "Suspend all sinks and all sources (args: bool)", 2},
{ "set-card-profile", pa_cli_command_card_profile, "Change the profile of a card (args: index, name)", 3},
{ "set-sink-port", pa_cli_command_sink_port, "Change the port of a sink (args: index, name)", 3},
{ "set-source-port", pa_cli_command_source_port, "Change the port of a source (args: index, name)", 3},
{ "kill-client", pa_cli_command_kill_client, "Kill a client (args: index)", 2},
{ "kill-sink-input", pa_cli_command_kill_sink_input, "Kill a sink input (args: index)", 2},
{ "kill-source-output", pa_cli_command_kill_source_output, "Kill a source output (args: index)", 2},
{ "set-log-level", pa_cli_command_log_level, "Change the log level (args: numeric level)", 2},
{ "set-log-meta", pa_cli_command_log_meta, "Show source code location in log messages (args: bool)", 2},
{ "set-log-time", pa_cli_command_log_time, "Show timestamps in log messages (args: bool)", 2},
{ "set-log-backtrace", pa_cli_command_log_backtrace, "Show backtrace in log messages (args: frames)", 2},
{ "dump-volumes", pa_cli_command_dump_volumes, NULL, 1 },
{ "play-file", pa_cli_command_play_file, "Play a sound file (args: filename, sink|index)", 3},
{ "dump", pa_cli_command_dump, "Dump daemon configuration", 1},
{ "dump-volumes", pa_cli_command_dump_volumes, "Debug: Show the state of all volumes", 1 },
{ "shared", pa_cli_command_list_shared_props, "Debug: Show shared properties", 1},
{ "exit", pa_cli_command_exit, "Terminate the daemon", 1 },
{ "vacuum", pa_cli_command_vacuum, NULL, 1},
{ NULL, NULL, NULL, 0 }
};