summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2004-07-17 14:06:13 +0000
committerLennart Poettering <lennart@poettering.net>2004-07-17 14:06:13 +0000
commit7b8c329578d642d31618d487b97864306c43073c (patch)
tree4772f1ca82bfde919e559e0a85ce7d728ecb434c /doc
parent3e379ca99d44c84b2117ac048ee6e84fc2837280 (diff)
add documentation
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@86 fefdeb5f-60dc-0310-8127-8f9354f1896f
Diffstat (limited to 'doc')
-rw-r--r--doc/Makefile.am39
-rw-r--r--doc/README.html.in133
-rw-r--r--doc/cli.html.in152
-rw-r--r--doc/daemon.html.in51
-rw-r--r--doc/modules.html.in191
-rw-r--r--doc/style.css34
6 files changed, 600 insertions, 0 deletions
diff --git a/doc/Makefile.am b/doc/Makefile.am
new file mode 100644
index 00000000..015d503d
--- /dev/null
+++ b/doc/Makefile.am
@@ -0,0 +1,39 @@
+# $Id$
+
+# This file is part of polypaudio.
+#
+# polypaudio 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.
+#
+# polypaudio 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 polypaudio; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+noinst_DATA = README.html cli.html modules.html daemon.html README
+EXTRA_DIST = $(noinst_DATA) style.css README.html.in cli.html.in modules.html.in daemon.html.in
+
+MAINTAINERCLEANFILES = README README.html cli.html modules.html daemon.html
+CLEANFILES =
+
+if USE_LYNX
+README: README.html
+ lynx --dump $^ | sed 's,file://localhost/.*/doc/README.html,README,' > $@
+
+CLEANFILES += README
+endif
+
+tidy: README.html cli.html modules.html daemon.html
+ tidy -e < README.html
+ tidy -e < cli.html
+ tidy -e < modules.html
+ tidy -e < daemon.html
+
+.PHONY: tidy
+
diff --git a/doc/README.html.in b/doc/README.html.in
new file mode 100644
index 00000000..a9b07d60
--- /dev/null
+++ b/doc/README.html.in
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="iso-8859-1"?> <!-- -*-html-helper-*- -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+<title>polypaudio @PACKAGE_VERSION@</title>
+<link rel="stylesheet" type="text/css" href="style.css" />
+</head>
+
+<body>
+<h1><a name="top">polypaudio @PACKAGE_VERSION@</a></h1>
+
+<p><i>Copyright 2002-2004 Lennart Poettering &lt;@PACKAGE_BUGREPORT@&gt;</i></p>
+
+<ul class="toc">
+ <li><a href="#license">License</a></li>
+ <li><a href="#news">News</a></li>
+ <li><a href="#overview">Overview</a></li>
+ <li><a href="#status">Status</a></li>
+ <li><a href="#documentation">Documentation</a></li>
+ <li><a href="#requirements">Requirements</a></li>
+ <li><a href="#installation">Installation</a></li>
+ <li><a href="#acks">Acknowledgements</a></li>
+ <li><a href="#download">Download</a></li>
+</ul>
+
+<h2><a name="license">License</a></h2>
+
+<p>This program 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.</p>
+
+<p>This program 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.</p>
+
+<p>You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.</p>
+
+<h2><a name="news">News</a></h2>
+
+
+<div class="news-date">Sat Jul 17 2004: </div> <p class="news-text"><a
+href="@PACKAGE_URL@polypaudio-0.1.tar.gz">Version 0.1</a> released</p>
+
+<h2><a name="overview">Overview</a></h2>
+
+<p><tt>polypaudio</tt> is a sound server for Linux and other Unix like
+operating systems. It is intended to be an improved drop-in
+replacement for the <a
+href="http://www.tux.org/~ricdude/apps.html">Enlightened Sound
+Daemon</a> (ESOUND). In addition to the features ESOUND provides
+<tt>polypaudio</tt> has:</p>
+
+<ul>
+ <li>Extensible plugin architecture (<tt>dlopen()</tt>)</li>
+ <li>Support for more than one sink/source</li>
+ <li>Better low latency behaviour</li>
+ <li>Embedabble into other software (the core is available as C library)</li>
+ <li>Completely asynchronous C API</li>
+ <li>Simple command line interface for reconfiguring the daemon while running</li>
+ <li>Flexible, implicit sample type conversion and resampling</li>
+ <li>"Zero-Copy" architecture</li>
+</ul>
+
+<p>Both the core and the client API are completely asynchronous making
+use of a simple main loop abstraction layer. This allows easy
+integration with asynchronous applications using the
+<tt>glib</tt>/<tt>gtk</tt> mainloop. Since the asynchronous API
+available through <tt>polyplib</tt> is quite difficult to use there is
+a simplified synchronous API wrapper <tt>polyplib-simple</tt>
+available.</p>
+
+<h2><a name="status">Status</a></h2>
+
+<p>Version @PACKAGE_VERSION@ is quite usable. <tt>polypaudio</tt> does
+not yet match all ESOUND features: currently a sample cache and
+automatic releasing of unused sound drivers are missing. Have a look on the more extensive <a href="http://0pointer.de/cgi-bin/viewcvs.cgi/trunk/src/todo?view=markup">TODO list</a>.</p>
+
+<h2><a name="documentation">Documentation</a></h2>
+
+<p>There is some prelimenary documentation available: <a
+href="modules.html"><tt>modules.html</tt></a>, <a
+href="cli.html"><tt>cli.html</tt></a>, <a
+href="daemon.html"><tt>daemeon.html</tt></a>.</p>
+
+<p>Documentation for developing with <tt>polypaudio</tt> is not yet
+available. Read the source, Luke!</p>
+
+<h2><a name="requirements">Requirements</a></h2>
+
+<p>Currently, <tt>polypaudio</tt> is tested on Linux only. It requires an OSS or ALSA compatible soundcard.</p>
+
+<p><tt>polypaudio</tt> was developed and tested on Debian GNU/Linux
+"testing" from July 2004, it should work on most other Linux
+distributions (and maybe Unix versions) since it uses GNU autoconf and
+GNU libtool for source code configuration and shared library
+management.</p>
+
+<p><tt>polypaudio</tt> needs <a
+href="http://www.mega-nerd.com/SRC/">Secret Rabbit Code (aka <tt>libsamplerate</tt>)</a> and <a href="http://www.alsa-project.org/">alsa-lib</a>.</p>
+
+<h2><a name="installation">Installation</a></h2>
+
+<p>As this package is made with the GNU autotools you should run
+<tt>./configure</tt> inside the distribution directory for configuring
+the source tree. After that you should run <tt>make</tt> for
+compilation and <tt>make install</tt> (as root) for installation of
+<tt>polypaudio</tt>.</p>
+
+<h2><a name="acks">Acknowledgements</a></h2>
+
+<p>Eric B. Mitchell for writing ESOUND</p>
+
+<h2><a name="download">Download</a></h2>
+
+<p>The newest release is always available from <a href="@PACKAGE_URL@">@PACKAGE_URL@</a></p>
+
+<p>The current release is <a href="@PACKAGE_URL@polypaudio-@PACKAGE_VERSION@.tar.gz">@PACKAGE_VERSION@</a></p>
+
+<p>Get <tt>polypaudio</tt>'s development sources from the <a href="http://subversion.tigris.org/">Subversion</a> <a href="https://seth.intheinter.net:8081/svn/polypaudio/">repository</a>. (<a href="http://0pointer.de/cgi-bin/viewcvs.cgi/?root=polypaudio">viewcvs</a>)</p>
+
+<p>If you want to be notified whenever I release a new version of this software use the subscription feature of <a href="http://freshmeat.net/projects/polypaudio/">Freshmeat</a>.</p>
+
+<hr/>
+<address class="grey">Lennart Poettering &lt;@PACKAGE_BUGREPORT@&gt;, July 2004</address>
+<div class="grey"><i>$Id$</i></div>
+
+</body>
+</html>
diff --git a/doc/cli.html.in b/doc/cli.html.in
new file mode 100644
index 00000000..c67d78db
--- /dev/null
+++ b/doc/cli.html.in
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="iso-8859-1"?> <!-- -*-html-helper-*- -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>polypaudio: Simple Command Line Language</title>
+<link rel="stylesheet" type="text/css" href="style.css" />
+</head>
+
+<body>
+<h1>Simple Command Line Language</h1>
+
+<p><tt>polypaudio</tt> provides a simple command line language used by
+configuration scripts as well as the modules <tt>module-cli</tt>
+and <tt>module-cli-protocol-{unix,tcp}</tt>. Empty lines and lines
+beginning with a hashmark (<tt>#</tt>) are silently ignored. Several
+commands are supported:</p>
+
+<h2>Miscellaneous Commands</h2>
+
+<h3><tt>help</tt></h3>
+
+<p>Show a quick help on the commands available.</p>
+
+<h3><tt>exit</tt></h3>
+
+<p>Terminate the daemon. If you want to terminate a CLI connection
+("log out") you might want to use <tt>C-d</tt>.</p>
+
+<h2>Status Commands</h2>
+
+<h3><tt>modules</tt></h3>
+
+<p>Show all currently loaded modules with their arguments.</p>
+
+<h3><tt>sinks/sources</tt></h3>
+
+<p>Show all currently registered sinks (resp. sources).</p>
+
+<h3><tt>clients</tt></h3>
+
+<p>Show all currently active clients.</p>
+
+<h3><tt>sink_inputs/sink_outputs</tt></h3>
+
+<p>Show all currently active inputs to sinks (resp. outputs of sources).</p>
+
+<h3><tt>stat</tt></h3>
+
+<p>Show some simple statistics about the allocated memory blocks and
+the space used by them.</p>
+
+<h3><tt>info</tt></h3>
+
+<p>A combination of all status commands described above. <tt>ls</tt>
+and <tt>list</tt> are synonyms for <tt>info</tt>.</p>
+
+<h2>Module Management</h2>
+
+<h3><tt>load</tt></h3>
+
+<p>Load a module specified by its name and arguments. For most modules
+it is OK to be loaded more than once.</p>
+
+<h3><tt>unload</tt></h3>
+
+<p>Unload a module specified by its index in the module list as
+returned by <tt>modules</tt>.</p>
+
+<h2>Configuration Commands</h2>
+
+<h3><tt>sink_volume</tt></h3>
+
+<p>Set the volume of the specified sink. You may specify the sink either
+by its index in the sink list or by its name. The volume should be an
+integer value greater or equal than 0 (= muted). Volume 256
+(<tt>0x100</tt>) is normal volume, values greater than this amplify
+the audio signal with clipping.</p>
+
+<h3><tt>sink_input_volume</tt></h3>
+
+<p>Set the volume of a sink input specified by its index the the sink
+input list. The same volume rules apply as with <tt>sink_volume</tt>.</p>
+
+<h3><tt>sink_default/source_default</tt></h3>
+
+<p>Make a sink (resp. source) the default. You may specify the sink
+(resp. ssource) by its index in the sink (resp. source) list or by its
+name.</p>
+
+<h2>Killing clients/streams</h2>
+
+<h3><tt>kill_client</tt></h3>
+
+<p>Remove a client forcibly from the server. There is no protection that
+the client reconnects immediately.</p>
+
+<h3><tt>kill_sink_input/kill_source_output</tt></h3>
+
+<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 client from the server.</p>
+
+<h2>Meta Commands</h2>
+
+<p>In addition the the commands described above there a few meta
+directives supported by the command line interpreter:</p>
+
+<h3><tt>.include</tt></h3>
+
+<p>Executes the commands from the specified script file.</p>
+
+<h3><tt>.fail/.nofail</tt></h3>
+
+<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>
+
+<h3><tt>.verbose/.noverbose</tt></h3>
+<p>Enable (resp. disable) extra verbosity.</p>
+
+<h2>Example Configuration Script</h2>
+
+<pre>
+#!/usr/bin/polaudio -F
+
+# Load audio drivers
+load module-alsa-sink device=plughw:0,0 rate=48000
+load module-alsa-source device=hw:1,0
+
+# Load several protocols
+load module-esound-protocol-tcp
+load module-simple-protocol-tcp
+load module-native-protocol-unix
+load module-cli-protocol-unix
+
+# Load the CLI module (This is similar to passing "-C" on the command line of polypaudio)
+load module-cli
+
+.nofail
+
+# Make some devices default
+sink_default alsa_output
+source_default alsa_input
+
+# Use digital amplification
+sink_volume alsa_output 0x200
+</pre>
+
+<hr/>
+<address class="grey">Lennart Poettering &lt;@PACKAGE_BUGREPORT@&gt;, July 2004</address>
+<div class="grey"><i>$Id$</i></div>
+</body> </html>
diff --git a/doc/daemon.html.in b/doc/daemon.html.in
new file mode 100644
index 00000000..a5d933db
--- /dev/null
+++ b/doc/daemon.html.in
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="iso-8859-1"?> <!-- -*-html-helper-*- -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>polypaudio: Daemon</title>
+<link rel="stylesheet" type="text/css" href="style.css" />
+</head>
+
+<body>
+<h1>Daemon</h1>
+
+<h2>Command Line Arguments</h2>
+
+The <tt>polypaudio</tt> daemon accepts several command line arguments:
+
+<p><tt>-L MODULE</tt>: Load the specified module. This option may be specified more than once.</p>
+<p><tt>-F FILE</tt>: Run the specified script. This option may be specified more than once.</p>
+<p><tt>-C</tt>: Load the module <a href="modules.html#module-cli"><tt>module-cli</tt></a> after startup.</p>
+<p><tt>-D</tt>: Daemonize after successfully executing all scripts and loading all modules.</p>
+<p><tt>-f</tt>: Unless this option is given the daemon will terminate if any of the specified modules failed to load or the script didn't execute successfully.</p>
+<p><tt>-v</tt>: Increase the verbosity of the daemon.</p>
+<p><tt>-h</tt>: Show a quick help.</p>
+
+<h3>Example</h3>
+
+<p>It is a good idea to run the daemon like this:</p>
+
+<pre>polypaudio -D -F /etc/polypaudio/polypaudio.pa</pre>
+
+<p><tt>/etc/polypaudio/polypaudio.pa</tt> should be a script written in the CLI language described in <a href="cli.html">cli.html</a>
+
+<h2>Signals</h2>
+
+<p>The following signals are trapped specially:</p>
+
+<h3>SIGINT</h3>
+
+<p>The daemon is shut down cleanly.</p>
+
+<h3>SIGUSR1</h3>
+
+<p>The daemon tries to load the module <a href="modules.html#module-cli"><tt>module-cli</tt></a>, effectively providing a command line interface on the calling TTY.</p>
+
+<h3>SIGUSR2</h3>
+
+<p>The daemon tries to load the module <a href="modules.html#module-cli-protocol-unix"><tt>module-cli-protocol-unix</tt></a>, effectively providing a command line interface on a special UNIX domain socket.</p>
+
+<hr/>
+<address class="grey">Lennart Poettering &lt;@PACKAGE_BUGREPORT@&gt;, July 2004</address>
+<div class="grey"><i>$Id$</i></div>
+</body> </html>
diff --git a/doc/modules.html.in b/doc/modules.html.in
new file mode 100644
index 00000000..6954418f
--- /dev/null
+++ b/doc/modules.html.in
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="iso-8859-1"?> <!-- -*-html-helper-*- -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>polypaudio: Loadable Modules</title>
+<link rel="stylesheet" type="text/css" href="style.css" />
+</head>
+
+<body>
+
+<h1>Loadable Modules</h1>
+
+<p>The following loadable modules are provided with the <tt>polypaudio</tt> distribution:</p>
+
+<h2>Device Drivers</h2>
+
+<p>All device driver modules support the following parameters:</p>
+<table>
+ <tr><td><tt>format=</tt></td><td>The sample format (one of <tt>u8</tt>, <tt>s16</tt>, <tt>s16le</tt>, <tt>s16le</tt>, <tt>float32</tt>, <tt>float32be</tt>, <tt>float32le</tt>, <tt>alaw</tt>, <tt>ulaw</tt>) (defaults to <tt>s16</tt>)</td></tr>
+ <tr><td><tt>rate=</tt></td><td>The sample rate (defaults to 44100)</td></tr>
+ <tr><td><tt>channels=</tt></td><td>Audio channels (defaults to 2)</td></tr>
+ <tr><td><tt>sink_name=</tt>, <tt>source_name=</tt></td><td>Name for the sink (resp. source)</td></tr>
+</table>
+
+<h3>module-pipe-sink</h3>
+
+<p>Provides a simple test sink that writes the audio data to a FIFO
+special file in the file system. The sink name defaults to <tt>pipe_output</tt>.</p>
+
+<p>The following option is supported:</p>
+
+<table>
+ <tr><td><tt>file=</tt></td><td>The name of the FIFO special file to use</td></tr>
+</table>
+
+<a name="module-alsa-sink"/>
+
+<h3>module-alsa-sink</h3>
+
+<p>Provides a playback sink for devices supported by the <a href="http://www.alsa-project.org/">Advanced Linux
+Sound Architecture</a> (ALSA). The sink name defaults to <tt>alsa_output</tt>.</p>
+
+<p>In addition to the general device driver options described above this module supports:</p>
+
+<table>
+ <tr><td><tt>device=</tt></td><td>The ALSA device to use. (defaults to "plughw:0,0")</td></tr>
+ <tr><td><tt>fragments=</tt></td><td>The desired fragments when opening the device. (defaults to 12)</td></tr>
+ <tr><td><tt>fragment_size=</tt></td><td>The desired fragment size in bytes when opening the device (defaults to 1024)</td></tr>
+</table>
+
+<h3>module-alsa-source</h3>
+
+<p>Provides a recording source for devices supported by the Advanced
+Linux Sound Architecture (ALSA). The source name defaults to <tt>alsa_input</tt>.</p>
+
+<p>This module supports <tt>device=</tt>, <tt>fragments=</tt> and <tt>fragment_size=</tt> arguments the same way as <a href="#module-alsa-sink"><tt>module-alsa-sink</tt></a>.</p>
+
+<a name="module-oss"/>
+
+<h3>module-oss</h3>
+
+<p>Provides both a sink and a source for playback, resp. recording on
+<a href="http://www.opensound.com">Open Sound System</a> (OSS) compatible devices.</p>
+
+<p>This module supports <tt>device=</tt> (which defaults to <tt>/dev/dsp</tt>), <tt>fragments=</tt> and <tt>fragment_size=</tt> arguments the same way as <a href="#module-alsa-sink"><tt>module-alsa-sink</tt></a>.</p>
+
+<p>In addition this module supports the following options:</p>
+
+<table>
+ <tr><td><tt>record=</tt></td><td>Accepts a binary numerical value for enabling (resp. disabling) the recording on this device. (defaults: to 1)</td></tr>
+ <tr><td><tt>playback=</tt></td><td>Accepts a binary numerical value for enabling (resp. disabling) the playback on this device. (defaults: to 1)</td></tr>
+</table>
+
+<p>The sink name (resp. source name) defaults to <tt>oss_output</tt> (resp. <tt>oss_input</tt>).</p>
+
+<h3>module-oss-mmap</h3>
+
+<p>Similar to <tt>module-oss</tt> but uses memory mapped
+(<tt>mmap()</tt>) access to the input/output buffers of the audio
+device. This provides better latency behaviour but is not as
+compatible as <tt>module-oss</tt>.</p>
+
+<p>This module accepts exactly the same arguments as <a href="#module-oss"><tt>module-oss</tt></a>.</p>
+
+<h2>Protocols</h2>
+
+<a name="module-cli"/>
+
+<h3>module-cli</h3>
+
+<p>Provides the user with a simple command line interface on the
+controlling TTY of the daemon. This module may not be loaded more than
+once.</p>
+
+<p>For an explanation of the simple command line language used by this
+module see <a href="cli.html"><tt>cli.html</tt></a>.
+
+<p>This module doesn't accept any arguments.</p>
+
+<a name="module-cli-protocol-unix"/>
+<a name="module-cli-protocol-tcp"/>
+<a name="module-cli-protocol"/>
+
+<h3>module-cli-protocol-{unix,tcp}</h3>
+
+<p>An implemenation of a simple command line based protocol for
+controlling the <tt>polypaudio</tt> daemon. If loaded, the user may
+connect with tools like <tt>netcat</tt>, <tt>telnet</tt> or
+<a href="http://0pointer.de/lennart/projects/bidilink/"><tt>bidilink</tt></a> to the listening sockets and execute commands the
+same way as with <tt>module-cli</tt>.</p>
+
+<p><b>Beware!</b> Users are not authenticated when connecting to this
+service.</p>
+
+<p>This module exists in two versions: with the suffix <tt>-unix</tt>
+the service will listen on an UNIX domain socket in the local file
+system. With the suffix <tt>-tcp</tt> it will listen on a network
+transparent TCP/IP socket.</p>
+
+<p>This module supports the following options:</p>
+
+<table>
+ <tr><td><tt>port=</tt></td><td>(only for <tt>-tcp</tt>) The port number to listen on (defaults to 4712)</td></tr>
+ <tr><td><tt>loopback=</tt></td><td>(only for <tt>-tcp</tt>) Accepts
+a numerical binary value. If 1 the socket is bound to the loopback
+device, i.e. not publicly accessible. (defaults to 1)</td></tr>
+ <tr><td><tt>socket=</tt></td><td>(only for <tt>-unix</tt>) The UNIX socket name (defaults to <tt>/tmp/polypaudio/cli</tt>)</td></tr>
+</table>
+
+<h3>module-simple-protocol-{unix,tcp}</h3>
+
+<p>An implementation of a simple protocol which allows playback by using
+simple tools like <tt>netcat</tt>. Just connect to the listening
+socket of this module and write the audio data to it, or read it from
+it for playback, resp. recording.</p>
+
+<p><b>Beware!</b> Users are not authenticated when connecting to this
+service.</p>
+
+<p>See <tt>module-cli-protocol-{unix,tcp}</tt> for more information
+about the two possible suffixes of this module.</p>
+
+<p>In addition to the options supported by <a href="module-cli-protocol"><tt>module-cli-protocol-*</tt></a>, this module supports:</p>
+
+<table>
+ <tr><td><tt>rate=</tt>, <tt>format=</tt>, <tt>channels=</tt></td><td>Sample format for streams connecting to this service.</td></tr>
+ <tr><td><tt>playback=</tt>, <tt>record=</tt></td><td>Enable/disable playback/recording</td></tr>
+ <tr><td><tt>sink=</tt>, <tt>source=</tt></td><td>Specify the sink/source this service connects to</td></tr>
+</table>
+
+<h3>module-esound-protocol-{unix,tcp}</h3>
+
+<p>An implemenation of a protocol compatible with the <a
+href="http://www.tux.org/~ricdude/EsounD.html">Enlightened Sound
+Daemon</a> (ESOUND, <tt>esd</tt>). When you load this module you may
+access the <tt>polypaudio</tt> daemon with tools like <tt>esdcat</tt>,
+<tt>esdrec</tt> or even <tt>esdctl</tt>. Many applications, such as
+XMMS, include support for this protocol.</p>
+
+<p>See <tt>module-cli-protocol-{unix,tcp}</tt> for more information
+about the two possible suffixes of this module.</p>
+
+<p>In addition to the options supported by <a href="module-cli-protocol"><tt>module-cli-protocol-*</tt></a>, this module supports:</p>
+
+<table>
+ <tr><td><tt>sink=</tt>, <tt>source=</tt></td><td>Specify the sink/source this service connects to</td></tr>
+ <tr><td><tt>public=</tt></td><td>If set to 0 not authentication is required to connect to the service</td></tr>
+ <tr><td><tt>cookie=</tt></td><td>Name of the cookie file for authentication purposes</td></tr>
+</table>
+
+<p>This implementation misses some features the original ESOUND has: e.g. there is no sample cache yet. However: XMMS works fine.</p>
+
+<h3>module-native-protocol-{unix,tcp}</h3>
+
+<p>The native protocol of <tt>polypaudio</tt>.</p>
+
+<p>See <tt>module-cli-protocol-{unix,tcp}</tt> for more information
+about the two possible suffixes of this module.</p>
+
+<p>In addition to the options supported by <a href="module-cli-protocol"><tt>module-cli-protocol-*</tt></a>, this module supports:</p>
+
+<table>
+ <tr><td><tt>public=</tt></td><td>If set to 0 not authentication is required to connect to the service</td></tr>
+ <tr><td><tt>cookie=</tt></td><td>Name of the cookie file for authentication purposes</td></tr>
+</table>
+
+
+<hr/>
+<address class="grey">Lennart Poettering &lt;@PACKAGE_BUGREPORT@&gt;, July 2004</address>
+<div class="grey"><i>$Id$</i></div>
+</body> </html>
diff --git a/doc/style.css b/doc/style.css
new file mode 100644
index 00000000..e54a15a3
--- /dev/null
+++ b/doc/style.css
@@ -0,0 +1,34 @@
+/* $Id$ */
+
+/***
+ * This file is part of polypaudio.
+ *
+ * polypaudio 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.
+ *
+ * polypaudio 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 polypaudio; 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; margin: 0.5cm; }
+a:link, a:visited { color: #900000; }
+p { margin-left: 0.5cm; margin-right: 0.5cm; }
+div.news-date { margin-left: 0.5cm; font-size: 80%; color: #4f0000; }
+p.news-text { margin-left: 1cm; }
+h1 { color: #00009F; }
+h2 { color: #00009F; }
+h3 { color: #00004F; margin-left: 0.5cm; }
+ul { margin-left: .5cm; }
+ol { margin-left: .5cm; }
+pre { margin-left: .5cm; background-color: #f0f0f0; padding: 0.4cm;}
+.grey { color: #afafaf; }
+table { margin-left: 1cm; border:1px solid lightgrey; padding: 0.2cm; }
+td { padding-left:10px; padding-right:10px; }