Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/arch_src/pyalsaaudio-0.2/doc
diff options
context:
space:
mode:
Diffstat (limited to 'arch_src/pyalsaaudio-0.2/doc')
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/README.txt2
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/dir-wcprops5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/empty-file0
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/entries247
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/format1
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/blank.gif.svn-base5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/contents.gif.svn-base5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/index.gif.svn-base5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/modules.gif.svn-base5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/next.gif.svn-base5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/previous.gif.svn-base5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/pyfav.gif.svn-base5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/up.gif.svn-base5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/props/blank.gif.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/props/contents.gif.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/props/index.gif.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/props/modules.gif.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/props/next.gif.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/props/previous.gif.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/props/pyfav.gif.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/props/up.gif.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/text-base/about.html.svn-base110
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/text-base/blank.gif.svn-basebin0 -> 1958 bytes
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/text-base/contents.gif.svn-basebin0 -> 438 bytes
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/text-base/contents.html.svn-base106
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/text-base/front.html.svn-base119
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/text-base/index.dat.svn-base27
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/text-base/index.gif.svn-basebin0 -> 289 bytes
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/text-base/index.html.svn-base110
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/text-base/internals.pl.svn-base34
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/text-base/intlabels.pl.svn-base30
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/text-base/labels.pl.svn-base57
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/text-base/mixer-objects.html.svn-base327
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/text-base/module-alsaaudio.html.svn-base167
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/text-base/modules.gif.svn-basebin0 -> 385 bytes
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/text-base/next.gif.svn-basebin0 -> 253 bytes
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/text-base/node3.html.svn-base120
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/text-base/node4.html.svn-base116
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/text-base/node5.html.svn-base115
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/text-base/node7.html.svn-base169
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/text-base/pcm-example.html.svn-base99
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/text-base/pcm-objects.html.svn-base331
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/text-base/previous.gif.svn-basebin0 -> 252 bytes
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/text-base/pyalsaaudio.css.svn-base243
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/text-base/pyalsaaudio.html.svn-base110
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/text-base/pyfav.gif.svn-basebin0 -> 125 bytes
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/text-base/up.gif.svn-basebin0 -> 316 bytes
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/about.html.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/blank.gif.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/contents.gif.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/contents.html.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/front.html.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/index.dat.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/index.gif.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/index.html.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/internals.pl.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/intlabels.pl.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/labels.pl.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/mixer-objects.html.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/module-alsaaudio.html.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/modules.gif.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/next.gif.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/node3.html.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/node4.html.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/node5.html.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/node7.html.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/pcm-example.html.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/pcm-objects.html.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/previous.gif.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/pyalsaaudio.css.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/pyalsaaudio.html.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/pyfav.gif.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/up.gif.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/about.html110
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/blank.gifbin0 -> 1958 bytes
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/blank.pngbin0 -> 1031 bytes
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/contents.gifbin0 -> 438 bytes
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/contents.html106
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/contents.pngbin0 -> 649 bytes
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/front.html119
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/index.dat27
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/index.gifbin0 -> 289 bytes
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/index.html110
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/index.pngbin0 -> 529 bytes
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/internals.pl34
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/intlabels.pl30
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/labels.pl57
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/mixer-objects.html327
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/module-alsaaudio.html167
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/modules.gifbin0 -> 385 bytes
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/modules.pngbin0 -> 598 bytes
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/next.gifbin0 -> 253 bytes
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/next.pngbin0 -> 511 bytes
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/node3.html120
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/node4.html116
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/node5.html115
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/node7.html169
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/pcm-example.html99
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/pcm-objects.html331
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/previous.gifbin0 -> 252 bytes
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/previous.pngbin0 -> 511 bytes
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/pyalsaaudio.css243
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/pyalsaaudio.html110
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/pyfav.gifbin0 -> 125 bytes
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/pyfav.pngbin0 -> 240 bytes
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/src/.svn/README.txt2
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/src/.svn/dir-wcprops5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/src/.svn/empty-file0
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/src/.svn/entries39
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/src/.svn/format1
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/src/.svn/text-base/Makefile.svn-base20
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/src/.svn/text-base/libalsaaudio.tex.svn-base397
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/src/.svn/text-base/pyalsaaudio.tex.svn-base107
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/src/.svn/wcprops/Makefile.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/src/.svn/wcprops/libalsaaudio.tex.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/src/.svn/wcprops/pyalsaaudio.tex.svn-work5
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/src/Makefile20
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/src/libalsaaudio.tex397
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/src/pyalsaaudio.tex107
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/up.gifbin0 -> 316 bytes
-rw-r--r--arch_src/pyalsaaudio-0.2/doc/up.pngbin0 -> 577 bytes
121 files changed, 6355 insertions, 0 deletions
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/README.txt b/arch_src/pyalsaaudio-0.2/doc/.svn/README.txt
new file mode 100644
index 0000000..271a8ce
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/README.txt
@@ -0,0 +1,2 @@
+This is a Subversion working copy administrative directory.
+Visit http://subversion.tigris.org/ for more information.
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/dir-wcprops b/arch_src/pyalsaaudio-0.2/doc/.svn/dir-wcprops
new file mode 100644
index 0000000..4238dab
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/dir-wcprops
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 53
+/svn/Shtoom/!svn/ver/1274/trunk/audio/pyalsaaudio/doc
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/empty-file b/arch_src/pyalsaaudio-0.2/doc/.svn/empty-file
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/empty-file
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/entries b/arch_src/pyalsaaudio-0.2/doc/.svn/entries
new file mode 100644
index 0000000..b80e28b
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/entries
@@ -0,0 +1,247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wc-entries
+ xmlns="svn:">
+<entry
+ committed-rev="1274"
+ name=""
+ committed-date="2005-03-25T23:37:10.228413Z"
+ url="http://casperr@divmod.org/svn/Shtoom/trunk/audio/pyalsaaudio/doc"
+ last-author="casper"
+ kind="dir"
+ revision="1584"/>
+<entry
+ committed-rev="1585"
+ name="node7.html"
+ text-time="2005-07-09T21:14:56.000000Z"
+ committed-date="2005-07-09T21:26:15.500773Z"
+ checksum="a093f4493a8d1b19db8a5dc6db96aee2"
+ last-author="casper"
+ kind="file"
+ revision="1585"/>
+<entry
+ committed-rev="1274"
+ name="previous.gif"
+ text-time="2005-07-07T13:49:38.000000Z"
+ committed-date="2005-03-25T23:37:10.228413Z"
+ checksum="57ccc2604089b7eb759578897d5f2e3c"
+ last-author="casper"
+ kind="file"
+ prop-time="2005-07-07T13:49:38.000000Z"/>
+<entry
+ committed-rev="1274"
+ name="next.gif"
+ text-time="2005-07-07T13:49:38.000000Z"
+ committed-date="2005-03-25T23:37:10.228413Z"
+ checksum="9b81d8d96d2a76040ed1ffe5605c886f"
+ last-author="casper"
+ kind="file"
+ prop-time="2005-07-07T13:49:38.000000Z"/>
+<entry
+ name="src"
+ kind="dir"/>
+<entry
+ committed-rev="1585"
+ name="intlabels.pl"
+ text-time="2005-07-09T21:14:56.000000Z"
+ committed-date="2005-07-09T21:26:15.500773Z"
+ checksum="733eff09971a24ecb4fbaf5d74c0927d"
+ last-author="casper"
+ kind="file"
+ revision="1585"/>
+<entry
+ committed-rev="1274"
+ name="up.gif"
+ text-time="2005-07-07T13:49:38.000000Z"
+ committed-date="2005-03-25T23:37:10.228413Z"
+ checksum="f0a4d04e0c6e11f2e557da65776e6645"
+ last-author="casper"
+ kind="file"
+ prop-time="2005-07-07T13:49:38.000000Z"/>
+<entry
+ committed-rev="1585"
+ name="module-alsaaudio.html"
+ text-time="2005-07-09T21:14:56.000000Z"
+ committed-date="2005-07-09T21:26:15.500773Z"
+ checksum="4975c5b625113000380888c5a1d57cd7"
+ last-author="casper"
+ kind="file"
+ revision="1585"/>
+<entry
+ committed-rev="1274"
+ name="pyfav.gif"
+ text-time="2005-07-07T13:49:38.000000Z"
+ committed-date="2005-03-25T23:37:10.228413Z"
+ checksum="3ec327b4e2b2d3b712efbbe000e18a5a"
+ last-author="casper"
+ kind="file"
+ prop-time="2005-07-07T13:49:38.000000Z"/>
+<entry
+ committed-rev="1585"
+ name="front.html"
+ text-time="2005-07-09T21:14:56.000000Z"
+ committed-date="2005-07-09T21:26:15.500773Z"
+ checksum="3628ea13543589ec8c6f9ae6dccd5831"
+ last-author="casper"
+ kind="file"
+ revision="1585"/>
+<entry
+ committed-rev="1274"
+ name="blank.gif"
+ text-time="2005-07-07T13:49:38.000000Z"
+ committed-date="2005-03-25T23:37:10.228413Z"
+ checksum="34edb7b43fe856a1d7d7402504f81797"
+ last-author="casper"
+ kind="file"
+ prop-time="2005-07-07T13:49:38.000000Z"/>
+<entry
+ committed-rev="1585"
+ name="contents.html"
+ text-time="2005-07-09T21:14:56.000000Z"
+ committed-date="2005-07-09T21:26:15.500773Z"
+ checksum="272cfe13d2d53cc591ccd913b042f724"
+ last-author="casper"
+ kind="file"
+ revision="1585"/>
+<entry
+ committed-rev="1274"
+ name="contents.gif"
+ text-time="2005-07-07T13:49:38.000000Z"
+ committed-date="2005-03-25T23:37:10.228413Z"
+ checksum="103f27b271c293edd555cff65a2bee53"
+ last-author="casper"
+ kind="file"
+ prop-time="2005-07-07T13:49:38.000000Z"/>
+<entry
+ committed-rev="1585"
+ name="pyalsaaudio.css"
+ text-time="2005-07-09T21:14:56.000000Z"
+ committed-date="2005-07-09T21:26:15.500773Z"
+ checksum="0e22fb5bbc524eb380193ba758127487"
+ last-author="casper"
+ kind="file"
+ revision="1585"/>
+<entry
+ committed-rev="1585"
+ name="pcm-objects.html"
+ text-time="2005-07-09T21:14:56.000000Z"
+ committed-date="2005-07-09T21:26:15.500773Z"
+ checksum="4106fe70fd35683a4014ba273ca9f51e"
+ last-author="casper"
+ kind="file"
+ revision="1585"/>
+<entry
+ committed-rev="1274"
+ name="internals.pl"
+ text-time="2005-07-07T13:49:38.000000Z"
+ committed-date="2005-03-25T23:37:10.228413Z"
+ checksum="ca2b5426eb4a9d57e3545ac596eac928"
+ last-author="casper"
+ kind="file"/>
+<entry
+ committed-rev="1585"
+ name="index.html"
+ text-time="2005-07-09T21:14:56.000000Z"
+ committed-date="2005-07-09T21:26:15.500773Z"
+ checksum="149bd2deba94b730700b015eeaa2b8c0"
+ last-author="casper"
+ kind="file"
+ revision="1585"/>
+<entry
+ committed-rev="1585"
+ name="node3.html"
+ text-time="2005-07-09T21:14:56.000000Z"
+ committed-date="2005-07-09T21:26:15.500773Z"
+ checksum="661561d381936e676afeb7f4b28dc309"
+ last-author="casper"
+ kind="file"
+ revision="1585"/>
+<entry
+ committed-rev="1274"
+ name="index.gif"
+ text-time="2005-07-07T13:49:38.000000Z"
+ committed-date="2005-03-25T23:37:10.228413Z"
+ checksum="a58f486cd4242b6f3d178647388381a1"
+ last-author="casper"
+ kind="file"
+ prop-time="2005-07-07T13:49:38.000000Z"/>
+<entry
+ committed-rev="1585"
+ name="pcm-example.html"
+ text-time="2005-07-09T21:14:56.000000Z"
+ committed-date="2005-07-09T21:26:15.500773Z"
+ checksum="ed057e8959cf036b6e74bf849a5f98e6"
+ last-author="casper"
+ kind="file"
+ revision="1585"/>
+<entry
+ committed-rev="1585"
+ name="node4.html"
+ text-time="2005-07-09T21:14:56.000000Z"
+ committed-date="2005-07-09T21:26:15.500773Z"
+ checksum="112c37da67fb3e1945b67f5c8f308b9a"
+ last-author="casper"
+ kind="file"
+ revision="1585"/>
+<entry
+ committed-rev="1585"
+ name="labels.pl"
+ text-time="2005-07-09T21:14:56.000000Z"
+ committed-date="2005-07-09T21:26:15.500773Z"
+ checksum="a8a08423337783320e04965d81b628cc"
+ last-author="casper"
+ kind="file"
+ revision="1585"/>
+<entry
+ committed-rev="1274"
+ name="modules.gif"
+ text-time="2005-07-07T13:49:38.000000Z"
+ committed-date="2005-03-25T23:37:10.228413Z"
+ checksum="a0a980c08c5489be525614583336f06a"
+ last-author="casper"
+ kind="file"
+ prop-time="2005-07-07T13:49:38.000000Z"/>
+<entry
+ committed-rev="1585"
+ name="about.html"
+ text-time="2005-07-09T21:14:56.000000Z"
+ committed-date="2005-07-09T21:26:15.500773Z"
+ checksum="85baafc25f77c50890c476a27392f034"
+ last-author="casper"
+ kind="file"
+ revision="1585"/>
+<entry
+ committed-rev="1585"
+ name="node5.html"
+ text-time="2005-07-09T21:14:56.000000Z"
+ committed-date="2005-07-09T21:26:15.500773Z"
+ checksum="bfaf209f678b544ce893ae593111d6ea"
+ last-author="casper"
+ kind="file"
+ revision="1585"/>
+<entry
+ committed-rev="1585"
+ name="pyalsaaudio.html"
+ text-time="2005-07-09T21:14:56.000000Z"
+ committed-date="2005-07-09T21:26:15.500773Z"
+ checksum="149bd2deba94b730700b015eeaa2b8c0"
+ last-author="casper"
+ kind="file"
+ revision="1585"/>
+<entry
+ committed-rev="1585"
+ name="mixer-objects.html"
+ text-time="2005-07-09T21:14:56.000000Z"
+ committed-date="2005-07-09T21:26:15.500773Z"
+ checksum="4a655786c2c9b88caa1e5a10498de48c"
+ last-author="casper"
+ kind="file"
+ revision="1585"/>
+<entry
+ committed-rev="1274"
+ name="index.dat"
+ text-time="2005-07-09T21:14:56.000000Z"
+ committed-date="2005-03-25T23:37:10.228413Z"
+ checksum="06106f07b3e2cfe4e1694cabf5de8e8a"
+ last-author="casper"
+ kind="file"/>
+</wc-entries>
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/format b/arch_src/pyalsaaudio-0.2/doc/.svn/format
new file mode 100644
index 0000000..b8626c4
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/format
@@ -0,0 +1 @@
+4
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/blank.gif.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/blank.gif.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/blank.gif.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/contents.gif.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/contents.gif.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/contents.gif.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/index.gif.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/index.gif.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/index.gif.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/modules.gif.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/modules.gif.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/modules.gif.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/next.gif.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/next.gif.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/next.gif.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/previous.gif.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/previous.gif.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/previous.gif.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/pyfav.gif.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/pyfav.gif.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/pyfav.gif.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/up.gif.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/up.gif.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/prop-base/up.gif.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/props/blank.gif.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/props/blank.gif.svn-work
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/props/blank.gif.svn-work
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/props/contents.gif.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/props/contents.gif.svn-work
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/props/contents.gif.svn-work
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/props/index.gif.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/props/index.gif.svn-work
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/props/index.gif.svn-work
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/props/modules.gif.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/props/modules.gif.svn-work
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/props/modules.gif.svn-work
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/props/next.gif.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/props/next.gif.svn-work
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/props/next.gif.svn-work
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/props/previous.gif.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/props/previous.gif.svn-work
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/props/previous.gif.svn-work
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/props/pyfav.gif.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/props/pyfav.gif.svn-work
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/props/pyfav.gif.svn-work
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/props/up.gif.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/props/up.gif.svn-work
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/props/up.gif.svn-work
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/about.html.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/about.html.svn-base
new file mode 100644
index 0000000..c47ebca
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/about.html.svn-base
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
+<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
+<link rel='contents' href='contents.html' title="Contents" />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="prev" href="contents.html" />
+<link rel="parent" href="pyalsaaudio.html" />
+<meta name='aesop' content='information' />
+<title>About this document ...</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="4.4 ALSA Examples"
+ href="pcm-example.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="PyAlsaAudio"
+ href="pyalsaaudio.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="pcm-example.html">4.4 ALSA Examples</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="pyalsaaudio.html">PyAlsaAudio</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H1><A NAME="SECTION003000000000000000000">
+About this document ...</A>
+</H1>
+ <strong>PyAlsaAudio</strong>
+<p> This document was generated using the <a
+ href="http://saftsack.fs.uni-bayreuth.de/~latex2ht/">
+ <strong>LaTeX</strong>2<tt>HTML</tt></a> translator.
+</p>
+
+<p> <a
+ href="http://saftsack.fs.uni-bayreuth.de/~latex2ht/">
+ <strong>LaTeX</strong>2<tt>HTML</tt></a> is Copyright &copy;
+ 1993, 1994, 1995, 1996, 1997, <a
+ href="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos
+ Drakos</a>, Computer Based Learning Unit, University of
+ Leeds, and Copyright &copy; 1997, 1998, <a
+ href="http://www.maths.mq.edu.au/~ross/">Ross
+ Moore</a>, Mathematics Department, Macquarie University,
+ Sydney.
+</p>
+
+<p> The application of <a
+ href="http://saftsack.fs.uni-bayreuth.de/~latex2ht/">
+ <strong>LaTeX</strong>2<tt>HTML</tt></a> to the Python
+ documentation has been heavily tailored by Fred L. Drake,
+ Jr. Original navigation icons were contributed by Christopher
+ Petrilli.
+</p>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="4.4 ALSA Examples"
+ href="pcm-example.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="PyAlsaAudio"
+ href="pyalsaaudio.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="pcm-example.html">4.4 ALSA Examples</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="pyalsaaudio.html">PyAlsaAudio</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 0.2.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/blank.gif.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/blank.gif.svn-base
new file mode 100644
index 0000000..2e31f4e
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/blank.gif.svn-base
Binary files differ
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/contents.gif.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/contents.gif.svn-base
new file mode 100644
index 0000000..6d299c4
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/contents.gif.svn-base
Binary files differ
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/contents.html.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/contents.html.svn-base
new file mode 100644
index 0000000..7f5eb2a
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/contents.html.svn-base
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
+<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
+<link rel='contents' href='contents.html' title="Contents" />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="about.html" />
+<link rel="prev" href="front.html" />
+<link rel="parent" href="pyalsaaudio.html" />
+<link rel="next" href="node3.html" />
+<meta name='aesop' content='information' />
+<title>Contents</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="Front Matter"
+ href="front.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="PyAlsaAudio"
+ href="pyalsaaudio.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="1 What is ALSA"
+ href="node3.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="front.html">Front Matter</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="pyalsaaudio.html">PyAlsaAudio</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node3.html">1 What is ALSA</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+<BR><h2><A NAME="SECTION002000000000000000000">
+Contents</A>
+</h2>
+<!--Table of Contents-->
+
+<UL CLASS="TofC">
+<LI><UL>
+<LI><A href="node3.html">1 What is ALSA</a>
+<LI><A href="node4.html">2 ALSA and Python</a>
+<LI><A href="node5.html">3 Installation</a>
+<LI><A href="module-alsaaudio.html">4 alsaaudio</a>
+<UL>
+<LI><A href="node7.html">4.1 PCM Terminology and Concepts</a>
+<LI><A href="pcm-objects.html">4.2 PCM Objects</a>
+<LI><A href="mixer-objects.html">4.3 Mixer Objects</a>
+<LI><A href="pcm-example.html">4.4 ALSA Examples</a>
+</ul></ul></ul>
+<!--End of Table of Contents-->
+<P>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="Front Matter"
+ href="front.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="PyAlsaAudio"
+ href="pyalsaaudio.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="1 What is ALSA"
+ href="node3.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="front.html">Front Matter</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="pyalsaaudio.html">PyAlsaAudio</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node3.html">1 What is ALSA</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 0.2.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/front.html.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/front.html.svn-base
new file mode 100644
index 0000000..bbcdbc5
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/front.html.svn-base
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
+<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
+<link rel='contents' href='contents.html' title="Contents" />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="contents.html" />
+<link rel="prev" href="pyalsaaudio.html" />
+<link rel="parent" href="pyalsaaudio.html" />
+<link rel="next" href="contents.html" />
+<meta name='aesop' content='information' />
+<title>Front Matter</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="PyAlsaAudio"
+ href="pyalsaaudio.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="PyAlsaAudio"
+ href="pyalsaaudio.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="Contents"
+ href="contents.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="pyalsaaudio.html">PyAlsaAudio</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="pyalsaaudio.html">PyAlsaAudio</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="contents.html">Contents</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H1><A NAME="SECTION001000000000000000000"></A><A NAME="front"></A>
+<BR>
+Front Matter
+</H1>
+
+<P>
+This software is licensed under the PSF license - the same one used
+by the majority of the python distribution. Basically you can use it
+for anything you wish (even commercial purposes). There is no warranty
+whatsoever.
+
+<P>
+
+<H3>Abstract:</H3>
+<DIV CLASS="ABSTRACT">
+
+This package contains wrappers for accessing the ALSA api from Python. It
+is currently fairly complete for PCM devices and Mixer access. MIDI sequencer
+support is low on my priority list, but volunteers are welcome.
+
+<P>
+If you find bugs in the wrappers please notify me on email. Please
+don't send bug reports regarding ALSA specifically. There are several
+bugs in this api, and those should be reported to the ALSA team - not
+me.
+</DIV>
+<P>
+
+<P>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="PyAlsaAudio"
+ href="pyalsaaudio.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="PyAlsaAudio"
+ href="pyalsaaudio.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="Contents"
+ href="contents.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="pyalsaaudio.html">PyAlsaAudio</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="pyalsaaudio.html">PyAlsaAudio</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="contents.html">Contents</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 0.2.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/index.dat.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/index.dat.svn-base
new file mode 100644
index 0000000..8efff3f
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/index.dat.svn-base
@@ -0,0 +1,27 @@
+<a href="node6.html"><tt class="module">alsaaudio</tt> (extension module)###DEF0000000608
+<a href="node6.html#l2h-2"><tt class="function">mixers()</tt> (in module alsaaudio)###0000000609
+<a href="node6.html#l2h-3"><tt class="class">PCM</tt> (class in alsaaudio)###0000000610
+<a href="node6.html#l2h-4"><tt class="class">Mixer</tt> (class in alsaaudio)###0000000611
+<a href="node6.html#l2h-5"><tt class="exception">ALSAAudioError</tt>###0000000612
+<a href="node8.html#l2h-6"><tt class="class">PCM</tt> (class in alsaaudio)###0000000622
+<a href="node8.html#l2h-7"><tt class="method">pcmtype()</tt> (PCM method)###0000000623
+<a href="node8.html#l2h-8"><tt class="method">pcmmode()</tt> (PCM method)###0000000624
+<a href="node8.html#l2h-9"><tt class="method">cardname()</tt> (PCM method)###0000000625
+<a href="node8.html#l2h-10"><tt class="method">setchannels()</tt> (PCM method)###0000000626
+<a href="node8.html#l2h-11"><tt class="method">setrate()</tt> (PCM method)###0000000627
+<a href="node8.html#l2h-12"><tt class="method">setformat()</tt> (PCM method)###0000000628
+<a href="node8.html#l2h-13"><tt class="method">setperiodsize()</tt> (PCM method)###0000000629
+<a href="node8.html#l2h-14"><tt class="method">read()</tt> (PCM method)###0000000630
+<a href="node8.html#l2h-15"><tt class="method">write()</tt> (PCM method)###0000000631
+<a href="node9.html#l2h-16"><tt class="class">Mixer</tt> (class in alsaaudio)###0000000633
+<a href="node9.html#l2h-17"><tt class="method">cardname()</tt> (Mixer method)###0000000634
+<a href="node9.html#l2h-18"><tt class="method">mixer()</tt> (Mixer method)###0000000635
+<a href="node9.html#l2h-19"><tt class="method">mixerid()</tt> (Mixer method)###0000000636
+<a href="node9.html#l2h-20"><tt class="method">switchcap()</tt> (Mixer method)###0000000637
+<a href="node9.html#l2h-21"><tt class="method">volumecap()</tt> (Mixer method)###0000000638
+<a href="node9.html#l2h-22"><tt class="method">getvolume()</tt> (Mixer method)###0000000639
+<a href="node9.html#l2h-23"><tt class="method">getmute()</tt> (Mixer method)###0000000640
+<a href="node9.html#l2h-24"><tt class="method">getrec()</tt> (Mixer method)###0000000641
+<a href="node9.html#l2h-25"><tt class="method">setvolume()</tt> (Mixer method)###0000000642
+<a href="node9.html#l2h-26"><tt class="method">setmute()</tt> (Mixer method)###0000000643
+<a href="node9.html#l2h-27"><tt class="method">setrec()</tt> (Mixer method)###0000000644
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/index.gif.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/index.gif.svn-base
new file mode 100644
index 0000000..32eecfb
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/index.gif.svn-base
Binary files differ
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/index.html.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/index.html.svn-base
new file mode 100644
index 0000000..fc3e86f
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/index.html.svn-base
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
+<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
+<link rel='contents' href='contents.html' title="Contents" />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="front.html" />
+<meta name='aesop' content='information' />
+<title>PyAlsaAudio</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></td>
+<td class='online-navigation'><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></td>
+<td class='online-navigation'><a rel="next" title="Front Matter"
+ href="front.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="front.html">Front Matter</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<div class="titlepage">
+<div class='center'>
+<h1>PyAlsaAudio</h1>
+<p><b><font size="+2">Casper Wilstrup</font></b></p>
+<p>cwi@unispeed.com</p>
+<p></p>
+</div>
+</div>
+
+<P>
+
+<p><br /></p><hr class='online-navigation' />
+<div class='online-navigation'>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></a>
+
+<UL CLASS="ChildLinks">
+<LI><A href="front.html">Front Matter</a>
+<LI><A href="contents.html">Contents</a>
+<UL>
+<LI><A href="node3.html">1 What is ALSA</a>
+<LI><A href="node4.html">2 ALSA and Python</a>
+<LI><A href="node5.html">3 Installation</a>
+<LI><A href="module-alsaaudio.html">4 <tt class="module">alsaaudio</tt></a>
+<UL>
+<LI><A href="node7.html">4.1 PCM Terminology and Concepts</a>
+<LI><A href="pcm-objects.html">4.2 PCM Objects</a>
+<LI><A href="mixer-objects.html">4.3 Mixer Objects</a>
+<LI><A href="pcm-example.html">4.4 ALSA Examples</a>
+</ul>
+</ul>
+<LI><A href="about.html">About this document ...</a>
+</ul>
+<!--End of Table of Child-Links-->
+</div>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></td>
+<td class='online-navigation'><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></td>
+<td class='online-navigation'><a rel="next" title="Front Matter"
+ href="front.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="front.html">Front Matter</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 0.2.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/internals.pl.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/internals.pl.svn-base
new file mode 100644
index 0000000..4864f4b
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/internals.pl.svn-base
@@ -0,0 +1,34 @@
+# LaTeX2HTML 2002-2 (1.70)
+# Associate internals original text with physical files.
+
+
+$key = q/module-alsaaudio/;
+$ref_files{$key} = "$dir".q|node6.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/pcm-objects/;
+$ref_files{$key} = "$dir".q|node8.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/front/;
+$ref_files{$key} = "$dir".q|node1.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/contents/;
+$ref_files{$key} = "$dir".q|node2.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/mixer-objects/;
+$ref_files{$key} = "$dir".q|node9.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/pcm-example/;
+$ref_files{$key} = "$dir".q|node10.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/about/;
+$ref_files{$key} = "$dir".q|node11.html|;
+$noresave{$key} = "$nosave";
+
+1;
+
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/intlabels.pl.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/intlabels.pl.svn-base
new file mode 100644
index 0000000..972ec5a
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/intlabels.pl.svn-base
@@ -0,0 +1,30 @@
+%internal_labels = ();
+1; # hack in case there are no entries
+
+$internal_labels{"l2h-1"} = "/node6.html";
+$internal_labels{"l2h-2"} = "/node6.html";
+$internal_labels{"l2h-3"} = "/node6.html";
+$internal_labels{"l2h-4"} = "/node6.html";
+$internal_labels{"l2h-5"} = "/node6.html";
+$internal_labels{"l2h-6"} = "/node8.html";
+$internal_labels{"l2h-7"} = "/node8.html";
+$internal_labels{"l2h-8"} = "/node8.html";
+$internal_labels{"l2h-9"} = "/node8.html";
+$internal_labels{"l2h-10"} = "/node8.html";
+$internal_labels{"l2h-11"} = "/node8.html";
+$internal_labels{"l2h-12"} = "/node8.html";
+$internal_labels{"l2h-13"} = "/node8.html";
+$internal_labels{"l2h-14"} = "/node8.html";
+$internal_labels{"l2h-15"} = "/node8.html";
+$internal_labels{"l2h-16"} = "/node9.html";
+$internal_labels{"l2h-17"} = "/node9.html";
+$internal_labels{"l2h-18"} = "/node9.html";
+$internal_labels{"l2h-19"} = "/node9.html";
+$internal_labels{"l2h-20"} = "/node9.html";
+$internal_labels{"l2h-21"} = "/node9.html";
+$internal_labels{"l2h-22"} = "/node9.html";
+$internal_labels{"l2h-23"} = "/node9.html";
+$internal_labels{"l2h-24"} = "/node9.html";
+$internal_labels{"l2h-25"} = "/node9.html";
+$internal_labels{"l2h-26"} = "/node9.html";
+$internal_labels{"l2h-27"} = "/node9.html";
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/labels.pl.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/labels.pl.svn-base
new file mode 100644
index 0000000..f3d0859
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/labels.pl.svn-base
@@ -0,0 +1,57 @@
+# LaTeX2HTML 2002-2-1 (1.70)
+# Associate labels original text with physical files.
+
+
+$key = q/module-alsaaudio/;
+$external_labels{$key} = "$URL/" . q|node6.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/pcm-objects/;
+$external_labels{$key} = "$URL/" . q|node8.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/front/;
+$external_labels{$key} = "$URL/" . q|node1.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/contents/;
+$external_labels{$key} = "$URL/" . q|node2.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/mixer-objects/;
+$external_labels{$key} = "$URL/" . q|node9.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/pcm-example/;
+$external_labels{$key} = "$URL/" . q|node10.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/about/;
+$external_labels{$key} = "$URL/" . q|node11.html|;
+$noresave{$key} = "$nosave";
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.70)
+# labels from external_latex_labels array.
+
+
+$key = q/module-alsaaudio/;
+$external_latex_labels{$key} = q|4|;
+$noresave{$key} = "$nosave";
+
+$key = q/pcm-objects/;
+$external_latex_labels{$key} = q|4.2|;
+$noresave{$key} = "$nosave";
+
+$key = q/mixer-objects/;
+$external_latex_labels{$key} = q|4.3|;
+$noresave{$key} = "$nosave";
+
+$key = q/pcm-example/;
+$external_latex_labels{$key} = q|4.4|;
+$noresave{$key} = "$nosave";
+
+1;
+
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/mixer-objects.html.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/mixer-objects.html.svn-base
new file mode 100644
index 0000000..5a4d516
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/mixer-objects.html.svn-base
@@ -0,0 +1,327 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
+<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
+<link rel='contents' href='contents.html' title="Contents" />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="pcm-example.html" />
+<link rel="prev" href="pcm-objects.html" />
+<link rel="parent" href="module-alsaaudio.html" />
+<link rel="next" href="pcm-example.html" />
+<meta name='aesop' content='information' />
+<title>4.3 Mixer Objects</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="4.2 PCM Objects"
+ href="pcm-objects.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="4 alsaaudio"
+ href="module-alsaaudio.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="4.4 ALSA Examples"
+ href="pcm-example.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="pcm-objects.html">4.2 PCM Objects</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-alsaaudio.html">4 alsaaudio</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="pcm-example.html">4.4 ALSA Examples</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION002430000000000000000"></A>
+<A NAME="mixer-objects"></A>
+<BR>
+4.3 Mixer Objects
+</H2>
+
+<P>
+Mixer objects provides access to the ALSA mixer API.
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-16' xml:id='l2h-16' class="class">Mixer</tt></b>(</nobr></td>
+ <td><var></var><big>[</big><var>control</var><big>]</big><var>, </var><big>[</big><var>id</var><big>]</big><var>, </var><big>[</big><var>cardname</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+<var>control</var> - specifies which control to manipulate using this mixer object. The list
+of available controls can be found with the <tt class="module">alsaaudio</tt>.<tt class="function">mixers</tt> function.
+The default value is 'Master' - other common controls include 'Master Mono', 'PCM', 'Line', etc.
+
+<P>
+<var>id</var> - the id of the mixer control. Default is 0
+
+<P>
+<var>cardname</var> - specifies which card should be used (this is only relevant
+if you have more than one sound card). Omit to use the default sound card
+</dl>
+
+<P>
+Mixer objects have the following methods:
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-17' xml:id='l2h-17' class="method">cardname</tt></b>(</nobr></td>
+ <td><var></var>)</td></tr></table></dt>
+<dd>
+Return the name of the sound card used by this Mixer object
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-18' xml:id='l2h-18' class="method">mixer</tt></b>(</nobr></td>
+ <td><var></var>)</td></tr></table></dt>
+<dd>
+Return the name of the specific mixer controlled by this object, For example 'Master'
+or 'PCM'
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-19' xml:id='l2h-19' class="method">mixerid</tt></b>(</nobr></td>
+ <td><var></var>)</td></tr></table></dt>
+<dd>
+Return the ID of the ALSA mixer controlled by this object.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-20' xml:id='l2h-20' class="method">switchcap</tt></b>(</nobr></td>
+ <td><var></var>)</td></tr></table></dt>
+<dd>
+Returns a list of the switches which are defined by this specific mixer. Possible values in
+this list are:
+
+<P>
+<div class="center"><table class="realtable">
+ <thead>
+ <tr>
+ <th class="left" >Switch</th>
+ <th class="left" >Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr><td class="left" valign="baseline"><Volume Capabilities>'Mute'</Volume></td>
+ <td class="left" >This mixer can be muted</td></tr>
+ <tr><td class="left" valign="baseline"><Volume Capabilities>'Joined Mute'</Volume></td>
+ <td class="left" >This mixer can mute all channels at the same time</td></tr>
+ <tr><td class="left" valign="baseline"><Volume Capabilities>'Playback Mute'</Volume></td>
+ <td class="left" >This mixer can mute the playback output</td></tr>
+ <tr><td class="left" valign="baseline"><Volume Capabilities>'Joined Playback Mute'</Volume></td>
+ <td class="left" >Mute playback for all channels at the same time</td></tr>
+ <tr><td class="left" valign="baseline"><Volume Capabilities>'Capture Mute'</Volume></td>
+ <td class="left" >Mute sound capture</td></tr>
+ <tr><td class="left" valign="baseline"><Volume Capabilities>'Joined Capture Mute'</Volume></td>
+ <td class="left" >Mute sound capture for all channels at a time</td></tr>
+ <tr><td class="left" valign="baseline"><Volume Capabilities>'Capture Exclusive'</Volume></td>
+ <td class="left" >Not quite sure what this is</td></tr></tbody>
+</table></div>
+
+<P>
+To manipulate these swithes use the <tt class="method">setrec</tt> or <tt class="method">setmute</tt> methods
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-21' xml:id='l2h-21' class="method">volumecap</tt></b>(</nobr></td>
+ <td><var></var>)</td></tr></table></dt>
+<dd>
+Returns a list of the volume control capabilities of this mixer. Possible values in
+the list are:
+
+<P>
+<div class="center"><table class="realtable">
+ <thead>
+ <tr>
+ <th class="left" >Capability</th>
+ <th class="left" >Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr><td class="left" valign="baseline"><Volume Capabilities>'Volume'</Volume></td>
+ <td class="left" >This mixer can control volume</td></tr>
+ <tr><td class="left" valign="baseline"><Volume Capabilities>'Joined Volume'</Volume></td>
+ <td class="left" >This mixer can control volume for all channels at the same time</td></tr>
+ <tr><td class="left" valign="baseline"><Volume Capabilities>'Playback Volume'</Volume></td>
+ <td class="left" >This mixer can manipulate the playback volume</td></tr>
+ <tr><td class="left" valign="baseline"><Volume Capabilities>'Joined Playback Volume'</Volume></td>
+ <td class="left" >Manipulate playback volumne for all channels at the same time</td></tr>
+ <tr><td class="left" valign="baseline"><Volume Capabilities>'Capture Volume'</Volume></td>
+ <td class="left" >Manipulate sound capture volume</td></tr>
+ <tr><td class="left" valign="baseline"><Volume Capabilities>'Joined Capture Volume'</Volume></td>
+ <td class="left" >Manipulate sound capture volume for all channels at a time</td></tr></tbody>
+</table></div>
+
+<P>
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-22' xml:id='l2h-22' class="method">getvolume</tt></b>(</nobr></td>
+ <td><var></var><big>[</big><var>direction</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Returns a list with the current volume settings for each channel. The list elements
+are integer percentages.
+
+<P>
+The optional <var>direction</var> argument can be either 'playback' or 'capture', which is relevant
+if the mixer can control both playback and capture volume. The default value is 'playback'
+if the mixer has this capability, otherwise 'capture'
+
+<P>
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-23' xml:id='l2h-23' class="method">getmute</tt></b>(</nobr></td>
+ <td><var></var>)</td></tr></table></dt>
+<dd>
+Return a list indicating the current mute setting for each channel. 0 means not muted, 1 means muted.
+
+<P>
+This method will fail if the mixer has no playback switch capabilities.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-24' xml:id='l2h-24' class="method">getrec</tt></b>(</nobr></td>
+ <td><var></var>)</td></tr></table></dt>
+<dd>
+Return a list indicating the current record mute setting for each channel. 0 means not recording, 1
+means not recording.
+
+<P>
+This method will fail if the mixer has no capture switch capabilities.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-25' xml:id='l2h-25' class="method">setvolume</tt></b>(</nobr></td>
+ <td><var>volume,</var><big>[</big><var>channel</var><big>]</big><var>,</var><big>[</big><var>direction</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Change the current volume settings for this mixer. The <var>volume</var> argument controls
+the new volume setting as an integer percentage.
+
+<P>
+If the optional argument <var>channel</var> is present, the volume is set only for this channel. This
+assumes that the mixer can control the volume for the channels independently.
+
+<P>
+The optional <var>direction</var> argument can be either 'playback' or 'capture' is relevant if the mixer
+has independent playback and capture volume capabilities, and controls which of the volumes
+if changed. The default is 'playback' if the mixer has this capability, otherwise 'capture'.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-26' xml:id='l2h-26' class="method">setmute</tt></b>(</nobr></td>
+ <td><var>mute, </var><big>[</big><var>channel</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Sets the mute flag to a new value. The <var>mute</var> argument is either 0 for not muted, or 1 for muted.
+
+<P>
+The optional <var>channel</var> argument controls which channel is muted. The default is to set the mute flag
+for all channels.
+
+<P>
+This method will fail if the mixer has no playback mute capabilities
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-27' xml:id='l2h-27' class="method">setrec</tt></b>(</nobr></td>
+ <td><var>capture,</var><big>[</big><var>channel</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Sets the capture mute flag to a new value. The <var>capture</var> argument is either 0 for no capture,
+or 1 for capture.
+
+<P>
+The optional <var>channel</var> argument controls which channel is changed. The default is to set the capture flag
+for all channels.
+
+<P>
+This method will fail if the mixer has no capture switch capabilities
+</dl>
+
+<P>
+<b>A Note on the ALSA Mixer API</b>
+
+<P>
+The ALSA mixer API is extremely complicated - and hardly documented at all. <tt class="module">alsaaudio</tt> implements
+a much simplified way to access this API. In designing the API I've had to make some choices which
+may limit what can and cannot be controlled through the API. However, If I had chosen to implement the
+full API, I would have reexposed the horrible complexity/documentation ratio of the underlying API.
+At least the <tt class="module">alsaaudio</tt> API is easy to understand and use.
+
+<P>
+If my design choises prevents you from doing something that the underlying API would have allowed,
+please let me know, so I can incorporate these need into future versions.
+
+<P>
+If the current state of affairs annoy you, the best you can do is to write a HOWTO on the API and
+make this available on the net. Until somebody does this, the availability of ALSA mixer capable
+devices will stay quite limited.
+
+<P>
+Unfortunately, I'm not able to create such a HOWTO myself, since I only understand half of the API,
+and that which I do understand has come from a painful trial and error process.
+
+<P>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="4.2 PCM Objects"
+ href="pcm-objects.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="4 alsaaudio"
+ href="module-alsaaudio.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="4.4 ALSA Examples"
+ href="pcm-example.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="pcm-objects.html">4.2 PCM Objects</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-alsaaudio.html">4 alsaaudio</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="pcm-example.html">4.4 ALSA Examples</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 0.2.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/module-alsaaudio.html.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/module-alsaaudio.html.svn-base
new file mode 100644
index 0000000..c3673ee
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/module-alsaaudio.html.svn-base
@@ -0,0 +1,167 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
+<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
+<link rel='contents' href='contents.html' title="Contents" />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="prev" href="node5.html" />
+<link rel="parent" href="contents.html" />
+<link rel="next" href="node7.html" />
+<meta name='aesop' content='information' />
+<title>4 alsaaudio</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="3 Installation"
+ href="node5.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="Contents"
+ href="contents.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="4.1 PCM Terminology and"
+ href="node7.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node5.html">3 Installation</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="contents.html">Contents</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node7.html">4.1 PCM Terminology and</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H1><A NAME="SECTION002400000000000000000">
+4 <tt class="module">alsaaudio</tt></A>
+</H1>
+
+<P>
+<A NAME="module-alsaaudio"></A>
+<P>
+
+<p class="availability">Availability: <span
+ class="platform">Linux</span>.</p>
+
+<P>
+
+<P>
+
+<P>
+The <tt class="module">alsaaudio</tt> module defines functions and classes for using
+ALSA.
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-2' xml:id='l2h-2' class="function">mixers</tt></b>(</nobr></td>
+ <td><var></var><big>[</big><var>cardname</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+List the available mixers. The optional <var>cardname</var> specifies which
+card should be queried (this is only relevant if you have more than one
+sound card). Omit to use the default sound card
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-3' xml:id='l2h-3' class="class">PCM</tt></b>(</nobr></td>
+ <td><var></var><big>[</big><var>type</var><big>]</big><var>, </var><big>[</big><var>mode</var><big>]</big><var>, </var><big>[</big><var>cardname</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+This class is used to represent a PCM device (both playback and capture devices).
+The arguments are:
+<BR><var>type</var> - can be either PCM_CAPTURE or PCM_PLAYBACK (default).
+<BR><var>mode</var> - can be either PCM_NONBLOCK, PCM_ASYNC, or PCM_NORMAL (the default).
+<BR><var>cardname</var> - specifies which card should be used (this is only relevant
+if you have more than one sound card). Omit to use the default sound card
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-4' xml:id='l2h-4' class="class">Mixer</tt></b>(</nobr></td>
+ <td><var></var><big>[</big><var>control</var><big>]</big><var>, </var><big>[</big><var>id</var><big>]</big><var>, </var><big>[</big><var>cardname</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+This class is used to access a specific ALSA mixer.
+The arguments are:
+<BR><var>control</var> - Name of the chosen mixed (default is Master).
+<BR><var>id</var> - id of mixer (default is 0) - More explaniation needed here
+<BR><var>cardname</var> specifies which card should be used (this is only relevant
+if you have more than one sound card). Omit to use the default sound card
+</dl>
+
+<P>
+<dl><dt><b><span class="typelabel">exception</span>&nbsp;<tt id='l2h-5' xml:id='l2h-5' class="exception">ALSAAudioError</tt></b></dt>
+<dd>
+Exception raised when an operation fails for a ALSA specific reason.
+The exception argument is a string describing the reason of the
+failure.
+</dd></dl>
+
+<P>
+
+<p><br /></p><hr class='online-navigation' />
+<div class='online-navigation'>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></a>
+
+<UL CLASS="ChildLinks">
+<LI><A href="node7.html">4.1 PCM Terminology and Concepts</a>
+<LI><A href="pcm-objects.html">4.2 PCM Objects</a>
+<LI><A href="mixer-objects.html">4.3 Mixer Objects</a>
+<LI><A href="pcm-example.html">4.4 ALSA Examples</a>
+</ul>
+<!--End of Table of Child-Links-->
+</div>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="3 Installation"
+ href="node5.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="Contents"
+ href="contents.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="4.1 PCM Terminology and"
+ href="node7.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node5.html">3 Installation</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="contents.html">Contents</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node7.html">4.1 PCM Terminology and</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 0.2.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/modules.gif.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/modules.gif.svn-base
new file mode 100644
index 0000000..f5860b6
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/modules.gif.svn-base
Binary files differ
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/next.gif.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/next.gif.svn-base
new file mode 100644
index 0000000..5dcaff8
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/next.gif.svn-base
Binary files differ
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/node3.html.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/node3.html.svn-base
new file mode 100644
index 0000000..e848a78
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/node3.html.svn-base
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
+<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
+<link rel='contents' href='contents.html' title="Contents" />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="node4.html" />
+<link rel="prev" href="contents.html" />
+<link rel="parent" href="contents.html" />
+<link rel="next" href="node4.html" />
+<meta name='aesop' content='information' />
+<title>1 What is ALSA</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="Contents"
+ href="contents.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="Contents"
+ href="contents.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2 ALSA and Python"
+ href="node4.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="contents.html">Contents</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="contents.html">Contents</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node4.html">2 ALSA and Python</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H1><A NAME="SECTION002100000000000000000">
+1 What is ALSA</A>
+</H1>
+
+<P>
+The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI
+functionality to the Linux operating system.
+
+<P>
+Logically ALSA consists of these components:
+
+<UL>
+<LI>A set of kernel drivers.
+<BR>
+These drivers are responsible for handling the physical sound
+ hardware from within the Linux kernel, and have been the standard
+ sound implementation in Linux since kernel version 2.5
+</LI>
+<LI>A kernel level API for manipulating the ALSA devices.
+</LI>
+<LI>A user-space C library for simplified access to the sound hardware
+ from userspace applications. This library is called <i>libasound</i>
+ and is required by all ALSA capable applications.
+</LI>
+</UL>
+
+<P>
+More information about ALSA may be found on the project homepage
+<a class="url" href="http://www.alsa-project.org">http://www.alsa-project.org</a>
+<P>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="Contents"
+ href="contents.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="Contents"
+ href="contents.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2 ALSA and Python"
+ href="node4.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="contents.html">Contents</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="contents.html">Contents</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node4.html">2 ALSA and Python</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 0.2.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/node4.html.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/node4.html.svn-base
new file mode 100644
index 0000000..9c6ab01
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/node4.html.svn-base
@@ -0,0 +1,116 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
+<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
+<link rel='contents' href='contents.html' title="Contents" />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="node5.html" />
+<link rel="prev" href="node3.html" />
+<link rel="parent" href="contents.html" />
+<link rel="next" href="node5.html" />
+<meta name='aesop' content='information' />
+<title>2 ALSA and Python</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="1 What is ALSA"
+ href="node3.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="Contents"
+ href="contents.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="3 Installation"
+ href="node5.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node3.html">1 What is ALSA</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="contents.html">Contents</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node5.html">3 Installation</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H1><A NAME="SECTION002200000000000000000">
+2 ALSA and Python</A>
+</H1>
+
+<P>
+The older Linux sound API (OSS) which is now deprecated is well supported
+from the standard Python library, through the ossaudiodev module. No native
+ALSA support exists in the standard library (yet).
+
+<P>
+There are a few other ``ALSA for Python'' projects available, including at
+least two different projects called pyAlsa. Neither of these seem to be under
+active development at the time - and neither are very feature complete.
+
+<P>
+I wrote PyAlsaAudio to fill this gap. My long term goal is to have the module
+included in the standard Python library, but that is probably a while of yet.
+
+<P>
+PyAlsaAudio hass full support for sound capture, playback of sound, as well as
+the ALSA Mixer API.
+
+<P>
+MIDI support is not available, and since I don't own any MIDI hardware, it's
+difficult for me to implement it. Volunteers to work on this would be greatly
+appreciated
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="1 What is ALSA"
+ href="node3.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="Contents"
+ href="contents.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="3 Installation"
+ href="node5.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node3.html">1 What is ALSA</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="contents.html">Contents</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node5.html">3 Installation</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 0.2.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/node5.html.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/node5.html.svn-base
new file mode 100644
index 0000000..923ac75
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/node5.html.svn-base
@@ -0,0 +1,115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
+<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
+<link rel='contents' href='contents.html' title="Contents" />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="module-alsaaudio.html" />
+<link rel="prev" href="node4.html" />
+<link rel="parent" href="contents.html" />
+<link rel="next" href="module-alsaaudio.html" />
+<meta name='aesop' content='information' />
+<title>3 Installation</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2 ALSA and Python"
+ href="node4.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="Contents"
+ href="contents.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="4 alsaaudio"
+ href="module-alsaaudio.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node4.html">2 ALSA and Python</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="contents.html">Contents</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="module-alsaaudio.html">4 alsaaudio</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H1><A NAME="SECTION002300000000000000000">
+3 Installation</A>
+</H1>
+
+<P>
+Note: the wrappers link with the alsasound library (from the alsa-lib
+package). Verify that this is installed by looking for /usr/lib/libasound.so
+before building. Naturally you also need to use a kernel with proper ALSA
+support. This is the default in Linux kernel 2.6 and later. If you are using
+kernel version 2.4 you may need to install the ALSA patches yourself - although
+most distributions ship with ALSA kernels.
+
+<P>
+To install, execute the following:
+<BR><div class="verbatim"><pre>
+$ python setup.py build
+</pre></div>
+
+<P>
+And then as root:
+<BR><div class="verbatim"><pre>
+# python setup.py install
+</pre></div>
+
+<P>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2 ALSA and Python"
+ href="node4.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="Contents"
+ href="contents.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="4 alsaaudio"
+ href="module-alsaaudio.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node4.html">2 ALSA and Python</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="contents.html">Contents</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="module-alsaaudio.html">4 alsaaudio</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 0.2.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/node7.html.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/node7.html.svn-base
new file mode 100644
index 0000000..f58333a
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/node7.html.svn-base
@@ -0,0 +1,169 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
+<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
+<link rel='contents' href='contents.html' title="Contents" />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="pcm-objects.html" />
+<link rel="prev" href="module-alsaaudio.html" />
+<link rel="parent" href="module-alsaaudio.html" />
+<link rel="next" href="pcm-objects.html" />
+<meta name='aesop' content='information' />
+<title>4.1 PCM Terminology and Concepts</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="4 alsaaudio"
+ href="module-alsaaudio.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="4 alsaaudio"
+ href="module-alsaaudio.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="4.2 PCM Objects"
+ href="pcm-objects.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="module-alsaaudio.html">4 alsaaudio</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-alsaaudio.html">4 alsaaudio</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="pcm-objects.html">4.2 PCM Objects</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION002410000000000000000">
+4.1 PCM Terminology and Concepts</A>
+</H2>
+
+<P>
+In order to use PCM devices it is useful to be familiar with some concepts and
+terminology.
+
+<P>
+<DL>
+<DT><STRONG>Sample</STRONG></DT>
+<DD>PCM audio, whether it is input or output, consists at the lowest level
+of a number of single samples. A sample represents the sound in a single channel in
+a brief interval. If more than one channel is in use, more than one sample is required
+for each interval to describe the sound. Samples can be of many different sizes, ranging
+from 8 bit to 64 bit presition. The specific format of each sample can also vary - they
+can be big endian byte order, little endian byte order, or even floats.
+
+<P>
+</DD>
+<DT><STRONG>Frame</STRONG></DT>
+<DD>A frame consists of exactly one sample per channel. If there is only one
+channel (Mono sound) a frame is simply a single sample. If the sound is stereo, each frame
+consists of two samples, etc.
+
+<P>
+</DD>
+<DT><STRONG>Frame size</STRONG></DT>
+<DD>This is the size in bytes of each frame. This can vary a lot: if each sample is
+8 bits, and we're handling mono sound, the frame size is one byte. Similarly in 6 channel audio with
+64 bit floating point samples, the frame size is 48 bytes
+
+<P>
+</DD>
+<DT><STRONG>Rate</STRONG></DT>
+<DD>PCM sound consists of a flow of sound frames. The sound rate controls how often
+the current frame is replaced. For example, a rate of 8000 Hz means that a new frame is played
+or captured 8000 times per second.
+
+<P>
+</DD>
+<DT><STRONG>Data rate</STRONG></DT>
+<DD>This is the number of bytes, which must be recorded or provided per second
+at a certain frame size and rate.
+
+<P>
+8000 Hz mono sound with 8 bit (1 byte) samples has a data rate of 8000 * 1 * 1 = 8 kb/s
+
+<P>
+At the other end of the scale, 96000 Hz, 6 channel sound with 64 bit (8 bytes) samples
+has a data rate of 96000 * 6 * 8 = 4608 kb/s (almost 5 Mb sound data per second)
+
+<P>
+</DD>
+<DT><STRONG>Period</STRONG></DT>
+<DD>When the hardware processes data this is done in chunks of frames. The time interval
+between each processing (A/D or D/A conversion) is known as the period. The size of the period has
+direct implication on the latency of the sound input or output. For low-latency the period size should
+be very small, while low CPU resource usage would usually demand larger period sizes. With ALSA, the
+CPU utilization is not impacted much by the period size, since the kernel layer buffers multiple
+periods internally, so each period generates an interrupt and a memory copy, but userspace can be
+slower and read or write multiple periods at the same time.
+
+<P>
+</DD>
+<DT><STRONG>Period size</STRONG></DT>
+<DD>This is the size of each period in Hz. <em>Not bytes, but Hz!.</em> In <tt class="module">alsaaudio</tt>
+the period size is set directly, and it is therefore important to understand the significance of this
+number. If the period size is configured to for example 32, each write should contain exactly 32 frames
+of sound data, and each read will return either 32 frames of data or nothing at all.
+
+<P>
+</DD>
+</DL>
+
+<P>
+Once you understand these concepts, you will be ready to actually utilize PCM API. Read on.
+
+<P>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="4 alsaaudio"
+ href="module-alsaaudio.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="4 alsaaudio"
+ href="module-alsaaudio.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="4.2 PCM Objects"
+ href="pcm-objects.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="module-alsaaudio.html">4 alsaaudio</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-alsaaudio.html">4 alsaaudio</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="pcm-objects.html">4.2 PCM Objects</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 0.2.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/pcm-example.html.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/pcm-example.html.svn-base
new file mode 100644
index 0000000..d458bac
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/pcm-example.html.svn-base
@@ -0,0 +1,99 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
+<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
+<link rel='contents' href='contents.html' title="Contents" />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="prev" href="mixer-objects.html" />
+<link rel="parent" href="module-alsaaudio.html" />
+<link rel="next" href="about.html" />
+<meta name='aesop' content='information' />
+<title>4.4 ALSA Examples </title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="4.3 Mixer Objects"
+ href="mixer-objects.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="4 alsaaudio"
+ href="module-alsaaudio.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="About this document ..."
+ href="about.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="mixer-objects.html">4.3 Mixer Objects</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-alsaaudio.html">4 alsaaudio</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="about.html">About this document ...</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION002440000000000000000"></A><A NAME="pcm-example"></A>
+<BR>
+4.4 ALSA Examples
+</H2>
+
+<P>
+For now, the only examples available are the 'playbacktest.py' and the 'recordtest.py' programs included.
+This will change in a future version.
+
+<P>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="4.3 Mixer Objects"
+ href="mixer-objects.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="4 alsaaudio"
+ href="module-alsaaudio.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="About this document ..."
+ href="about.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="mixer-objects.html">4.3 Mixer Objects</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-alsaaudio.html">4 alsaaudio</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="about.html">About this document ...</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 0.2.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/pcm-objects.html.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/pcm-objects.html.svn-base
new file mode 100644
index 0000000..3fc5d78
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/pcm-objects.html.svn-base
@@ -0,0 +1,331 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
+<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
+<link rel='contents' href='contents.html' title="Contents" />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="mixer-objects.html" />
+<link rel="prev" href="node7.html" />
+<link rel="parent" href="module-alsaaudio.html" />
+<link rel="next" href="mixer-objects.html" />
+<meta name='aesop' content='information' />
+<title>4.2 PCM Objects</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="4.1 PCM Terminology and"
+ href="node7.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="4 alsaaudio"
+ href="module-alsaaudio.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="4.3 Mixer Objects"
+ href="mixer-objects.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node7.html">4.1 PCM Terminology and</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-alsaaudio.html">4 alsaaudio</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="mixer-objects.html">4.3 Mixer Objects</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION002420000000000000000"></A>
+<A NAME="pcm-objects"></A>
+<BR>
+4.2 PCM Objects
+</H2>
+
+<P>
+The acronym PCM is short for Pulse Code Modulation and is the method used in ALSA
+and many other places to handle playback and capture of sampled sound data.
+
+<P>
+PCM objects in <tt class="module">alsaaudio</tt> are used to do exactly that, either play sample based
+sound or capture sound from some input source (perhaps a microphone). The PCM object
+constructor takes the following arguments:
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-6' xml:id='l2h-6' class="class">PCM</tt></b>(</nobr></td>
+ <td><var></var><big>[</big><var>type</var><big>]</big><var>, </var><big>[</big><var>mode</var><big>]</big><var>, </var><big>[</big><var>cardname</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+
+<P>
+<var>type</var> - can be either PCM_CAPTURE or PCM_PLAYBACK (default).
+
+<P>
+<var>mode</var> - can be either PCM_NONBLOCK, PCM_ASYNC, or PCM_NORMAL (the default).
+In PCM_NONBLOCK mode, calls to read will return immediately independent of wether
+there is any actual data to read. Similarly, write calls will return immediately
+without actually writing anything to the playout buffer if the buffer is full.
+
+<P>
+In the current version of <tt class="module">alsaaudio</tt> PCM_ASYNC is useless, since it relies
+on a callback procedure, which can't be specified from Python.
+
+<P>
+<var>cardname</var> - specifies which card should be used (this is only relevant
+if you have more than one sound card). Omit to use the default sound card
+
+<P>
+This will construct a PCM object with default settings:
+
+<P>
+Sample format: PCM_FORMAT_S16_LE
+<BR>
+Rate: 8000 Hz
+<BR>
+Channels: 2
+<BR>
+Period size: 32 frames
+<BR></dl>
+
+<P>
+PCM objects have the following methods:
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-7' xml:id='l2h-7' class="method">pcmtype</tt></b>(</nobr></td>
+ <td><var></var>)</td></tr></table></dt>
+<dd>
+Returns the type of PCM object. Either PCM_CAPTURE or PCM_PLAYBACK.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-8' xml:id='l2h-8' class="method">pcmmode</tt></b>(</nobr></td>
+ <td><var></var>)</td></tr></table></dt>
+<dd>
+Return the mode of the PCM object. One of PCM_NONBLOCK, PCM_ASYNC, or PCM_NORMAL
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-9' xml:id='l2h-9' class="method">cardname</tt></b>(</nobr></td>
+ <td><var></var>)</td></tr></table></dt>
+<dd>
+Return the name of the sound card used by this PCM object.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-10' xml:id='l2h-10' class="method">setchannels</tt></b>(</nobr></td>
+ <td><var>nchannels</var>)</td></tr></table></dt>
+<dd>
+Used to set the number of capture or playback channels. Common values are: 1 = mono, 2 = stereo,
+and 6 = full 6 channel audio. Few sound cards support more than 2 channels
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-11' xml:id='l2h-11' class="method">setrate</tt></b>(</nobr></td>
+ <td><var>rate</var>)</td></tr></table></dt>
+<dd>
+Set the sample rate in Hz for the device. Typical values are 8000 (poor sound), 16000, 44100 (cd quality),
+and 96000
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-12' xml:id='l2h-12' class="method">setformat</tt></b>(</nobr></td>
+ <td><var></var>)</td></tr></table></dt>
+<dd>
+The sound format of the device. Sound format controls how the PCM device interpret data for playback,
+and how data is encoded in captures.
+
+<P>
+The following formats are provided by ALSA:
+<div class="center"><table class="realtable">
+ <thead>
+ <tr>
+ <th class="left" >Format</th>
+ <th class="left" >Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_S8</Formats></td>
+ <td class="left" >Signed 8 bit samples for each channel</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_U8</Formats></td>
+ <td class="left" >Signed 8 bit samples for each channel</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_S16_LE</Formats></td>
+ <td class="left" >Signed 16 bit samples for each channel (Little Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_S16_BE</Formats></td>
+ <td class="left" >Signed 16 bit samples for each channel (Big Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_U16_LE</Formats></td>
+ <td class="left" >Unsigned 16 bit samples for each channel (Little Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_U16_BE</Formats></td>
+ <td class="left" >Unsigned 16 bit samples for each channel (Big Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_S24_LE</Formats></td>
+ <td class="left" >Signed 24 bit samples for each channel (Little Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_S24_BE</Formats></td>
+ <td class="left" >Signed 24 bit samples for each channel (Big Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_U24_LE</Formats></td>
+ <td class="left" >Unsigned 24 bit samples for each channel (Little Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_U24_BE</Formats></td>
+ <td class="left" >Unsigned 24 bit samples for each channel (Big Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_S32_LE</Formats></td>
+ <td class="left" >Signed 32 bit samples for each channel (Little Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_S32_BE</Formats></td>
+ <td class="left" >Signed 32 bit samples for each channel (Big Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_U32_LE</Formats></td>
+ <td class="left" >Unsigned 32 bit samples for each channel (Little Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_U32_BE</Formats></td>
+ <td class="left" >Unsigned 32 bit samples for each channel (Big Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_FLOAT_LE</Formats></td>
+ <td class="left" >32 bit samples encoded as float. (Little Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_FLOAT_BE</Formats></td>
+ <td class="left" >32 bit samples encoded as float (Big Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_FLOAT64_LE</Formats></td>
+ <td class="left" >64 bit samples encoded as float. (Little Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_FLOAT64_BE</Formats></td>
+ <td class="left" >64 bit samples encoded as float. (Big Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_MU_LAW</Formats></td>
+ <td class="left" >A logarithmic encoding (used by Sun .au files)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_A_LAW</Formats></td>
+ <td class="left" >Another logarithmic encoding</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_IMA_ADPCM</Formats></td>
+ <td class="left" >a 4:1 compressed format defined by the Interactive Multimedia Association</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_MPEG</Formats></td>
+ <td class="left" >MPEG encoded audio?</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_GSM</Formats></td>
+ <td class="left" >9600 constant rate encoding well suitet for speech</td></tr></tbody>
+</table></div>
+
+<P>
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-13' xml:id='l2h-13' class="method">setperiodsize</tt></b>(</nobr></td>
+ <td><var>period</var>)</td></tr></table></dt>
+<dd>
+Sets the actual period size in frames. Each write should consist of exactly this number of frames, and
+each read will return this number of frames (unless the device is in PCM_NONBLOCK mode, in which case
+it may return nothing at all)
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-14' xml:id='l2h-14' class="method">read</tt></b>(</nobr></td>
+ <td><var></var>)</td></tr></table></dt>
+<dd>
+In PCM_NORMAL mode, this function blocks until a full period is available, and then returns a
+tuple (length,data) where <em>length</em> is the size in bytes of the captured data, and <em>data</em>
+is the captured sound frames as a string. The length of the returned data will be periodsize*framesize
+bytes.
+
+<P>
+In PCM_NONBLOCK mode, the call will not block, but will return <code>(0,'')</code> if no new period
+has become available since the last call to read.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-15' xml:id='l2h-15' class="method">write</tt></b>(</nobr></td>
+ <td><var>data</var>)</td></tr></table></dt>
+<dd>
+Writes (plays) the sound in data. The length of data <em>must</em> be a multiple of the frame size, and
+<em>should</em> be exactly the size of a period. If less than 'period size' frames are provided, the actual
+playout will not happen until more data is written.
+
+<P>
+If the device is not in PCM_NONBLOCK mode, this call will block if the kernel buffer is full, and
+until enough sound has been played to allow the sound data to be buffered. The call always returns
+the size of the data provided
+
+<P>
+In PCM_NONBLOCK mode, the call will return immediately, with a return value of zero, if the buffer is
+full. In this case, the data should be written at a later time.
+
+<P>
+</dl>
+
+<P>
+<strong>A few hints on using PCM devices for playback</strong>
+
+<P>
+The most common reason for problems with playback of PCM audio, is that the people don't properly understand
+that writes to PCM devices must match <em>exactly</em> the data rate of the device.
+
+<P>
+If too little data is written to the device, it will underrun, and ugly clicking sounds will occur. Conversely,
+of too much data is written to the device, the write function will either block (PCM_NORMAL mode) or return zero
+(PCM_NONBLOCK mode).
+
+<P>
+If your program does nothing, but play sound, the easiest way is to put the device in PCM_NORMAL mode, and just
+write as much data to the device as possible. This strategy can also be achieved by using a separate thread
+with the sole task of playing out sound.
+
+<P>
+In GUI programs, however, it may be a better strategy to setup the device, preload the buffer with a few
+periods by calling write a couple of times, and then use some timer method to write one period size of data to
+the device every period. The purpose of the preloading is to avoid underrun clicks if the used timer
+doesn't expire exactly on time.
+
+<P>
+Also note, that most timer API's that you can find for Python will cummulate time delays: If you set the timer
+to expire after 1/10'th of a second, the actual timeout will happen slightly later, which will accumulate to
+quite a lot after a few seconds. Hint: use time.time() to check how much time has really passed, and add
+extra writes as nessecary.
+
+<P>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="4.1 PCM Terminology and"
+ href="node7.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="4 alsaaudio"
+ href="module-alsaaudio.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="4.3 Mixer Objects"
+ href="mixer-objects.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node7.html">4.1 PCM Terminology and</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-alsaaudio.html">4 alsaaudio</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="mixer-objects.html">4.3 Mixer Objects</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 0.2.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/previous.gif.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/previous.gif.svn-base
new file mode 100644
index 0000000..de1da16
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/previous.gif.svn-base
Binary files differ
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/pyalsaaudio.css.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/pyalsaaudio.css.svn-base
new file mode 100644
index 0000000..06a613c
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/pyalsaaudio.css.svn-base
@@ -0,0 +1,243 @@
+/*
+ * The first part of this is the standard CSS generated by LaTeX2HTML,
+ * with the "empty" declarations removed.
+ */
+
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.math { font-family: "Century Schoolbook", serif; }
+.math i { font-family: "Century Schoolbook", serif;
+ font-weight: bold }
+.boldmath { font-family: "Century Schoolbook", serif;
+ font-weight: bold }
+
+/*
+ * Implement both fixed-size and relative sizes.
+ *
+ * I think these can be safely removed, as it doesn't appear that
+ * LaTeX2HTML ever generates these, even though these are carried
+ * over from the LaTeX2HTML stylesheet.
+ */
+small.xtiny { font-size : xx-small; }
+small.tiny { font-size : x-small; }
+small.scriptsize { font-size : smaller; }
+small.footnotesize { font-size : small; }
+big.xlarge { font-size : large; }
+big.xxlarge { font-size : x-large; }
+big.huge { font-size : larger; }
+big.xhuge { font-size : xx-large; }
+
+/*
+ * Document-specific styles come next;
+ * these are added for the Python documentation.
+ *
+ * Note that the size specifications for the H* elements are because
+ * Netscape on Solaris otherwise doesn't get it right; they all end up
+ * the normal text size.
+ */
+
+body { color: #000000;
+ background-color: #ffffff; }
+
+a:link:active { color: #ff0000; }
+a:link:hover { background-color: #bbeeff; }
+a:visited:hover { background-color: #bbeeff; }
+a:visited { color: #551a8b; }
+a:link { color: #0000bb; }
+
+h1, h2, h3, h4, h5, h6 { font-family: avantgarde, sans-serif;
+ font-weight: bold; }
+h1 { font-size: 180%; }
+h2 { font-size: 150%; }
+h3, h4 { font-size: 120%; }
+
+/* These are section titles used in navigation links, so make sure we
+ * match the section header font here, even it not the weight.
+ */
+.sectref { font-family: avantgarde, sans-serif; }
+/* And the label before the titles in navigation: */
+.navlabel { font-size: 85%; }
+
+
+/* LaTeX2HTML insists on inserting <br> elements into headers which
+ * are marked with \label. This little bit of CSS magic ensures that
+ * these elements don't cause spurious whitespace to be added.
+ */
+h1>br, h2>br, h3>br,
+h4>br, h5>br, h6>br { display: none; }
+
+code, tt { font-family: "lucida typewriter", lucidatypewriter,
+ monospace; }
+var { font-family: times, serif;
+ font-style: italic;
+ font-weight: normal; }
+
+.Unix { font-variant: small-caps; }
+
+.typelabel { font-family: lucida, sans-serif; }
+
+.navigation td { background-color: #99ccff;
+ font-weight: bold;
+ font-family: avantgarde, sans-serif;
+ font-size: 110%; }
+
+div.warning { background-color: #fffaf0;
+ border: thin solid black;
+ padding: 1em;
+ margin-left: 2em;
+ margin-right: 2em; }
+
+div.warning .label { font-family: sans-serif;
+ font-size: 110%;
+ margin-right: 0.5em; }
+
+div.note { background-color: #fffaf0;
+ border: thin solid black;
+ padding: 1em;
+ margin-left: 2em;
+ margin-right: 2em; }
+
+div.note .label { margin-right: 0.5em;
+ font-family: sans-serif; }
+
+address { font-size: 80%; }
+.release-info { font-style: italic;
+ font-size: 80%; }
+
+.titlegraphic { vertical-align: top; }
+
+.verbatim pre { color: #00008b;
+ font-family: "lucida typewriter", lucidatypewriter,
+ monospace;
+ font-size: 90%; }
+.verbatim { margin-left: 2em; }
+.verbatim .footer { padding: 0.05in;
+ font-size: 85%;
+ background-color: #99ccff;
+ margin-right: 0.5in; }
+
+.grammar { background-color: #99ccff;
+ margin-right: 0.5in;
+ padding: 0.05in; }
+.grammar-footer { padding: 0.05in;
+ font-size: 85%; }
+.grammartoken { font-family: "lucida typewriter", lucidatypewriter,
+ monospace; }
+
+.productions { background-color: #bbeeff; }
+.productions a:active { color: #ff0000; }
+.productions a:link:hover { background-color: #99ccff; }
+.productions a:visited:hover { background-color: #99ccff; }
+.productions a:visited { color: #551a8b; }
+.productions a:link { color: #0000bb; }
+.productions table { vertical-align: baseline;
+ empty-cells: show; }
+.productions > table td,
+.productions > table th { padding: 2px; }
+.productions > table td:first-child,
+.productions > table td:last-child {
+ font-family: "lucida typewriter",
+ lucidatypewriter,
+ monospace;
+ }
+/* same as the second selector above, but expressed differently for Opera */
+.productions > table td:first-child + td + td {
+ font-family: "lucida typewriter",
+ lucidatypewriter,
+ monospace;
+ vertical-align: baseline;
+ }
+.productions > table td:first-child + td {
+ padding-left: 1em;
+ padding-right: 1em;
+ }
+.productions > table tr { vertical-align: baseline; }
+
+.email { font-family: avantgarde, sans-serif; }
+.mailheader { font-family: avantgarde, sans-serif; }
+.mimetype { font-family: avantgarde, sans-serif; }
+.newsgroup { font-family: avantgarde, sans-serif; }
+.url { font-family: avantgarde, sans-serif; }
+.file { font-family: avantgarde, sans-serif; }
+.guilabel { font-family: avantgarde, sans-serif; }
+
+.realtable { border-collapse: collapse;
+ border-color: black;
+ border-style: solid;
+ border-width: 0px 0px 2px 0px;
+ empty-cells: show;
+ margin-left: auto;
+ margin-right: auto;
+ padding-left: 0.4em;
+ padding-right: 0.4em;
+ }
+.realtable tbody { vertical-align: baseline; }
+.realtable tfoot { display: table-footer-group; }
+.realtable thead { background-color: #99ccff;
+ border-width: 0px 0px 2px 1px;
+ display: table-header-group;
+ font-family: avantgarde, sans-serif;
+ font-weight: bold;
+ vertical-align: baseline;
+ }
+.realtable thead :first-child {
+ border-width: 0px 0px 2px 0px;
+ }
+.realtable thead th { border-width: 0px 0px 2px 1px }
+.realtable td,
+.realtable th { border-color: black;
+ border-style: solid;
+ border-width: 0px 0px 1px 1px;
+ padding-left: 0.4em;
+ padding-right: 0.4em;
+ }
+.realtable td:first-child,
+.realtable th:first-child {
+ border-left-width: 0px;
+ vertical-align: baseline;
+ }
+.center { text-align: center; }
+.left { text-align: left; }
+.right { text-align: right; }
+
+.refcount-info { font-style: italic; }
+.refcount-info .value { font-weight: bold;
+ color: #006600; }
+
+/*
+ * Some decoration for the "See also:" blocks, in part inspired by some of
+ * the styling on Lars Marius Garshol's XSA pages.
+ * (The blue in the navigation bars is #99CCFF.)
+ */
+.seealso { background-color: #fffaf0;
+ border: thin solid black;
+ padding: 0pt 1em 4pt 1em; }
+
+.seealso > .heading { font-size: 110%;
+ font-weight: bold; }
+
+/*
+ * Class 'availability' is used for module availability statements at
+ * the top of modules.
+ */
+.availability .platform { font-weight: bold; }
+
+
+/*
+ * Additional styles for the distutils package.
+ */
+.du-command { font-family: monospace; }
+.du-option { font-family: avantgarde, sans-serif; }
+.du-filevar { font-family: avantgarde, sans-serif;
+ font-style: italic; }
+.du-xxx:before { content: "** ";
+ font-weight: bold; }
+.du-xxx:after { content: " **";
+ font-weight: bold; }
+
+
+/*
+ * Some specialization for printed output.
+ */
+@media print {
+ .online-navigation { display: none; }
+ }
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/pyalsaaudio.html.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/pyalsaaudio.html.svn-base
new file mode 100644
index 0000000..fc3e86f
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/pyalsaaudio.html.svn-base
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
+<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
+<link rel='contents' href='contents.html' title="Contents" />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="front.html" />
+<meta name='aesop' content='information' />
+<title>PyAlsaAudio</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></td>
+<td class='online-navigation'><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></td>
+<td class='online-navigation'><a rel="next" title="Front Matter"
+ href="front.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="front.html">Front Matter</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<div class="titlepage">
+<div class='center'>
+<h1>PyAlsaAudio</h1>
+<p><b><font size="+2">Casper Wilstrup</font></b></p>
+<p>cwi@unispeed.com</p>
+<p></p>
+</div>
+</div>
+
+<P>
+
+<p><br /></p><hr class='online-navigation' />
+<div class='online-navigation'>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></a>
+
+<UL CLASS="ChildLinks">
+<LI><A href="front.html">Front Matter</a>
+<LI><A href="contents.html">Contents</a>
+<UL>
+<LI><A href="node3.html">1 What is ALSA</a>
+<LI><A href="node4.html">2 ALSA and Python</a>
+<LI><A href="node5.html">3 Installation</a>
+<LI><A href="module-alsaaudio.html">4 <tt class="module">alsaaudio</tt></a>
+<UL>
+<LI><A href="node7.html">4.1 PCM Terminology and Concepts</a>
+<LI><A href="pcm-objects.html">4.2 PCM Objects</a>
+<LI><A href="mixer-objects.html">4.3 Mixer Objects</a>
+<LI><A href="pcm-example.html">4.4 ALSA Examples</a>
+</ul>
+</ul>
+<LI><A href="about.html">About this document ...</a>
+</ul>
+<!--End of Table of Child-Links-->
+</div>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></td>
+<td class='online-navigation'><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></td>
+<td class='online-navigation'><a rel="next" title="Front Matter"
+ href="front.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="front.html">Front Matter</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 0.2.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/pyfav.gif.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/pyfav.gif.svn-base
new file mode 100644
index 0000000..58271ed
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/pyfav.gif.svn-base
Binary files differ
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/up.gif.svn-base b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/up.gif.svn-base
new file mode 100644
index 0000000..a9d3e13
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/text-base/up.gif.svn-base
Binary files differ
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/about.html.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/about.html.svn-work
new file mode 100644
index 0000000..d2c4115
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/about.html.svn-work
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 64
+/svn/Shtoom/!svn/ver/1585/trunk/audio/pyalsaaudio/doc/about.html
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/blank.gif.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/blank.gif.svn-work
new file mode 100644
index 0000000..52ec074
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/blank.gif.svn-work
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 63
+/svn/Shtoom/!svn/ver/1274/trunk/audio/pyalsaaudio/doc/blank.gif
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/contents.gif.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/contents.gif.svn-work
new file mode 100644
index 0000000..ac50bbd
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/contents.gif.svn-work
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 66
+/svn/Shtoom/!svn/ver/1274/trunk/audio/pyalsaaudio/doc/contents.gif
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/contents.html.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/contents.html.svn-work
new file mode 100644
index 0000000..443432d
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/contents.html.svn-work
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 67
+/svn/Shtoom/!svn/ver/1585/trunk/audio/pyalsaaudio/doc/contents.html
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/front.html.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/front.html.svn-work
new file mode 100644
index 0000000..abbbcfc
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/front.html.svn-work
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 64
+/svn/Shtoom/!svn/ver/1585/trunk/audio/pyalsaaudio/doc/front.html
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/index.dat.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/index.dat.svn-work
new file mode 100644
index 0000000..fd24f9a
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/index.dat.svn-work
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 63
+/svn/Shtoom/!svn/ver/1274/trunk/audio/pyalsaaudio/doc/index.dat
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/index.gif.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/index.gif.svn-work
new file mode 100644
index 0000000..a2f5186
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/index.gif.svn-work
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 63
+/svn/Shtoom/!svn/ver/1274/trunk/audio/pyalsaaudio/doc/index.gif
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/index.html.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/index.html.svn-work
new file mode 100644
index 0000000..92d1677
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/index.html.svn-work
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 64
+/svn/Shtoom/!svn/ver/1585/trunk/audio/pyalsaaudio/doc/index.html
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/internals.pl.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/internals.pl.svn-work
new file mode 100644
index 0000000..b9d814a
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/internals.pl.svn-work
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 66
+/svn/Shtoom/!svn/ver/1274/trunk/audio/pyalsaaudio/doc/internals.pl
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/intlabels.pl.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/intlabels.pl.svn-work
new file mode 100644
index 0000000..5d25e60
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/intlabels.pl.svn-work
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 66
+/svn/Shtoom/!svn/ver/1585/trunk/audio/pyalsaaudio/doc/intlabels.pl
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/labels.pl.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/labels.pl.svn-work
new file mode 100644
index 0000000..64dd582
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/labels.pl.svn-work
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 63
+/svn/Shtoom/!svn/ver/1585/trunk/audio/pyalsaaudio/doc/labels.pl
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/mixer-objects.html.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/mixer-objects.html.svn-work
new file mode 100644
index 0000000..ac8fdd4
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/mixer-objects.html.svn-work
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/Shtoom/!svn/ver/1585/trunk/audio/pyalsaaudio/doc/mixer-objects.html
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/module-alsaaudio.html.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/module-alsaaudio.html.svn-work
new file mode 100644
index 0000000..2d9603a
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/module-alsaaudio.html.svn-work
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 75
+/svn/Shtoom/!svn/ver/1585/trunk/audio/pyalsaaudio/doc/module-alsaaudio.html
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/modules.gif.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/modules.gif.svn-work
new file mode 100644
index 0000000..d8101b2
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/modules.gif.svn-work
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 65
+/svn/Shtoom/!svn/ver/1274/trunk/audio/pyalsaaudio/doc/modules.gif
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/next.gif.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/next.gif.svn-work
new file mode 100644
index 0000000..c5cafe7
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/next.gif.svn-work
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 62
+/svn/Shtoom/!svn/ver/1274/trunk/audio/pyalsaaudio/doc/next.gif
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/node3.html.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/node3.html.svn-work
new file mode 100644
index 0000000..a6cf231
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/node3.html.svn-work
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 64
+/svn/Shtoom/!svn/ver/1585/trunk/audio/pyalsaaudio/doc/node3.html
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/node4.html.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/node4.html.svn-work
new file mode 100644
index 0000000..4046589
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/node4.html.svn-work
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 64
+/svn/Shtoom/!svn/ver/1585/trunk/audio/pyalsaaudio/doc/node4.html
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/node5.html.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/node5.html.svn-work
new file mode 100644
index 0000000..63c0f62
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/node5.html.svn-work
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 64
+/svn/Shtoom/!svn/ver/1585/trunk/audio/pyalsaaudio/doc/node5.html
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/node7.html.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/node7.html.svn-work
new file mode 100644
index 0000000..c5d1273
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/node7.html.svn-work
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 64
+/svn/Shtoom/!svn/ver/1585/trunk/audio/pyalsaaudio/doc/node7.html
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/pcm-example.html.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/pcm-example.html.svn-work
new file mode 100644
index 0000000..af3e8f0
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/pcm-example.html.svn-work
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 70
+/svn/Shtoom/!svn/ver/1585/trunk/audio/pyalsaaudio/doc/pcm-example.html
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/pcm-objects.html.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/pcm-objects.html.svn-work
new file mode 100644
index 0000000..2c2e3d0
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/pcm-objects.html.svn-work
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 70
+/svn/Shtoom/!svn/ver/1585/trunk/audio/pyalsaaudio/doc/pcm-objects.html
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/previous.gif.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/previous.gif.svn-work
new file mode 100644
index 0000000..101dadf
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/previous.gif.svn-work
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 66
+/svn/Shtoom/!svn/ver/1274/trunk/audio/pyalsaaudio/doc/previous.gif
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/pyalsaaudio.css.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/pyalsaaudio.css.svn-work
new file mode 100644
index 0000000..0667b51
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/pyalsaaudio.css.svn-work
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 69
+/svn/Shtoom/!svn/ver/1585/trunk/audio/pyalsaaudio/doc/pyalsaaudio.css
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/pyalsaaudio.html.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/pyalsaaudio.html.svn-work
new file mode 100644
index 0000000..5967be8
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/pyalsaaudio.html.svn-work
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 70
+/svn/Shtoom/!svn/ver/1585/trunk/audio/pyalsaaudio/doc/pyalsaaudio.html
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/pyfav.gif.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/pyfav.gif.svn-work
new file mode 100644
index 0000000..57581c8
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/pyfav.gif.svn-work
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 63
+/svn/Shtoom/!svn/ver/1274/trunk/audio/pyalsaaudio/doc/pyfav.gif
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/up.gif.svn-work b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/up.gif.svn-work
new file mode 100644
index 0000000..3a936ad
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/.svn/wcprops/up.gif.svn-work
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 60
+/svn/Shtoom/!svn/ver/1274/trunk/audio/pyalsaaudio/doc/up.gif
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/about.html b/arch_src/pyalsaaudio-0.2/doc/about.html
new file mode 100644
index 0000000..c47ebca
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/about.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
+<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
+<link rel='contents' href='contents.html' title="Contents" />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="prev" href="contents.html" />
+<link rel="parent" href="pyalsaaudio.html" />
+<meta name='aesop' content='information' />
+<title>About this document ...</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="4.4 ALSA Examples"
+ href="pcm-example.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="PyAlsaAudio"
+ href="pyalsaaudio.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="pcm-example.html">4.4 ALSA Examples</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="pyalsaaudio.html">PyAlsaAudio</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H1><A NAME="SECTION003000000000000000000">
+About this document ...</A>
+</H1>
+ <strong>PyAlsaAudio</strong>
+<p> This document was generated using the <a
+ href="http://saftsack.fs.uni-bayreuth.de/~latex2ht/">
+ <strong>LaTeX</strong>2<tt>HTML</tt></a> translator.
+</p>
+
+<p> <a
+ href="http://saftsack.fs.uni-bayreuth.de/~latex2ht/">
+ <strong>LaTeX</strong>2<tt>HTML</tt></a> is Copyright &copy;
+ 1993, 1994, 1995, 1996, 1997, <a
+ href="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos
+ Drakos</a>, Computer Based Learning Unit, University of
+ Leeds, and Copyright &copy; 1997, 1998, <a
+ href="http://www.maths.mq.edu.au/~ross/">Ross
+ Moore</a>, Mathematics Department, Macquarie University,
+ Sydney.
+</p>
+
+<p> The application of <a
+ href="http://saftsack.fs.uni-bayreuth.de/~latex2ht/">
+ <strong>LaTeX</strong>2<tt>HTML</tt></a> to the Python
+ documentation has been heavily tailored by Fred L. Drake,
+ Jr. Original navigation icons were contributed by Christopher
+ Petrilli.
+</p>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="4.4 ALSA Examples"
+ href="pcm-example.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="PyAlsaAudio"
+ href="pyalsaaudio.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="pcm-example.html">4.4 ALSA Examples</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="pyalsaaudio.html">PyAlsaAudio</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 0.2.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/arch_src/pyalsaaudio-0.2/doc/blank.gif b/arch_src/pyalsaaudio-0.2/doc/blank.gif
new file mode 100644
index 0000000..2e31f4e
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/blank.gif
Binary files differ
diff --git a/arch_src/pyalsaaudio-0.2/doc/blank.png b/arch_src/pyalsaaudio-0.2/doc/blank.png
new file mode 100644
index 0000000..2af5639
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/blank.png
Binary files differ
diff --git a/arch_src/pyalsaaudio-0.2/doc/contents.gif b/arch_src/pyalsaaudio-0.2/doc/contents.gif
new file mode 100644
index 0000000..6d299c4
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/contents.gif
Binary files differ
diff --git a/arch_src/pyalsaaudio-0.2/doc/contents.html b/arch_src/pyalsaaudio-0.2/doc/contents.html
new file mode 100644
index 0000000..7f5eb2a
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/contents.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
+<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
+<link rel='contents' href='contents.html' title="Contents" />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="about.html" />
+<link rel="prev" href="front.html" />
+<link rel="parent" href="pyalsaaudio.html" />
+<link rel="next" href="node3.html" />
+<meta name='aesop' content='information' />
+<title>Contents</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="Front Matter"
+ href="front.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="PyAlsaAudio"
+ href="pyalsaaudio.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="1 What is ALSA"
+ href="node3.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="front.html">Front Matter</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="pyalsaaudio.html">PyAlsaAudio</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node3.html">1 What is ALSA</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+<BR><h2><A NAME="SECTION002000000000000000000">
+Contents</A>
+</h2>
+<!--Table of Contents-->
+
+<UL CLASS="TofC">
+<LI><UL>
+<LI><A href="node3.html">1 What is ALSA</a>
+<LI><A href="node4.html">2 ALSA and Python</a>
+<LI><A href="node5.html">3 Installation</a>
+<LI><A href="module-alsaaudio.html">4 alsaaudio</a>
+<UL>
+<LI><A href="node7.html">4.1 PCM Terminology and Concepts</a>
+<LI><A href="pcm-objects.html">4.2 PCM Objects</a>
+<LI><A href="mixer-objects.html">4.3 Mixer Objects</a>
+<LI><A href="pcm-example.html">4.4 ALSA Examples</a>
+</ul></ul></ul>
+<!--End of Table of Contents-->
+<P>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="Front Matter"
+ href="front.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="PyAlsaAudio"
+ href="pyalsaaudio.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="1 What is ALSA"
+ href="node3.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="front.html">Front Matter</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="pyalsaaudio.html">PyAlsaAudio</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node3.html">1 What is ALSA</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 0.2.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/arch_src/pyalsaaudio-0.2/doc/contents.png b/arch_src/pyalsaaudio-0.2/doc/contents.png
new file mode 100644
index 0000000..3429be0
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/contents.png
Binary files differ
diff --git a/arch_src/pyalsaaudio-0.2/doc/front.html b/arch_src/pyalsaaudio-0.2/doc/front.html
new file mode 100644
index 0000000..bbcdbc5
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/front.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
+<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
+<link rel='contents' href='contents.html' title="Contents" />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="contents.html" />
+<link rel="prev" href="pyalsaaudio.html" />
+<link rel="parent" href="pyalsaaudio.html" />
+<link rel="next" href="contents.html" />
+<meta name='aesop' content='information' />
+<title>Front Matter</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="PyAlsaAudio"
+ href="pyalsaaudio.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="PyAlsaAudio"
+ href="pyalsaaudio.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="Contents"
+ href="contents.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="pyalsaaudio.html">PyAlsaAudio</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="pyalsaaudio.html">PyAlsaAudio</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="contents.html">Contents</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H1><A NAME="SECTION001000000000000000000"></A><A NAME="front"></A>
+<BR>
+Front Matter
+</H1>
+
+<P>
+This software is licensed under the PSF license - the same one used
+by the majority of the python distribution. Basically you can use it
+for anything you wish (even commercial purposes). There is no warranty
+whatsoever.
+
+<P>
+
+<H3>Abstract:</H3>
+<DIV CLASS="ABSTRACT">
+
+This package contains wrappers for accessing the ALSA api from Python. It
+is currently fairly complete for PCM devices and Mixer access. MIDI sequencer
+support is low on my priority list, but volunteers are welcome.
+
+<P>
+If you find bugs in the wrappers please notify me on email. Please
+don't send bug reports regarding ALSA specifically. There are several
+bugs in this api, and those should be reported to the ALSA team - not
+me.
+</DIV>
+<P>
+
+<P>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="PyAlsaAudio"
+ href="pyalsaaudio.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="PyAlsaAudio"
+ href="pyalsaaudio.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="Contents"
+ href="contents.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="pyalsaaudio.html">PyAlsaAudio</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="pyalsaaudio.html">PyAlsaAudio</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="contents.html">Contents</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 0.2.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/arch_src/pyalsaaudio-0.2/doc/index.dat b/arch_src/pyalsaaudio-0.2/doc/index.dat
new file mode 100644
index 0000000..8efff3f
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/index.dat
@@ -0,0 +1,27 @@
+<a href="node6.html"><tt class="module">alsaaudio</tt> (extension module)###DEF0000000608
+<a href="node6.html#l2h-2"><tt class="function">mixers()</tt> (in module alsaaudio)###0000000609
+<a href="node6.html#l2h-3"><tt class="class">PCM</tt> (class in alsaaudio)###0000000610
+<a href="node6.html#l2h-4"><tt class="class">Mixer</tt> (class in alsaaudio)###0000000611
+<a href="node6.html#l2h-5"><tt class="exception">ALSAAudioError</tt>###0000000612
+<a href="node8.html#l2h-6"><tt class="class">PCM</tt> (class in alsaaudio)###0000000622
+<a href="node8.html#l2h-7"><tt class="method">pcmtype()</tt> (PCM method)###0000000623
+<a href="node8.html#l2h-8"><tt class="method">pcmmode()</tt> (PCM method)###0000000624
+<a href="node8.html#l2h-9"><tt class="method">cardname()</tt> (PCM method)###0000000625
+<a href="node8.html#l2h-10"><tt class="method">setchannels()</tt> (PCM method)###0000000626
+<a href="node8.html#l2h-11"><tt class="method">setrate()</tt> (PCM method)###0000000627
+<a href="node8.html#l2h-12"><tt class="method">setformat()</tt> (PCM method)###0000000628
+<a href="node8.html#l2h-13"><tt class="method">setperiodsize()</tt> (PCM method)###0000000629
+<a href="node8.html#l2h-14"><tt class="method">read()</tt> (PCM method)###0000000630
+<a href="node8.html#l2h-15"><tt class="method">write()</tt> (PCM method)###0000000631
+<a href="node9.html#l2h-16"><tt class="class">Mixer</tt> (class in alsaaudio)###0000000633
+<a href="node9.html#l2h-17"><tt class="method">cardname()</tt> (Mixer method)###0000000634
+<a href="node9.html#l2h-18"><tt class="method">mixer()</tt> (Mixer method)###0000000635
+<a href="node9.html#l2h-19"><tt class="method">mixerid()</tt> (Mixer method)###0000000636
+<a href="node9.html#l2h-20"><tt class="method">switchcap()</tt> (Mixer method)###0000000637
+<a href="node9.html#l2h-21"><tt class="method">volumecap()</tt> (Mixer method)###0000000638
+<a href="node9.html#l2h-22"><tt class="method">getvolume()</tt> (Mixer method)###0000000639
+<a href="node9.html#l2h-23"><tt class="method">getmute()</tt> (Mixer method)###0000000640
+<a href="node9.html#l2h-24"><tt class="method">getrec()</tt> (Mixer method)###0000000641
+<a href="node9.html#l2h-25"><tt class="method">setvolume()</tt> (Mixer method)###0000000642
+<a href="node9.html#l2h-26"><tt class="method">setmute()</tt> (Mixer method)###0000000643
+<a href="node9.html#l2h-27"><tt class="method">setrec()</tt> (Mixer method)###0000000644
diff --git a/arch_src/pyalsaaudio-0.2/doc/index.gif b/arch_src/pyalsaaudio-0.2/doc/index.gif
new file mode 100644
index 0000000..32eecfb
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/index.gif
Binary files differ
diff --git a/arch_src/pyalsaaudio-0.2/doc/index.html b/arch_src/pyalsaaudio-0.2/doc/index.html
new file mode 100644
index 0000000..fc3e86f
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/index.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
+<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
+<link rel='contents' href='contents.html' title="Contents" />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="front.html" />
+<meta name='aesop' content='information' />
+<title>PyAlsaAudio</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></td>
+<td class='online-navigation'><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></td>
+<td class='online-navigation'><a rel="next" title="Front Matter"
+ href="front.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="front.html">Front Matter</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<div class="titlepage">
+<div class='center'>
+<h1>PyAlsaAudio</h1>
+<p><b><font size="+2">Casper Wilstrup</font></b></p>
+<p>cwi@unispeed.com</p>
+<p></p>
+</div>
+</div>
+
+<P>
+
+<p><br /></p><hr class='online-navigation' />
+<div class='online-navigation'>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></a>
+
+<UL CLASS="ChildLinks">
+<LI><A href="front.html">Front Matter</a>
+<LI><A href="contents.html">Contents</a>
+<UL>
+<LI><A href="node3.html">1 What is ALSA</a>
+<LI><A href="node4.html">2 ALSA and Python</a>
+<LI><A href="node5.html">3 Installation</a>
+<LI><A href="module-alsaaudio.html">4 <tt class="module">alsaaudio</tt></a>
+<UL>
+<LI><A href="node7.html">4.1 PCM Terminology and Concepts</a>
+<LI><A href="pcm-objects.html">4.2 PCM Objects</a>
+<LI><A href="mixer-objects.html">4.3 Mixer Objects</a>
+<LI><A href="pcm-example.html">4.4 ALSA Examples</a>
+</ul>
+</ul>
+<LI><A href="about.html">About this document ...</a>
+</ul>
+<!--End of Table of Child-Links-->
+</div>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></td>
+<td class='online-navigation'><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></td>
+<td class='online-navigation'><a rel="next" title="Front Matter"
+ href="front.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="front.html">Front Matter</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 0.2.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/arch_src/pyalsaaudio-0.2/doc/index.png b/arch_src/pyalsaaudio-0.2/doc/index.png
new file mode 100644
index 0000000..cd918af
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/index.png
Binary files differ
diff --git a/arch_src/pyalsaaudio-0.2/doc/internals.pl b/arch_src/pyalsaaudio-0.2/doc/internals.pl
new file mode 100644
index 0000000..4864f4b
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/internals.pl
@@ -0,0 +1,34 @@
+# LaTeX2HTML 2002-2 (1.70)
+# Associate internals original text with physical files.
+
+
+$key = q/module-alsaaudio/;
+$ref_files{$key} = "$dir".q|node6.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/pcm-objects/;
+$ref_files{$key} = "$dir".q|node8.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/front/;
+$ref_files{$key} = "$dir".q|node1.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/contents/;
+$ref_files{$key} = "$dir".q|node2.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/mixer-objects/;
+$ref_files{$key} = "$dir".q|node9.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/pcm-example/;
+$ref_files{$key} = "$dir".q|node10.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/about/;
+$ref_files{$key} = "$dir".q|node11.html|;
+$noresave{$key} = "$nosave";
+
+1;
+
diff --git a/arch_src/pyalsaaudio-0.2/doc/intlabels.pl b/arch_src/pyalsaaudio-0.2/doc/intlabels.pl
new file mode 100644
index 0000000..972ec5a
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/intlabels.pl
@@ -0,0 +1,30 @@
+%internal_labels = ();
+1; # hack in case there are no entries
+
+$internal_labels{"l2h-1"} = "/node6.html";
+$internal_labels{"l2h-2"} = "/node6.html";
+$internal_labels{"l2h-3"} = "/node6.html";
+$internal_labels{"l2h-4"} = "/node6.html";
+$internal_labels{"l2h-5"} = "/node6.html";
+$internal_labels{"l2h-6"} = "/node8.html";
+$internal_labels{"l2h-7"} = "/node8.html";
+$internal_labels{"l2h-8"} = "/node8.html";
+$internal_labels{"l2h-9"} = "/node8.html";
+$internal_labels{"l2h-10"} = "/node8.html";
+$internal_labels{"l2h-11"} = "/node8.html";
+$internal_labels{"l2h-12"} = "/node8.html";
+$internal_labels{"l2h-13"} = "/node8.html";
+$internal_labels{"l2h-14"} = "/node8.html";
+$internal_labels{"l2h-15"} = "/node8.html";
+$internal_labels{"l2h-16"} = "/node9.html";
+$internal_labels{"l2h-17"} = "/node9.html";
+$internal_labels{"l2h-18"} = "/node9.html";
+$internal_labels{"l2h-19"} = "/node9.html";
+$internal_labels{"l2h-20"} = "/node9.html";
+$internal_labels{"l2h-21"} = "/node9.html";
+$internal_labels{"l2h-22"} = "/node9.html";
+$internal_labels{"l2h-23"} = "/node9.html";
+$internal_labels{"l2h-24"} = "/node9.html";
+$internal_labels{"l2h-25"} = "/node9.html";
+$internal_labels{"l2h-26"} = "/node9.html";
+$internal_labels{"l2h-27"} = "/node9.html";
diff --git a/arch_src/pyalsaaudio-0.2/doc/labels.pl b/arch_src/pyalsaaudio-0.2/doc/labels.pl
new file mode 100644
index 0000000..f3d0859
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/labels.pl
@@ -0,0 +1,57 @@
+# LaTeX2HTML 2002-2-1 (1.70)
+# Associate labels original text with physical files.
+
+
+$key = q/module-alsaaudio/;
+$external_labels{$key} = "$URL/" . q|node6.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/pcm-objects/;
+$external_labels{$key} = "$URL/" . q|node8.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/front/;
+$external_labels{$key} = "$URL/" . q|node1.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/contents/;
+$external_labels{$key} = "$URL/" . q|node2.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/mixer-objects/;
+$external_labels{$key} = "$URL/" . q|node9.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/pcm-example/;
+$external_labels{$key} = "$URL/" . q|node10.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/about/;
+$external_labels{$key} = "$URL/" . q|node11.html|;
+$noresave{$key} = "$nosave";
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.70)
+# labels from external_latex_labels array.
+
+
+$key = q/module-alsaaudio/;
+$external_latex_labels{$key} = q|4|;
+$noresave{$key} = "$nosave";
+
+$key = q/pcm-objects/;
+$external_latex_labels{$key} = q|4.2|;
+$noresave{$key} = "$nosave";
+
+$key = q/mixer-objects/;
+$external_latex_labels{$key} = q|4.3|;
+$noresave{$key} = "$nosave";
+
+$key = q/pcm-example/;
+$external_latex_labels{$key} = q|4.4|;
+$noresave{$key} = "$nosave";
+
+1;
+
diff --git a/arch_src/pyalsaaudio-0.2/doc/mixer-objects.html b/arch_src/pyalsaaudio-0.2/doc/mixer-objects.html
new file mode 100644
index 0000000..5a4d516
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/mixer-objects.html
@@ -0,0 +1,327 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
+<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
+<link rel='contents' href='contents.html' title="Contents" />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="pcm-example.html" />
+<link rel="prev" href="pcm-objects.html" />
+<link rel="parent" href="module-alsaaudio.html" />
+<link rel="next" href="pcm-example.html" />
+<meta name='aesop' content='information' />
+<title>4.3 Mixer Objects</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="4.2 PCM Objects"
+ href="pcm-objects.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="4 alsaaudio"
+ href="module-alsaaudio.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="4.4 ALSA Examples"
+ href="pcm-example.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="pcm-objects.html">4.2 PCM Objects</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-alsaaudio.html">4 alsaaudio</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="pcm-example.html">4.4 ALSA Examples</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION002430000000000000000"></A>
+<A NAME="mixer-objects"></A>
+<BR>
+4.3 Mixer Objects
+</H2>
+
+<P>
+Mixer objects provides access to the ALSA mixer API.
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-16' xml:id='l2h-16' class="class">Mixer</tt></b>(</nobr></td>
+ <td><var></var><big>[</big><var>control</var><big>]</big><var>, </var><big>[</big><var>id</var><big>]</big><var>, </var><big>[</big><var>cardname</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+<var>control</var> - specifies which control to manipulate using this mixer object. The list
+of available controls can be found with the <tt class="module">alsaaudio</tt>.<tt class="function">mixers</tt> function.
+The default value is 'Master' - other common controls include 'Master Mono', 'PCM', 'Line', etc.
+
+<P>
+<var>id</var> - the id of the mixer control. Default is 0
+
+<P>
+<var>cardname</var> - specifies which card should be used (this is only relevant
+if you have more than one sound card). Omit to use the default sound card
+</dl>
+
+<P>
+Mixer objects have the following methods:
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-17' xml:id='l2h-17' class="method">cardname</tt></b>(</nobr></td>
+ <td><var></var>)</td></tr></table></dt>
+<dd>
+Return the name of the sound card used by this Mixer object
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-18' xml:id='l2h-18' class="method">mixer</tt></b>(</nobr></td>
+ <td><var></var>)</td></tr></table></dt>
+<dd>
+Return the name of the specific mixer controlled by this object, For example 'Master'
+or 'PCM'
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-19' xml:id='l2h-19' class="method">mixerid</tt></b>(</nobr></td>
+ <td><var></var>)</td></tr></table></dt>
+<dd>
+Return the ID of the ALSA mixer controlled by this object.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-20' xml:id='l2h-20' class="method">switchcap</tt></b>(</nobr></td>
+ <td><var></var>)</td></tr></table></dt>
+<dd>
+Returns a list of the switches which are defined by this specific mixer. Possible values in
+this list are:
+
+<P>
+<div class="center"><table class="realtable">
+ <thead>
+ <tr>
+ <th class="left" >Switch</th>
+ <th class="left" >Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr><td class="left" valign="baseline"><Volume Capabilities>'Mute'</Volume></td>
+ <td class="left" >This mixer can be muted</td></tr>
+ <tr><td class="left" valign="baseline"><Volume Capabilities>'Joined Mute'</Volume></td>
+ <td class="left" >This mixer can mute all channels at the same time</td></tr>
+ <tr><td class="left" valign="baseline"><Volume Capabilities>'Playback Mute'</Volume></td>
+ <td class="left" >This mixer can mute the playback output</td></tr>
+ <tr><td class="left" valign="baseline"><Volume Capabilities>'Joined Playback Mute'</Volume></td>
+ <td class="left" >Mute playback for all channels at the same time</td></tr>
+ <tr><td class="left" valign="baseline"><Volume Capabilities>'Capture Mute'</Volume></td>
+ <td class="left" >Mute sound capture</td></tr>
+ <tr><td class="left" valign="baseline"><Volume Capabilities>'Joined Capture Mute'</Volume></td>
+ <td class="left" >Mute sound capture for all channels at a time</td></tr>
+ <tr><td class="left" valign="baseline"><Volume Capabilities>'Capture Exclusive'</Volume></td>
+ <td class="left" >Not quite sure what this is</td></tr></tbody>
+</table></div>
+
+<P>
+To manipulate these swithes use the <tt class="method">setrec</tt> or <tt class="method">setmute</tt> methods
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-21' xml:id='l2h-21' class="method">volumecap</tt></b>(</nobr></td>
+ <td><var></var>)</td></tr></table></dt>
+<dd>
+Returns a list of the volume control capabilities of this mixer. Possible values in
+the list are:
+
+<P>
+<div class="center"><table class="realtable">
+ <thead>
+ <tr>
+ <th class="left" >Capability</th>
+ <th class="left" >Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr><td class="left" valign="baseline"><Volume Capabilities>'Volume'</Volume></td>
+ <td class="left" >This mixer can control volume</td></tr>
+ <tr><td class="left" valign="baseline"><Volume Capabilities>'Joined Volume'</Volume></td>
+ <td class="left" >This mixer can control volume for all channels at the same time</td></tr>
+ <tr><td class="left" valign="baseline"><Volume Capabilities>'Playback Volume'</Volume></td>
+ <td class="left" >This mixer can manipulate the playback volume</td></tr>
+ <tr><td class="left" valign="baseline"><Volume Capabilities>'Joined Playback Volume'</Volume></td>
+ <td class="left" >Manipulate playback volumne for all channels at the same time</td></tr>
+ <tr><td class="left" valign="baseline"><Volume Capabilities>'Capture Volume'</Volume></td>
+ <td class="left" >Manipulate sound capture volume</td></tr>
+ <tr><td class="left" valign="baseline"><Volume Capabilities>'Joined Capture Volume'</Volume></td>
+ <td class="left" >Manipulate sound capture volume for all channels at a time</td></tr></tbody>
+</table></div>
+
+<P>
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-22' xml:id='l2h-22' class="method">getvolume</tt></b>(</nobr></td>
+ <td><var></var><big>[</big><var>direction</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Returns a list with the current volume settings for each channel. The list elements
+are integer percentages.
+
+<P>
+The optional <var>direction</var> argument can be either 'playback' or 'capture', which is relevant
+if the mixer can control both playback and capture volume. The default value is 'playback'
+if the mixer has this capability, otherwise 'capture'
+
+<P>
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-23' xml:id='l2h-23' class="method">getmute</tt></b>(</nobr></td>
+ <td><var></var>)</td></tr></table></dt>
+<dd>
+Return a list indicating the current mute setting for each channel. 0 means not muted, 1 means muted.
+
+<P>
+This method will fail if the mixer has no playback switch capabilities.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-24' xml:id='l2h-24' class="method">getrec</tt></b>(</nobr></td>
+ <td><var></var>)</td></tr></table></dt>
+<dd>
+Return a list indicating the current record mute setting for each channel. 0 means not recording, 1
+means not recording.
+
+<P>
+This method will fail if the mixer has no capture switch capabilities.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-25' xml:id='l2h-25' class="method">setvolume</tt></b>(</nobr></td>
+ <td><var>volume,</var><big>[</big><var>channel</var><big>]</big><var>,</var><big>[</big><var>direction</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Change the current volume settings for this mixer. The <var>volume</var> argument controls
+the new volume setting as an integer percentage.
+
+<P>
+If the optional argument <var>channel</var> is present, the volume is set only for this channel. This
+assumes that the mixer can control the volume for the channels independently.
+
+<P>
+The optional <var>direction</var> argument can be either 'playback' or 'capture' is relevant if the mixer
+has independent playback and capture volume capabilities, and controls which of the volumes
+if changed. The default is 'playback' if the mixer has this capability, otherwise 'capture'.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-26' xml:id='l2h-26' class="method">setmute</tt></b>(</nobr></td>
+ <td><var>mute, </var><big>[</big><var>channel</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Sets the mute flag to a new value. The <var>mute</var> argument is either 0 for not muted, or 1 for muted.
+
+<P>
+The optional <var>channel</var> argument controls which channel is muted. The default is to set the mute flag
+for all channels.
+
+<P>
+This method will fail if the mixer has no playback mute capabilities
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-27' xml:id='l2h-27' class="method">setrec</tt></b>(</nobr></td>
+ <td><var>capture,</var><big>[</big><var>channel</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Sets the capture mute flag to a new value. The <var>capture</var> argument is either 0 for no capture,
+or 1 for capture.
+
+<P>
+The optional <var>channel</var> argument controls which channel is changed. The default is to set the capture flag
+for all channels.
+
+<P>
+This method will fail if the mixer has no capture switch capabilities
+</dl>
+
+<P>
+<b>A Note on the ALSA Mixer API</b>
+
+<P>
+The ALSA mixer API is extremely complicated - and hardly documented at all. <tt class="module">alsaaudio</tt> implements
+a much simplified way to access this API. In designing the API I've had to make some choices which
+may limit what can and cannot be controlled through the API. However, If I had chosen to implement the
+full API, I would have reexposed the horrible complexity/documentation ratio of the underlying API.
+At least the <tt class="module">alsaaudio</tt> API is easy to understand and use.
+
+<P>
+If my design choises prevents you from doing something that the underlying API would have allowed,
+please let me know, so I can incorporate these need into future versions.
+
+<P>
+If the current state of affairs annoy you, the best you can do is to write a HOWTO on the API and
+make this available on the net. Until somebody does this, the availability of ALSA mixer capable
+devices will stay quite limited.
+
+<P>
+Unfortunately, I'm not able to create such a HOWTO myself, since I only understand half of the API,
+and that which I do understand has come from a painful trial and error process.
+
+<P>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="4.2 PCM Objects"
+ href="pcm-objects.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="4 alsaaudio"
+ href="module-alsaaudio.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="4.4 ALSA Examples"
+ href="pcm-example.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="pcm-objects.html">4.2 PCM Objects</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-alsaaudio.html">4 alsaaudio</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="pcm-example.html">4.4 ALSA Examples</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 0.2.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/arch_src/pyalsaaudio-0.2/doc/module-alsaaudio.html b/arch_src/pyalsaaudio-0.2/doc/module-alsaaudio.html
new file mode 100644
index 0000000..c3673ee
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/module-alsaaudio.html
@@ -0,0 +1,167 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
+<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
+<link rel='contents' href='contents.html' title="Contents" />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="prev" href="node5.html" />
+<link rel="parent" href="contents.html" />
+<link rel="next" href="node7.html" />
+<meta name='aesop' content='information' />
+<title>4 alsaaudio</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="3 Installation"
+ href="node5.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="Contents"
+ href="contents.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="4.1 PCM Terminology and"
+ href="node7.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node5.html">3 Installation</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="contents.html">Contents</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node7.html">4.1 PCM Terminology and</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H1><A NAME="SECTION002400000000000000000">
+4 <tt class="module">alsaaudio</tt></A>
+</H1>
+
+<P>
+<A NAME="module-alsaaudio"></A>
+<P>
+
+<p class="availability">Availability: <span
+ class="platform">Linux</span>.</p>
+
+<P>
+
+<P>
+
+<P>
+The <tt class="module">alsaaudio</tt> module defines functions and classes for using
+ALSA.
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-2' xml:id='l2h-2' class="function">mixers</tt></b>(</nobr></td>
+ <td><var></var><big>[</big><var>cardname</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+List the available mixers. The optional <var>cardname</var> specifies which
+card should be queried (this is only relevant if you have more than one
+sound card). Omit to use the default sound card
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-3' xml:id='l2h-3' class="class">PCM</tt></b>(</nobr></td>
+ <td><var></var><big>[</big><var>type</var><big>]</big><var>, </var><big>[</big><var>mode</var><big>]</big><var>, </var><big>[</big><var>cardname</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+This class is used to represent a PCM device (both playback and capture devices).
+The arguments are:
+<BR><var>type</var> - can be either PCM_CAPTURE or PCM_PLAYBACK (default).
+<BR><var>mode</var> - can be either PCM_NONBLOCK, PCM_ASYNC, or PCM_NORMAL (the default).
+<BR><var>cardname</var> - specifies which card should be used (this is only relevant
+if you have more than one sound card). Omit to use the default sound card
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-4' xml:id='l2h-4' class="class">Mixer</tt></b>(</nobr></td>
+ <td><var></var><big>[</big><var>control</var><big>]</big><var>, </var><big>[</big><var>id</var><big>]</big><var>, </var><big>[</big><var>cardname</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+This class is used to access a specific ALSA mixer.
+The arguments are:
+<BR><var>control</var> - Name of the chosen mixed (default is Master).
+<BR><var>id</var> - id of mixer (default is 0) - More explaniation needed here
+<BR><var>cardname</var> specifies which card should be used (this is only relevant
+if you have more than one sound card). Omit to use the default sound card
+</dl>
+
+<P>
+<dl><dt><b><span class="typelabel">exception</span>&nbsp;<tt id='l2h-5' xml:id='l2h-5' class="exception">ALSAAudioError</tt></b></dt>
+<dd>
+Exception raised when an operation fails for a ALSA specific reason.
+The exception argument is a string describing the reason of the
+failure.
+</dd></dl>
+
+<P>
+
+<p><br /></p><hr class='online-navigation' />
+<div class='online-navigation'>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></a>
+
+<UL CLASS="ChildLinks">
+<LI><A href="node7.html">4.1 PCM Terminology and Concepts</a>
+<LI><A href="pcm-objects.html">4.2 PCM Objects</a>
+<LI><A href="mixer-objects.html">4.3 Mixer Objects</a>
+<LI><A href="pcm-example.html">4.4 ALSA Examples</a>
+</ul>
+<!--End of Table of Child-Links-->
+</div>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="3 Installation"
+ href="node5.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="Contents"
+ href="contents.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="4.1 PCM Terminology and"
+ href="node7.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node5.html">3 Installation</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="contents.html">Contents</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node7.html">4.1 PCM Terminology and</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 0.2.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/arch_src/pyalsaaudio-0.2/doc/modules.gif b/arch_src/pyalsaaudio-0.2/doc/modules.gif
new file mode 100644
index 0000000..f5860b6
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/modules.gif
Binary files differ
diff --git a/arch_src/pyalsaaudio-0.2/doc/modules.png b/arch_src/pyalsaaudio-0.2/doc/modules.png
new file mode 100644
index 0000000..8fa8b75
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/modules.png
Binary files differ
diff --git a/arch_src/pyalsaaudio-0.2/doc/next.gif b/arch_src/pyalsaaudio-0.2/doc/next.gif
new file mode 100644
index 0000000..5dcaff8
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/next.gif
Binary files differ
diff --git a/arch_src/pyalsaaudio-0.2/doc/next.png b/arch_src/pyalsaaudio-0.2/doc/next.png
new file mode 100644
index 0000000..cfe5e51
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/next.png
Binary files differ
diff --git a/arch_src/pyalsaaudio-0.2/doc/node3.html b/arch_src/pyalsaaudio-0.2/doc/node3.html
new file mode 100644
index 0000000..e848a78
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/node3.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
+<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
+<link rel='contents' href='contents.html' title="Contents" />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="node4.html" />
+<link rel="prev" href="contents.html" />
+<link rel="parent" href="contents.html" />
+<link rel="next" href="node4.html" />
+<meta name='aesop' content='information' />
+<title>1 What is ALSA</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="Contents"
+ href="contents.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="Contents"
+ href="contents.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2 ALSA and Python"
+ href="node4.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="contents.html">Contents</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="contents.html">Contents</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node4.html">2 ALSA and Python</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H1><A NAME="SECTION002100000000000000000">
+1 What is ALSA</A>
+</H1>
+
+<P>
+The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI
+functionality to the Linux operating system.
+
+<P>
+Logically ALSA consists of these components:
+
+<UL>
+<LI>A set of kernel drivers.
+<BR>
+These drivers are responsible for handling the physical sound
+ hardware from within the Linux kernel, and have been the standard
+ sound implementation in Linux since kernel version 2.5
+</LI>
+<LI>A kernel level API for manipulating the ALSA devices.
+</LI>
+<LI>A user-space C library for simplified access to the sound hardware
+ from userspace applications. This library is called <i>libasound</i>
+ and is required by all ALSA capable applications.
+</LI>
+</UL>
+
+<P>
+More information about ALSA may be found on the project homepage
+<a class="url" href="http://www.alsa-project.org">http://www.alsa-project.org</a>
+<P>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="Contents"
+ href="contents.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="Contents"
+ href="contents.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2 ALSA and Python"
+ href="node4.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="contents.html">Contents</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="contents.html">Contents</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node4.html">2 ALSA and Python</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 0.2.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/arch_src/pyalsaaudio-0.2/doc/node4.html b/arch_src/pyalsaaudio-0.2/doc/node4.html
new file mode 100644
index 0000000..9c6ab01
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/node4.html
@@ -0,0 +1,116 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
+<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
+<link rel='contents' href='contents.html' title="Contents" />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="node5.html" />
+<link rel="prev" href="node3.html" />
+<link rel="parent" href="contents.html" />
+<link rel="next" href="node5.html" />
+<meta name='aesop' content='information' />
+<title>2 ALSA and Python</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="1 What is ALSA"
+ href="node3.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="Contents"
+ href="contents.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="3 Installation"
+ href="node5.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node3.html">1 What is ALSA</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="contents.html">Contents</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node5.html">3 Installation</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H1><A NAME="SECTION002200000000000000000">
+2 ALSA and Python</A>
+</H1>
+
+<P>
+The older Linux sound API (OSS) which is now deprecated is well supported
+from the standard Python library, through the ossaudiodev module. No native
+ALSA support exists in the standard library (yet).
+
+<P>
+There are a few other ``ALSA for Python'' projects available, including at
+least two different projects called pyAlsa. Neither of these seem to be under
+active development at the time - and neither are very feature complete.
+
+<P>
+I wrote PyAlsaAudio to fill this gap. My long term goal is to have the module
+included in the standard Python library, but that is probably a while of yet.
+
+<P>
+PyAlsaAudio hass full support for sound capture, playback of sound, as well as
+the ALSA Mixer API.
+
+<P>
+MIDI support is not available, and since I don't own any MIDI hardware, it's
+difficult for me to implement it. Volunteers to work on this would be greatly
+appreciated
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="1 What is ALSA"
+ href="node3.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="Contents"
+ href="contents.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="3 Installation"
+ href="node5.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node3.html">1 What is ALSA</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="contents.html">Contents</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node5.html">3 Installation</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 0.2.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/arch_src/pyalsaaudio-0.2/doc/node5.html b/arch_src/pyalsaaudio-0.2/doc/node5.html
new file mode 100644
index 0000000..923ac75
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/node5.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
+<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
+<link rel='contents' href='contents.html' title="Contents" />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="module-alsaaudio.html" />
+<link rel="prev" href="node4.html" />
+<link rel="parent" href="contents.html" />
+<link rel="next" href="module-alsaaudio.html" />
+<meta name='aesop' content='information' />
+<title>3 Installation</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2 ALSA and Python"
+ href="node4.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="Contents"
+ href="contents.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="4 alsaaudio"
+ href="module-alsaaudio.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node4.html">2 ALSA and Python</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="contents.html">Contents</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="module-alsaaudio.html">4 alsaaudio</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H1><A NAME="SECTION002300000000000000000">
+3 Installation</A>
+</H1>
+
+<P>
+Note: the wrappers link with the alsasound library (from the alsa-lib
+package). Verify that this is installed by looking for /usr/lib/libasound.so
+before building. Naturally you also need to use a kernel with proper ALSA
+support. This is the default in Linux kernel 2.6 and later. If you are using
+kernel version 2.4 you may need to install the ALSA patches yourself - although
+most distributions ship with ALSA kernels.
+
+<P>
+To install, execute the following:
+<BR><div class="verbatim"><pre>
+$ python setup.py build
+</pre></div>
+
+<P>
+And then as root:
+<BR><div class="verbatim"><pre>
+# python setup.py install
+</pre></div>
+
+<P>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2 ALSA and Python"
+ href="node4.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="Contents"
+ href="contents.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="4 alsaaudio"
+ href="module-alsaaudio.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node4.html">2 ALSA and Python</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="contents.html">Contents</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="module-alsaaudio.html">4 alsaaudio</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 0.2.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/arch_src/pyalsaaudio-0.2/doc/node7.html b/arch_src/pyalsaaudio-0.2/doc/node7.html
new file mode 100644
index 0000000..f58333a
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/node7.html
@@ -0,0 +1,169 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
+<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
+<link rel='contents' href='contents.html' title="Contents" />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="pcm-objects.html" />
+<link rel="prev" href="module-alsaaudio.html" />
+<link rel="parent" href="module-alsaaudio.html" />
+<link rel="next" href="pcm-objects.html" />
+<meta name='aesop' content='information' />
+<title>4.1 PCM Terminology and Concepts</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="4 alsaaudio"
+ href="module-alsaaudio.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="4 alsaaudio"
+ href="module-alsaaudio.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="4.2 PCM Objects"
+ href="pcm-objects.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="module-alsaaudio.html">4 alsaaudio</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-alsaaudio.html">4 alsaaudio</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="pcm-objects.html">4.2 PCM Objects</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION002410000000000000000">
+4.1 PCM Terminology and Concepts</A>
+</H2>
+
+<P>
+In order to use PCM devices it is useful to be familiar with some concepts and
+terminology.
+
+<P>
+<DL>
+<DT><STRONG>Sample</STRONG></DT>
+<DD>PCM audio, whether it is input or output, consists at the lowest level
+of a number of single samples. A sample represents the sound in a single channel in
+a brief interval. If more than one channel is in use, more than one sample is required
+for each interval to describe the sound. Samples can be of many different sizes, ranging
+from 8 bit to 64 bit presition. The specific format of each sample can also vary - they
+can be big endian byte order, little endian byte order, or even floats.
+
+<P>
+</DD>
+<DT><STRONG>Frame</STRONG></DT>
+<DD>A frame consists of exactly one sample per channel. If there is only one
+channel (Mono sound) a frame is simply a single sample. If the sound is stereo, each frame
+consists of two samples, etc.
+
+<P>
+</DD>
+<DT><STRONG>Frame size</STRONG></DT>
+<DD>This is the size in bytes of each frame. This can vary a lot: if each sample is
+8 bits, and we're handling mono sound, the frame size is one byte. Similarly in 6 channel audio with
+64 bit floating point samples, the frame size is 48 bytes
+
+<P>
+</DD>
+<DT><STRONG>Rate</STRONG></DT>
+<DD>PCM sound consists of a flow of sound frames. The sound rate controls how often
+the current frame is replaced. For example, a rate of 8000 Hz means that a new frame is played
+or captured 8000 times per second.
+
+<P>
+</DD>
+<DT><STRONG>Data rate</STRONG></DT>
+<DD>This is the number of bytes, which must be recorded or provided per second
+at a certain frame size and rate.
+
+<P>
+8000 Hz mono sound with 8 bit (1 byte) samples has a data rate of 8000 * 1 * 1 = 8 kb/s
+
+<P>
+At the other end of the scale, 96000 Hz, 6 channel sound with 64 bit (8 bytes) samples
+has a data rate of 96000 * 6 * 8 = 4608 kb/s (almost 5 Mb sound data per second)
+
+<P>
+</DD>
+<DT><STRONG>Period</STRONG></DT>
+<DD>When the hardware processes data this is done in chunks of frames. The time interval
+between each processing (A/D or D/A conversion) is known as the period. The size of the period has
+direct implication on the latency of the sound input or output. For low-latency the period size should
+be very small, while low CPU resource usage would usually demand larger period sizes. With ALSA, the
+CPU utilization is not impacted much by the period size, since the kernel layer buffers multiple
+periods internally, so each period generates an interrupt and a memory copy, but userspace can be
+slower and read or write multiple periods at the same time.
+
+<P>
+</DD>
+<DT><STRONG>Period size</STRONG></DT>
+<DD>This is the size of each period in Hz. <em>Not bytes, but Hz!.</em> In <tt class="module">alsaaudio</tt>
+the period size is set directly, and it is therefore important to understand the significance of this
+number. If the period size is configured to for example 32, each write should contain exactly 32 frames
+of sound data, and each read will return either 32 frames of data or nothing at all.
+
+<P>
+</DD>
+</DL>
+
+<P>
+Once you understand these concepts, you will be ready to actually utilize PCM API. Read on.
+
+<P>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="4 alsaaudio"
+ href="module-alsaaudio.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="4 alsaaudio"
+ href="module-alsaaudio.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="4.2 PCM Objects"
+ href="pcm-objects.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="module-alsaaudio.html">4 alsaaudio</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-alsaaudio.html">4 alsaaudio</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="pcm-objects.html">4.2 PCM Objects</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 0.2.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/arch_src/pyalsaaudio-0.2/doc/pcm-example.html b/arch_src/pyalsaaudio-0.2/doc/pcm-example.html
new file mode 100644
index 0000000..d458bac
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/pcm-example.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
+<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
+<link rel='contents' href='contents.html' title="Contents" />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="prev" href="mixer-objects.html" />
+<link rel="parent" href="module-alsaaudio.html" />
+<link rel="next" href="about.html" />
+<meta name='aesop' content='information' />
+<title>4.4 ALSA Examples </title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="4.3 Mixer Objects"
+ href="mixer-objects.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="4 alsaaudio"
+ href="module-alsaaudio.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="About this document ..."
+ href="about.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="mixer-objects.html">4.3 Mixer Objects</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-alsaaudio.html">4 alsaaudio</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="about.html">About this document ...</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION002440000000000000000"></A><A NAME="pcm-example"></A>
+<BR>
+4.4 ALSA Examples
+</H2>
+
+<P>
+For now, the only examples available are the 'playbacktest.py' and the 'recordtest.py' programs included.
+This will change in a future version.
+
+<P>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="4.3 Mixer Objects"
+ href="mixer-objects.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="4 alsaaudio"
+ href="module-alsaaudio.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="About this document ..."
+ href="about.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="mixer-objects.html">4.3 Mixer Objects</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-alsaaudio.html">4 alsaaudio</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="about.html">About this document ...</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 0.2.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/arch_src/pyalsaaudio-0.2/doc/pcm-objects.html b/arch_src/pyalsaaudio-0.2/doc/pcm-objects.html
new file mode 100644
index 0000000..3fc5d78
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/pcm-objects.html
@@ -0,0 +1,331 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
+<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
+<link rel='contents' href='contents.html' title="Contents" />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="mixer-objects.html" />
+<link rel="prev" href="node7.html" />
+<link rel="parent" href="module-alsaaudio.html" />
+<link rel="next" href="mixer-objects.html" />
+<meta name='aesop' content='information' />
+<title>4.2 PCM Objects</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="4.1 PCM Terminology and"
+ href="node7.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="4 alsaaudio"
+ href="module-alsaaudio.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="4.3 Mixer Objects"
+ href="mixer-objects.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node7.html">4.1 PCM Terminology and</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-alsaaudio.html">4 alsaaudio</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="mixer-objects.html">4.3 Mixer Objects</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION002420000000000000000"></A>
+<A NAME="pcm-objects"></A>
+<BR>
+4.2 PCM Objects
+</H2>
+
+<P>
+The acronym PCM is short for Pulse Code Modulation and is the method used in ALSA
+and many other places to handle playback and capture of sampled sound data.
+
+<P>
+PCM objects in <tt class="module">alsaaudio</tt> are used to do exactly that, either play sample based
+sound or capture sound from some input source (perhaps a microphone). The PCM object
+constructor takes the following arguments:
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-6' xml:id='l2h-6' class="class">PCM</tt></b>(</nobr></td>
+ <td><var></var><big>[</big><var>type</var><big>]</big><var>, </var><big>[</big><var>mode</var><big>]</big><var>, </var><big>[</big><var>cardname</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+
+<P>
+<var>type</var> - can be either PCM_CAPTURE or PCM_PLAYBACK (default).
+
+<P>
+<var>mode</var> - can be either PCM_NONBLOCK, PCM_ASYNC, or PCM_NORMAL (the default).
+In PCM_NONBLOCK mode, calls to read will return immediately independent of wether
+there is any actual data to read. Similarly, write calls will return immediately
+without actually writing anything to the playout buffer if the buffer is full.
+
+<P>
+In the current version of <tt class="module">alsaaudio</tt> PCM_ASYNC is useless, since it relies
+on a callback procedure, which can't be specified from Python.
+
+<P>
+<var>cardname</var> - specifies which card should be used (this is only relevant
+if you have more than one sound card). Omit to use the default sound card
+
+<P>
+This will construct a PCM object with default settings:
+
+<P>
+Sample format: PCM_FORMAT_S16_LE
+<BR>
+Rate: 8000 Hz
+<BR>
+Channels: 2
+<BR>
+Period size: 32 frames
+<BR></dl>
+
+<P>
+PCM objects have the following methods:
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-7' xml:id='l2h-7' class="method">pcmtype</tt></b>(</nobr></td>
+ <td><var></var>)</td></tr></table></dt>
+<dd>
+Returns the type of PCM object. Either PCM_CAPTURE or PCM_PLAYBACK.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-8' xml:id='l2h-8' class="method">pcmmode</tt></b>(</nobr></td>
+ <td><var></var>)</td></tr></table></dt>
+<dd>
+Return the mode of the PCM object. One of PCM_NONBLOCK, PCM_ASYNC, or PCM_NORMAL
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-9' xml:id='l2h-9' class="method">cardname</tt></b>(</nobr></td>
+ <td><var></var>)</td></tr></table></dt>
+<dd>
+Return the name of the sound card used by this PCM object.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-10' xml:id='l2h-10' class="method">setchannels</tt></b>(</nobr></td>
+ <td><var>nchannels</var>)</td></tr></table></dt>
+<dd>
+Used to set the number of capture or playback channels. Common values are: 1 = mono, 2 = stereo,
+and 6 = full 6 channel audio. Few sound cards support more than 2 channels
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-11' xml:id='l2h-11' class="method">setrate</tt></b>(</nobr></td>
+ <td><var>rate</var>)</td></tr></table></dt>
+<dd>
+Set the sample rate in Hz for the device. Typical values are 8000 (poor sound), 16000, 44100 (cd quality),
+and 96000
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-12' xml:id='l2h-12' class="method">setformat</tt></b>(</nobr></td>
+ <td><var></var>)</td></tr></table></dt>
+<dd>
+The sound format of the device. Sound format controls how the PCM device interpret data for playback,
+and how data is encoded in captures.
+
+<P>
+The following formats are provided by ALSA:
+<div class="center"><table class="realtable">
+ <thead>
+ <tr>
+ <th class="left" >Format</th>
+ <th class="left" >Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_S8</Formats></td>
+ <td class="left" >Signed 8 bit samples for each channel</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_U8</Formats></td>
+ <td class="left" >Signed 8 bit samples for each channel</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_S16_LE</Formats></td>
+ <td class="left" >Signed 16 bit samples for each channel (Little Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_S16_BE</Formats></td>
+ <td class="left" >Signed 16 bit samples for each channel (Big Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_U16_LE</Formats></td>
+ <td class="left" >Unsigned 16 bit samples for each channel (Little Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_U16_BE</Formats></td>
+ <td class="left" >Unsigned 16 bit samples for each channel (Big Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_S24_LE</Formats></td>
+ <td class="left" >Signed 24 bit samples for each channel (Little Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_S24_BE</Formats></td>
+ <td class="left" >Signed 24 bit samples for each channel (Big Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_U24_LE</Formats></td>
+ <td class="left" >Unsigned 24 bit samples for each channel (Little Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_U24_BE</Formats></td>
+ <td class="left" >Unsigned 24 bit samples for each channel (Big Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_S32_LE</Formats></td>
+ <td class="left" >Signed 32 bit samples for each channel (Little Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_S32_BE</Formats></td>
+ <td class="left" >Signed 32 bit samples for each channel (Big Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_U32_LE</Formats></td>
+ <td class="left" >Unsigned 32 bit samples for each channel (Little Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_U32_BE</Formats></td>
+ <td class="left" >Unsigned 32 bit samples for each channel (Big Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_FLOAT_LE</Formats></td>
+ <td class="left" >32 bit samples encoded as float. (Little Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_FLOAT_BE</Formats></td>
+ <td class="left" >32 bit samples encoded as float (Big Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_FLOAT64_LE</Formats></td>
+ <td class="left" >64 bit samples encoded as float. (Little Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_FLOAT64_BE</Formats></td>
+ <td class="left" >64 bit samples encoded as float. (Big Endian byte order)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_MU_LAW</Formats></td>
+ <td class="left" >A logarithmic encoding (used by Sun .au files)</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_A_LAW</Formats></td>
+ <td class="left" >Another logarithmic encoding</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_IMA_ADPCM</Formats></td>
+ <td class="left" >a 4:1 compressed format defined by the Interactive Multimedia Association</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_MPEG</Formats></td>
+ <td class="left" >MPEG encoded audio?</td></tr>
+ <tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_GSM</Formats></td>
+ <td class="left" >9600 constant rate encoding well suitet for speech</td></tr></tbody>
+</table></div>
+
+<P>
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-13' xml:id='l2h-13' class="method">setperiodsize</tt></b>(</nobr></td>
+ <td><var>period</var>)</td></tr></table></dt>
+<dd>
+Sets the actual period size in frames. Each write should consist of exactly this number of frames, and
+each read will return this number of frames (unless the device is in PCM_NONBLOCK mode, in which case
+it may return nothing at all)
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-14' xml:id='l2h-14' class="method">read</tt></b>(</nobr></td>
+ <td><var></var>)</td></tr></table></dt>
+<dd>
+In PCM_NORMAL mode, this function blocks until a full period is available, and then returns a
+tuple (length,data) where <em>length</em> is the size in bytes of the captured data, and <em>data</em>
+is the captured sound frames as a string. The length of the returned data will be periodsize*framesize
+bytes.
+
+<P>
+In PCM_NONBLOCK mode, the call will not block, but will return <code>(0,'')</code> if no new period
+has become available since the last call to read.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+ <td><nobr><b><tt id='l2h-15' xml:id='l2h-15' class="method">write</tt></b>(</nobr></td>
+ <td><var>data</var>)</td></tr></table></dt>
+<dd>
+Writes (plays) the sound in data. The length of data <em>must</em> be a multiple of the frame size, and
+<em>should</em> be exactly the size of a period. If less than 'period size' frames are provided, the actual
+playout will not happen until more data is written.
+
+<P>
+If the device is not in PCM_NONBLOCK mode, this call will block if the kernel buffer is full, and
+until enough sound has been played to allow the sound data to be buffered. The call always returns
+the size of the data provided
+
+<P>
+In PCM_NONBLOCK mode, the call will return immediately, with a return value of zero, if the buffer is
+full. In this case, the data should be written at a later time.
+
+<P>
+</dl>
+
+<P>
+<strong>A few hints on using PCM devices for playback</strong>
+
+<P>
+The most common reason for problems with playback of PCM audio, is that the people don't properly understand
+that writes to PCM devices must match <em>exactly</em> the data rate of the device.
+
+<P>
+If too little data is written to the device, it will underrun, and ugly clicking sounds will occur. Conversely,
+of too much data is written to the device, the write function will either block (PCM_NORMAL mode) or return zero
+(PCM_NONBLOCK mode).
+
+<P>
+If your program does nothing, but play sound, the easiest way is to put the device in PCM_NORMAL mode, and just
+write as much data to the device as possible. This strategy can also be achieved by using a separate thread
+with the sole task of playing out sound.
+
+<P>
+In GUI programs, however, it may be a better strategy to setup the device, preload the buffer with a few
+periods by calling write a couple of times, and then use some timer method to write one period size of data to
+the device every period. The purpose of the preloading is to avoid underrun clicks if the used timer
+doesn't expire exactly on time.
+
+<P>
+Also note, that most timer API's that you can find for Python will cummulate time delays: If you set the timer
+to expire after 1/10'th of a second, the actual timeout will happen slightly later, which will accumulate to
+quite a lot after a few seconds. Hint: use time.time() to check how much time has really passed, and add
+extra writes as nessecary.
+
+<P>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="4.1 PCM Terminology and"
+ href="node7.html"><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="4 alsaaudio"
+ href="module-alsaaudio.html"><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="4.3 Mixer Objects"
+ href="mixer-objects.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node7.html">4.1 PCM Terminology and</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-alsaaudio.html">4 alsaaudio</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="mixer-objects.html">4.3 Mixer Objects</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 0.2.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/arch_src/pyalsaaudio-0.2/doc/previous.gif b/arch_src/pyalsaaudio-0.2/doc/previous.gif
new file mode 100644
index 0000000..de1da16
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/previous.gif
Binary files differ
diff --git a/arch_src/pyalsaaudio-0.2/doc/previous.png b/arch_src/pyalsaaudio-0.2/doc/previous.png
new file mode 100644
index 0000000..497def4
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/previous.png
Binary files differ
diff --git a/arch_src/pyalsaaudio-0.2/doc/pyalsaaudio.css b/arch_src/pyalsaaudio-0.2/doc/pyalsaaudio.css
new file mode 100644
index 0000000..06a613c
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/pyalsaaudio.css
@@ -0,0 +1,243 @@
+/*
+ * The first part of this is the standard CSS generated by LaTeX2HTML,
+ * with the "empty" declarations removed.
+ */
+
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.math { font-family: "Century Schoolbook", serif; }
+.math i { font-family: "Century Schoolbook", serif;
+ font-weight: bold }
+.boldmath { font-family: "Century Schoolbook", serif;
+ font-weight: bold }
+
+/*
+ * Implement both fixed-size and relative sizes.
+ *
+ * I think these can be safely removed, as it doesn't appear that
+ * LaTeX2HTML ever generates these, even though these are carried
+ * over from the LaTeX2HTML stylesheet.
+ */
+small.xtiny { font-size : xx-small; }
+small.tiny { font-size : x-small; }
+small.scriptsize { font-size : smaller; }
+small.footnotesize { font-size : small; }
+big.xlarge { font-size : large; }
+big.xxlarge { font-size : x-large; }
+big.huge { font-size : larger; }
+big.xhuge { font-size : xx-large; }
+
+/*
+ * Document-specific styles come next;
+ * these are added for the Python documentation.
+ *
+ * Note that the size specifications for the H* elements are because
+ * Netscape on Solaris otherwise doesn't get it right; they all end up
+ * the normal text size.
+ */
+
+body { color: #000000;
+ background-color: #ffffff; }
+
+a:link:active { color: #ff0000; }
+a:link:hover { background-color: #bbeeff; }
+a:visited:hover { background-color: #bbeeff; }
+a:visited { color: #551a8b; }
+a:link { color: #0000bb; }
+
+h1, h2, h3, h4, h5, h6 { font-family: avantgarde, sans-serif;
+ font-weight: bold; }
+h1 { font-size: 180%; }
+h2 { font-size: 150%; }
+h3, h4 { font-size: 120%; }
+
+/* These are section titles used in navigation links, so make sure we
+ * match the section header font here, even it not the weight.
+ */
+.sectref { font-family: avantgarde, sans-serif; }
+/* And the label before the titles in navigation: */
+.navlabel { font-size: 85%; }
+
+
+/* LaTeX2HTML insists on inserting <br> elements into headers which
+ * are marked with \label. This little bit of CSS magic ensures that
+ * these elements don't cause spurious whitespace to be added.
+ */
+h1>br, h2>br, h3>br,
+h4>br, h5>br, h6>br { display: none; }
+
+code, tt { font-family: "lucida typewriter", lucidatypewriter,
+ monospace; }
+var { font-family: times, serif;
+ font-style: italic;
+ font-weight: normal; }
+
+.Unix { font-variant: small-caps; }
+
+.typelabel { font-family: lucida, sans-serif; }
+
+.navigation td { background-color: #99ccff;
+ font-weight: bold;
+ font-family: avantgarde, sans-serif;
+ font-size: 110%; }
+
+div.warning { background-color: #fffaf0;
+ border: thin solid black;
+ padding: 1em;
+ margin-left: 2em;
+ margin-right: 2em; }
+
+div.warning .label { font-family: sans-serif;
+ font-size: 110%;
+ margin-right: 0.5em; }
+
+div.note { background-color: #fffaf0;
+ border: thin solid black;
+ padding: 1em;
+ margin-left: 2em;
+ margin-right: 2em; }
+
+div.note .label { margin-right: 0.5em;
+ font-family: sans-serif; }
+
+address { font-size: 80%; }
+.release-info { font-style: italic;
+ font-size: 80%; }
+
+.titlegraphic { vertical-align: top; }
+
+.verbatim pre { color: #00008b;
+ font-family: "lucida typewriter", lucidatypewriter,
+ monospace;
+ font-size: 90%; }
+.verbatim { margin-left: 2em; }
+.verbatim .footer { padding: 0.05in;
+ font-size: 85%;
+ background-color: #99ccff;
+ margin-right: 0.5in; }
+
+.grammar { background-color: #99ccff;
+ margin-right: 0.5in;
+ padding: 0.05in; }
+.grammar-footer { padding: 0.05in;
+ font-size: 85%; }
+.grammartoken { font-family: "lucida typewriter", lucidatypewriter,
+ monospace; }
+
+.productions { background-color: #bbeeff; }
+.productions a:active { color: #ff0000; }
+.productions a:link:hover { background-color: #99ccff; }
+.productions a:visited:hover { background-color: #99ccff; }
+.productions a:visited { color: #551a8b; }
+.productions a:link { color: #0000bb; }
+.productions table { vertical-align: baseline;
+ empty-cells: show; }
+.productions > table td,
+.productions > table th { padding: 2px; }
+.productions > table td:first-child,
+.productions > table td:last-child {
+ font-family: "lucida typewriter",
+ lucidatypewriter,
+ monospace;
+ }
+/* same as the second selector above, but expressed differently for Opera */
+.productions > table td:first-child + td + td {
+ font-family: "lucida typewriter",
+ lucidatypewriter,
+ monospace;
+ vertical-align: baseline;
+ }
+.productions > table td:first-child + td {
+ padding-left: 1em;
+ padding-right: 1em;
+ }
+.productions > table tr { vertical-align: baseline; }
+
+.email { font-family: avantgarde, sans-serif; }
+.mailheader { font-family: avantgarde, sans-serif; }
+.mimetype { font-family: avantgarde, sans-serif; }
+.newsgroup { font-family: avantgarde, sans-serif; }
+.url { font-family: avantgarde, sans-serif; }
+.file { font-family: avantgarde, sans-serif; }
+.guilabel { font-family: avantgarde, sans-serif; }
+
+.realtable { border-collapse: collapse;
+ border-color: black;
+ border-style: solid;
+ border-width: 0px 0px 2px 0px;
+ empty-cells: show;
+ margin-left: auto;
+ margin-right: auto;
+ padding-left: 0.4em;
+ padding-right: 0.4em;
+ }
+.realtable tbody { vertical-align: baseline; }
+.realtable tfoot { display: table-footer-group; }
+.realtable thead { background-color: #99ccff;
+ border-width: 0px 0px 2px 1px;
+ display: table-header-group;
+ font-family: avantgarde, sans-serif;
+ font-weight: bold;
+ vertical-align: baseline;
+ }
+.realtable thead :first-child {
+ border-width: 0px 0px 2px 0px;
+ }
+.realtable thead th { border-width: 0px 0px 2px 1px }
+.realtable td,
+.realtable th { border-color: black;
+ border-style: solid;
+ border-width: 0px 0px 1px 1px;
+ padding-left: 0.4em;
+ padding-right: 0.4em;
+ }
+.realtable td:first-child,
+.realtable th:first-child {
+ border-left-width: 0px;
+ vertical-align: baseline;
+ }
+.center { text-align: center; }
+.left { text-align: left; }
+.right { text-align: right; }
+
+.refcount-info { font-style: italic; }
+.refcount-info .value { font-weight: bold;
+ color: #006600; }
+
+/*
+ * Some decoration for the "See also:" blocks, in part inspired by some of
+ * the styling on Lars Marius Garshol's XSA pages.
+ * (The blue in the navigation bars is #99CCFF.)
+ */
+.seealso { background-color: #fffaf0;
+ border: thin solid black;
+ padding: 0pt 1em 4pt 1em; }
+
+.seealso > .heading { font-size: 110%;
+ font-weight: bold; }
+
+/*
+ * Class 'availability' is used for module availability statements at
+ * the top of modules.
+ */
+.availability .platform { font-weight: bold; }
+
+
+/*
+ * Additional styles for the distutils package.
+ */
+.du-command { font-family: monospace; }
+.du-option { font-family: avantgarde, sans-serif; }
+.du-filevar { font-family: avantgarde, sans-serif;
+ font-style: italic; }
+.du-xxx:before { content: "** ";
+ font-weight: bold; }
+.du-xxx:after { content: " **";
+ font-weight: bold; }
+
+
+/*
+ * Some specialization for printed output.
+ */
+@media print {
+ .online-navigation { display: none; }
+ }
diff --git a/arch_src/pyalsaaudio-0.2/doc/pyalsaaudio.html b/arch_src/pyalsaaudio-0.2/doc/pyalsaaudio.html
new file mode 100644
index 0000000..fc3e86f
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/pyalsaaudio.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
+<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
+<link rel='contents' href='contents.html' title="Contents" />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="front.html" />
+<meta name='aesop' content='information' />
+<title>PyAlsaAudio</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></td>
+<td class='online-navigation'><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></td>
+<td class='online-navigation'><a rel="next" title="Front Matter"
+ href="front.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="front.html">Front Matter</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<div class="titlepage">
+<div class='center'>
+<h1>PyAlsaAudio</h1>
+<p><b><font size="+2">Casper Wilstrup</font></b></p>
+<p>cwi@unispeed.com</p>
+<p></p>
+</div>
+</div>
+
+<P>
+
+<p><br /></p><hr class='online-navigation' />
+<div class='online-navigation'>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></a>
+
+<UL CLASS="ChildLinks">
+<LI><A href="front.html">Front Matter</a>
+<LI><A href="contents.html">Contents</a>
+<UL>
+<LI><A href="node3.html">1 What is ALSA</a>
+<LI><A href="node4.html">2 ALSA and Python</a>
+<LI><A href="node5.html">3 Installation</a>
+<LI><A href="module-alsaaudio.html">4 <tt class="module">alsaaudio</tt></a>
+<UL>
+<LI><A href="node7.html">4.1 PCM Terminology and Concepts</a>
+<LI><A href="pcm-objects.html">4.2 PCM Objects</a>
+<LI><A href="mixer-objects.html">4.3 Mixer Objects</a>
+<LI><A href="pcm-example.html">4.4 ALSA Examples</a>
+</ul>
+</ul>
+<LI><A href="about.html">About this document ...</a>
+</ul>
+<!--End of Table of Child-Links-->
+</div>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><img src='previous.png'
+ border='0' height='32' alt='Previous Page' width='32' /></td>
+<td class='online-navigation'><img src='up.png'
+ border='0' height='32' alt='Up One Level' width='32' /></td>
+<td class='online-navigation'><a rel="next" title="Front Matter"
+ href="front.html"><img src='next.png'
+ border='0' height='32' alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">PyAlsaAudio</td>
+<td class='online-navigation'><a rel="contents" title="Table of Contents"
+ href="contents.html"><img src='contents.png'
+ border='0' height='32' alt='Contents' width='32' /></A></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+ border='0' height='32' alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="front.html">Front Matter</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 0.2.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/arch_src/pyalsaaudio-0.2/doc/pyfav.gif b/arch_src/pyalsaaudio-0.2/doc/pyfav.gif
new file mode 100644
index 0000000..58271ed
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/pyfav.gif
Binary files differ
diff --git a/arch_src/pyalsaaudio-0.2/doc/pyfav.png b/arch_src/pyalsaaudio-0.2/doc/pyfav.png
new file mode 100644
index 0000000..d2d8669
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/pyfav.png
Binary files differ
diff --git a/arch_src/pyalsaaudio-0.2/doc/src/.svn/README.txt b/arch_src/pyalsaaudio-0.2/doc/src/.svn/README.txt
new file mode 100644
index 0000000..271a8ce
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/src/.svn/README.txt
@@ -0,0 +1,2 @@
+This is a Subversion working copy administrative directory.
+Visit http://subversion.tigris.org/ for more information.
diff --git a/arch_src/pyalsaaudio-0.2/doc/src/.svn/dir-wcprops b/arch_src/pyalsaaudio-0.2/doc/src/.svn/dir-wcprops
new file mode 100644
index 0000000..208849d
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/src/.svn/dir-wcprops
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 57
+/svn/Shtoom/!svn/ver/1274/trunk/audio/pyalsaaudio/doc/src
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/src/.svn/empty-file b/arch_src/pyalsaaudio-0.2/doc/src/.svn/empty-file
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/src/.svn/empty-file
diff --git a/arch_src/pyalsaaudio-0.2/doc/src/.svn/entries b/arch_src/pyalsaaudio-0.2/doc/src/.svn/entries
new file mode 100644
index 0000000..3bd9b4c
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/src/.svn/entries
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wc-entries
+ xmlns="svn:">
+<entry
+ committed-rev="1274"
+ name=""
+ committed-date="2005-03-25T23:37:10.228413Z"
+ url="http://casperr@divmod.org/svn/Shtoom/trunk/audio/pyalsaaudio/doc/src"
+ last-author="casper"
+ kind="dir"
+ revision="1584"/>
+<entry
+ committed-rev="1585"
+ name="libalsaaudio.tex"
+ text-time="2005-07-09T21:08:46.000000Z"
+ committed-date="2005-07-09T21:26:15.500773Z"
+ checksum="757600e4551bc4d9367fcbfe79a0b144"
+ last-author="casper"
+ kind="file"
+ revision="1585"/>
+<entry
+ committed-rev="1585"
+ name="pyalsaaudio.tex"
+ text-time="2005-07-09T21:08:58.000000Z"
+ committed-date="2005-07-09T21:26:15.500773Z"
+ checksum="43e07db73c7507adde7404d63a2b42f6"
+ last-author="casper"
+ kind="file"
+ revision="1585"/>
+<entry
+ committed-rev="1585"
+ name="Makefile"
+ text-time="2005-07-09T21:14:53.000000Z"
+ committed-date="2005-07-09T21:26:15.500773Z"
+ checksum="350ef37c7f1fcf3e2ff2c4a05eec328d"
+ last-author="casper"
+ kind="file"
+ revision="1585"/>
+</wc-entries>
diff --git a/arch_src/pyalsaaudio-0.2/doc/src/.svn/format b/arch_src/pyalsaaudio-0.2/doc/src/.svn/format
new file mode 100644
index 0000000..b8626c4
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/src/.svn/format
@@ -0,0 +1 @@
+4
diff --git a/arch_src/pyalsaaudio-0.2/doc/src/.svn/text-base/Makefile.svn-base b/arch_src/pyalsaaudio-0.2/doc/src/.svn/text-base/Makefile.svn-base
new file mode 100644
index 0000000..44c3313
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/src/.svn/text-base/Makefile.svn-base
@@ -0,0 +1,20 @@
+# Makefile for PyAlsaAudio documentation
+#
+# In order to use this you need an unpacked version of the
+# Python source available. Set the source path below
+#
+# You also need a working latex installation, and the latex2html
+# tool installed.
+PYTHONSOURCE = /usr/src/Python-2.4.1/
+
+# Shouldn't need to change anything below here!
+
+MKHOWTO = $(PYTHONSOURCE)/Doc/tools/mkhowto
+
+all:
+ $(MKHOWTO) --dir .. --html pyalsaaudio.tex
+
+text:
+ $(MKHOWTO) --dir .. --text pyalsaaudio.tex
+
+
diff --git a/arch_src/pyalsaaudio-0.2/doc/src/.svn/text-base/libalsaaudio.tex.svn-base b/arch_src/pyalsaaudio-0.2/doc/src/.svn/text-base/libalsaaudio.tex.svn-base
new file mode 100644
index 0000000..c50ffe5
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/src/.svn/text-base/libalsaaudio.tex.svn-base
@@ -0,0 +1,397 @@
+\section{\module{alsaaudio}}
+
+%\declaremodule{builtin}{alsaaudio} % standard library, in C
+\declaremodule{extension}{alsaaudio} % not standard, in C
+
+\platform{Linux}
+
+\moduleauthor{Casper Wilstrup}{cwi@unispeed.com} % Author of the module code;
+
+
+\modulesynopsis{ALSA sound support}
+
+
+The \module{alsaaudio} module defines functions and classes for using
+ALSA.
+
+% ---- 3.1. ----
+% For each function, use a ``funcdesc'' block. This has exactly two
+% parameters (each parameters is contained in a set of curly braces):
+% the first parameter is the function name (this automatically
+% generates an index entry); the second parameter is the function's
+% argument list. If there are no arguments, use an empty pair of
+% curly braces. If there is more than one argument, separate the
+% arguments with backslash-comma. Optional parts of the parameter
+% list are contained in \optional{...} (this generates a set of square
+% brackets around its parameter). Arguments are automatically set in
+% italics in the parameter list. Each argument should be mentioned at
+% least once in the description; each usage (even inside \code{...})
+% should be enclosed in \var{...}.
+
+\begin{funcdesc}{mixers}{\optional{cardname}}
+List the available mixers. The optional \var{cardname} specifies which
+card should be queried (this is only relevant if you have more than one
+sound card). Omit to use the default sound card
+\end{funcdesc}
+
+\begin{classdesc}{PCM}{\optional{type}, \optional{mode}, \optional{cardname}}
+This class is used to represent a PCM device (both playback and capture devices).
+The arguments are: \\
+\var{type} - can be either PCM_CAPTURE or PCM_PLAYBACK (default). \\
+\var{mode} - can be either PCM_NONBLOCK, PCM_ASYNC, or PCM_NORMAL (the default).\\
+\var{cardname} - specifies which card should be used (this is only relevant
+if you have more than one sound card). Omit to use the default sound card
+\end{classdesc}
+
+\begin{classdesc}{Mixer}{\optional{control}, \optional{id}, \optional{cardname}}
+This class is used to access a specific ALSA mixer.
+The arguments are: \\
+\var{control} - Name of the chosen mixed (default is Master). \\
+\var{id} - id of mixer (default is 0) -- More explaniation needed here\\
+\var{cardname} specifies which card should be used (this is only relevant
+if you have more than one sound card). Omit to use the default sound card
+\end{classdesc}
+
+
+\begin{excdesc}{ALSAAudioError}
+Exception raised when an operation fails for a ALSA specific reason.
+The exception argument is a string describing the reason of the
+failure.
+\end{excdesc}
+
+\subsection{PCM Terminology and Concepts}
+
+In order to use PCM devices it is useful to be familiar with some concepts and
+terminology.
+
+\begin{description}
+\item[Sample] PCM audio, whether it is input or output, consists at the lowest level
+of a number of single samples. A sample represents the sound in a single channel in
+a brief interval. If more than one channel is in use, more than one sample is required
+for each interval to describe the sound. Samples can be of many different sizes, ranging
+from 8 bit to 64 bit presition. The specific format of each sample can also vary - they
+can be big endian byte order, little endian byte order, or even floats.
+
+\item[Frame] A frame consists of exactly one sample per channel. If there is only one
+channel (Mono sound) a frame is simply a single sample. If the sound is stereo, each frame
+consists of two samples, etc.
+
+\item[Frame size] This is the size in bytes of each frame. This can vary a lot: if each sample is
+8 bits, and we're handling mono sound, the frame size is one byte. Similarly in 6 channel audio with
+64 bit floating point samples, the frame size is 48 bytes
+
+\item[Rate] PCM sound consists of a flow of sound frames. The sound rate controls how often
+the current frame is replaced. For example, a rate of 8000 Hz means that a new frame is played
+or captured 8000 times per second.
+
+\item[Data rate] This is the number of bytes, which must be recorded or provided per second
+at a certain frame size and rate.
+
+8000 Hz mono sound with 8 bit (1 byte) samples has a data rate of 8000 * 1 * 1 = 8 kb/s
+
+At the other end of the scale, 96000 Hz, 6 channel sound with 64 bit (8 bytes) samples
+has a data rate of 96000 * 6 * 8 = 4608 kb/s (almost 5 Mb sound data per second)
+
+\item[Period] When the hardware processes data this is done in chunks of frames. The time interval
+between each processing (A/D or D/A conversion) is known as the period. The size of the period has
+direct implication on the latency of the sound input or output. For low-latency the period size should
+be very small, while low CPU resource usage would usually demand larger period sizes. With ALSA, the
+CPU utilization is not impacted much by the period size, since the kernel layer buffers multiple
+periods internally, so each period generates an interrupt and a memory copy, but userspace can be
+slower and read or write multiple periods at the same time.
+
+\item[Period size] This is the size of each period in Hz. \emph{Not bytes, but Hz!.} In \module{alsaaudio}
+the period size is set directly, and it is therefore important to understand the significance of this
+number. If the period size is configured to for example 32, each write should contain exactly 32 frames
+of sound data, and each read will return either 32 frames of data or nothing at all.
+
+\end{description}
+
+Once you understand these concepts, you will be ready to actually utilize PCM API. Read on.
+
+\subsection{PCM Objects}
+\label{pcm-objects}
+
+The acronym PCM is short for Pulse Code Modulation and is the method used in ALSA
+and many other places to handle playback and capture of sampled sound data.
+
+PCM objects in \module{alsaaudio} are used to do exactly that, either play sample based
+sound or capture sound from some input source (perhaps a microphone). The PCM object
+constructor takes the following arguments:
+
+\begin{classdesc}{PCM}{\optional{type}, \optional{mode}, \optional{cardname}}
+
+\var{type} - can be either PCM_CAPTURE or PCM_PLAYBACK (default).
+
+\var{mode} - can be either PCM_NONBLOCK, PCM_ASYNC, or PCM_NORMAL (the default).
+In PCM_NONBLOCK mode, calls to read will return immediately independent of wether
+there is any actual data to read. Similarly, write calls will return immediately
+without actually writing anything to the playout buffer if the buffer is full.
+
+In the current version of \module{alsaaudio} PCM_ASYNC is useless, since it relies
+on a callback procedure, which can't be specified from Python.
+
+\var{cardname} - specifies which card should be used (this is only relevant
+if you have more than one sound card). Omit to use the default sound card
+
+This will construct a PCM object with default settings:
+
+Sample format: PCM_FORMAT_S16_LE \\
+Rate: 8000 Hz \\
+Channels: 2 \\
+Period size: 32 frames \\
+\end{classdesc}
+
+PCM objects have the following methods:
+
+\begin{methoddesc}[PCM]{pcmtype}{}
+Returns the type of PCM object. Either PCM_CAPTURE or PCM_PLAYBACK.
+\end{methoddesc}
+
+\begin{methoddesc}[PCM]{pcmmode}{}
+Return the mode of the PCM object. One of PCM_NONBLOCK, PCM_ASYNC, or PCM_NORMAL
+\end{methoddesc}
+
+\begin{methoddesc}[PCM]{cardname}{}
+Return the name of the sound card used by this PCM object.
+\end{methoddesc}
+
+\begin{methoddesc}[PCM]{setchannels}{nchannels}
+Used to set the number of capture or playback channels. Common values are: 1 = mono, 2 = stereo,
+and 6 = full 6 channel audio. Few sound cards support more than 2 channels
+\end{methoddesc}
+
+\begin{methoddesc}[PCM]{setrate}{rate}
+Set the sample rate in Hz for the device. Typical values are 8000 (poor sound), 16000, 44100 (cd quality),
+and 96000
+\end{methoddesc}
+
+\begin{methoddesc}[PCM]{setformat}{}
+The sound format of the device. Sound format controls how the PCM device interpret data for playback,
+and how data is encoded in captures.
+
+The following formats are provided by ALSA:
+\begin{tableii}{l|l}{Formats}{Format}{Description}
+ \lineii{PCM_FORMAT_S8}{Signed 8 bit samples for each channel}
+ \lineii{PCM_FORMAT_U8}{Signed 8 bit samples for each channel}
+ \lineii{PCM_FORMAT_S16_LE}{Signed 16 bit samples for each channel (Little Endian byte order)}
+ \lineii{PCM_FORMAT_S16_BE}{Signed 16 bit samples for each channel (Big Endian byte order)}
+ \lineii{PCM_FORMAT_U16_LE}{Unsigned 16 bit samples for each channel (Little Endian byte order)}
+ \lineii{PCM_FORMAT_U16_BE}{Unsigned 16 bit samples for each channel (Big Endian byte order)}
+ \lineii{PCM_FORMAT_S24_LE}{Signed 24 bit samples for each channel (Little Endian byte order)}
+ \lineii{PCM_FORMAT_S24_BE}{Signed 24 bit samples for each channel (Big Endian byte order)}
+ \lineii{PCM_FORMAT_U24_LE}{Unsigned 24 bit samples for each channel (Little Endian byte order)}
+ \lineii{PCM_FORMAT_U24_BE}{Unsigned 24 bit samples for each channel (Big Endian byte order)}
+ \lineii{PCM_FORMAT_S32_LE}{Signed 32 bit samples for each channel (Little Endian byte order)}
+ \lineii{PCM_FORMAT_S32_BE}{Signed 32 bit samples for each channel (Big Endian byte order)}
+ \lineii{PCM_FORMAT_U32_LE}{Unsigned 32 bit samples for each channel (Little Endian byte order)}
+ \lineii{PCM_FORMAT_U32_BE}{Unsigned 32 bit samples for each channel (Big Endian byte order)}
+ \lineii{PCM_FORMAT_FLOAT_LE}{32 bit samples encoded as float. (Little Endian byte order)}
+ \lineii{PCM_FORMAT_FLOAT_BE}{32 bit samples encoded as float (Big Endian byte order)}
+ \lineii{PCM_FORMAT_FLOAT64_LE}{64 bit samples encoded as float. (Little Endian byte order)}
+ \lineii{PCM_FORMAT_FLOAT64_BE}{64 bit samples encoded as float. (Big Endian byte order)}
+ \lineii{PCM_FORMAT_MU_LAW}{A logarithmic encoding (used by Sun .au files)}
+ \lineii{PCM_FORMAT_A_LAW}{Another logarithmic encoding}
+ \lineii{PCM_FORMAT_IMA_ADPCM}{a 4:1 compressed format defined by the Interactive Multimedia Association}
+ \lineii{PCM_FORMAT_MPEG}{MPEG encoded audio?}
+ \lineii{PCM_FORMAT_GSM}{9600 constant rate encoding well suitet for speech}
+\end{tableii}
+
+\end{methoddesc}
+
+\begin{methoddesc}[PCM]{setperiodsize}{period}
+Sets the actual period size in frames. Each write should consist of exactly this number of frames, and
+each read will return this number of frames (unless the device is in PCM_NONBLOCK mode, in which case
+it may return nothing at all)
+\end{methoddesc}
+
+\begin{methoddesc}[PCM]{read}{}
+In PCM_NORMAL mode, this function blocks until a full period is available, and then returns a
+tuple (length,data) where \emph{length} is the size in bytes of the captured data, and \emph{data}
+is the captured sound frames as a string. The length of the returned data will be periodsize*framesize
+bytes.
+
+In PCM_NONBLOCK mode, the call will not block, but will return \code{(0,'')} if no new period
+has become available since the last call to read.
+\end{methoddesc}
+
+\begin{methoddesc}[PCM]{write}{data}
+Writes (plays) the sound in data. The length of data \emph{must} be a multiple of the frame size, and
+\emph{should} be exactly the size of a period. If less than 'period size' frames are provided, the actual
+playout will not happen until more data is written.
+
+If the device is not in PCM_NONBLOCK mode, this call will block if the kernel buffer is full, and
+until enough sound has been played to allow the sound data to be buffered. The call always returns
+the size of the data provided
+
+In PCM_NONBLOCK mode, the call will return immediately, with a return value of zero, if the buffer is
+full. In this case, the data should be written at a later time.
+
+\end{methoddesc}
+
+\strong{A few hints on using PCM devices for playback}
+
+The most common reason for problems with playback of PCM audio, is that the people don't properly understand
+that writes to PCM devices must match \emph{exactly} the data rate of the device.
+
+If too little data is written to the device, it will underrun, and ugly clicking sounds will occur. Conversely,
+of too much data is written to the device, the write function will either block (PCM_NORMAL mode) or return zero
+(PCM_NONBLOCK mode).
+
+If your program does nothing, but play sound, the easiest way is to put the device in PCM_NORMAL mode, and just
+write as much data to the device as possible. This strategy can also be achieved by using a separate thread
+with the sole task of playing out sound.
+
+In GUI programs, however, it may be a better strategy to setup the device, preload the buffer with a few
+periods by calling write a couple of times, and then use some timer method to write one period size of data to
+the device every period. The purpose of the preloading is to avoid underrun clicks if the used timer
+doesn't expire exactly on time.
+
+Also note, that most timer API's that you can find for Python will cummulate time delays: If you set the timer
+to expire after 1/10'th of a second, the actual timeout will happen slightly later, which will accumulate to
+quite a lot after a few seconds. Hint: use time.time() to check how much time has really passed, and add
+extra writes as nessecary.
+
+\subsection{Mixer Objects}
+\label{mixer-objects}
+
+Mixer objects provides access to the ALSA mixer API.
+
+\begin{classdesc}{Mixer}{\optional{control}, \optional{id}, \optional{cardname}}
+\var{control} - specifies which control to manipulate using this mixer object. The list
+of available controls can be found with the \module{alsaaudio}.\function{mixers} function.
+The default value is 'Master' - other common controls include 'Master Mono', 'PCM', 'Line', etc.
+
+\var{id} - the id of the mixer control. Default is 0
+
+\var{cardname} - specifies which card should be used (this is only relevant
+if you have more than one sound card). Omit to use the default sound card
+\end{classdesc}
+
+Mixer objects have the following methods:
+
+\begin{methoddesc}[Mixer]{cardname}{}
+Return the name of the sound card used by this Mixer object
+\end{methoddesc}
+
+\begin{methoddesc}[Mixer]{mixer}{}
+Return the name of the specific mixer controlled by this object, For example 'Master'
+or 'PCM'
+\end{methoddesc}
+
+\begin{methoddesc}[Mixer]{mixerid}{}
+Return the ID of the ALSA mixer controlled by this object.
+\end{methoddesc}
+
+\begin{methoddesc}[Mixer]{switchcap}{}
+Returns a list of the switches which are defined by this specific mixer. Possible values in
+this list are:
+
+\begin{tableii}{l|l}{Switches}{Switch}{Description}
+ \lineii{'Mute'}{This mixer can be muted}
+ \lineii{'Joined Mute'}{This mixer can mute all channels at the same time}
+ \lineii{'Playback Mute'}{This mixer can mute the playback output}
+ \lineii{'Joined Playback Mute'}{Mute playback for all channels at the same time}
+ \lineii{'Capture Mute'}{Mute sound capture}
+ \lineii{'Joined Capture Mute'}{Mute sound capture for all channels at a time}
+ \lineii{'Capture Exclusive'}{Not quite sure what this is}
+\end{tableii}
+
+To manipulate these swithes use the \method{setrec} or \method{setmute} methods
+\end{methoddesc}
+
+\begin{methoddesc}[Mixer]{volumecap}{}
+Returns a list of the volume control capabilities of this mixer. Possible values in
+the list are:
+
+\begin{tableii}{l|l}{Volume Capabilities}{Capability}{Description}
+ \lineii{'Volume'}{This mixer can control volume}
+ \lineii{'Joined Volume'}{This mixer can control volume for all channels at the same time}
+ \lineii{'Playback Volume'}{This mixer can manipulate the playback volume}
+ \lineii{'Joined Playback Volume'}{Manipulate playback volumne for all channels at the same time}
+ \lineii{'Capture Volume'}{Manipulate sound capture volume}
+ \lineii{'Joined Capture Volume'}{Manipulate sound capture volume for all channels at a time}
+\end{tableii}
+
+\end{methoddesc}
+
+\begin{methoddesc}[Mixer]{getvolume}{\optional{direction}}
+Returns a list with the current volume settings for each channel. The list elements
+are integer percentages.
+
+The optional \var{direction} argument can be either 'playback' or 'capture', which is relevant
+if the mixer can control both playback and capture volume. The default value is 'playback'
+if the mixer has this capability, otherwise 'capture'
+
+\end{methoddesc}
+
+\begin{methoddesc}[Mixer]{getmute}{}
+Return a list indicating the current mute setting for each channel. 0 means not muted, 1 means muted.
+
+This method will fail if the mixer has no playback switch capabilities.
+\end{methoddesc}
+
+\begin{methoddesc}[Mixer]{getrec}{}
+Return a list indicating the current record mute setting for each channel. 0 means not recording, 1
+means not recording.
+
+This method will fail if the mixer has no capture switch capabilities.
+\end{methoddesc}
+
+\begin{methoddesc}[Mixer]{setvolume}{volume,\optional{channel},\optional{direction}}
+Change the current volume settings for this mixer. The \var{volume} argument controls
+the new volume setting as an integer percentage.
+
+If the optional argument \var{channel} is present, the volume is set only for this channel. This
+assumes that the mixer can control the volume for the channels independently.
+
+The optional \var{direction} argument can be either 'playback' or 'capture' is relevant if the mixer
+has independent playback and capture volume capabilities, and controls which of the volumes
+if changed. The default is 'playback' if the mixer has this capability, otherwise 'capture'.
+\end{methoddesc}
+
+\begin{methoddesc}[Mixer]{setmute}{mute, \optional{channel}}
+Sets the mute flag to a new value. The \var{mute} argument is either 0 for not muted, or 1 for muted.
+
+The optional \var{channel} argument controls which channel is muted. The default is to set the mute flag
+for all channels.
+
+This method will fail if the mixer has no playback mute capabilities
+\end{methoddesc}
+
+\begin{methoddesc}[Mixer]{setrec}{capture,\optional{channel}}
+Sets the capture mute flag to a new value. The \var{capture} argument is either 0 for no capture,
+or 1 for capture.
+
+The optional \var{channel} argument controls which channel is changed. The default is to set the capture flag
+for all channels.
+
+This method will fail if the mixer has no capture switch capabilities
+\end{methoddesc}
+
+
+\textbf{A Note on the ALSA Mixer API}
+
+The ALSA mixer API is extremely complicated - and hardly documented at all. \module{alsaaudio} implements
+a much simplified way to access this API. In designing the API I've had to make some choices which
+may limit what can and cannot be controlled through the API. However, If I had chosen to implement the
+full API, I would have reexposed the horrible complexity/documentation ratio of the underlying API.
+At least the \module{alsaaudio} API is easy to understand and use.
+
+If my design choises prevents you from doing something that the underlying API would have allowed,
+please let me know, so I can incorporate these need into future versions.
+
+If the current state of affairs annoy you, the best you can do is to write a HOWTO on the API and
+make this available on the net. Until somebody does this, the availability of ALSA mixer capable
+devices will stay quite limited.
+
+Unfortunately, I'm not able to create such a HOWTO myself, since I only understand half of the API,
+and that which I do understand has come from a painful trial and error process.
+
+
+
+% ==== 4. ====
+\subsection{ALSA Examples \label{pcm-example}}
+
+For now, the only examples available are the 'playbacktest.py' and the 'recordtest.py' programs included.
+This will change in a future version.
diff --git a/arch_src/pyalsaaudio-0.2/doc/src/.svn/text-base/pyalsaaudio.tex.svn-base b/arch_src/pyalsaaudio-0.2/doc/src/.svn/text-base/pyalsaaudio.tex.svn-base
new file mode 100644
index 0000000..1a5a4b0
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/src/.svn/text-base/pyalsaaudio.tex.svn-base
@@ -0,0 +1,107 @@
+\documentclass{howto}
+
+\title{PyAlsaAudio}
+
+\release{0.2}
+
+% At minimum, give your name and an email address. You can include a
+% snail-mail address if you like.
+\author{Casper Wilstrup}
+\authoraddress{cwi@unispeed.com}
+
+\begin{document}
+\maketitle
+
+% This makes the Abstract go on a separate page in the HTML version;
+% if a copyright notice is used, it should go immediately after this.
+%
+\ifhtml
+\chapter*{Front Matter\label{front}}
+\fi
+
+% Copyright statement should go here, if needed.
+This software is licensed under the PSF license - the same one used
+by the majority of the python distribution. Basically you can use it
+for anything you wish (even commercial purposes). There is no warranty
+whatsoever.
+
+% The abstract should be a paragraph or two long, and describe the
+% scope of the document.
+\begin{abstract}
+\noindent
+This package contains wrappers for accessing the ALSA api from Python. It
+is currently fairly complete for PCM devices and Mixer access. MIDI sequencer
+support is low on my priority list, but volunteers are welcome.
+
+If you find bugs in the wrappers please notify me on email. Please
+don't send bug reports regarding ALSA specifically. There are several
+bugs in this api, and those should be reported to the ALSA team - not
+me.
+\end{abstract}
+
+\tableofcontents
+
+\section{What is ALSA}
+
+The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI
+functionality to the Linux operating system.
+
+Logically ALSA consists of these components:
+\begin{itemize}
+ \item A set of kernel drivers.\\
+ These drivers are responsible for handling the physical sound
+ hardware from within the Linux kernel, and have been the standard
+ sound implementation in Linux since kernel version 2.5
+ \item A kernel level API for manipulating the ALSA devices.
+ \item A user-space C library for simplified access to the sound hardware
+ from userspace applications. This library is called \textit{libasound}
+ and is required by all ALSA capable applications.
+\end{itemize}
+
+More information about ALSA may be found on the project homepage
+\url{http://www.alsa-project.org}
+
+\section{ALSA and Python}
+
+The older Linux sound API (OSS) which is now deprecated is well supported
+from the standard Python library, through the ossaudiodev module. No native
+ALSA support exists in the standard library (yet).
+
+There are a few other ``ALSA for Python'' projects available, including at
+least two different projects called pyAlsa. Neither of these seem to be under
+active development at the time - and neither are very feature complete.
+
+I wrote PyAlsaAudio to fill this gap. My long term goal is to have the module
+included in the standard Python library, but that is probably a while of yet.
+
+PyAlsaAudio hass full support for sound capture, playback of sound, as well as
+the ALSA Mixer API.
+
+MIDI support is not available, and since I don't own any MIDI hardware, it's
+difficult for me to implement it. Volunteers to work on this would be greatly
+appreciated
+\section{Installation}
+
+Note: the wrappers link with the alsasound library (from the alsa-lib
+package). Verify that this is installed by looking for /usr/lib/libasound.so
+before building. Naturally you also need to use a kernel with proper ALSA
+support. This is the default in Linux kernel 2.6 and later. If you are using
+kernel version 2.4 you may need to install the ALSA patches yourself - although
+most distributions ship with ALSA kernels.
+
+To install, execute the following: \\
+\begin{verbatim}
+$ python setup.py build
+\end{verbatim}
+
+And then as root: \\
+\begin{verbatim}
+# python setup.py install
+\end{verbatim}
+
+\input{libalsaaudio}
+
+
+
+
+\end{document}
diff --git a/arch_src/pyalsaaudio-0.2/doc/src/.svn/wcprops/Makefile.svn-work b/arch_src/pyalsaaudio-0.2/doc/src/.svn/wcprops/Makefile.svn-work
new file mode 100644
index 0000000..5af62dd
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/src/.svn/wcprops/Makefile.svn-work
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 66
+/svn/Shtoom/!svn/ver/1585/trunk/audio/pyalsaaudio/doc/src/Makefile
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/src/.svn/wcprops/libalsaaudio.tex.svn-work b/arch_src/pyalsaaudio-0.2/doc/src/.svn/wcprops/libalsaaudio.tex.svn-work
new file mode 100644
index 0000000..a30dac2
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/src/.svn/wcprops/libalsaaudio.tex.svn-work
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/Shtoom/!svn/ver/1585/trunk/audio/pyalsaaudio/doc/src/libalsaaudio.tex
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/src/.svn/wcprops/pyalsaaudio.tex.svn-work b/arch_src/pyalsaaudio-0.2/doc/src/.svn/wcprops/pyalsaaudio.tex.svn-work
new file mode 100644
index 0000000..b1bf388
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/src/.svn/wcprops/pyalsaaudio.tex.svn-work
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 73
+/svn/Shtoom/!svn/ver/1585/trunk/audio/pyalsaaudio/doc/src/pyalsaaudio.tex
+END
diff --git a/arch_src/pyalsaaudio-0.2/doc/src/Makefile b/arch_src/pyalsaaudio-0.2/doc/src/Makefile
new file mode 100644
index 0000000..44c3313
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/src/Makefile
@@ -0,0 +1,20 @@
+# Makefile for PyAlsaAudio documentation
+#
+# In order to use this you need an unpacked version of the
+# Python source available. Set the source path below
+#
+# You also need a working latex installation, and the latex2html
+# tool installed.
+PYTHONSOURCE = /usr/src/Python-2.4.1/
+
+# Shouldn't need to change anything below here!
+
+MKHOWTO = $(PYTHONSOURCE)/Doc/tools/mkhowto
+
+all:
+ $(MKHOWTO) --dir .. --html pyalsaaudio.tex
+
+text:
+ $(MKHOWTO) --dir .. --text pyalsaaudio.tex
+
+
diff --git a/arch_src/pyalsaaudio-0.2/doc/src/libalsaaudio.tex b/arch_src/pyalsaaudio-0.2/doc/src/libalsaaudio.tex
new file mode 100644
index 0000000..c50ffe5
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/src/libalsaaudio.tex
@@ -0,0 +1,397 @@
+\section{\module{alsaaudio}}
+
+%\declaremodule{builtin}{alsaaudio} % standard library, in C
+\declaremodule{extension}{alsaaudio} % not standard, in C
+
+\platform{Linux}
+
+\moduleauthor{Casper Wilstrup}{cwi@unispeed.com} % Author of the module code;
+
+
+\modulesynopsis{ALSA sound support}
+
+
+The \module{alsaaudio} module defines functions and classes for using
+ALSA.
+
+% ---- 3.1. ----
+% For each function, use a ``funcdesc'' block. This has exactly two
+% parameters (each parameters is contained in a set of curly braces):
+% the first parameter is the function name (this automatically
+% generates an index entry); the second parameter is the function's
+% argument list. If there are no arguments, use an empty pair of
+% curly braces. If there is more than one argument, separate the
+% arguments with backslash-comma. Optional parts of the parameter
+% list are contained in \optional{...} (this generates a set of square
+% brackets around its parameter). Arguments are automatically set in
+% italics in the parameter list. Each argument should be mentioned at
+% least once in the description; each usage (even inside \code{...})
+% should be enclosed in \var{...}.
+
+\begin{funcdesc}{mixers}{\optional{cardname}}
+List the available mixers. The optional \var{cardname} specifies which
+card should be queried (this is only relevant if you have more than one
+sound card). Omit to use the default sound card
+\end{funcdesc}
+
+\begin{classdesc}{PCM}{\optional{type}, \optional{mode}, \optional{cardname}}
+This class is used to represent a PCM device (both playback and capture devices).
+The arguments are: \\
+\var{type} - can be either PCM_CAPTURE or PCM_PLAYBACK (default). \\
+\var{mode} - can be either PCM_NONBLOCK, PCM_ASYNC, or PCM_NORMAL (the default).\\
+\var{cardname} - specifies which card should be used (this is only relevant
+if you have more than one sound card). Omit to use the default sound card
+\end{classdesc}
+
+\begin{classdesc}{Mixer}{\optional{control}, \optional{id}, \optional{cardname}}
+This class is used to access a specific ALSA mixer.
+The arguments are: \\
+\var{control} - Name of the chosen mixed (default is Master). \\
+\var{id} - id of mixer (default is 0) -- More explaniation needed here\\
+\var{cardname} specifies which card should be used (this is only relevant
+if you have more than one sound card). Omit to use the default sound card
+\end{classdesc}
+
+
+\begin{excdesc}{ALSAAudioError}
+Exception raised when an operation fails for a ALSA specific reason.
+The exception argument is a string describing the reason of the
+failure.
+\end{excdesc}
+
+\subsection{PCM Terminology and Concepts}
+
+In order to use PCM devices it is useful to be familiar with some concepts and
+terminology.
+
+\begin{description}
+\item[Sample] PCM audio, whether it is input or output, consists at the lowest level
+of a number of single samples. A sample represents the sound in a single channel in
+a brief interval. If more than one channel is in use, more than one sample is required
+for each interval to describe the sound. Samples can be of many different sizes, ranging
+from 8 bit to 64 bit presition. The specific format of each sample can also vary - they
+can be big endian byte order, little endian byte order, or even floats.
+
+\item[Frame] A frame consists of exactly one sample per channel. If there is only one
+channel (Mono sound) a frame is simply a single sample. If the sound is stereo, each frame
+consists of two samples, etc.
+
+\item[Frame size] This is the size in bytes of each frame. This can vary a lot: if each sample is
+8 bits, and we're handling mono sound, the frame size is one byte. Similarly in 6 channel audio with
+64 bit floating point samples, the frame size is 48 bytes
+
+\item[Rate] PCM sound consists of a flow of sound frames. The sound rate controls how often
+the current frame is replaced. For example, a rate of 8000 Hz means that a new frame is played
+or captured 8000 times per second.
+
+\item[Data rate] This is the number of bytes, which must be recorded or provided per second
+at a certain frame size and rate.
+
+8000 Hz mono sound with 8 bit (1 byte) samples has a data rate of 8000 * 1 * 1 = 8 kb/s
+
+At the other end of the scale, 96000 Hz, 6 channel sound with 64 bit (8 bytes) samples
+has a data rate of 96000 * 6 * 8 = 4608 kb/s (almost 5 Mb sound data per second)
+
+\item[Period] When the hardware processes data this is done in chunks of frames. The time interval
+between each processing (A/D or D/A conversion) is known as the period. The size of the period has
+direct implication on the latency of the sound input or output. For low-latency the period size should
+be very small, while low CPU resource usage would usually demand larger period sizes. With ALSA, the
+CPU utilization is not impacted much by the period size, since the kernel layer buffers multiple
+periods internally, so each period generates an interrupt and a memory copy, but userspace can be
+slower and read or write multiple periods at the same time.
+
+\item[Period size] This is the size of each period in Hz. \emph{Not bytes, but Hz!.} In \module{alsaaudio}
+the period size is set directly, and it is therefore important to understand the significance of this
+number. If the period size is configured to for example 32, each write should contain exactly 32 frames
+of sound data, and each read will return either 32 frames of data or nothing at all.
+
+\end{description}
+
+Once you understand these concepts, you will be ready to actually utilize PCM API. Read on.
+
+\subsection{PCM Objects}
+\label{pcm-objects}
+
+The acronym PCM is short for Pulse Code Modulation and is the method used in ALSA
+and many other places to handle playback and capture of sampled sound data.
+
+PCM objects in \module{alsaaudio} are used to do exactly that, either play sample based
+sound or capture sound from some input source (perhaps a microphone). The PCM object
+constructor takes the following arguments:
+
+\begin{classdesc}{PCM}{\optional{type}, \optional{mode}, \optional{cardname}}
+
+\var{type} - can be either PCM_CAPTURE or PCM_PLAYBACK (default).
+
+\var{mode} - can be either PCM_NONBLOCK, PCM_ASYNC, or PCM_NORMAL (the default).
+In PCM_NONBLOCK mode, calls to read will return immediately independent of wether
+there is any actual data to read. Similarly, write calls will return immediately
+without actually writing anything to the playout buffer if the buffer is full.
+
+In the current version of \module{alsaaudio} PCM_ASYNC is useless, since it relies
+on a callback procedure, which can't be specified from Python.
+
+\var{cardname} - specifies which card should be used (this is only relevant
+if you have more than one sound card). Omit to use the default sound card
+
+This will construct a PCM object with default settings:
+
+Sample format: PCM_FORMAT_S16_LE \\
+Rate: 8000 Hz \\
+Channels: 2 \\
+Period size: 32 frames \\
+\end{classdesc}
+
+PCM objects have the following methods:
+
+\begin{methoddesc}[PCM]{pcmtype}{}
+Returns the type of PCM object. Either PCM_CAPTURE or PCM_PLAYBACK.
+\end{methoddesc}
+
+\begin{methoddesc}[PCM]{pcmmode}{}
+Return the mode of the PCM object. One of PCM_NONBLOCK, PCM_ASYNC, or PCM_NORMAL
+\end{methoddesc}
+
+\begin{methoddesc}[PCM]{cardname}{}
+Return the name of the sound card used by this PCM object.
+\end{methoddesc}
+
+\begin{methoddesc}[PCM]{setchannels}{nchannels}
+Used to set the number of capture or playback channels. Common values are: 1 = mono, 2 = stereo,
+and 6 = full 6 channel audio. Few sound cards support more than 2 channels
+\end{methoddesc}
+
+\begin{methoddesc}[PCM]{setrate}{rate}
+Set the sample rate in Hz for the device. Typical values are 8000 (poor sound), 16000, 44100 (cd quality),
+and 96000
+\end{methoddesc}
+
+\begin{methoddesc}[PCM]{setformat}{}
+The sound format of the device. Sound format controls how the PCM device interpret data for playback,
+and how data is encoded in captures.
+
+The following formats are provided by ALSA:
+\begin{tableii}{l|l}{Formats}{Format}{Description}
+ \lineii{PCM_FORMAT_S8}{Signed 8 bit samples for each channel}
+ \lineii{PCM_FORMAT_U8}{Signed 8 bit samples for each channel}
+ \lineii{PCM_FORMAT_S16_LE}{Signed 16 bit samples for each channel (Little Endian byte order)}
+ \lineii{PCM_FORMAT_S16_BE}{Signed 16 bit samples for each channel (Big Endian byte order)}
+ \lineii{PCM_FORMAT_U16_LE}{Unsigned 16 bit samples for each channel (Little Endian byte order)}
+ \lineii{PCM_FORMAT_U16_BE}{Unsigned 16 bit samples for each channel (Big Endian byte order)}
+ \lineii{PCM_FORMAT_S24_LE}{Signed 24 bit samples for each channel (Little Endian byte order)}
+ \lineii{PCM_FORMAT_S24_BE}{Signed 24 bit samples for each channel (Big Endian byte order)}
+ \lineii{PCM_FORMAT_U24_LE}{Unsigned 24 bit samples for each channel (Little Endian byte order)}
+ \lineii{PCM_FORMAT_U24_BE}{Unsigned 24 bit samples for each channel (Big Endian byte order)}
+ \lineii{PCM_FORMAT_S32_LE}{Signed 32 bit samples for each channel (Little Endian byte order)}
+ \lineii{PCM_FORMAT_S32_BE}{Signed 32 bit samples for each channel (Big Endian byte order)}
+ \lineii{PCM_FORMAT_U32_LE}{Unsigned 32 bit samples for each channel (Little Endian byte order)}
+ \lineii{PCM_FORMAT_U32_BE}{Unsigned 32 bit samples for each channel (Big Endian byte order)}
+ \lineii{PCM_FORMAT_FLOAT_LE}{32 bit samples encoded as float. (Little Endian byte order)}
+ \lineii{PCM_FORMAT_FLOAT_BE}{32 bit samples encoded as float (Big Endian byte order)}
+ \lineii{PCM_FORMAT_FLOAT64_LE}{64 bit samples encoded as float. (Little Endian byte order)}
+ \lineii{PCM_FORMAT_FLOAT64_BE}{64 bit samples encoded as float. (Big Endian byte order)}
+ \lineii{PCM_FORMAT_MU_LAW}{A logarithmic encoding (used by Sun .au files)}
+ \lineii{PCM_FORMAT_A_LAW}{Another logarithmic encoding}
+ \lineii{PCM_FORMAT_IMA_ADPCM}{a 4:1 compressed format defined by the Interactive Multimedia Association}
+ \lineii{PCM_FORMAT_MPEG}{MPEG encoded audio?}
+ \lineii{PCM_FORMAT_GSM}{9600 constant rate encoding well suitet for speech}
+\end{tableii}
+
+\end{methoddesc}
+
+\begin{methoddesc}[PCM]{setperiodsize}{period}
+Sets the actual period size in frames. Each write should consist of exactly this number of frames, and
+each read will return this number of frames (unless the device is in PCM_NONBLOCK mode, in which case
+it may return nothing at all)
+\end{methoddesc}
+
+\begin{methoddesc}[PCM]{read}{}
+In PCM_NORMAL mode, this function blocks until a full period is available, and then returns a
+tuple (length,data) where \emph{length} is the size in bytes of the captured data, and \emph{data}
+is the captured sound frames as a string. The length of the returned data will be periodsize*framesize
+bytes.
+
+In PCM_NONBLOCK mode, the call will not block, but will return \code{(0,'')} if no new period
+has become available since the last call to read.
+\end{methoddesc}
+
+\begin{methoddesc}[PCM]{write}{data}
+Writes (plays) the sound in data. The length of data \emph{must} be a multiple of the frame size, and
+\emph{should} be exactly the size of a period. If less than 'period size' frames are provided, the actual
+playout will not happen until more data is written.
+
+If the device is not in PCM_NONBLOCK mode, this call will block if the kernel buffer is full, and
+until enough sound has been played to allow the sound data to be buffered. The call always returns
+the size of the data provided
+
+In PCM_NONBLOCK mode, the call will return immediately, with a return value of zero, if the buffer is
+full. In this case, the data should be written at a later time.
+
+\end{methoddesc}
+
+\strong{A few hints on using PCM devices for playback}
+
+The most common reason for problems with playback of PCM audio, is that the people don't properly understand
+that writes to PCM devices must match \emph{exactly} the data rate of the device.
+
+If too little data is written to the device, it will underrun, and ugly clicking sounds will occur. Conversely,
+of too much data is written to the device, the write function will either block (PCM_NORMAL mode) or return zero
+(PCM_NONBLOCK mode).
+
+If your program does nothing, but play sound, the easiest way is to put the device in PCM_NORMAL mode, and just
+write as much data to the device as possible. This strategy can also be achieved by using a separate thread
+with the sole task of playing out sound.
+
+In GUI programs, however, it may be a better strategy to setup the device, preload the buffer with a few
+periods by calling write a couple of times, and then use some timer method to write one period size of data to
+the device every period. The purpose of the preloading is to avoid underrun clicks if the used timer
+doesn't expire exactly on time.
+
+Also note, that most timer API's that you can find for Python will cummulate time delays: If you set the timer
+to expire after 1/10'th of a second, the actual timeout will happen slightly later, which will accumulate to
+quite a lot after a few seconds. Hint: use time.time() to check how much time has really passed, and add
+extra writes as nessecary.
+
+\subsection{Mixer Objects}
+\label{mixer-objects}
+
+Mixer objects provides access to the ALSA mixer API.
+
+\begin{classdesc}{Mixer}{\optional{control}, \optional{id}, \optional{cardname}}
+\var{control} - specifies which control to manipulate using this mixer object. The list
+of available controls can be found with the \module{alsaaudio}.\function{mixers} function.
+The default value is 'Master' - other common controls include 'Master Mono', 'PCM', 'Line', etc.
+
+\var{id} - the id of the mixer control. Default is 0
+
+\var{cardname} - specifies which card should be used (this is only relevant
+if you have more than one sound card). Omit to use the default sound card
+\end{classdesc}
+
+Mixer objects have the following methods:
+
+\begin{methoddesc}[Mixer]{cardname}{}
+Return the name of the sound card used by this Mixer object
+\end{methoddesc}
+
+\begin{methoddesc}[Mixer]{mixer}{}
+Return the name of the specific mixer controlled by this object, For example 'Master'
+or 'PCM'
+\end{methoddesc}
+
+\begin{methoddesc}[Mixer]{mixerid}{}
+Return the ID of the ALSA mixer controlled by this object.
+\end{methoddesc}
+
+\begin{methoddesc}[Mixer]{switchcap}{}
+Returns a list of the switches which are defined by this specific mixer. Possible values in
+this list are:
+
+\begin{tableii}{l|l}{Switches}{Switch}{Description}
+ \lineii{'Mute'}{This mixer can be muted}
+ \lineii{'Joined Mute'}{This mixer can mute all channels at the same time}
+ \lineii{'Playback Mute'}{This mixer can mute the playback output}
+ \lineii{'Joined Playback Mute'}{Mute playback for all channels at the same time}
+ \lineii{'Capture Mute'}{Mute sound capture}
+ \lineii{'Joined Capture Mute'}{Mute sound capture for all channels at a time}
+ \lineii{'Capture Exclusive'}{Not quite sure what this is}
+\end{tableii}
+
+To manipulate these swithes use the \method{setrec} or \method{setmute} methods
+\end{methoddesc}
+
+\begin{methoddesc}[Mixer]{volumecap}{}
+Returns a list of the volume control capabilities of this mixer. Possible values in
+the list are:
+
+\begin{tableii}{l|l}{Volume Capabilities}{Capability}{Description}
+ \lineii{'Volume'}{This mixer can control volume}
+ \lineii{'Joined Volume'}{This mixer can control volume for all channels at the same time}
+ \lineii{'Playback Volume'}{This mixer can manipulate the playback volume}
+ \lineii{'Joined Playback Volume'}{Manipulate playback volumne for all channels at the same time}
+ \lineii{'Capture Volume'}{Manipulate sound capture volume}
+ \lineii{'Joined Capture Volume'}{Manipulate sound capture volume for all channels at a time}
+\end{tableii}
+
+\end{methoddesc}
+
+\begin{methoddesc}[Mixer]{getvolume}{\optional{direction}}
+Returns a list with the current volume settings for each channel. The list elements
+are integer percentages.
+
+The optional \var{direction} argument can be either 'playback' or 'capture', which is relevant
+if the mixer can control both playback and capture volume. The default value is 'playback'
+if the mixer has this capability, otherwise 'capture'
+
+\end{methoddesc}
+
+\begin{methoddesc}[Mixer]{getmute}{}
+Return a list indicating the current mute setting for each channel. 0 means not muted, 1 means muted.
+
+This method will fail if the mixer has no playback switch capabilities.
+\end{methoddesc}
+
+\begin{methoddesc}[Mixer]{getrec}{}
+Return a list indicating the current record mute setting for each channel. 0 means not recording, 1
+means not recording.
+
+This method will fail if the mixer has no capture switch capabilities.
+\end{methoddesc}
+
+\begin{methoddesc}[Mixer]{setvolume}{volume,\optional{channel},\optional{direction}}
+Change the current volume settings for this mixer. The \var{volume} argument controls
+the new volume setting as an integer percentage.
+
+If the optional argument \var{channel} is present, the volume is set only for this channel. This
+assumes that the mixer can control the volume for the channels independently.
+
+The optional \var{direction} argument can be either 'playback' or 'capture' is relevant if the mixer
+has independent playback and capture volume capabilities, and controls which of the volumes
+if changed. The default is 'playback' if the mixer has this capability, otherwise 'capture'.
+\end{methoddesc}
+
+\begin{methoddesc}[Mixer]{setmute}{mute, \optional{channel}}
+Sets the mute flag to a new value. The \var{mute} argument is either 0 for not muted, or 1 for muted.
+
+The optional \var{channel} argument controls which channel is muted. The default is to set the mute flag
+for all channels.
+
+This method will fail if the mixer has no playback mute capabilities
+\end{methoddesc}
+
+\begin{methoddesc}[Mixer]{setrec}{capture,\optional{channel}}
+Sets the capture mute flag to a new value. The \var{capture} argument is either 0 for no capture,
+or 1 for capture.
+
+The optional \var{channel} argument controls which channel is changed. The default is to set the capture flag
+for all channels.
+
+This method will fail if the mixer has no capture switch capabilities
+\end{methoddesc}
+
+
+\textbf{A Note on the ALSA Mixer API}
+
+The ALSA mixer API is extremely complicated - and hardly documented at all. \module{alsaaudio} implements
+a much simplified way to access this API. In designing the API I've had to make some choices which
+may limit what can and cannot be controlled through the API. However, If I had chosen to implement the
+full API, I would have reexposed the horrible complexity/documentation ratio of the underlying API.
+At least the \module{alsaaudio} API is easy to understand and use.
+
+If my design choises prevents you from doing something that the underlying API would have allowed,
+please let me know, so I can incorporate these need into future versions.
+
+If the current state of affairs annoy you, the best you can do is to write a HOWTO on the API and
+make this available on the net. Until somebody does this, the availability of ALSA mixer capable
+devices will stay quite limited.
+
+Unfortunately, I'm not able to create such a HOWTO myself, since I only understand half of the API,
+and that which I do understand has come from a painful trial and error process.
+
+
+
+% ==== 4. ====
+\subsection{ALSA Examples \label{pcm-example}}
+
+For now, the only examples available are the 'playbacktest.py' and the 'recordtest.py' programs included.
+This will change in a future version.
diff --git a/arch_src/pyalsaaudio-0.2/doc/src/pyalsaaudio.tex b/arch_src/pyalsaaudio-0.2/doc/src/pyalsaaudio.tex
new file mode 100644
index 0000000..1a5a4b0
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/src/pyalsaaudio.tex
@@ -0,0 +1,107 @@
+\documentclass{howto}
+
+\title{PyAlsaAudio}
+
+\release{0.2}
+
+% At minimum, give your name and an email address. You can include a
+% snail-mail address if you like.
+\author{Casper Wilstrup}
+\authoraddress{cwi@unispeed.com}
+
+\begin{document}
+\maketitle
+
+% This makes the Abstract go on a separate page in the HTML version;
+% if a copyright notice is used, it should go immediately after this.
+%
+\ifhtml
+\chapter*{Front Matter\label{front}}
+\fi
+
+% Copyright statement should go here, if needed.
+This software is licensed under the PSF license - the same one used
+by the majority of the python distribution. Basically you can use it
+for anything you wish (even commercial purposes). There is no warranty
+whatsoever.
+
+% The abstract should be a paragraph or two long, and describe the
+% scope of the document.
+\begin{abstract}
+\noindent
+This package contains wrappers for accessing the ALSA api from Python. It
+is currently fairly complete for PCM devices and Mixer access. MIDI sequencer
+support is low on my priority list, but volunteers are welcome.
+
+If you find bugs in the wrappers please notify me on email. Please
+don't send bug reports regarding ALSA specifically. There are several
+bugs in this api, and those should be reported to the ALSA team - not
+me.
+\end{abstract}
+
+\tableofcontents
+
+\section{What is ALSA}
+
+The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI
+functionality to the Linux operating system.
+
+Logically ALSA consists of these components:
+\begin{itemize}
+ \item A set of kernel drivers.\\
+ These drivers are responsible for handling the physical sound
+ hardware from within the Linux kernel, and have been the standard
+ sound implementation in Linux since kernel version 2.5
+ \item A kernel level API for manipulating the ALSA devices.
+ \item A user-space C library for simplified access to the sound hardware
+ from userspace applications. This library is called \textit{libasound}
+ and is required by all ALSA capable applications.
+\end{itemize}
+
+More information about ALSA may be found on the project homepage
+\url{http://www.alsa-project.org}
+
+\section{ALSA and Python}
+
+The older Linux sound API (OSS) which is now deprecated is well supported
+from the standard Python library, through the ossaudiodev module. No native
+ALSA support exists in the standard library (yet).
+
+There are a few other ``ALSA for Python'' projects available, including at
+least two different projects called pyAlsa. Neither of these seem to be under
+active development at the time - and neither are very feature complete.
+
+I wrote PyAlsaAudio to fill this gap. My long term goal is to have the module
+included in the standard Python library, but that is probably a while of yet.
+
+PyAlsaAudio hass full support for sound capture, playback of sound, as well as
+the ALSA Mixer API.
+
+MIDI support is not available, and since I don't own any MIDI hardware, it's
+difficult for me to implement it. Volunteers to work on this would be greatly
+appreciated
+\section{Installation}
+
+Note: the wrappers link with the alsasound library (from the alsa-lib
+package). Verify that this is installed by looking for /usr/lib/libasound.so
+before building. Naturally you also need to use a kernel with proper ALSA
+support. This is the default in Linux kernel 2.6 and later. If you are using
+kernel version 2.4 you may need to install the ALSA patches yourself - although
+most distributions ship with ALSA kernels.
+
+To install, execute the following: \\
+\begin{verbatim}
+$ python setup.py build
+\end{verbatim}
+
+And then as root: \\
+\begin{verbatim}
+# python setup.py install
+\end{verbatim}
+
+\input{libalsaaudio}
+
+
+
+
+\end{document}
diff --git a/arch_src/pyalsaaudio-0.2/doc/up.gif b/arch_src/pyalsaaudio-0.2/doc/up.gif
new file mode 100644
index 0000000..a9d3e13
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/up.gif
Binary files differ
diff --git a/arch_src/pyalsaaudio-0.2/doc/up.png b/arch_src/pyalsaaudio-0.2/doc/up.png
new file mode 100644
index 0000000..a90e028
--- /dev/null
+++ b/arch_src/pyalsaaudio-0.2/doc/up.png
Binary files differ