diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/FAQ.html.in | 157 | ||||
-rw-r--r-- | doc/Makefile.am | 40 | ||||
-rw-r--r-- | doc/README.html.in | 289 | ||||
-rw-r--r-- | doc/cli.html.in | 214 | ||||
-rw-r--r-- | doc/daemon.html.in | 88 | ||||
-rw-r--r-- | doc/modules.html.in | 326 | ||||
-rw-r--r-- | doc/style.css | 34 | ||||
-rw-r--r-- | doc/todo | 33 |
8 files changed, 0 insertions, 1181 deletions
diff --git a/doc/FAQ.html.in b/doc/FAQ.html.in deleted file mode 100644 index 9cacfb4c..00000000 --- a/doc/FAQ.html.in +++ /dev/null @@ -1,157 +0,0 @@ -<?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: FAQ</title> -<link rel="stylesheet" type="text/css" href="style.css" /> -</head> - -<body> - - -<h1>Frequently Asked Questions</h1> - -<ol> - <li><p><b>How does Polypaudio compare with ESOUND/aRts/NAS?</b></p> - - <p>Polypaudio is sound daemon similar to ESOUND and NAS, but much more - powerful. aRts is a realtime-synthesizer-cum-sound-server, i.e. it - does much more than Polypaudio. However, I believe that Polypaudio - does what it does much better than any other free sound server.</p> - </li> - - <li><p><b>What about ESOUND compatibility?</b></p> - <p>Polypaudio is a drop in replacement for ESOUND. That means: you can - load a esound compatibility module which implements an ESOUND - compatible protocol which allows you to use most of the classic ESOUND - compatible programs (including the command line programs like - <tt>esdcat</tt>).</p> - </li> - - <li><p><b>Is Polypaudio a GNOME program?</b></p> - <p>No, Polypaudio has no dependency on GNOME/GTK/GLIB. All it requires - is a UNIX-like operating system and very few dependency - libraries. However, the accompanying GUI tools are writen with - gtkmm, i.e. require both GLIB and GTK.</p></li> - - <li><p><b>Can I integrate Polypaudio in my GLIB/GTK/GNOME application?</b></p> - <p>Yes! Polypaudio comes with a GLIB main loop adapter. You can embed - both the client library and the daemon (!) into your GLIB based - application.</p></li> - - <li><p><b>Can I integrate Polypaudio in my Qt/KDE application?</b></p> - <p>Yes! Polypaudio uses a main loop abstraction layer that allows you - to integrate Polypaudio in any program that supports main - loops. Unfortunately there is no adapter for Qt publicly available yet.</p></li> - - <li><p><b>I want to write a new driver for Polypaudio, are there any docs?</b></p> - <p>Currently, only the client API is documented with doxygen. Read - the source and base your work on a simple module like - <tt>module-pipe-sink</tt>.</p></li> - - <li><p><b>What about compatibility with NAS?</b></p> - <p>Is not available (yet?). It is doable, but noone has implemented it yet.</p></li> - - <li><p><b>What about compatibility with aRts?</b></p> - <p>Is not available. Since aRts is as synthesizer application you'd have to - reimplement very much code for Polypaudio. It should be easy to - implement limited support for <tt>libartsc</tt> based - applications. Noone has done this yet. It is probably a better idea to - run <tt>arts</tt> on top of Polypaudio (through a polypaudio driver - for aRts, which nobody has written yet). Another solution would be to - embed Polypaudio in the aRts process.</p></li> - - <li><p><b>I often hear noises when playing back with Polypaudio, what can I do?</b></p> - <p>There are to possible solutions: run polypaudio with argument -<tt>--high-priority=1</tt> and make yourself member of the group -<tt>realtime</tt>, or increase the fragment sizes of the audio - drivers. The former will allow Polypaudio to activate - <tt>SCHED_FIFO</tt> high priority scheduling (root rights are dropped - immediately after this) Keep in mind that this is a potential security hole!</p></li> - - <li><p><b>The <tt>polypaudio</tt> executable is installed SUID root by default. Why this? Isn't this a potential security hole?</b></p> - - <p>Polypaudio activates <tt>SCHED_FIFO</tt> scheduling if the user -passes <tt>--high-priority=1</tt>. This will only succeed when -executed as root, therefore the binary is marked SUID root by -default. Yes, this is a potential security hole. However, polypaudio -tries its best to minimize the security threat: immediately after -startup polypaudio drops all capabilities except -<tt>CAP_SYS_NICE</tt> (At least on systems that support it, like Linux; see <tt>man 7 -capabilities</tt> for more information). If the calling user is not a -member of the group <tt>realtime</tt> (which is required to have a GID -< 1000), root rights are dropped immediately. This means, you can -install polypaudio SUID root, but only a subset of your users (the -members of the group <tt>realtime</tt>) may make use of realtime -scheduling. Keep in mind that these users might load their own binary -modules into the polypaudio daemon which may freeze the machine. The -daemon has a minimal protection against CPU hogging (the daemon is -killed after hogging more than 70% CPU for 5 seconds), but this may -be circumvented easily by evildoers.</p></li> - - <li><p><b>I want to run polypaudio only when it is needed, how do I do this?</b></p> - - <p>Set <tt>autospawn = yes</tt> in <tt>client.conf</tt>. That -configuration file may be found either in <tt>/etc/polypaudio/</tt> or -in <tt>~/.polypaudio/</tt>.</p></li> - - <li><p><b>How do I list all polypaudio modules installed?</b></p> - - <p><tt>polypaudio --dump-modules</tt></p> - - <p>Add <tt>-v</tt> for terse usage instructions.</p> - -<li><p><b>How do I use polypaudio over the network?</b></p> - -<p>Just set <tt>$POLYP_SERVER</tt> to the host name of the polypaudio server.</p> - -<li><p><b>Is polypaudio capable of providing synchronized audio playback over the network for movie players like <tt>mplayer</tt>?</b></p> - -<p>Yes! Unless your network is congested in some way (i.e. transfer latencies vary strongly) it works perfectly. Drop me an email for experimental patches for MPlayer.</p> - - <li><p><b>What environment variables does polypaudio care about?</b></p> - -<p>The client honors: <tt>POLYP_SINK</tt> (default sink to connect to), <tt>POLYP_SOURCE</tt> (default source to connect to), <tt>POLYP_SERVER</tt> (default server to connect to, like <tt>ESPEAKER</tt>), <tt>POLYP_BINARY</tt> (the binary to start when autospawning a daemon), <tt>POLYP_CLIENTCONFIG</tt> (path to the client configuration file).</p> - -<p>The daemon honors: <tt>POLYP_SCRIPT</tt> (default CLI script file run after startup), <tt>POLYP_CONFIG</tt> (default daemon configuration file), <tt>POLYP_DLPATH</tt> (colon separated list of paths where to look for modules)</p></li> - - -<li><p><b>I saw that SIGUSR2 provokes loading of the module <tt>module-cli-protocol-unix</tt>. But how do I make use of that?</b></p> - -<p>A brilliant guy named Lennart Poettering once wrote a nifty tool -for that purpose: <a -href="http://0pointer.de/lennart/projects/bidilink/">bidilink</a>. To -connect to a running polypaudio daemon try using the following commands:</p> - -<pre>killall -USR2 polypaudio -bidilink unix-client:/tmp/polypaudio/cli</pre> - -<p><i>BTW: Someone should package that great tool for Debian!</i></p> - - -<p><b>New:</b> There's now a tool <tt>pacmd</tt> that automates sending SIGUSR2 to the daemon and running a bidilink like tool for you.</p> -</li> - -<li><p><b>How do the polypaudio libraries decide where to connect to?</b></p> -<p>The following rule applies:</p> -<ol> - <li>If the the application using the library specifies a server to connect to it is used. If the connection fails, the library fails too.</li> - <li>If the environment variable <tt>POLYP_SERVER</tt> is defined the library connects to that server. If the connection fails, the library fails too.</li> - <li>If <tt>$DISPLAY</tt> is set, the library tries to connect to that server and looks for the root window property <tt>POYLP_SERVER</tt> for the host to connect to. If <tt>POLYP_COOKIE</tt> is set it is used as authentication cookie.</li> - <li>If the client configuration file (<tt>~/.polypaudio/client.conf</tt> or <tt>/etc/polypaudio/client.conf</tt>) sets the server address, the library connects to that server. If the connection fails, the library fails too.</li> - <li>The library tries to connect to the default local UNIX socket for polypaudio servers. If the connection fails, it proceeds with the next item.</li> - <li>The library tries to connect to the default local TCP socket for polypaudio servers. If the connection fails, it proceeds with the next item.</li> - <li>If <tt>$DISPLAY</tt> is set, the library tries to connect to the default TCP port of that host. If the connection fails, it proceeds with the next item.</li> - <li>The connection fails.</li> -</ol> -</li> - -<li><p><b>Why the heck does libpolyp link against libX11?</b></p> -<p>The Polypaudio client libraries look for some X11 root window properties for the credentials of the Polypaudio server to access. You may compile Polypaudio without X11 for disabling this.</p></li> - -</ol> - -<hr/> -<address class="grey">Lennart Poettering <@PACKAGE_BUGREPORT@>, September 2004</address> -<div class="grey"><i>$Id$</i></div> -</body> </html> diff --git a/doc/Makefile.am b/doc/Makefile.am deleted file mode 100644 index fff06551..00000000 --- a/doc/Makefile.am +++ /dev/null @@ -1,40 +0,0 @@ -# $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 Lesser 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 Lesser 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 todo FAQ.html.in - -MAINTAINERCLEANFILES = README.html cli.html modules.html daemon.html FAQ.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 -qe < README.html ; true - tidy -qe < cli.html ; true - tidy -qe < daemon.html ; true - tidy -qe < modules.html ; true - tidy -qe < FAQ.html ; true - -.PHONY: tidy - diff --git a/doc/README.html.in b/doc/README.html.in deleted file mode 100644 index eb57fdb7..00000000 --- a/doc/README.html.in +++ /dev/null @@ -1,289 +0,0 @@ -<?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 2004 Lennart Poettering <@PACKAGE_BUGREPORT@></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 Lesser 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 -Lesser General Public License for more details.</p> - -<p>You should have received a copy of the GNU Lesser 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">Sun Nov 21 2004: </div> <p class="news-text"><a -href="@PACKAGE_URL@polypaudio-0.7.tar.gz">Version 0.7</a> released; -changes include: IPv6 support; PID file support; publish credentials -in X11 root window (<tt>module-x11-publish</tt>; new tool <tt>pacmd</tt>; ESOUND backend; new command <tt>load-sample-dir-lazy</tt>; many, many minor fixes.</p> - -<div class="news-date">Thu Oct 28 2004: </div> <p class="news-text"><a -href="@PACKAGE_URL@polypaudio-0.6.tar.gz">Version 0.6</a> released; -changes include: TCP wrappers support; don't load the complete sound -file into memory when playing back using <tt>pa_play_file()</tt>; -autoload API change; don't load all sound files as FLOAT32; shorten -default buffers; client-side latency interpolation; add new user -volume metrics; add <tt>module-tunnel</tt>, <tt>module-null-sink</tt>, -<tt>module-match</tt> and new tool <tt>paplay</tt>; new API version -macros; many client API improvements; correctly lock cookie file -generation; correctly lock daemon autospawning; print daemon layout to -STDERR on SIGHUP; new options for <tt>pacat</tt>: allow sample type specification.</p> - -<div class="news-date">Mon Sep 24 2004: </div> <p class="news-text"><a -href="@PACKAGE_URL@polypaudio-0.5.1.tar.gz">Version 0.5.1</a> released; -changes include: improve esound protocol compatibility; fix -autospawning via <tt>libesd</tt>; make use of POSIX capabilities; -allow <tt>SCHED_FIFO</tt> scheduling only for users in group -<tt>realtime</tt>; minor build system fix.</p> - -<div class="news-date">Mon Sep 20 2004: </div> <p class="news-text"><a -href="@PACKAGE_URL@polypaudio-0.5.tar.gz">Version 0.5</a> released; -changes include: extensive API improvements, new module -<tt>module-combine</tt> for combining multiple sound cards into one, -gcc 2.95 compatibility, configuration files, add "lazy" samples, -support for source and network latency measurements, add -<tt>module-pipe-source</tt>, many other fixes and improvements.</p> - -<div class="news-date">Wed Sep 8 2004: </div> <p class="news-text"><a -href="@PACKAGE_URL@polypaudio-0.4.tar.gz">Version 0.4</a> released; -changes include: daemon auto spawning, support for <tt>SCHED_FIFO</tt> scheduling, three new modules, proper logging, CPU load watchdog, many fixes.</p> - -<div class="news-date">Fri Aug 27 2004: </div> <p class="news-text"><a -href="@PACKAGE_URL@polypaudio-0.3.tar.gz">Version 0.3</a> released; -changes include: support for both glib 2.0 and glib 1.2, future cancellation, API updates, many fixes, relicense client library to LGPL.</p> - -<div class="news-date">Fri Aug 20 2004: </div> <p class="news-text"><a -href="@PACKAGE_URL@polypaudio-0.2.tar.gz">Version 0.2</a> released; -changes include: added sample cache, introspection API, client API -documentation, module autoloading, glib support, a module for intercepting X11 bell events, and much more.</p> - -<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). It is my ultimate ambition to get Polypaudio into -<a href="http://www.gnome.org/">Gnome</a> as a replacement for ESOUND. In -addition to the features ESOUND provides <tt>polypaudio</tt> has:</p> - -<ul> - <li>Extensible plugin architecture (by loading dynamic loadable modules with <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> - <li>Module autoloading</li> - <li>Very accurate latency measurement for playback and recordin.</li> - <li>May be used to combine multiple sound cards to one (with sample rate adjustment)</li> - <li>Client side latency interpolation</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. A simple main loop implementation is available as well.</p> - -<p>The following modules are currently available:</p> - -<ul> - <li><tt>module-oss</tt>: driver for Open Sound System audio sinks and sources.</li> - <li><tt>module-oss-mmap</tt>: same as above, but uses <tt>mmap()</tt> access to the audio buffer. Not as compatible</li> - <li><tt>module-alsa-sink</tt>, <tt>module-alsa-source</tt>: drivers for ALSA sinks and sources</li> - <li><tt>module-pipe-sink</tt>, <tt>module-pipe-source</tt>: demonstration module providing UNIX fifos backed sinks/sources</li> - <li><tt>module-combine</tt>: combine multiple sinks into one.</li> - <li><tt>module-sine</tt>: a sine generate sink input.</li> - <li><tt>module-x11-bell</tt>: play a sample from the sample cache on every X11 bell event.</li> - <li><tt>module-x11-publish</tt>: store Polypaudio credentials in the X11 root window.</li> - <li><tt>module-esound-protocol-tcp</tt>, <tt>module-esound-protocol-tcp6</tt>, <tt>module-esound-protocol-unix</tt>: ESOUND compatibility modules (for TCP/IPv6 resp. TCP/IPv6 resp. UNIX domain sockets)</li> - <li><tt>module-native-protocol-tcp</tt>, <tt>module-native-protocol-tcp6</tt>, <tt>module-native-protocol-unix</tt>: Native polypaudio protocol (for TCP/IPv4 resp. TCP/IPv6 resp. UNIX domain sockets)</li> - <li><tt>module-simple-protocol-tcp</tt>, <tt>module-simple-protocol-tcp6</tt>, <tt>module-simple-protocol-unix</tt>: Simplistic protocol for playback/capture for usage with tools like <tt>netcat</tt> (for TCP/IP resp. UNIX domain sockets)</li> - <li><tt>module-cli-protocol-tcp</tt>, <tt>module-cli-protocol-tcp6</tt>, <tt>module-cli-protocol-unix</tt>, <tt>module-cli</tt>: Expose polypaudio's internals whith a simple command line interface. (for TCP/IP resp. UNIX domain sockets resp. STDIN/STDOUT)</li> - <li><tt>module-tunnel-sink</tt>, <tt>module-tunnel-source</tt>: make sinks/sources from other hosts available locally.</li> - <li><tt>module-match</tt>: adjust volume automatically for newly created playback streams based on a regular expression matching table.</li> - <li><tt>module-null-sink</tt>: a clocked sink similar to <tt>/dev/null</tt>.</li> - <li><tt>module-esound-sink</tt>: a sink for forwarding audio data to an ESOUND server.</li> -</ul> - -<p><tt>polypaudio</tt> is the successor of my previous, ill-fated -attempt to write a sound server, <a -href="http://asd.sf.net/">asd</a>.</p> - -<p>A GTK GUI manager application for polypaudio is the <a -href="http://0pointer.de/lennart/projects/paman/">Polypaudio -Manager</a>. Another GTK GUI tool for Polypaudio is the <a -href="http://0pointer.de/lennart/projects/pavumeter">Polypaudio Volume -Meter</a>.</p> - -<p>There are output plugins for <a -href="http://0pointer.de/lennart/projects/xmms-polyp/">XMMS</a>, <a -href="http://0pointer.de/lennart/projects/libao-polyp/">libao</a> -(merged in <tt>libao</tt> SVN) and <a -href="http://0pointer.de/lennart/projects/gst-polyp/">gstreamer</a> -(merged in <tt>gstreamer-plugins</tt> CVS), <a -href="http://mplayerhq.hu">MPlayer</a> (merged in MPlayer CVS) and <a -href="http://xine.sf.net/">Xine</a> (merged in Xine CVS). Drivers for -<a href="http://www.portaudio.com/">PortAudio</a> will be released -shortly.</p> - -<h2><a name="status">Status</a></h2> - -<p>Version @PACKAGE_VERSION@ is quite usable. It matches and supersedes ESOUND's feature set in nearly all areas.</p> - -<p><b>Warning:</b> polypaudio's client API and protocol are not stable -yet. The client interface is still a moving target and changes from -release to release. The client API's library version number is currently fixed to <tt>0.0.0</tt>.</p> - -<h2><a name="documentation">Documentation</a></h2> - -<p>There is some preliminary 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>daemon.html</tt></a>, <a href="FAQ.html"><tt>FAQ.html</tt></a>, .</p> - -<h3>First Steps</h3> - -<p>Simply start the polypaudio daemon with the argument <tt>-nC</tt></p> - -<pre>polypaudio -nC</pre> - -<p>This will present you a screen like this:</p> - -<pre>Welcome to polypaudio! Use "help" for usage information. ->>> </pre> - -<p>Now you can issue CLI commands as described in <a -href="cli.html"><tt>cli.html</tt></a>. Another way to start -<tt>polypaudio</tt> is by specifying a configuration script like that one included in the distribution on the -command line :</p> - -<pre>polypaudio -nF polypaudio.pa</pre> - -<p>This will load some drivers and protocols automatically.</p> - -<p>The best idea is to configure your daemon in <tt>/etc/polypaudio/daemon.conf</tt> and <tt>/etc/polypaudio/default.pa</tt> and to run polypaudio without any arguments.</p> - -<p><b>Beware!</b> Unless you pass the option <tt>--sysconfdir=/etc</tt> to -<tt>configure</tt>, the directory <tt>/etc/polypaudio/</tt> is really -<tt>/usr/local/etc/polypaudio/</tt>.</p> - -<h3>Developing polypaudio Clients</h3> - -<p>You may browse the <a href="http://www.doxygen.org/">Doxygen</a> generated <a -href="http://0pointer.de/lennart/projects/polypaudio/doxygen/">programing -documentation</a> for the client API. (Run <tt>make doxygen</tt> to generate this documentation from the source tree)</p> - -<h3>Developing polypaudio Modules</h3> - -<p>There are several reasons for writing loadable modules for polypaudio:</p> - -<ul> - <li>Device driver support in addition to ALSA/OSS</li> - <li>Protocol support beyond ESOUND's protocol and the native protocol. (such as NAS or a subset of aRts)</li> - <li>New programming interfaces such as XMLRPC or DBUS for controlling the daemon.</li> - <li>Hooking audio event sources directly into polypaudio (similar to <tt>module-x11-bell</tt>)</li> - <li>For low latency applications such as VOIP: load the VOIP core directly into polypaudio and have a slim GUI frontend to control it.</li> -</ul> - -<p>There is currently no documentation how to write loadable modules -for polypaudio. <i>Read the source, Luke!</i> If you are interested in -writing new modules feel free to contact the author in case you have any -questions.</p> - -<h2><a name="requirements">Requirements</a></h2> - -<p>Currently, <tt>polypaudio</tt> is tested on Linux and FreeBSD only. It requires an OSS or ALSA compatible soundcard.</p> - -<p><tt>polypaudio</tt> was developed and tested on Debian GNU/Linux -"testing" from November 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 <tt>libwrap</tt>, <a -href="http://www.mega-nerd.com/SRC/">Secret Rabbit Code (aka -<tt>libsamplerate</tt>)</a>, <a -href="http://www.mega-nerd.com/libsndfile"><tt>libsndfile</tt></a>, <a -href="http://www.alsa-project.org/">alsa-lib</a> and <a -href="http://www.gtk.org/">GLIB</a>. (The latter is required for -building the GLIB main loop integration module only.)</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> - -<p>Jeff Waugh for creating Ubuntu packages (and hopefully soon Debian)</p> - -<p>Miguel Freitas for writing a Polypaudio driver for Xine</p> - -<p>Joe Marcus Clarke for porting Polypaudio to FreeBSD</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="svn://seth.intheinter.net/polypaudio">repository</a> (<a href="http://0pointer.de/cgi-bin/viewcvs.cgi/?root=polypaudio">viewcvs</a>): </p> - -<pre>svn checkout svn://seth.intheinter.net/polypaudio/trunk polypaudio</pre> - -<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> - -<p><b>New!</b> There is a general discussion <a href="https://seth.intheinter.net/mailman/listinfo/polypaudio-discuss">mailing list for polypaudio</a> available.</p> - -<p><b>New!</b> There is now a <a href="http://0pointer.de/trac/polypaudio/">Polypaudio wiki</a> (based on <a href="http://www.edgewall.com/products/trac/">trac</a>) available.</p> - -<hr/> -<address class="grey">Lennart Poettering <@PACKAGE_BUGREPORT@>, November 2004</address> -<div class="grey"><i>$Id$</i></div> - -</body> -</html> diff --git a/doc/cli.html.in b/doc/cli.html.in deleted file mode 100644 index 61d29e5a..00000000 --- a/doc/cli.html.in +++ /dev/null @@ -1,214 +0,0 @@ -<?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>list-modules</tt></h3> - -<p>Show all currently loaded modules with their arguments.</p> - -<h3><tt>list-sinks/list-sources</tt></h3> - -<p>Show all currently registered sinks (resp. sources).</p> - -<h3><tt>list-clients</tt></h3> - -<p>Show all currently active clients.</p> - -<h3><tt>list-sink-inputs/list-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-module</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-module</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>set-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>set-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>set-default-sink</tt>/<tt>set-default-source</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>Sample Cache</h2> - -<h3><tt>list-samples</tt></h3> - -<p>Lists the contents of the sample cache.</p> - -<h3><tt>play-sample</tt></h3> - -<p>Play a sample cache entry to a sink. Expects the sample name and the sink name as arguments.</p> - -<h3><tt>remove-sample</tt></h3> - -<p>Remove an entry from the sample cache. Expects the sample name as argument.</p> - -<h3><tt>load-sample</tt></h3> - -<p>Load an audio file to the sample cache. Expects the file name to load and the desired sample name as arguments.</p> - -<h3><tt>load-sample-lazy</tt></h3> - -<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. Expects the the desired sample -name and file name to load as arguments.</p> - -<h3><tt>load-sample-dir-lazy</tt></h3> - -<p>Load all entries in the specified directory into the sample cache -as lazy entries. A shell globbing expression (e.g. <tt>*.wav</tt>) may -be appended to the path of the directory to add.</p> - -<h2>Module Autoloading</h2> - -<h3><tt>list-autoload</tt></h3> - -<p>Lists all currently defined autoloading entries.</p> - -<h3><tt>add-autoload-sink/add-autoload-source</tt></h3> - -<p>Adds an autoloading entry for a sink (resp. source). Expects the sink name (resp. source name), the module name and the module arguments as arguments.</p> - -<h3><tt>remove-autoload-sink/remove-autoload-source</tt></h3> - -<p>Remove an autoloading entry. Expects the sink name (resp. source name) as argument.</p> - -<h2>Miscellaneous Commands</h2> - -<h3><tt>play-file</tt></h3> - -<p>Play an audio file to a sink. Expects the file name and the sink name as argumens.</p> - -<h3><tt>dump</tt></h3> - -<p>Dump the daemon's current configuration in CLI commands.</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> - -<p>Mark the following script as executable (<tt>chmod +x</tt>) and run it for a sensible polypaudio configuration.</p> - -<pre> -#!/usr/bin/polaudio -nF - -# Create autoload entries for the device drivers -add-autoload-sink output module-alsa-sink device=plughw:0,0 rate=48000 sink_name=output -add-autoload-sink output2 module-oss device=/dev/dsp1 record=0 sink_name=output2 -add-autoload-sink combined module-combine master=output slaves=output2 sink_name=combined - -add-autoload-source input module-alsa-source device=hw:1,0 source_name=input - -# Load several protocols -load-module module-esound-protocol-unix -load-module module-simple-protocol-tcp -load-module module-native-protocol-unix -load-module module-cli-protocol-unix - -# Make some devices default -set-default-sink combined -set-default-source input - -# Don't fail if the audio files referred to below don't exist -.nofail - -# Load an audio to the sample cache for usage with module-x11-bell -load-sample-lazy /usr/share/sounds/KDE_Notify.wav x11-bell -load-module module-x11-bell sample=x11-bell - -# Play a welcome sound -play-file /usr/share/sounds/startup3.wav combined -</pre> - -<hr/> -<address class="grey">Lennart Poettering <@PACKAGE_BUGREPORT@>, November 2004</address> -<div class="grey"><i>$Id$</i></div> -</body> </html> diff --git a/doc/daemon.html.in b/doc/daemon.html.in deleted file mode 100644 index a4db0bd7..00000000 --- a/doc/daemon.html.in +++ /dev/null @@ -1,88 +0,0 @@ -<?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: - -<pre> -COMMANDS: - -h, --help Show this help - --version Show version - --dump-conf Dump default configuration - --dump-modules Dump list of available modules - -k --kill Kill a running daemon - --check Check for a running daemon - -OPTIONS: - -D, --daemonize[=BOOL] Daemonize after startup - --fail[=BOOL] Quit when startup fails - --verbose[=BOOL] Be slightly more verbose - --high-priority[=BOOL] Try to set high process priority - (only available as root) - --disallow-module-loading[=BOOL] Disallow module loading after startup - --exit-idle-time=SECS Terminate the daemon when idle and this - time passed - --module-idle-time=SECS Unload autoloaded modules when idle and - this time passed - --scache-idle-time=SECS Unload autoloaded samples when idle and - this time passed - --log-target={auto,syslog,stderr} Specify the log target - -p, --dl-search-path=PATH Set the search path for dynamic shared - objects (plugins) - --resample-method=[METHOD] Use the specified resampling method - (one of src-sinc-medium-quality, - src-sinc-best-quality,src-sinc-fastest - src-zero-order-hold,src-linear,trivial) - --use-pid-file[=BOOL] Create a PID file - -STARTUP SCRIPT: - -L, --load="MODULE ARGUMENTS" Load the specified plugin module with - the specified argument - -F, --file=FILENAME Run the specified script - -C Open a command line on the running TTY - after startup - - -n Don't load default script file -</pre> - -<h3>Example</h3> - -<p>It is a good idea to run the daemon like this:</p> - -<pre>polypaudio -D</pre> - -<p>This will run <tt>/etc/polypaudio/default.pa</tt> after startup. This should be a script written in the CLI language described in <a href="cli.html">cli.html</a>. </p> - -<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> - -<h3>SIGHUP</h3> - -<p>The daemon logs the current server layout.</p> - -<hr/> -<address class="grey">Lennart Poettering <@PACKAGE_BUGREPORT@>, November 2004</address> -<div class="grey"><i>$Id$</i></div> -</body> </html> diff --git a/doc/modules.html.in b/doc/modules.html.in deleted file mode 100644 index a549396d..00000000 --- a/doc/modules.html.in +++ /dev/null @@ -1,326 +0,0 @@ -<?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. (defaults to: <tt>/tmp/music.output</tt>)</td></tr> -</table> - -<h3>module-pipe-source</h3> - -<p>Provides a simple test source that reads the audio data from a FIFO -special file in the file system. The source name defaults to <tt>pipe_input</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. (defaults to: <tt>/tmp/music.input</tt>)</td></tr> -</table> - - -<h3>module-null-sink</h3> - -<p>Provides a simple null sink. All data written to this sink is silently dropped. This sink is clocked using the system time.</p> - -<p>This module doesn't support any special parameters</p> - -<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> - -<h3>module-combine</h3> - -<p>This combines two or more sinks into one. A new virtual sink is -allocated. All data written to it is forwarded to all connected -sinks. In aequidistant intervals the sample rates of the output sinks -is recalculated: i.e. even when the sink's crystals deviate (which is -normally the case) output appears synchronously to the human ear. The -resampling required for this may be very CPU intensive.</p> - -<table> - <tr><td><tt>sink_name=</tt></td><td>The name for the combined sink. (defaults to <tt>combined</tt>)</td></tr> - <tr><td><tt>master=</tt></td><td>The name of the first sink to link into the combined think. The sample rate/type is taken from this sink.</td></tr> - <tr><td><tt>slaves=</tt></td><td>Name of additional sinks to link into the combined think, seperated by commas.</td></tr> - <tr><td><tt>adjust_time=</tt></td><td>Time in seconds when to readjust the sample rate of all sinks. (defaults to 20)</td></tr> - <tr><td><tt>resample_method=</tt></td><td>Resampling algorithm to -use. See <tt>libsamplerate</tt>'s documentation for more -information. Use one of <tt>sinc-best-quality</tt>, -<tt>sinc-medium-quality</tt>, <tt>sinc-fastest</tt>, -<tt>zero-order-hold</tt>, <tt>linear</tt>. If the default happens to -be to slow on your machine try using <tt>zero-order-hold</tt>. This -will decrease output quality however. (defaults to -<tt>sinc-fastest</tt>)</td></tr> </table> - -<h3>module-tunnel-{sink,source}</h3> - -<p>Tunnel a remote sink/source to a local "ghost" -sink/source. Requires a running polypaudio daemon on the remote server -with <tt>module-native-protocol-tcp</tt> loaded. It's probably a -better idea to connect to the remote sink/source directly since some -buffer control is lost through this tunneling.</p> - -<table> - <tr><td><tt>server=</tt></td><td>The server to connect to</td></tr> - <tr><td><tt>source=</tt></td><td>The source on the remote server. Only available for <tt>module-tunnel-source</tt>.</td></tr> - <tr><td><tt>sink=</tt></td><td>The sink on the remote server. Only available for <tt>module-tunnel-sink</tt>.</td></tr> - <tr><td><tt>cookie=</tt></td><td>The authentication cookie file to use.</td></tr> -</table> - -<h3>module-esound-sink</h3> - -<p>Create a playback sink using an ESOUND server as backend. Whenever you can, try to omit this -module since it has many disadvantages including bad latency -and even worse latency measurement. </p> - -<table> - <tr><td><tt>server=</tt></td><td>The server to connect to</td></tr> - <tr><td><tt>cookie=</tt></td><td>The authentication cookie file to use.</td></tr> -</table> - -<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,tcp6}</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,tcp6}</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,tcp6}</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> - -<h3>module-native-protocol-fd</h3> - -<p>This is used internally when auto spawning a new daemon. Don't use it directly.</p> - -<h2>Miscellaneous</h2> - -<h3>module-x11-bell</h3> - -<p>Intercepts X11 bell events and plays a sample from the sample cache on each occurence.</p> - -<table> - <tr><td><tt>display=</tt></td><td>X11 display to connect to. If ommited defaults to the value of <tt>$DISPLAY</tt></td></tr> - <tr><td><tt>sample=</tt></td><td>The sample to play. If ommited defaults to <tt>x11-bell</tt>.</td></tr> - <tr><td><tt>sink=</tt></td><td>Name of the sink to play the sample on. If ommited defaults to the default sink.</td></tr> -</table> - -<h3>module-x11-publish</h3> - -<p>Publishes the access credentials to the Polypaudio server in the -X11 root window. The following properties are used: -<tt>POLYP_SERVER</tt>, <tt>POYLP_SINK</tt>, <tt>POLYP_SOURCE</tt>, -<tt>POLYP_COOKIE</tt>. This is very useful when using SSH or any other -remote login tool for logging into other machines and getting audio -playback to your local speakers. The Polypaudio client libraries make -use of this data automatically. Instead of using this module you may -use the tool <tt>pax11publish</tt> which may be used to access, modify -and import credential data from/to the X11 display.</p> - -<table> - <tr><td><tt>display=</tt></td><td>X11 display to connect to. If ommited defaults to the value of <tt>$DISPLAY</tt></td></tr> - <tr><td><tt>sink=</tt></td><td>Name of the default sink. If ommited this property isn't stored in the X11 display.</td></tr> - <tr><td><tt>source=</tt></td><td>Name of the default source. If ommited this property isn't stored in the X11 display.</td></tr> - <tr><td><tt>cookie=</tt></td><td>Name of the cookie file of the -cookie to store in the X11 display. If ommited the cookie of an -already loaded protocol module is used.</td></tr> </table> - -<h3>module-sine</h3> - -<p>Creates a sink input and generates a sine waveform stream.</p> - -<table> - <tr><td><tt>sink=</tt></td><td>The sink to connect to. If ommited defaults to the default sink.</td></tr> - <tr><td><tt>frequency=</tt></td><td>The frequency to generate in Hertz. Defaults to 440.</td></tr> -</table> - -<h3>module-esound-compat-spawnfd</h3> - -<p>This is a compatibility module for <tt>libesd</tt> based autospawning of polypaudio. Don't use it directly.</p> - -<h3>module-esound-compat-spawnpid</h3> - -<p>This is a compatibility module for <tt>libesd</tt> based autospawning of polypaudio. Don't use it directly.</p> - -<h3>module-match</h3> - -<p>Adjust the volume of a playback stream automatically based on its name.</p> - -<table> - <tr><td><tt>table=</tt></td><td>The regular expression matching table file to use</td></tr> -</table> - -<p>The table file should contain a regexp and volume on each line, seperated by spaces. An example:</p> - -<pre> -^sample: 25 -</pre> - -<p>The volumes of all streams with titles starting with <tt>sample:</tt> are automatically set to 25. (FYI: All sample cache streams start with <tt>sample:</tt>)</p> - -<hr/> -<address class="grey">Lennart Poettering <@PACKAGE_BUGREPORT@>, November 2004</address> -<div class="grey"><i>$Id$</i></div> -</body> </html> diff --git a/doc/style.css b/doc/style.css deleted file mode 100644 index a46592a2..00000000 --- a/doc/style.css +++ /dev/null @@ -1,34 +0,0 @@ -/* $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 Lesser 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 Lesser 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; } diff --git a/doc/todo b/doc/todo deleted file mode 100644 index 0da83206..00000000 --- a/doc/todo +++ /dev/null @@ -1,33 +0,0 @@ -*** $Id$ *** - -Architectural changes: -- per-channel volume -- channel mapping ("left", "right", "rear", "subwoofer") -- hardware volume support -- add API for synchronizing multiple sinks/sources to a common clock -- absolutely indexed write()s from client -- remove "polyplib-" prefix - -Fixes: -- improve module-oss-mmap latency measurement -- module-tunnel: improve latency calculation -- make alsa modules use mmap -- even more commenting - -Features: -- add radio module -- xmlrpc -- dbus/hal -- rendezvous autotunnel module -- polish for starting polypaudio as root/system-wide instance -- export connection fd - -Long term: -- pass meta info for hearing impaired -- X11: support for the X11 synchronization extension - -Backends for: -- portaudio (semi-done) -- alsa-lib -- sdl -- OSS (esddsp style) |