diff --git a/CHANGES b/CHANGES
index d39335e65043231d00b130494e67177fa511f4dd..a55b36121bddbbf427c9e2755d1cc6c83bfe7856 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,11 @@
+0.8.0 - August 2000
+- Major API rewrite.  Old apps and plugins will not work with this library!
+- Default driver detection now works.
+- /etc/libao.conf and ~/.libao config files now supported
+
+0.7.0 - June 2000
+- minor build fixes for different platforms
+
 0.6.0 - December 2000
 - slight api modification with ao_append_option()
 - fixed an option leak
diff --git a/README b/README
index ec877033bef1a0e0b5e5786c5ce7f4f3a6416ad5..96ef9292cad8297d8df01199e017c04297156e74 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-libao - A Cross-platform Audio Library, Version 0.6.0
+libao - A Cross-platform Audio Library, Version 0.8.0
 
 Originally Copyright (C) Aaron Holtzman - May 1999
 Changes Copyright (C) Stan Seibert - July 2000
@@ -44,12 +44,10 @@ cross-platform support to ogg123.  I (Stan Seibert) downloaded the
 libao library, severely hacked it up in order to make the build
 process simpler and support multiple live-playback devices.  (The
 original code allowed one live playback driver, the wav driver, and a
-null driver to be compiled into the library.)  
-
-Then Jack Moffitt got it supporting dynamicly loaded plugins so that 
-binary versions of libao could be provided.
+null driver to be compiled into the library.)  Jack Moffitt got it
+supporting dynamically loaded plugins so that binary versions of libao
+could be provided.  The API was revised after version 0.7.0.
 
 This code is being maintained by Stan Seibert (indigo@aztec.asu.edu) 
 and various other individuals.  Please DO NOT annoy Aaron Holtzman about 
 bugs, features, comments, etc. regarding this code.
-
diff --git a/TODO b/TODO
index 11a6ca1805e5b18a662be6af88d83a951cb66bba..6bfdb550b4924a9425021a942a74a1ab63d23371 100644
--- a/TODO
+++ b/TODO
@@ -2,5 +2,11 @@ I think these are the next steps:
 
 - make the plugins dynamically loadable (done)
 - make a ao-config liek gtk-config instead of ao_libs.inc (done)
-- any ideas?
+- extend the configuration files to allow default options for
+  each driver
+- Sample rate conversion on the fly to support sound cards that have few
+  sample rate options (like the i810 audio device, which only does 48000)
+- Actually test the IRIX plugin.  :)
+- Test the macosx plugin
+
 
