summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/FAQ.html.in3
-rw-r--r--doc/Makefile.am2
-rw-r--r--doc/README.html.in65
-rw-r--r--doc/cli.html.in20
-rw-r--r--doc/modules.html.in65
-rw-r--r--doc/style.css15
6 files changed, 120 insertions, 50 deletions
diff --git a/doc/FAQ.html.in b/doc/FAQ.html.in
index 9cacfb4c..0e738217 100644
--- a/doc/FAQ.html.in
+++ b/doc/FAQ.html.in
@@ -128,7 +128,6 @@ 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>
@@ -152,6 +151,6 @@ bidilink unix-client:/tmp/polypaudio/cli</pre>
</ol>
<hr/>
-<address class="grey">Lennart Poettering &lt;@PACKAGE_BUGREPORT@&gt;, September 2004</address>
+<address class="grey">Lennart Poettering &lt;@PACKAGE_BUGREPORT@&gt;, April 2006</address>
<div class="grey"><i>$Id$</i></div>
</body> </html>
diff --git a/doc/Makefile.am b/doc/Makefile.am
index c68c00f5..a5884abd 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -16,7 +16,7 @@
# 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
+noinst_DATA = README.html cli.html modules.html daemon.html FAQ.html
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
diff --git a/doc/README.html.in b/doc/README.html.in
index eb57fdb7..dbf85411 100644
--- a/doc/README.html.in
+++ b/doc/README.html.in
@@ -10,13 +10,13 @@
<body>
<h1><a name="top">polypaudio @PACKAGE_VERSION@</a></h1>
-<p><i>Copyright 2004 Lennart Poettering &lt;@PACKAGE_BUGREPORT@&gt;</i></p>
+<p><i>Copyright 2004-2006 Lennart Poettering &lt;@PACKAGE_BUGREPORT@&gt;</i> and Pierre Ossman</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="#status">Current Status</a></li>
<li><a href="#documentation">Documentation</a></li>
<li><a href="#requirements">Requirements</a></li>
<li><a href="#installation">Installation</a></li>
@@ -42,6 +42,10 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.</p>
<h2><a name="news">News</a></h2>
+<div class="news-date">Thu Apr 13 2006: </div> <p class="news-text"><a
+href="@PACKAGE_URL@polypaudio-0.8.tar.gz">Version 0.8</a> released;
+changes include: too many to count; many, many minor fixes.</p>
+
<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
@@ -92,13 +96,12 @@ 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
+<p><tt>polypaudio</tt> is a networked 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>
+Daemon</a> (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>
@@ -110,9 +113,10 @@ addition to the features ESOUND provides <tt>polypaudio</tt> has:</p>
<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>Very accurate latency measurement for playback and recording.</li>
<li>May be used to combine multiple sound cards to one (with sample rate adjustment)</li>
<li>Client side latency interpolation</li>
+ <li>Ability to fully synchronize multiple playback streams</li>
</ul>
<p>Both the core and the client API are completely asynchronous making
@@ -129,19 +133,25 @@ available. A simple main loop implementation is available as well.</p>
<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-solaris</tt>: drivers for Solaris audio sinks and sources</li>
+ <li><tt>module-waveout</tt>: drivers for Microsoft Windows audio 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-esound-protocol-tcp</tt>, <tt>module-esound-protocol-unix</tt>: ESOUND compatibility modules (for TCP/IP resp. UNIX domain sockets)</li>
+ <li><tt>module-native-protocol-tcp</tt>, <tt>module-native-protocol-unix</tt>: Native polypaudio protocol (for TCP/IP resp. UNIX domain sockets)</li>
+ <li><tt>module-simple-protocol-tcp</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-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>
+ <li><tt>module-detect</tt>: a module which automatically detects what sound hardware is available locally and which loads the required driver modules.</li>
+ <li><tt>module-lirc</tt>: a module to control the volume of a sink with infrared remote controls supported by LIRC.</li>
+ <li><tt>module-mmkbd-evdev</tt>: a module to control the volume of a sink with the special volume keys of a multimeda keyboard.</li>
+ <li><tt>module-zeroconf-publish</tt>: a module to publish local sources/sinks using mDNS zeroconf.</li>
</ul>
<p><tt>polypaudio</tt> is the successor of my previous, ill-fated
@@ -165,7 +175,7 @@ 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>
+<h2><a name="status">Current Status</a></h2>
<p>Version @PACKAGE_VERSION@ is quite usable. It matches and supersedes ESOUND's feature set in nearly all areas.</p>
@@ -178,7 +188,11 @@ release to release. The client API's library version number is currently fixed t
<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>
+href="daemon.html"><tt>daemon.html</tt></a> and <a href="FAQ.html"><tt>FAQ.html</tt></a>.</p>
+
+<p>There is a <a href="http://www.edgewall.com/products/trac/">Trac</a> based <a href="http://0pointer.de/trac/polypaudio/">Wiki for Polypaudio</a> available.</p>
+
+<p></p>
<h3>First Steps</h3>
@@ -231,7 +245,7 @@ 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>Currently, <tt>polypaudio</tt> is tested on Linux, FreeBSD, Solaris and Microsoft Windows. It requires an OSS, ALSA, Win32 or Solaris 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
@@ -239,11 +253,16 @@ 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
+<p><tt>polypaudio</tt> needs <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://liboil.freedesktop.org/wiki/"><tt>liboil</tt></a>.</p>
+
+<p>Optionally it can make use of <tt>libwrap</tt>, <a
+href="http://www.alsa-project.org/">alsa-lib</a>, <a
+href="http://0pointer.de/lennart/projects/libasyncns/">libasyncns</a>,
+<a href="http://www.lirc.org/">lirc</a>, <a href="http://www.porchdogsoft.com/products/howl/">HOWL</a> (or preferably the compatibility layer included in its superior replacement <a href="http://www.avahi.org/">Avahi</a>) and <a
href="http://www.gtk.org/">GLIB</a>. (The latter is required for
building the GLIB main loop integration module only.)</p>
@@ -271,18 +290,20 @@ compilation and <tt>make install</tt> (as root) for installation of
<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>
+<p>Get <tt>polypaudio</tt>'s development sources from the <a href="http://subversion.tigris.org/">Subversion</a> <a href="svn://0pointer.de/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>
+<pre>svn checkout svn://0pointer.de/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>There is a general discussion <a href="https://tango.0pointer.de/mailman/listinfo/polypaudio-discuss">mailing list for polypaudio</a> available. In addition, you can subscribe to <a href="https://tango.0pointer.de/mailman/listinfo/polypaudio-commits">SVN changes</a> and <a href="https://tango.0pointer.de/mailman/listinfo/polypaudio-tickets">Trac Tickets</a>.</p>
+
+<p>There is a <a href="http://www.edgewall.com/products/trac/">Trac</a> based <a href="http://0pointer.de/trac/polypaudio/">Wiki 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>
+<p><b>Please report bugs to <a href="http://0pointer.de/trac/polypaudio/newticket">our Trac ticket system</a>.</b></p>
<hr/>
-<address class="grey">Lennart Poettering &lt;@PACKAGE_BUGREPORT@&gt;, November 2004</address>
+<address class="grey">Lennart Poettering &lt;@PACKAGE_BUGREPORT@&gt;, April 2006</address>
<div class="grey"><i>$Id$</i></div>
</body>
diff --git a/doc/cli.html.in b/doc/cli.html.in
index 61d29e5a..0db96c36 100644
--- a/doc/cli.html.in
+++ b/doc/cli.html.in
@@ -68,13 +68,19 @@ returned by <tt>modules</tt>.</p>
<h2>Configuration Commands</h2>
-<h3><tt>set-sink-volume</tt></h3>
+<h3><tt>set-sink-volume</tt>/<tt>set-source-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>
+<p>Set the volume of the specified sink or source. You may specify the sink/source either
+by its index in the sink/source list or by its name. The volume should be an
+integer value greater or equal than 0 (= muted). Volume 65536
+(<tt>0x10000</tt>) is normal volume, values greater than this amplify
+the audio signal (with clipping).</p>
+
+<h3><tt>set-sink-mute</tt>/<tt>set-source-mute</tt></h3>
+
+<p>Mute or unmute the specified sink our source. You may specify the
+sink/source either by its index or by its name. The mute value is
+either 0 or 1.</p>
<h3><tt>set-sink-input-volume</tt></h3>
@@ -209,6 +215,6 @@ play-file /usr/share/sounds/startup3.wav combined
</pre>
<hr/>
-<address class="grey">Lennart Poettering &lt;@PACKAGE_BUGREPORT@&gt;, November 2004</address>
+<address class="grey">Lennart Poettering &lt;@PACKAGE_BUGREPORT@&gt;, April 2006</address>
<div class="grey"><i>$Id$</i></div>
</body> </html>
diff --git a/doc/modules.html.in b/doc/modules.html.in
index a549396d..64bc4bbc 100644
--- a/doc/modules.html.in
+++ b/doc/modules.html.in
@@ -100,6 +100,24 @@ 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-solaris</h3>
+
+<P>Provides a sink and source for the Solaris audio device.</p>
+
+<p>In addition to the general device driver options described above this module supports:</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>
+ <tr><td><tt>buffer_size=</tt></td><td>Record buffer size</td></tr>
+</table>
+
+<h3>module-waveout</h3>
+
+<P>Provides a sink and source for the Win32 audio device.</p>
+
+<p>This module supports all arguments thet <tt>module-oss</tt> supports except <tt>device=</tt>.</p>
+
<h3>module-combine</h3>
<p>This combines two or more sinks into one. A new virtual sink is
@@ -168,7 +186,7 @@ module see <a href="cli.html"><tt>cli.html</tt></a>.
<a name="module-cli-protocol-tcp"/>
<a name="module-cli-protocol"/>
-<h3>module-cli-protocol-{unix,tcp,tcp6}</h3>
+<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
@@ -182,7 +200,7 @@ 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>
+transparent TCP/IP socket. (Both IPv6 and IPv4 - if available)</p>
<p>This module supports the following options:</p>
@@ -191,10 +209,11 @@ transparent TCP/IP socket.</p>
<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>listen=</tt></td><td>(only for <tt>-tcp</tt>) The IP address to listen on. If specified, supersedes the value specified in <tt>loopback=</tt></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>
+<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
@@ -231,13 +250,13 @@ about the two possible suffixes of this module.</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>auth-anonymous=</tt></td><td>If set to 1 no 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>
+<h3>module-native-protocol-{unix,tcp}</h3>
<p>The native protocol of <tt>polypaudio</tt>.</p>
@@ -247,7 +266,8 @@ 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>auth-anonymous=</tt></td><td>If set to 1 no authentication is required to connect to the service</td></tr>
+ <tr><td><tt>auth-group=</tt></td><td>(only for <tt>-unix</tt>): members of the specified unix group may access the server without further auhentication.</td></tr>
<tr><td><tt>cookie=</tt></td><td>Name of the cookie file for authentication purposes</td></tr>
</table>
@@ -320,7 +340,38 @@ already loaded protocol module is used.</td></tr> </table>
<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>
+<h3>module-detect</h3>
+
+<p>Automatically detect the available sound hardware and load modules for it. Supports OSS, ALSA, Solaris and Win32 output drivers.
+
+<table>
+ <tr><td><tt>just-one=</tt></td><td>If set to <tt>1</tt> the module will only try to load a single sink/source and than stop.</td></tr>
+</table>
+
+<h3>module-zeroconf-publish</h3>
+
+<p>Publish all local sinks/sources using mDNS Zeroconf.</p>
+
+<h3>module-mmkbd-evdev</h3>
+
+<p>Adjust the volume of a sink when the special multimedia buttons of modern keyboards are pressed.</p>
+
+<table>
+ <tr><td><tt>device=</tt></td><td>Linux input device ("<tt>evdev</tt>", defaults to <tt>/dev/input/event0</tt>)</td></tr>
+ <tr><td><tt>sink=</tt></td><td>The sink to control</td></tr>
+</table>
+
+<h3>module-lirc</h3>
+
+<p>Adjust the volume of a sink when the volume buttons of an infrared remote control are pressed (through LIRC).</p>
+
+<table>
+ <tr><td><tt>config=</tt></td><td>The LIRC configuration file</td></tr>
+ <tr><td><tt>appname=</tt></td><td>The application name to pass to LIRC (defaults to <tt>polypaudio</tt>)</td></tr>
+ <tr><td><tt>sink=</tt></td><td>The sink to control</td></tr>
+</table>
+
<hr/>
-<address class="grey">Lennart Poettering &lt;@PACKAGE_BUGREPORT@&gt;, November 2004</address>
+<address class="grey">Lennart Poettering &lt;@PACKAGE_BUGREPORT@&gt;, April 2006</address>
<div class="grey"><i>$Id$</i></div>
</body> </html>
diff --git a/doc/style.css b/doc/style.css
index a46592a2..a606c08e 100644
--- a/doc/style.css
+++ b/doc/style.css
@@ -18,17 +18,10 @@
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
***/
-body { color: black; background-color: white; margin: 0.5cm; }
+body { color: black; background-color: white; }
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; }
+div.news-date { font-size: 80%; font-style: italic; }
+pre { background-color: #f0f0f0; padding: 0.4cm; }
+.grey { color: #8f8f8f; font-size: 80%; }
table { margin-left: 1cm; border:1px solid lightgrey; padding: 0.2cm; }
td { padding-left:10px; padding-right:10px; }