<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Home</title><link>https://sourceforge.net/p/pupsaudio/wiki/Home/</link><description>Recent changes to Home</description><atom:link href="https://sourceforge.net/p/pupsaudio/wiki/Home/feed" rel="self"/><language>en</language><lastBuildDate>Sun, 28 Jun 2015 12:44:57 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/pupsaudio/wiki/Home/feed" rel="self" type="application/rss+xml"/><item><title>Home modified by Manuel Jander</title><link>https://sourceforge.net/p/pupsaudio/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -1,6 +1,19 @@
-Welcome to your wiki!
+Welcome to the PupsAudio wiki!
+-

-This is the default page, edit it as you see fit. To add a new page simply reference it within brackets, e.g.: [SamplePage].
+** Introduction **
+
+The Name PupsAudio derives from PulseAudio, but "Pups" (to fart) denotes that this a less fancy version. In fact the goal of PupsAudio is a drop in replacement for PulseAudio that does nothing else but audio I/O utilizing ALSA. In other words, PupsAudio is a minimal glue between the PulseAudio API and ALSA.
+
+** Implementation aspects **
+
+Many functions are just stubs. The asynchronous API was implemented mostly synchronously, basically not doing anything. This works surprisingly well for some applications.
+The only module which does something in the end is pa_stream. Since callbacks are required for application notifications one pthread is required to poll ALSA events and pass them thru via the registered callbacks. Using ALSA snd_async_add_pcm_handler() unfortunately does not work because threaded applications will get killed by unhandled SIGIO at some unavoidable point in time. I was unable to solve this issue without modifying the application itself, and so this route would not allow to create a drop in replacement. Proprietary application would not work either. Because of that I decided to use the poll() approach.
+The headers under pulse and the linker map file are stolen from PulseAudio 6.0. Some code snippets are taken from ALSA examples.
+
+** Why not just install PulseAudio **
+
+I tried, but it does not work for me. The Problem is the large amount of dependencies which would break a lot of things on my laptop. I also do not like the idea to install something that causes such a huge burden and it provides something I do not want. ALSA in terms of sound is good enough. I just need damn audio I/O, basically a pipe that does nothing.

 The wiki uses [Markdown](/p/pupsaudio/wiki/markdown_syntax/) syntax.

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Manuel Jander</dc:creator><pubDate>Sun, 28 Jun 2015 12:44:57 -0000</pubDate><guid>https://sourceforge.netccc2e909549d220936c3cc658289eff4736da292</guid></item><item><title>Home modified by Manuel Jander</title><link>https://sourceforge.net/p/pupsaudio/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Welcome to your wiki!&lt;/p&gt;
&lt;p&gt;This is the default page, edit it as you see fit. To add a new page simply reference it within brackets, e.g.: &lt;span&gt;[SamplePage]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;The wiki uses &lt;a class="" href="/p/pupsaudio/wiki/markdown_syntax"&gt;Markdown&lt;/a&gt; syntax.&lt;/p&gt;
&lt;p&gt;&lt;h6&gt;Project Members:&lt;/h6&gt;
&lt;ul class="md-users-list"&gt;
&lt;li&gt;&lt;a href="/u/mjander"&gt;Manuel Jander&lt;/a&gt; (admin)&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;/p&gt;&lt;p&gt;&lt;span class="download-button-558fddf21be1ce5f8193a501" style="margin-bottom: 1em; display: block;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Manuel Jander</dc:creator><pubDate>Sun, 28 Jun 2015 11:43:46 -0000</pubDate><guid>https://sourceforge.net9013f6fa33f52105b6dc6f3d94dc0838e01afbf5</guid></item></channel></rss>