diff --git a/doc/ao_append_option.html b/doc/ao_append_option.html
index f52955d777142c8acab6321ec8e5a48b6b3dd814..bb380fac15c6c5f512dcb1d08353194df9870fa7 100644
--- a/doc/ao_append_option.html
+++ b/doc/ao_append_option.html
@@ -9,7 +9,7 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
@@ -59,7 +59,7 @@ int ao_append_option(<a href="ao_option.html">ao_option</a> **options, const cha
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/ao_close.html b/doc/ao_close.html
index e78bf545798e35998daca8e3ae247e231a808bce..2a2f128491cd6047bab2eeb113bcb31fbf398279 100644
--- a/doc/ao_close.html
+++ b/doc/ao_close.html
@@ -9,7 +9,7 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
@@ -54,7 +54,7 @@ device was writing to a file, the file may be corrupted.</li>
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/ao_default_driver_id.html b/doc/ao_default_driver_id.html
index 19427686ede325f156e88e1c64a872174c646b6c..22264267cd81faa0ed0633007c04830308832479 100644
--- a/doc/ao_default_driver_id.html
+++ b/doc/ao_default_driver_id.html
@@ -9,7 +9,7 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
@@ -53,7 +53,7 @@ to test your application.</p>
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/ao_device.html b/doc/ao_device.html
index 3f3806b504adc72122e0200c1ad7e0c7234d4209..2c4ad301da486b4462240083794c878547a9ef69 100644
--- a/doc/ao_device.html
+++ b/doc/ao_device.html
@@ -9,7 +9,7 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
@@ -79,7 +79,7 @@ different byte orders, otherwise set to NULL</dd>
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/ao_driver_id.html b/doc/ao_driver_id.html
index 703e2a720d3df1e369867704951421ec25200706..9bb6c109fbfc06031dff14f77ca8f66492ba56e3 100644
--- a/doc/ao_driver_id.html
+++ b/doc/ao_driver_id.html
@@ -9,7 +9,7 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
@@ -54,7 +54,7 @@ drivers</a> for valid short names.</dd>
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/ao_driver_info.html b/doc/ao_driver_info.html
index 6cad651354de0cd9c1917541c5bf1181e93f36c2..37050b2bbbdfcb759ab03713237a0b2f598a3ac2 100644
--- a/doc/ao_driver_info.html
+++ b/doc/ao_driver_info.html
@@ -9,7 +9,7 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
@@ -57,7 +57,7 @@ an actual driver</li>
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/ao_driver_info_list.html b/doc/ao_driver_info_list.html
index c1aa0420e4a38c178bddd36cf21f03d522d60307..661dc0d19417fb1e559cdfd966894af62c4dd9f9 100644
--- a/doc/ao_driver_info_list.html
+++ b/doc/ao_driver_info_list.html
@@ -9,7 +9,7 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
@@ -53,7 +53,7 @@ elements.</li>
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/ao_free_options.html b/doc/ao_free_options.html
index d342f29c3141858f7e3c78f5e724b22d4a93a0fe..9bce7fcbf1b895eb4743cbdf0a8769af1c4e87f7 100644
--- a/doc/ao_free_options.html
+++ b/doc/ao_free_options.html
@@ -9,7 +9,7 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
@@ -46,7 +46,7 @@ function does nothing.</dd>
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/ao_info.html b/doc/ao_info.html
index 2ea0311b11a3c1ddd3d7410685c4f1502d95b4b3..c3292ef9397c7b7187f9261c54666365b4dae363 100644
--- a/doc/ao_info.html
+++ b/doc/ao_info.html
@@ -9,7 +9,7 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
@@ -84,7 +84,7 @@ driver.</dd>
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/ao_initialize.html b/doc/ao_initialize.html
index ef4b596942b4a3670439f29d891018e85ab81622..c60fd4228f011928d49fe861a2ad33306872e0e7 100644
--- a/doc/ao_initialize.html
+++ b/doc/ao_initialize.html
@@ -9,7 +9,7 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
@@ -49,7 +49,7 @@ ao_shutdown(), then call ao_initialize() again.
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/ao_open_file.html b/doc/ao_open_file.html
index c85fd087d689a50ba9ecd59f3a97dd5efd6aa1da..95876d1cf4164e166103a6078cf38e850348400a 100644
--- a/doc/ao_open_file.html
+++ b/doc/ao_open_file.html
@@ -9,7 +9,7 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
@@ -90,7 +90,7 @@ just the input sample format.
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/ao_open_live.html b/doc/ao_open_live.html
index bcfaac01c2e4b55cfff3a037658ea09d091e66f8..58594acfa1880fa9a871383333ed5ae0c43e65df 100644
--- a/doc/ao_open_live.html
+++ b/doc/ao_open_live.html
@@ -9,7 +9,7 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
@@ -76,7 +76,7 @@ href="ao_open_file.html">ao_open_file()</a> instead.
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/ao_option.html b/doc/ao_option.html
index 3b92104431731b500c4162029bfc81961767a880..2410d777f4166bdf8d981a7ce9e7064607076b31 100644
--- a/doc/ao_option.html
+++ b/doc/ao_option.html
@@ -9,7 +9,7 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
@@ -50,7 +50,7 @@ the list.</dd>
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/ao_play.html b/doc/ao_play.html
index 0e55e70f0a73433505b99d221c334e4819d4c8e4..7d18769fc0e13840eee5d9acc909574e07bcb312 100644
--- a/doc/ao_play.html
+++ b/doc/ao_play.html
@@ -9,7 +9,7 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
@@ -58,7 +58,7 @@ int ao_open(<a href="ao_device.html">ao_device</a> *device, void *output_samples
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/ao_plugin_close.html b/doc/ao_plugin_close.html
index 4545b3761b1319f99a41e3a414e1fd331e34754d..d4ef3c79a38ba774b0c9badef3ba6df3a3d6f15b 100644
--- a/doc/ao_plugin_close.html
+++ b/doc/ao_plugin_close.html
@@ -9,7 +9,7 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
@@ -52,7 +52,7 @@ device was writing to a file, the file may be corrupted.</li>
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/ao_plugin_device_clear.html b/doc/ao_plugin_device_clear.html
index 262948a3721f580ac8056ee3998959540cf2ca75..2fd92302f0bf941c61292663db388a505e1f9473 100644
--- a/doc/ao_plugin_device_clear.html
+++ b/doc/ao_plugin_device_clear.html
@@ -9,7 +9,7 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
@@ -44,7 +44,7 @@ void ao_plugin_device_clear(<a href="ao_device.html">ao_device</a> *device);
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/ao_plugin_device_init.html b/doc/ao_plugin_device_init.html
index d251c60a719cf76d74167a1a001592d201467211..50e916fbace61f5eee2b28afc4e09dc63f9ea97e 100644
--- a/doc/ao_plugin_device_init.html
+++ b/doc/ao_plugin_device_init.html
@@ -9,7 +9,7 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
@@ -58,7 +58,7 @@ called to ensure the deallocate of all private data structures.</li>
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/ao_plugin_driver_info.html b/doc/ao_plugin_driver_info.html
index 782b4e611d0ba0a7108a62f0551197ad4a457b46..37d54cd3e190af55bd5b50fd569a66844a580b44 100644
--- a/doc/ao_plugin_driver_info.html
+++ b/doc/ao_plugin_driver_info.html
@@ -9,7 +9,7 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
@@ -45,7 +45,7 @@ not be modified. </li>
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/ao_plugin_open.html b/doc/ao_plugin_open.html
index 3d58c2c729892a15ff748c6ece5bf080c3b3e1a4..bc0705b6b471299287b45c677d28021a377604a2 100644
--- a/doc/ao_plugin_open.html
+++ b/doc/ao_plugin_open.html
@@ -9,7 +9,7 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
@@ -62,7 +62,7 @@ called to ensure the deallocate of all private data structures.</li>
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/ao_plugin_play.html b/doc/ao_plugin_play.html
index 731844913403fa74c4df55a591b6509fae404ec6..6d8b24385e87ccf379f22f772c4619ac72792048 100644
--- a/doc/ao_plugin_play.html
+++ b/doc/ao_plugin_play.html
@@ -9,7 +9,7 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
@@ -61,7 +61,7 @@ called.</li>
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/ao_plugin_set_option.html b/doc/ao_plugin_set_option.html
index cd7474cc1af79519177062ab22c7a138ce78bbbf..80291aacddb6563faea685de75cf8e7ac086a475 100644
--- a/doc/ao_plugin_set_option.html
+++ b/doc/ao_plugin_set_option.html
@@ -9,7 +9,7 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
@@ -64,7 +64,7 @@ called to ensure the deallocate of all private data structures.</li>
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/ao_plugin_test.html b/doc/ao_plugin_test.html
index af8b8b592293a45b90b81514aab1300805604de4..47f35db9795f55106c93d5da55093a7d31bc57e1 100644
--- a/doc/ao_plugin_test.html
+++ b/doc/ao_plugin_test.html
@@ -9,7 +9,7 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
@@ -50,7 +50,7 @@ options.</li>
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/ao_sample_format.html b/doc/ao_sample_format.html
index 1152fa04bb09e703e760edda8e694c506afc3e46..b358c138d69cd92b05a53841ad893f1fb46fe377 100644
--- a/doc/ao_sample_format.html
+++ b/doc/ao_sample_format.html
@@ -9,7 +9,7 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
@@ -53,7 +53,7 @@
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/ao_shutdown.html b/doc/ao_shutdown.html
index d544b76b5a33cb12544c7952ac91d719c9905e9d..e0bc71f33d238d5df186a081efdd2fcf73b0a814 100644
--- a/doc/ao_shutdown.html
+++ b/doc/ao_shutdown.html
@@ -9,7 +9,7 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
@@ -46,7 +46,7 @@ calling ao_shutdown().
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/config.html b/doc/config.html
index 72fe37dd0f69434c1f8b5c6ed5b9e09088e7ae0a..749a86ad61ea570825872b33ba13c5fc1d42f0d8 100644
--- a/doc/config.html
+++ b/doc/config.html
@@ -9,7 +9,7 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
@@ -47,7 +47,7 @@ There can be no extra spaces anywhere on the line.  Comment lines begin with a <
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/drivers.html b/doc/drivers.html
index bfffb4446f697352e36adb0d2237266e7ee1d0e2..919890bd5710dc49cfa3e7c2943ece0aec32ef4c 100644
--- a/doc/drivers.html
+++ b/doc/drivers.html
@@ -9,7 +9,7 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
@@ -200,7 +200,7 @@ easily used to define an appropriate default output device
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/index.html b/doc/index.html
index 44c51b5e9a40e0ee6a135257caa39fee43413a00..db3330380963e6117835351894cd27f73161ba00 100644
--- a/doc/index.html
+++ b/doc/index.html
@@ -9,7 +9,7 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
@@ -32,7 +32,7 @@ platforms.  It currently supports:
 <a href="ao_example.c">example code</a><br>
 <a href="config.html">configuration files</a><br>
 <a href="libao-api.html">libao api reference</a><br>
-<a href="plugin-overview.html">plugin overview</a><br>
+<a href="plugin-overview.html">plugin writer's overview</a><br>
 <a href="plugin-api.html">plugin api reference</a><br>
 
 <br><br>
@@ -43,7 +43,7 @@ platforms.  It currently supports:
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/libao-api.html b/doc/libao-api.html
index e52c8e8f5381dc0235017d21d4bd91a29ce9463c..6b432277f0a8cef140dcc310aa32ee0fe60120e0 100644
--- a/doc/libao-api.html
+++ b/doc/libao-api.html
@@ -9,7 +9,7 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
@@ -51,7 +51,7 @@
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/overview.html b/doc/overview.html
index 3898ddc1ad1960fa4095c3189f9a796bee88f326..2d8a9e03dfc86ce14ca3132048491120b9804e62 100644
--- a/doc/overview.html
+++ b/doc/overview.html
@@ -9,7 +9,7 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
@@ -100,7 +100,7 @@ library.
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/plugin-api.html b/doc/plugin-api.html
index 5e2c7bc5a73601cde97f07ba702d23968745ad4a..772db4e6cc064333d3bbe293e911112647bb4d4f 100644
--- a/doc/plugin-api.html
+++ b/doc/plugin-api.html
@@ -9,11 +9,11 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
-<h1>Plugin API</h1>
+<h1>libao Plugin API</h1>
 
 <p>
 <a href="ao_plugin_test.html">ao_plugin_test()</a><br>
@@ -33,7 +33,7 @@
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
diff --git a/doc/plugin-overview.html b/doc/plugin-overview.html
index 9f6ca55acc89ee2d1e4286e2311625ceab6e130f..5273871887e0df2b7fd44652d4718030ed856a52 100644
--- a/doc/plugin-overview.html
+++ b/doc/plugin-overview.html
@@ -9,24 +9,147 @@
 <table border=0 width=100%>
 <tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>
 
-<h1>libao Plugin Overview</h1>
+<h1>libao Plugin Writer's Overview</h1>
 
 <p>
 Plugins are drivers that are loaded dynamically when libao is first
 initialized by the client application.  Drivers that are operating
-system dependent, like the <tt>oss</tt> and <tt>sun</tt> drivers, or that
-depend on external libraries, like the <tt>esd</tt> driver, must be
-implemented as plugins in order to keep binary packagers happy.
+system dependent, like the <tt>oss</tt> and <tt>sun</tt> drivers, or
+that depend on external libraries, like the <tt>esd</tt> driver, must
+be implemented as plugins in order to keep binary packagers happy.
+There are also statically linked drivers, which are written in a
+nearly identical way, but won't be covered here.  In nearly all cases,
+a dynamically loadable plugin is the preferred way to write a driver,
+and the required way if the driver depends upon any external
+libraries.
+</p>
+
+<h2>Life Cycle</h2>
+
+<p>
+The life cycle of a plugin is:
+<ul>
+<li>When libao is first <a href="ao_initialize.html">initialized</a>,
+it loads all of the plugins from disk.
+
+<li>Libao then <a href="ao_plugin_test.html">tests</a> each plugin to
+see if can be used as the default driver.
+
+<li>When the user opens a device, libao will:
+
+  <ul>
+
+  <li>Call <a
+  href="ao_plugin_device_init.html">ao_plugin_device_init()</a> to
+  allow the plugin to allocate and initialize any private data
+  structures it will use.
+
+  <li>Call <a
+  href="ao_plugin_set_option.html">ao_plugin_set_option()</a> for each
+  parameter passed to the library by the client application.
+
+  <li>Call <a href="ao_plugin_open.html">ao_plugin_open.html</a> to
+  open the device for playback.
+  
+  </ul>
+
+<li>Each time the client app calls <a
+href="ao_play.html">ao_play()</a>, the library will reorder the byte
+format (little-endian vs. big-endian) to match the format requested by
+the plugin.  The library will then call <a href="ao_plugin_play.html">ao_plugin_play()</a> for the block of audio data.
+
+<li>When the client app closes the audio device, the library calls <a
+href="ao_plugin_close.html">ao_plugin_close()</a> to close the device,
+followed by a call to <a
+href="ao_plugin_clear.html">ao_plugin_device_clear()</a> to deallocate
+the private data structures.
+
+<li>When the library is <a href="ao_shutdown.html">shutdown</a>, the
+plugin will be unloaded from memory.
+
+</ul>
+
+In case of errors, <a
+href="ao_plugin_device_clear.html">ao_plugin_device_clear()</a> will
+always be called if <a
+href="ao_plugin_device_init.html">ao_plugin_device_init()</a> executed
+successfully.  Similarly, <a
+href="ao_plugin_close.html">ao_plugin_close()</a> will always be
+called if <a href="ao_plugin_open.html">ao_plugin_open()</a> executed
+successfully.
+</p>
+
+<h2>Creating a New Plugin</h2>
 
 <p>
-In order to make a new plugin, follow these steps:
+In order to write a new plugin, follow these steps:
 <ul>
-<li>To be filled in.
+
+<li>Decide upon a new short name for your plugin.  It should be less
+than 8 characters and contain only alphanumeric characters
+(underscores are okay, but discouraged).
+
+<li>Make a new directory in the src/plugins directory with the short name of your plugin.
+
+<li>Copy the contents of one of the other plugin directories into your
+directory.  The Sun driver is a good example of a driver that uses
+system devices for output, and the ALSA driver is a good example of a
+plugin that uses an external library.  Rename the source file to ao_shortname.c, where "shortname" is the short name of your plugin.
+
+<li>Edit the <a href="ao_info.html">ao_info</a> structure.
+
+<li>Implement the all of the methods defined in the <a
+href="plugin-api.html">plugin API</a>.
+
+<li>Edit the files ("shortname" is as described above): configure.in,
+src/plugins/Makefile.am, src/plugins/shortname/Makefile.am.  There
+should be a an configure option to disable your plugin.  Look at the
+existing configure.in file for examples of how to do this.
+
+<li>Test it thoroughly!  :)
+
+<li>Send a tarball of the src/plugin/shortname directory (only this
+directory, please!) and a cvs diff -u of the changes you have made to
+the <a href="mailto:vorbis-dev@xiph.org">vorbis-dev</a> list and we'll
+take a look at it for inclusion.
+
+</ul>
+</p>
+
+<h2>API Implementation Tips</h2>
+
+<p>
+<ul>
+
+<li>Remember to close any devices/connections you openned in <a
+href="ao_plugin_test.html">ao_plugin_test()</a>.  <li>Although you
+should try to allocate all of your data structures in <a
+href="ao_plugin_device_init.html">ao_plugin_device_init()</a>, there
+are cases where you won't be able to allocate memory until <a
+href="ao_plugin_open.html">ao_plugin_open()</a> is called.  That is
+acceptable, but the rule is that you must deallocate memory in <a
+href="ao_plugin_close.html">ao_plugin_close()</a> that was allocated
+in <a href="ao_plugin_open.html">ao_plugin_open()</a> and deallocate
+memory in <a
+href="ao_plugin_device_clear.html">ao_plugin_device_clear()</a> that
+was allocated in <a
+href="ao_plugin_device_init.html">ao_plugin_device_init()</a>.
+
+<li>Don't forget to set device->driver_byte_format in <a
+href="ao_plugin_open.html">ao_plugin_open()</a> to the byte ordering
+your plugin needs.  The libao core will reorder the bytes for you if
+it necessary.
+
+<li>Read the <a href="drivers.html">driver documentation</a> to see
+what priority you should set for your plugin in the <a
+href="ao_info.html">ao_info</a> structure.
+
 </ul>
+</p>
 
 <br><br>
 <hr noshade>
@@ -36,7 +159,7 @@ In order to make a new plugin, follow these steps:
 <td align=right><p class=tiny><a href="http://www.xiph.org/">xiph.org</a><br><a href="mailto:indigo@aztec.asu.edu">indigo@aztec.asu.edu</a></p></td>
 </tr><tr>
 <td><p class=tiny>libao documentation</p></td>
-<td align=right><p class=tiny>libao version 0.90 - 20010528</p></td>
+<td align=right><p class=tiny>libao version 0.8.0 - 20010804</p></td>
 </tr>
 </table>