]> code.delx.au - pulseaudio/commitdiff
add a man page for the pulseaudio binary. More will follow.
authorLennart Poettering <lennart@poettering.net>
Mon, 5 Nov 2007 15:10:13 +0000 (15:10 +0000)
committerLennart Poettering <lennart@poettering.net>
Mon, 5 Nov 2007 15:10:13 +0000 (15:10 +0000)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@2023 fefdeb5f-60dc-0310-8127-8f9354f1896f

Makefile.am
configure.ac
man/Makefile.am [new file with mode: 0644]
man/pulseaudio.1.xml.in [new file with mode: 0644]
man/xmltoman.css [new file with mode: 0644]
man/xmltoman.dtd [new file with mode: 0644]
man/xmltoman.xsl [new file with mode: 0644]
src/daemon/cmdline.c

index 79608a224c8d1a64a20ab585b15e64001f03f3f4..a41dc6c8551470df31e5928f4f20883a99020f5d 100644 (file)
@@ -18,7 +18,7 @@
 # USA.
 
 EXTRA_DIST = bootstrap.sh LICENSE GPL LGPL doxygen/Makefile.am doxygen/Makefile.in doxygen/doxygen.conf.in README todo
-SUBDIRS=src doxygen
+SUBDIRS=src doxygen man
 
 MAINTAINERCLEANFILES =
 noinst_DATA =
index 07db98234d3d7b99529c19e29c9de49fc453518d..f6e548bc6f3b61111f3ac6c1a9d9b03ab3bc6e15 100644 (file)
@@ -28,7 +28,7 @@ m4_define(PA_MAJOR, [0])
 m4_define(PA_MINOR, [9])
 m4_define(PA_MICRO, [7])
 
-AC_INIT([pulseaudio], PA_MAJOR.PA_MINOR.PA_MICRO,[mzcbylcnhqvb (at) 0pointer (dot) de])
+AC_INIT([pulseaudio], PA_MAJOR.PA_MINOR.PA_MICRO,[mzchyfrnhqvb (at) 0pointer (dot) net])
 AC_CONFIG_SRCDIR([src/daemon/main.c])
 AC_CONFIG_HEADERS([config.h])
 AM_INIT_AUTOMAKE([foreign -Wall])
@@ -832,6 +832,43 @@ AC_SUBST(DBUS_LIBS)
 AC_SUBST(HAVE_DBUS)
 AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
 
+### Build and Install man pages ###
+AC_ARG_ENABLE(manpages,
+        AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]),
+[case "${enableval}" in
+  yes) manpages=yes ;;
+  no)  manpages=no ;;
+  *) AC_MSG_ERROR([bad value ${enableval} for --disable-manpages]) ;;
+esac],[manpages=yes])
+
+if test x$manpages = xyes ; then
+    #
+    # XMLTOMAN manpage generation
+    #
+    AC_ARG_ENABLE(xmltoman,
+    AS_HELP_STRING([--disable-xmltoman],[Enable rebuilding of man pages with xmltoman]),
+    [case "${enableval}" in
+      yes) xmltoman=yes ;;
+      no)  xmltoman=no ;;
+      *) AC_MSG_ERROR([bad value ${enableval} for --disable-xmltoman]) ;;
+    esac],[xmltoman=yes])
+
+    if test x$xmltoman = xyes ; then
+        AC_CHECK_PROG(have_xmltoman, xmltoman, yes, no)
+    fi
+
+    if test x$have_xmltoman = xno -o x$xmltoman = xno; then
+        if ! test -e man/pulseaudio.1 ; then
+            AC_MSG_ERROR([*** xmltoman was not found or was disabled, it is required to build the manpages as they have not been pre-built, install xmltoman, pass --disable-manpages or dont pass --disable-xmltoman])
+            exit 1
+        fi
+        AC_MSG_WARN([*** Not rebuilding man pages as xmltoman is not found ***])
+        xmltoman=no
+    fi
+fi
+AM_CONDITIONAL([USE_XMLTOMAN], [test "x$xmltoman" = xyes])
+AM_CONDITIONAL([BUILD_MANPAGES], [test "x$manpages" = xyes])
+
 #### PulseAudio system group & user  #####
 
 AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
@@ -914,6 +951,7 @@ AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "x1"])
 AC_CONFIG_FILES([
 Makefile
 src/Makefile
+man/Makefile
 libpulse.pc
 libpulse-simple.pc
 libpulse-browse.pc
diff --git a/man/Makefile.am b/man/Makefile.am
new file mode 100644 (file)
index 0000000..b701a2e
--- /dev/null
@@ -0,0 +1,60 @@
+# $Id$
+#
+# 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
+
+if BUILD_MANPAGES
+
+man_MANS = \
+       pulseaudio.1
+
+noinst_DATA = \
+       pulseaudio.1.xml
+
+CLEANFILES = \
+       $(noinst_DATA)
+
+pulseaudio.1.xml: pulseaudio.1.xml.in Makefile
+       sed -e 's,@pulseconfdir\@,$(pulseconfdir),g' \
+           -e 's,@PACKAGE_BUGREPORT\@,$(PACKAGE_BUGREPORT),g' \
+            -e 's,@PACKAGE_URL\@,$(PACKAGE_URL),g' $< > $@
+
+if USE_XMLTOMAN
+
+CLEANFILES += \
+       $(man_MANS)
+
+pulseaudio.1: pulseaudio.1.xml Makefile
+       xmltoman $< > $@
+
+xmllint: $(noinst_DATA)
+       for f in $(noinst_DATA) ; do \
+                       xmllint --noout --valid "$$f" || exit 1 ; \
+       done
+
+endif
+
+endif
+
+EXTRA_DIST = \
+       $(man_MANS) \
+       pulseaudio.1.xml.in
+       xmltoman.css \
+       xmltoman.xsl \
+       xmltoman.dtd
diff --git a/man/pulseaudio.1.xml.in b/man/pulseaudio.1.xml.in
new file mode 100644 (file)
index 0000000..b30f448
--- /dev/null
@@ -0,0 +1,379 @@
+<?xml version="1.0"?><!--*-nxml-*-->
+<!DOCTYPE manpage SYSTEM "xmltoman.dtd">
+<?xml-stylesheet type="text/xsl" href="xmltoman.xsl" ?>
+
+<!-- $Id$ -->
+
+<!--
+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="pulseaudio" section="1" desc="The PulseAudio Sound System">
+
+  <synopsis>
+    <cmd>pulseaudio [<arg>options</arg>]</cmd>
+    <cmd>pulseaudio <opt>--help</opt></cmd>
+    <cmd>pulseaudio <opt>--dump-conf</opt></cmd>
+    <cmd>pulseaudio <opt>--dump-modules</opt></cmd>
+    <cmd>pulseaudio <opt>--dump-resample-methods</opt></cmd>
+    <cmd>pulseaudio <opt>--cleanup-shm</opt></cmd>
+    <cmd>pulseaudio <opt>--kill</opt></cmd>
+    <cmd>pulseaudio <opt>--check</opt></cmd>
+  </synopsis>
+
+  <description>
+    <p>PulseAudio is a networked low-latency sound server for Linux, POSIX and Windows systems.</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>--dump-conf</opt></p>
+
+      <optdesc><p>Load the daemon configuration file
+      <file>daemon.conf</file> (see below), parse remaining
+      configuration options on the command line and dump the resulting
+      daemon configuration, in a format that is compatible with
+      <file>daemon.conf</file>.</p></optdesc>
+    </option>
+
+    <option>
+      <p><opt>--dump-modules</opt></p>
+
+      <optdesc><p>List available loadable modules. Combine with
+      <opt>-v</opt> for a more elaborate listing.</p></optdesc>
+    </option>
+
+    <option>
+      <p><opt>--dump-resampe-methods</opt></p>
+      <optdesc><p>List available audio resamplers.</p></optdesc>
+    </option>
+
+    <option>
+      <p><opt>--cleanup-shm</opt></p>
+
+      <optdesc><p>Identify stale PulseAudio POSIX shared memory
+      segments in <file>/dev/shm</file> and remove them if
+      possible. This is done implicitly whenever a new daemon starts
+      up or a client tries to connect to a daemon. It should normally
+      not be necessary to issue this command by hand. Only available
+      on systems with POSIX shared memory segments implemented via a
+      virtual file system mounted to <file>/dev/shm</file>
+      (e.g. Linux).</p></optdesc>
+    </option>
+
+    <option>
+      <p><opt>-k | --kill</opt></p>
+
+      <optdesc><p>Kill an already running PulseAudio daemon of the
+      calling user (Equivalent to sending a SIGTERM).</p></optdesc>
+    </option>
+
+    <option>
+      <p><opt>--check</opt></p>
+
+      <optdesc><p>Return 0 as return code when the PulseAudio daemon
+      is already running for the calling user.</p></optdesc>
+    </option>
+
+
+    <option>
+      <p><opt>--system</opt><arg>[=BOOL]</arg></p>
+
+      <optdesc><p>Run as system-wide instance instead of
+      per-user. Please not that this disables certain features of
+      PulseAudio and is generally not recommended unless the system
+      knows no local users (e.g. is a thin client). This feature needs
+      special configuration and a dedicated UNIX user set up. It is
+      highly recommended to combine this with
+      <opt>--disallow-module-loading</opt> (see below).</p></optdesc>
+    </option>
+
+    <option>
+      <p><opt>-D | --daemon</opt><arg>[=BOOL]</arg></p>
+
+      <optdesc><p>Daemonize after startup, i.e. detach from the
+      terminal.</p></optdesc>
+    </option>
+
+    <option>
+      <p><opt>--fail</opt><arg>[=BOOL]</arg></p>
+
+      <optdesc><p>Fail startup when any of the commands specified in
+      the startup script <file>default.pa</file> (see below)
+      fails.</p></optdesc>
+    </option>
+
+    <option>
+      <p><opt>--high-priority</opt><arg>[=BOOL]</arg></p>
+
+      <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
+      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>
+    </option>
+
+    <option>
+      <p><opt>--realtime</opt><arg>[=BOOL]</arg></p>
+
+      <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 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>
+      <p><opt>--disallow-module-loading</opt><arg>[=BOOL]</arg></p>
+
+      <optdesc><p>Disallow module loading after startup. This is a
+      security feature since it disallows additional module loading
+      during runtime and on user request. It is highly recommended
+      when <arg>--system</arg> is used (see above). Note however, that
+      this breaks certain features like automatic module loading on hot
+      plug.</p></optdesc>
+
+    </option>
+
+    <option>
+      <p><opt>--exit-idle-time</opt><arg>=SECS</arg></p>
+
+      <optdesc><p>Terminate the daemon when idle and the specified
+      number of seconds passed.</p></optdesc>
+    </option>
+
+    <option>
+      <p><opt>--module-idle-time</opt><arg>=SECS</arg></p>
+
+      <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 the
+      haven't been used for the specified number of
+      seconds.</p></optdesc>
+    </option>
+
+    <option>
+      <p><opt>--log-level</opt><arg>[=LEVEL]</arg></p>
+
+      <optdesc><p>If an argument is passed, set the log level to the
+      specified value, otherwise increase the configured verbosity
+      level by one. The log levels are numerical from 0 to 4,
+      corresponding to <arg>error</arg>, <arg>warn</arg>,
+      <arg>notice</arg>, <arg>info</arg>, <arg>debug</arg>. Default
+      log level is <arg>notice</arg>, i.e. all log messages with lower
+      log levels are printed: <arg>error</arg>, <arg>warn</arg>,
+      <arg>notice</arg>.</p></optdesc>
+    </option>
+
+    <option>
+      <p><opt>-v</opt></p>
+
+      <optdesc><p>Increase the configured verbosity level by one (see
+      <opt>--log-level</opt> above). Specify multiple times to
+      increase log level multiple times.</p></optdesc>
+    </option>
+
+    <option>
+      <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.</p></optdesc>
+    </option>
+
+    <option>
+      <p><opt>--p | --dl-search-path</opt><arg>=PATH</arg></p>
+
+      <optdesc><p>Set the search path for dynamic shared objects
+      (plugins).</p></optdesc>
+    </option>
+
+    <option>
+      <p><opt>--resample-method</opt><arg>=METHOD</arg></p>
+
+      <optdesc><p>Use the specified resampler by default (See
+      <opt>--dump-resample-methods</opt> above for possible
+      values).</p></optdesc>
+    </option>
+
+    <option>
+      <p><opt>--use-pid-file</opt><arg>[=BOOL]</arg></p>
+
+      <optdesc><p>Create a PID file. If this options is disabled it is possible to run multiple sound servers per user.</p></optdesc>
+    </option>
+
+    <option>
+      <p><opt>--no-cpu-limit</opt><arg>[=BOOL]</arg></p>
+
+      <optdesc><p>Do not install CPU load limiter on platforms that
+      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 meachnism is useful when
+      debugging PulseAudio with tools like <manref name="valgrind"
+      section="1"/> which slow down execution.</p></optdesc>
+    </option>
+
+    <option>
+      <p><opt>--disable-shm</opt><arg>[=BOOL]</arg></p>
+
+      <optdesc><p>PulseAudio clients and the server can exchange audio
+      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>-L | --load</opt><arg>="MODULE ARGUMENTS"</arg></p>
+
+      <optdesc><p>Load the specified plugin module with the specified
+      arguments.</p></optdesc>
+    </option>
+
+    <option>
+      <p><opt>-F | --file</opt><arg>=FILENAME</arg></p>
+
+      <optdesc><p>Run the specified script on startup. May be
+      specified multiple times to specify multiple scripts to be run
+      in order. Combine with <opt>-n</opt> to disable loading of the
+      default script <file>default.pa</file> (see below).</p></optdesc>
+    </option>
+    <option>
+      <p><opt>-C</opt></p>
+
+      <optdesc><p>Open a command interpreter on STDIN/STDOUT after
+      startup. This may be used to configure PulseAudio dynamically
+      during runtime. Equivalent to
+      <opt>--load</opt><arg>=module-cli</arg>.</p></optdesc>
+    </option>
+    <option>
+      <p><opt>-n</opt></p>
+
+      <optdesc><p>Don't load default script file
+      <file>default.pa</file> (see below) on startup. Useful in
+      conjunction with <opt>-C</opt> or
+      <opt>--file</opt>.</p></optdesc>
+    </option>
+
+
+  </options>
+
+  <section name="Files">
+
+    <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>~/.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>~/.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
+    more information.</p>
+
+  </section>
+
+  <section name="Signals">
+
+    <p><arg>SIGINT, SIGTERM</arg>: the PulseAudio daemon will shut
+    down (Same as <opt>--kill</opt>).</p>
+
+    <p><arg>SIGHUP</arg>: dump a long status report to STDOUT or
+    syslog, depending on the configuration.</p>
+
+    <p><arg>SIGUSR1</arg>: load module-cli, allowing runtime
+    reconfiguration via STDIN/STDOUT.</p>
+
+    <p><arg>SIGUSR2</arg>: load module-cli-protocol-unix, allowing
+    runtime reconfiguration via a AF_UNIX socket. See <manref
+    name="pacmd" section="1"/> for more information.</p>
+
+  </section>
+
+  <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
+    PulseAudio is running as a user daemon this group has no
+    meaning.</p>
+
+    <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 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>
+
+  <section name="Real-time and high-priority scheduling">
+    Blablub
+  </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="pulse-daemon.conf" section="5"/>, <manref name="default.pa" section="5"/>, <manref name="pulse-client.conf" section="5"/>, <manref name="pacmd" section="1"/>
+    </p>
+  </section>
+
+</manpage>
diff --git a/man/xmltoman.css b/man/xmltoman.css
new file mode 100644 (file)
index 0000000..579a4fd
--- /dev/null
@@ -0,0 +1,30 @@
+/* $Id$ */
+
+/***
+  This file is part of PulseAudio.
+
+  PulseAudio is free software; you can redistribute it and/or modify it under
+  the terms of the GNU 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 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. 
+***/
+
+body { color: black; background-color: white; } 
+a:link, a:visited { color: #900000; }       
+h1 { text-transform:uppercase; font-size: 18pt; } 
+p { margin-left:1cm; margin-right:1cm; } 
+.cmd { font-family:monospace; }
+.file { font-family:monospace; }
+.arg { text-transform:uppercase; font-family:monospace; font-style: italic; }
+.opt { font-family:monospace; font-weight: bold;  }
+.manref { font-family:monospace; }
+.option .optdesc { margin-left:2cm; }
diff --git a/man/xmltoman.dtd b/man/xmltoman.dtd
new file mode 100644 (file)
index 0000000..121e62c
--- /dev/null
@@ -0,0 +1,39 @@
+<!-- $Id$ -->
+
+<!-- 
+  This file is part of PulseAudio.
+
+  PulseAudio is free software; you can redistribute it and/or modify it under
+  the terms of the GNU 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 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. 
+-->
+
+<!ELEMENT manpage (synopsis | description | section | options | seealso)*>
+<!ATTLIST manpage name CDATA #REQUIRED section CDATA #REQUIRED desc CDATA #IMPLIED>
+<!ELEMENT arg (#PCDATA)>
+<!ELEMENT p (#PCDATA | arg | url | manref | opt | file )*>
+<!ELEMENT synopsis (cmd | p)+>
+<!ELEMENT description (p)+>
+<!ELEMENT section (p | option)*>
+<!ATTLIST section name CDATA #REQUIRED>
+<!ELEMENT option (#PCDATA | p | optdesc)*>
+<!ELEMENT optdesc (#PCDATA | p )*>
+<!ELEMENT cmd (#PCDATA | arg | opt)*>
+<!ELEMENT options (p | option)*>
+<!ELEMENT seealso (p)*>
+<!ELEMENT opt (#PCDATA)>
+<!ELEMENT file (#PCDATA)>
+<!ELEMENT manref EMPTY>
+<!ATTLIST manref name CDATA #REQUIRED section CDATA #REQUIRED href CDATA #IMPLIED>
+<!ELEMENT url EMPTY>
+<!ATTLIST url href CDATA #REQUIRED>
diff --git a/man/xmltoman.xsl b/man/xmltoman.xsl
new file mode 100644 (file)
index 0000000..8d4ca21
--- /dev/null
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="iso-8859-15"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
+
+<!-- 
+  This file is part of PulseAudio.
+
+  PulseAudio is free software; you can redistribute it and/or modify it under
+  the terms of the GNU 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 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. 
+-->
+
+<!-- $Id$ -->
+
+<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"/>
+
+<xsl:template match="/manpage">
+  
+    <html>
+
+    <head>
+      <title><xsl:value-of select="@name"/>(<xsl:value-of select="@section"/>)</title>
+      <style type="text/css">
+        body { color: black; background-color: white; } 
+        a:link, a:visited { color: #900000; }       
+        h1 { text-transform:uppercase; font-size: 18pt; } 
+        p { margin-left:1cm; margin-right:1cm; } 
+        .cmd { font-family:monospace; }
+        .file { font-family:monospace; }
+        .arg { text-transform:uppercase; font-family:monospace; font-style: italic; }
+        .opt { font-family:monospace; font-weight: bold;  }
+        .manref { font-family:monospace; }
+        .option .optdesc { margin-left:2cm; }
+      </style>
+    </head>
+    <body>
+      <h1>Name</h1>
+      <p><xsl:value-of select="@name"/>
+        <xsl:if test="string-length(@desc) &gt; 0"> - <xsl:value-of select="@desc"/></xsl:if>
+      </p>
+      <xsl:apply-templates />
+    </body>
+  </html>
+</xsl:template>
+
+<xsl:template match="p">
+ <p>
+  <xsl:apply-templates/>
+ </p>
+</xsl:template>
+
+<xsl:template match="cmd">
+ <p class="cmd">
+  <xsl:apply-templates/>
+ </p>
+</xsl:template>
+
+<xsl:template match="arg">
+  <span class="arg"><xsl:apply-templates/></span>
+</xsl:template>
+
+<xsl:template match="opt">
+  <span class="opt"><xsl:apply-templates/></span>
+</xsl:template>
+
+<xsl:template match="file">
+  <span class="file"><xsl:apply-templates/></span>
+</xsl:template>
+
+<xsl:template match="optdesc">
+  <div class="optdesc">
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="synopsis">
+  <h1>Synopsis</h1>
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="seealso">
+  <h1>Synopsis</h1>
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="description">
+  <h1>Description</h1>
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="options">
+  <h1>Options</h1>
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="section">
+  <h1><xsl:value-of select="@name"/></h1>
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="option">
+  <div class="option"><xsl:apply-templates/></div>
+</xsl:template>
+
+<xsl:template match="manref">
+  <xsl:choose>
+    <xsl:when test="string-length(@href) &gt; 0">
+    <a class="manref"><xsl:attribute name="href"><xsl:value-of select="@href"/></xsl:attribute><xsl:value-of select="@name"/>(<xsl:value-of select="@section"/>)</a>
+    </xsl:when>
+    <xsl:otherwise>
+    <span class="manref"><xsl:value-of select="@name"/>(<xsl:value-of select="@section"/>)</span>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="url">
+  <a class="url"><xsl:attribute name="href"><xsl:value-of select="@href"/></xsl:attribute><xsl:value-of select="@href"/></a>
+</xsl:template>
+
+</xsl:stylesheet>
index 0c84044907369ee4a7db84d68da2a180a796d9b9..cfd2c841d8f766fc9aca9307d60761fb3a68feaf 100644 (file)
@@ -144,7 +144,7 @@ void pa_cmdline_help(const char *argv0) {
            "      --log-target={auto,syslog,stderr} Specify the log target\n"
            "  -p, --dl-search-path=PATH             Set the search path for dynamic shared\n"
            "                                        objects (plugins)\n"
-           "      --resample-method=[METHOD]        Use the specified resampling method\n"
+           "      --resample-method=METHOD          Use the specified resampling method\n"
            "                                        (See --dump-resample-methods for\n"
            "                                        possible values)\n"
            "      --use-pid-file[=BOOL]             Create a PID file\n"