<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Colin.Guthr.ie &#187; linux</title>
	<atom:link href="http://colin.guthr.ie/tag/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://colin.guthr.ie</link>
	<description>Illegitimi non carborundum</description>
	<lastBuildDate>Thu, 03 Nov 2011 14:04:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>The Magic is Back!</title>
		<link>http://colin.guthr.ie/2011/02/the-magic-is-back/</link>
		<comments>http://colin.guthr.ie/2011/02/the-magic-is-back/#comments</comments>
		<pubDate>Tue, 15 Feb 2011 09:52:41 +0000</pubDate>
		<dc:creator>Colin</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mageia]]></category>
		<category><![CDATA[mandriva]]></category>

		<guid isPermaLink="false">http://colin.guthr.ie/?p=389</guid>
		<description><![CDATA[As many users in the community know, the Mandriva Linux distribution was forked a few months ago to form Mageia. This is a community driven effort to setup a properly organised and people-powered version of our favourite distro. I've personally not had nearly as much time to concentrate on helping the efforts here as I'd [...]]]></description>
			<content:encoded><![CDATA[<p>As many users in the community know, the Mandriva Linux distribution was forked a few months ago to form Mageia. This is a community driven effort to setup a properly organised and people-powered version of our favourite distro. I've personally not had nearly as much time to concentrate on helping the efforts here as I'd have like (various work and real life things getting in the way), but I've been stunned by the amount of time, effort and good will piling into the project from all corners. Various Mandriva contributors, both past and present have helped set things up and today I was <a href="http://blog.mageia.org/?p=492">able</a> to update and reboot into my new operating system!</p>
<p><code>[colin@jimmy ~]$ uname -a<br />
Linux jimmy 2.6.37-desktop-3.mga #1 SMP Tue Jan 25 14:16:42 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux<br />
[colin@jimmy ~]$ cat /etc/mageia-release<br />
Mageia release 1 (Cauldron) for x86_64</code></p>
<p>Yay! Now I should be able to step up the pace of my contributions as I find it much easier and more natural to work and test as I go on my own computer rather than in a virtualised environment.</p>
<p>Personally I upgraded my computer from Cooker which I had frozen in a pre-rpm5 state, diligently not doing any updates despite wanting several newer packages (esp the latest Firefox 4 beta). The upgrade itself went fairly smoothly, but had some hiccups. These were mostly solved when I realised I still had a bunch of stuff in my urpmi skip.list and cleaned it out (I had various rpm things in there to prevent rpm5 being accidentally installed - I'm sure it'll be good eventually, but I'll hold off for a little while <img src='http://colin.guthr.ie/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ).</p>
<p>So now I can update my computer again, the magic can return! Mageia has arrived!!!</p>
<div class='sociable'><div><span class='sociable-tagline'>Share and Enjoy:</span></div><ul><li><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F02%2Fthe-magic-is-back%2F&amp;title=The%20Magic%20is%20Back%21&amp;bodytext=As%20many%20users%20in%20the%20community%20know%2C%20the%20Mandriva%20Linux%20distribution%20was%20forked%20a%20few%20months%20ago%20to%20form%20Mageia.%20This%20is%20a%20community%20driven%20effort%20to%20setup%20a%20properly%20organised%20and%20people-powered%20version%20of%20our%20favourite%20distro.%20I%27ve%20personally%20not%20h" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a></li><li><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F02%2Fthe-magic-is-back%2F&amp;title=The%20Magic%20is%20Back%21" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a></li><li><a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F02%2Fthe-magic-is-back%2F&amp;title=The%20Magic%20is%20Back%21&amp;notes=As%20many%20users%20in%20the%20community%20know%2C%20the%20Mandriva%20Linux%20distribution%20was%20forked%20a%20few%20months%20ago%20to%20form%20Mageia.%20This%20is%20a%20community%20driven%20effort%20to%20setup%20a%20properly%20organised%20and%20people-powered%20version%20of%20our%20favourite%20distro.%20I%27ve%20personally%20not%20h" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a></li><li><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F02%2Fthe-magic-is-back%2F&amp;t=The%20Magic%20is%20Back%21" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a></li><li><a rel="nofollow"   href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F02%2Fthe-magic-is-back%2F&amp;submitHeadline=The%20Magic%20is%20Back%21&amp;submitSummary=As%20many%20users%20in%20the%20community%20know%2C%20the%20Mandriva%20Linux%20distribution%20was%20forked%20a%20few%20months%20ago%20to%20form%20Mageia.%20This%20is%20a%20community%20driven%20effort%20to%20setup%20a%20properly%20organised%20and%20people-powered%20version%20of%20our%20favourite%20distro.%20I%27ve%20personally%20not%20h&amp;submitCategory=science&amp;submitAssetType=text" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/yahoobuzz.png" class="sociable-img sociable-hovers" title="Yahoo! Buzz" alt="Yahoo! Buzz" /></a></li><li><a rel="nofollow"   href="http://twitter.com/home?status=The%20Magic%20is%20Back%21%20-%20http%3A%2F%2Fcolin.guthr.ie%2F2011%2F02%2Fthe-magic-is-back%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a></li><li><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F02%2Fthe-magic-is-back%2F&amp;title=The%20Magic%20is%20Back%21&amp;annotation=As%20many%20users%20in%20the%20community%20know%2C%20the%20Mandriva%20Linux%20distribution%20was%20forked%20a%20few%20months%20ago%20to%20form%20Mageia.%20This%20is%20a%20community%20driven%20effort%20to%20setup%20a%20properly%20organised%20and%20people-powered%20version%20of%20our%20favourite%20distro.%20I%27ve%20personally%20not%20h" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a></li><li><a rel="nofollow"   href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F02%2Fthe-magic-is-back%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/identica.png" class="sociable-img sociable-hovers" title="Identi.ca" alt="Identi.ca" /></a></li><li><a rel="nofollow"   href="http://slashdot.org/bookmark.pl?title=The%20Magic%20is%20Back%21&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F02%2Fthe-magic-is-back%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/slashdot.png" class="sociable-img sociable-hovers" title="Slashdot" alt="Slashdot" /></a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://colin.guthr.ie/2011/02/the-magic-is-back/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bobby Digital: In 5.1 Surround</title>
		<link>http://colin.guthr.ie/2010/12/bobby-digital-in-5-1-surround/</link>
		<comments>http://colin.guthr.ie/2010/12/bobby-digital-in-5-1-surround/#comments</comments>
		<pubDate>Tue, 21 Dec 2010 18:58:24 +0000</pubDate>
		<dc:creator>Colin</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mandriva]]></category>
		<category><![CDATA[pulseaudio]]></category>

		<guid isPermaLink="false">http://colin.guthr.ie/?p=359</guid>
		<description><![CDATA[OK, so this question crops up quite often, so I figured it's worth a post. People often ask how to enable 5.1 digital output with PulseAudio. In the past the answer is typically "you can't because S/PDIF only accepts stereo PCM or passthrough data" and while this is true, we can relatively easily hook up [...]]]></description>
			<content:encoded><![CDATA[<p>OK, so this question crops up quite often, so I figured it's worth a post. People often ask how to enable 5.1 digital output with PulseAudio. In the past the answer is typically "you can't because S/PDIF only accepts stereo PCM or passthrough data" and while this is true, we can relatively easily hook up an AC3 encoder which is helpfully provided in the ALSA plugins package.<span id="more-359"></span></p>
<p>While the "a52" plugin is part of the official ALSA plugins source, some distros do not compile it by default. It's available in Mandriva out of the box, but on Ubuntu for example you'll need to compile it yourself or find someone who provides a custom build for you (feel free to suggest a PPA in the comments below). Someone did tell me about <a href="http://ubuntu-ky.ubuntuforums.org/showthread.php?t=1608804">pretty good instructions</a> about building the plugin yourself.</p>
<p>So after building the plugin all you need to do is add a snippet of ALSA configuration to setup the a52 plugin with a named PCM that PulseAudio checks for and then everything should work automatically.</p>
<p>Here is the snippet. I'd recommend adding it to your ~/.asoundrc file (just create it if it doesn't exist;  ~/ is just a shortcut to your home directory).</p>
<pre>pcm.a52 {
  @args [CARD]
  @args.CARD {
    type string
  }
  type rate
  slave {
    pcm {
      type a52
      bitrate 448
      channels 6
      card $CARD
    }
    rate 48000 #required somehow, otherwise nothing happens in PulseAudio
  }
}
</pre>
<p>(just as a note, the previously linked article has an error when is suggests using echo to add this to your ~/.asoundrc as it doesn't double escape the $CARD)</p>
<p>Once this is in place, then PulseAudio will automatically probe it and provide you the option of selecting a 5.1 Digitial Output profile. You can use pavucontrol's Configuration tab to pick your profile (or gnome-volume-control or the Speaker Setup tab in KDE).</p>
<p>One other thing you may have to do to get this working properly is change the default sample rate used by PA to be 48kHz. To do this, just edit daemon.conf in either /etc/pulse or ~/.pulse and include the line:</p>
<pre>
default-sample-rate = 48000
</pre>
<p>&nbsp;</p>
<h1>What about Passthrough?</h1>
<p>At  present Passthrough support isn't available in the latest released  version of PA (it is supported in git master). Even when this is  available it will be exclusive (as will any other codec support  such as MP3 for Bluetooth and RAOP etc.) and as such mixing will not be  available which leads to a whole set of UI and configuration problems,  so in many ways using a software AC3 encoding system like the A52 plugin  here has many advantages over using passthrough. Obviously there is  processing and mixing overhead but for many people (myself included)  this is perfectly acceptable.</p>
<p>One odd thing about the setup is  that some applications will consider this an "Analog[ue]" output (e.g.  in XBMC I have to select Analog Output and choose 5.1 speakers to get  everything working correctly, but at least it works <img src='http://colin.guthr.ie/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>PS, yes the title is a <a href="http://en.wikipedia.org/wiki/Bobby_Digital_in_Stereo">Wu-Tang</a> reference <img src='http://colin.guthr.ie/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class='sociable'><div><span class='sociable-tagline'>Share and Enjoy:</span></div><ul><li><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F12%2Fbobby-digital-in-5-1-surround%2F&amp;title=Bobby%20Digital%3A%20In%205.1%20Surround&amp;bodytext=OK%2C%20so%20this%20question%20crops%20up%20quite%20often%2C%20so%20I%20figured%20it%27s%20worth%20a%20post.%20People%20often%20ask%20how%20to%20enable%205.1%20digital%20output%20with%20PulseAudio.%20In%20the%20past%20the%20answer%20is%20typically%20%22you%20can%27t%20because%20S%2FPDIF%20only%20accepts%20stereo%20PCM%20or%20passthrough%20data%22%20a" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a></li><li><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F12%2Fbobby-digital-in-5-1-surround%2F&amp;title=Bobby%20Digital%3A%20In%205.1%20Surround" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a></li><li><a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F12%2Fbobby-digital-in-5-1-surround%2F&amp;title=Bobby%20Digital%3A%20In%205.1%20Surround&amp;notes=OK%2C%20so%20this%20question%20crops%20up%20quite%20often%2C%20so%20I%20figured%20it%27s%20worth%20a%20post.%20People%20often%20ask%20how%20to%20enable%205.1%20digital%20output%20with%20PulseAudio.%20In%20the%20past%20the%20answer%20is%20typically%20%22you%20can%27t%20because%20S%2FPDIF%20only%20accepts%20stereo%20PCM%20or%20passthrough%20data%22%20a" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a></li><li><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F12%2Fbobby-digital-in-5-1-surround%2F&amp;t=Bobby%20Digital%3A%20In%205.1%20Surround" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a></li><li><a rel="nofollow"   href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F12%2Fbobby-digital-in-5-1-surround%2F&amp;submitHeadline=Bobby%20Digital%3A%20In%205.1%20Surround&amp;submitSummary=OK%2C%20so%20this%20question%20crops%20up%20quite%20often%2C%20so%20I%20figured%20it%27s%20worth%20a%20post.%20People%20often%20ask%20how%20to%20enable%205.1%20digital%20output%20with%20PulseAudio.%20In%20the%20past%20the%20answer%20is%20typically%20%22you%20can%27t%20because%20S%2FPDIF%20only%20accepts%20stereo%20PCM%20or%20passthrough%20data%22%20a&amp;submitCategory=science&amp;submitAssetType=text" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/yahoobuzz.png" class="sociable-img sociable-hovers" title="Yahoo! Buzz" alt="Yahoo! Buzz" /></a></li><li><a rel="nofollow"   href="http://twitter.com/home?status=Bobby%20Digital%3A%20In%205.1%20Surround%20-%20http%3A%2F%2Fcolin.guthr.ie%2F2010%2F12%2Fbobby-digital-in-5-1-surround%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a></li><li><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F12%2Fbobby-digital-in-5-1-surround%2F&amp;title=Bobby%20Digital%3A%20In%205.1%20Surround&amp;annotation=OK%2C%20so%20this%20question%20crops%20up%20quite%20often%2C%20so%20I%20figured%20it%27s%20worth%20a%20post.%20People%20often%20ask%20how%20to%20enable%205.1%20digital%20output%20with%20PulseAudio.%20In%20the%20past%20the%20answer%20is%20typically%20%22you%20can%27t%20because%20S%2FPDIF%20only%20accepts%20stereo%20PCM%20or%20passthrough%20data%22%20a" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a></li><li><a rel="nofollow"   href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F12%2Fbobby-digital-in-5-1-surround%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/identica.png" class="sociable-img sociable-hovers" title="Identi.ca" alt="Identi.ca" /></a></li><li><a rel="nofollow"   href="http://slashdot.org/bookmark.pl?title=Bobby%20Digital%3A%20In%205.1%20Surround&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F12%2Fbobby-digital-in-5-1-surround%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/slashdot.png" class="sociable-img sociable-hovers" title="Slashdot" alt="Slashdot" /></a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://colin.guthr.ie/2010/12/bobby-digital-in-5-1-surround/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PulseAudio, PulseVisual, PulseTalks</title>
		<link>http://colin.guthr.ie/2010/10/pulseaudio-pulsevisual-pulsetalks/</link>
		<comments>http://colin.guthr.ie/2010/10/pulseaudio-pulsevisual-pulsetalks/#comments</comments>
		<pubDate>Sun, 24 Oct 2010 22:06:00 +0000</pubDate>
		<dc:creator>Colin</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[pulseaudio]]></category>
		<category><![CDATA[sound]]></category>

		<guid isPermaLink="false">http://colin.guthr.ie/?p=334</guid>
		<description><![CDATA[So I'm just back from Nürmberg, German where I was fortunate enough to be invited to the speak at the OpenSuse Developer Summit. It has to be said, everything went really well. The first thing that struck me about this event is that it was quite inclusive. Although, obviously, the point was to discuss, promote [...]]]></description>
			<content:encoded><![CDATA[<p>So I'm just back from Nürmberg, German where I was fortunate enough to be invited to the speak at the OpenSuse Developer Summit. It has to be said, everything went really well. The first thing that struck me about this event is that it was quite inclusive. Although, obviously, the point was to discuss, promote and develop Suse there were folk there from other distros including Debian, Fedora and, of course Mandriva/Mageia (well, me!). This was very nice to see.<span id="more-334"></span></p>
<p>I was fortunate enough to be invited by Scott Reeves to speak about PulseAudio and specifically the <a href="http://colin.guthr.ie/tag/kde/">KDE Integration</a> work recently undertook. Scott works mostly on the SLED side of things (Enterprise Desktop) and PulseAudio falls within his remit. I'm pleased to say that the next version of OpenSuse's KDE flavour will follow the lead of Mandriva, Fedora and, most recently Kubuntu, and default to use PulseAudio under KDE. This is IMO a great step forward and will help continue the acceptance and appreciation of PulseAudio and I'm very happy to have played a part in making that possible.</p>
<p>Our talk itself went very well and seemed to be well received. It was also a pleasant surprise to finally meet both Takashi Iwai and Lennart Poettering who attended my talk and generally milled around. I've managed to miss meeting Lennart at various events over the years and while we've worked quite closely on PulseAudio in the past (to the extent he trusts me enough with managing the PA project while he works on the <a href="http://0pointer.de/blog/projects/systemd.html">systemd</a> project), it was nice to actually "talk" about PulseAudio! The subsequent BoF (Birds of a Feather) session on systemd was also very interesting (even if there was a little bit of a sticking point on defining preload vs. readahead which IMO was really labouring semantics to a degree and prevented getting to the more interesting stuff!). Takashi is another one of the few people who work on Linux Audio and it was nice to chat to him after exchanging several emails over the years on the ALSA mailing list.</p>
<p>The rest of the conference was also interesting. As someone who sits rather on the fence between KDE and Gnome it was interesting to see the developments in Gnome 3 demonstrated. There were various other titbits of interesting things too, but I wont bore the world with the details!</p>
<p>On the Saturday, I took the tram to the south of Nürmberg and visited their <a href="http://www.nmn.de/">New Museum of Art and Design</a>. It was very enjoyable. Almost deserted, which made it a rather nice experience, but also sad to see such a place under appreciated. Still it was quite early when I went, so maybe it hots up in the afternoon! My favourite photographs were by Gabriele Basilico and depicted a series of chairs with interesting seats: lattice, round holes, metal bars etc. and then accompanying photographs of a bottom that had clearly been sitting in said chair for a while. That quite tickled me <img src='http://colin.guthr.ie/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  An installation peace by Jeppe Hein was also very smart. Using light, mirrors and sensors to create interactive "rooms", including and empty one that just set off an alarm when you stepped into it (no doubt just to make people jump!). I then walked up through the centre checking out the churches (which would be a lot more interesting if they didn't have all that religious stuff inside them!) and the castle. A thoroughly pleasant day out!</p>
<p>When it was time to return home, my only regret was that I didn't get a chance to say goodbye to Scott, so as luck would have it I bumped into him at the airport in the queue going through security. It turned out he was on my flight to Amsterdam anyway so we were able to have a little blether on the way there.</p>
<p>What came as even more of a coincidence was the fact that I bumped into my mate Dom who happened to sit in front of me on the connecting flight to Edinburgh! He'd just been off climbing Kilimanjaro, which is arguably slightly more interesting than my week but he got his phone stolen at the "security" check in the airport (and the subsequent delay that it caused actually meant he was on my flight rather than an earlier one) so that evened things up!</p>
<p>But all in all, thanks to Novell, OpenSuse and Scott for inviting me along!</p>
<div class='sociable'><div><span class='sociable-tagline'>Share and Enjoy:</span></div><ul><li><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F10%2Fpulseaudio-pulsevisual-pulsetalks%2F&amp;title=PulseAudio%2C%20PulseVisual%2C%20PulseTalks&amp;bodytext=So%20I%27m%20just%20back%20from%20N%C3%BCrmberg%2C%20German%20where%20I%20was%20fortunate%20enough%20to%20be%20invited%20to%20the%20speak%20at%20the%20OpenSuse%20Developer%20Summit.%20It%20has%20to%20be%20said%2C%20everything%20went%20really%20well.%20The%20first%20thing%20that%20struck%20me%20about%20this%20event%20is%20that%20it%20was%20quite%20inc" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a></li><li><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F10%2Fpulseaudio-pulsevisual-pulsetalks%2F&amp;title=PulseAudio%2C%20PulseVisual%2C%20PulseTalks" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a></li><li><a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F10%2Fpulseaudio-pulsevisual-pulsetalks%2F&amp;title=PulseAudio%2C%20PulseVisual%2C%20PulseTalks&amp;notes=So%20I%27m%20just%20back%20from%20N%C3%BCrmberg%2C%20German%20where%20I%20was%20fortunate%20enough%20to%20be%20invited%20to%20the%20speak%20at%20the%20OpenSuse%20Developer%20Summit.%20It%20has%20to%20be%20said%2C%20everything%20went%20really%20well.%20The%20first%20thing%20that%20struck%20me%20about%20this%20event%20is%20that%20it%20was%20quite%20inc" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a></li><li><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F10%2Fpulseaudio-pulsevisual-pulsetalks%2F&amp;t=PulseAudio%2C%20PulseVisual%2C%20PulseTalks" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a></li><li><a rel="nofollow"   href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F10%2Fpulseaudio-pulsevisual-pulsetalks%2F&amp;submitHeadline=PulseAudio%2C%20PulseVisual%2C%20PulseTalks&amp;submitSummary=So%20I%27m%20just%20back%20from%20N%C3%BCrmberg%2C%20German%20where%20I%20was%20fortunate%20enough%20to%20be%20invited%20to%20the%20speak%20at%20the%20OpenSuse%20Developer%20Summit.%20It%20has%20to%20be%20said%2C%20everything%20went%20really%20well.%20The%20first%20thing%20that%20struck%20me%20about%20this%20event%20is%20that%20it%20was%20quite%20inc&amp;submitCategory=science&amp;submitAssetType=text" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/yahoobuzz.png" class="sociable-img sociable-hovers" title="Yahoo! Buzz" alt="Yahoo! Buzz" /></a></li><li><a rel="nofollow"   href="http://twitter.com/home?status=PulseAudio%2C%20PulseVisual%2C%20PulseTalks%20-%20http%3A%2F%2Fcolin.guthr.ie%2F2010%2F10%2Fpulseaudio-pulsevisual-pulsetalks%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a></li><li><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F10%2Fpulseaudio-pulsevisual-pulsetalks%2F&amp;title=PulseAudio%2C%20PulseVisual%2C%20PulseTalks&amp;annotation=So%20I%27m%20just%20back%20from%20N%C3%BCrmberg%2C%20German%20where%20I%20was%20fortunate%20enough%20to%20be%20invited%20to%20the%20speak%20at%20the%20OpenSuse%20Developer%20Summit.%20It%20has%20to%20be%20said%2C%20everything%20went%20really%20well.%20The%20first%20thing%20that%20struck%20me%20about%20this%20event%20is%20that%20it%20was%20quite%20inc" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a></li><li><a rel="nofollow"   href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F10%2Fpulseaudio-pulsevisual-pulsetalks%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/identica.png" class="sociable-img sociable-hovers" title="Identi.ca" alt="Identi.ca" /></a></li><li><a rel="nofollow"   href="http://slashdot.org/bookmark.pl?title=PulseAudio%2C%20PulseVisual%2C%20PulseTalks&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F10%2Fpulseaudio-pulsevisual-pulsetalks%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/slashdot.png" class="sociable-img sociable-hovers" title="Slashdot" alt="Slashdot" /></a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://colin.guthr.ie/2010/10/pulseaudio-pulsevisual-pulsetalks/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Some KDE PulseAudio bugfixes</title>
		<link>http://colin.guthr.ie/2010/09/some-kde-pulseaudio-bugfixes/</link>
		<comments>http://colin.guthr.ie/2010/09/some-kde-pulseaudio-bugfixes/#comments</comments>
		<pubDate>Thu, 30 Sep 2010 08:22:42 +0000</pubDate>
		<dc:creator>Colin</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[pulseaudio]]></category>

		<guid isPermaLink="false">http://colin.guthr.ie/?p=324</guid>
		<description><![CDATA[Confession time. I think I cocked up. Someone was asking me about why the HDMI was the default sound device in Phonon when used with PulseAudio. I patiently explained that this was a bug a while back but I fixed it.I diligently went to look up the relevant commit refs and then realised that I [...]]]></description>
			<content:encoded><![CDATA[<p>Confession time. I think I cocked up. Someone was asking me about why the HDMI was the default sound device in Phonon when used with PulseAudio. I patiently explained that this was a bug a while back but I fixed it.I diligently went to look up the relevant commit refs and then realised that I hadn't actually committed the fix. Whoops. It seems I fixed that bug during a late part of the Mandriva development cycle and only applied the code changes as patches on top of the source rather than committing them properly. I think I did this because I wanted wider testing before deeming them "ready" for upstream inclusion but then basically forgot. The other reason was perhaps that I was ashamed of myself for using a bubble sort - I really need to make an ordered pa_hashmap for this as I've found myself needing it a couple times now and will definitely need it in the future too. Another item on my todo list!</p>
<p>So apologies for that. I know some distro maintainers look at the Mandriva packages subversion for patches etc. so I'm sure some folks will have these fixes already, but it was a mistake not to push them upstream sooner.</p>
<p>Anyway, fixes are pushed to upstream master and stable-queue and will be part of the (hopefully) upcoming bugfix release.</p>
<div class='sociable'><div><span class='sociable-tagline'>Share and Enjoy:</span></div><ul><li><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F09%2Fsome-kde-pulseaudio-bugfixes%2F&amp;title=Some%20KDE%20PulseAudio%20bugfixes&amp;bodytext=Confession%20time.%20I%20think%20I%20cocked%20up.%20Someone%20was%20asking%20me%20about%20why%20the%20HDMI%20was%20the%20default%20sound%20device%20in%20Phonon%20when%20used%20with%20PulseAudio.%20I%20patiently%20explained%20that%20this%20was%20a%20bug%20a%20while%20back%20but%20I%20fixed%20it.I%20diligently%20went%20to%20look%20up%20the%20re" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a></li><li><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F09%2Fsome-kde-pulseaudio-bugfixes%2F&amp;title=Some%20KDE%20PulseAudio%20bugfixes" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a></li><li><a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F09%2Fsome-kde-pulseaudio-bugfixes%2F&amp;title=Some%20KDE%20PulseAudio%20bugfixes&amp;notes=Confession%20time.%20I%20think%20I%20cocked%20up.%20Someone%20was%20asking%20me%20about%20why%20the%20HDMI%20was%20the%20default%20sound%20device%20in%20Phonon%20when%20used%20with%20PulseAudio.%20I%20patiently%20explained%20that%20this%20was%20a%20bug%20a%20while%20back%20but%20I%20fixed%20it.I%20diligently%20went%20to%20look%20up%20the%20re" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a></li><li><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F09%2Fsome-kde-pulseaudio-bugfixes%2F&amp;t=Some%20KDE%20PulseAudio%20bugfixes" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a></li><li><a rel="nofollow"   href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F09%2Fsome-kde-pulseaudio-bugfixes%2F&amp;submitHeadline=Some%20KDE%20PulseAudio%20bugfixes&amp;submitSummary=Confession%20time.%20I%20think%20I%20cocked%20up.%20Someone%20was%20asking%20me%20about%20why%20the%20HDMI%20was%20the%20default%20sound%20device%20in%20Phonon%20when%20used%20with%20PulseAudio.%20I%20patiently%20explained%20that%20this%20was%20a%20bug%20a%20while%20back%20but%20I%20fixed%20it.I%20diligently%20went%20to%20look%20up%20the%20re&amp;submitCategory=science&amp;submitAssetType=text" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/yahoobuzz.png" class="sociable-img sociable-hovers" title="Yahoo! Buzz" alt="Yahoo! Buzz" /></a></li><li><a rel="nofollow"   href="http://twitter.com/home?status=Some%20KDE%20PulseAudio%20bugfixes%20-%20http%3A%2F%2Fcolin.guthr.ie%2F2010%2F09%2Fsome-kde-pulseaudio-bugfixes%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a></li><li><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F09%2Fsome-kde-pulseaudio-bugfixes%2F&amp;title=Some%20KDE%20PulseAudio%20bugfixes&amp;annotation=Confession%20time.%20I%20think%20I%20cocked%20up.%20Someone%20was%20asking%20me%20about%20why%20the%20HDMI%20was%20the%20default%20sound%20device%20in%20Phonon%20when%20used%20with%20PulseAudio.%20I%20patiently%20explained%20that%20this%20was%20a%20bug%20a%20while%20back%20but%20I%20fixed%20it.I%20diligently%20went%20to%20look%20up%20the%20re" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a></li><li><a rel="nofollow"   href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F09%2Fsome-kde-pulseaudio-bugfixes%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/identica.png" class="sociable-img sociable-hovers" title="Identi.ca" alt="Identi.ca" /></a></li><li><a rel="nofollow"   href="http://slashdot.org/bookmark.pl?title=Some%20KDE%20PulseAudio%20bugfixes&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F09%2Fsome-kde-pulseaudio-bugfixes%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/slashdot.png" class="sociable-img sociable-hovers" title="Slashdot" alt="Slashdot" /></a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://colin.guthr.ie/2010/09/some-kde-pulseaudio-bugfixes/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Compiling and running PulseAudio from git</title>
		<link>http://colin.guthr.ie/2010/09/compiling-and-running-pulseaudio-from-git/</link>
		<comments>http://colin.guthr.ie/2010/09/compiling-and-running-pulseaudio-from-git/#comments</comments>
		<pubDate>Sun, 26 Sep 2010 16:48:27 +0000</pubDate>
		<dc:creator>Colin</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mandriva]]></category>
		<category><![CDATA[pulseaudio]]></category>

		<guid isPermaLink="false">http://colin.guthr.ie/?p=307</guid>
		<description><![CDATA[A few budding developers have asked me recently about this and to make life easy, I decided to write up this guide! There are some gotchas to look out for so please read carefully! Are we ready? OK, lets being! The shell output shown below will include my machine's name, "jimmy". My bash prompt also [...]]]></description>
			<content:encoded><![CDATA[<p>A few budding developers have asked me recently about this and to make life easy, I decided to write up this guide! There are some gotchas to look out for so please read carefully!<span id="more-307"></span></p>
<p>Are we ready? OK, lets being!</p>
<p>The shell output shown below will include my machine's name, "jimmy". My bash prompt also shows the current git branch thanks to the git-prompt package in Mandriva (you can enable it manually by following <a href="https://fedoraproject.org/wiki/Git_Quickref#Display_current_branch_in_bash">this guide</a>). Note that for various reasons I wont go into in this guide, the development version of PA is currently 0.9.19, this is despite the current released version being 0.9.21. Its due to how the git tree is organised, and I'm hoping to fix this soon. <em>Edit: Git master is now tracking PA 1.0 (not for any specific milestone of 1.0, but just because a 3-point version number is kinda annoying. Essential the version policy is now decided and all should be working fine now. There may still be a 0.9.23 based of the current stable-queue branch, but the next release from master will be 1.0.</em></p>
<h2>May the Source Be With You</h2>
<p>The first job is to clone our code repository. You first have to pick where you want to keep your development version. In the example below I've decided to use a folder under my home directory called "padev"</p>
<pre>[colin@jimmy ~]$ git clone git://git.0pointer.de/pulseaudio.git padev
Cloning into padev...
remote: Counting objects: 39578, done.
remote: Compressing objects: 100% (6760/6760), done.
remote: Total 39578 (delta 32779), reused 39578 (delta 32779)
Receiving objects: 100% (39578/39578), 14.56 MiB | 1.97 MiB/s, done.
Resolving deltas: 100% (32779/32779), done.
[colin@jimmy ~]$</pre>
<p>Now you should have a ~/padev/ folder containing the code.</p>
<p>Compile Time</p>
<p>Now it's time to compile the code, but before we do this, we have to prepare the checkout for compilation. Handily there is a script provided to make this easy for us.</p>
<pre>[colin@jimmy ~]$ cd padev/
[colin@jimmy padev (master)]$ ./bootstrap.sh -V
+ case $(uname) in
++ uname
...
+ make clean
make: *** No rule to make target `clean'.  Stop.
[colin@jimmy padev (master)]$</pre>
<p>There is an error about not being able to "make clean" here but you can safely ignore that.</p>
<p>Next we'll create a build directory. This is not mandatory, but it helps keep temporary build files etc. separate from the code in the checkout (there are special git commands to delete such files but all the same, I feel this is cleaner). After creating the build directory, we change to it and run the configure script.</p>
<pre>[colin@jimmy padev (master)]$ mkdir build
[colin@jimmy padev (master)]$ cd build/
[colin@jimmy build (master)]$ ../configure --prefix=$(pwd)
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
...
config.status: executing po/stamp-it commands

---{ pulseaudio 0.9.19-562-g395da }---

prefix:                        /home/colin/padev/build
sysconfdir:                    ${prefix}/etc
localstatedir:                 ${prefix}/var
System Runtime Path:           ${prefix}/var/run/pulse
System State Path:             ${prefix}/var/lib/pulse
System Config Path:            ${prefix}/var/lib/pulse
Compiler:                      gcc -std=gnu99
CFLAGS:                        -g -O2 -Wall -W -Wextra -pipe -Wno-long-long -Winline -Wvla -Wno-overlength-strings -Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align -Wstrict-aliasing=2 -Wwrite-strings -Wno-unused-parameter -ffast-math -Wp,-D_FORTIFY_SOURCE=2 -fno-common -fdiagnostics-show-option -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include

Have X11:                      yes
Enable OSS Output:             yes
Enable OSS Wrapper:            yes
Enable CoreAudio:              no
Enable Alsa:                   yes
Enable Solaris:                no
Enable GLib 2.0:               yes
Enable Gtk+ 2.0:               yes
Enable GConf:                  yes
Enable Avahi:                  yes
Enable Jack:                   yes
Enable Async DNS:              yes
Enable LIRC:                   yes
Enable DBUS:                   yes
Enable HAL:                    yes
Enable udev:                   yes
Enable HAL-&gt;udev compat:       no
Enable BlueZ:                  yes
Enable TCP Wrappers:           yes
Enable libsamplerate:          yes
Enable IPv6:                   yes
Enable OpenSSL (for Airtunes): yes
Enable tdb:                    yes
Enable gdbm:                   no
Enable simple database:        no
Enable fftw:                   yes

System User:                   pulse
System Group:                  pulse
Access Group:                  pulse-access
Enable per-user EsounD socket: yes
Force preopen:                 no
Preopened modules:             all
[colin@jimmy build (master)]$</pre>
<p>You should pay particular attention to the --prefix argument passed to configure. Rather than "installing" this version of PulseAudio, we'll just run it from the source tree. This is both quicker and saves any potential conflict with your system-installed PulseAudio packages.</p>
<p>You should also pay attention to the table at the end which lists the available support. In order for automatic card detection to work properly with your build, you really should ensure that udev support in particular is available. If it does not print a "yes" line in the output then you probably do not have the "udev-devel" package for your distro installed.</p>
<h2>Let's Build</h2>
<p>OK, so you're ready to build! But not quite. Due to an <a href="https://bugs.launchpad.net/intltool/+bug/605826">upstream bug</a>, the translations for .desktop files are not written if the destination folder does not exist, so let's create it manually</p>
<pre>[colin@jimmy build (master)]$ mkdir -p src/daemon
[colin@jimmy build (master)]$</pre>
<p>OK, with all the prep work done, we really do build it.</p>
<pre>[colin@jimmy build (master)]$ make
echo 0.9.19-562-g395da &gt; ../.version-t &amp;&amp; mv ../.version-t ../.version
make  all-recursive
...
file=`echo zh_TW | sed 's,.*/,,'`.gmo \
 &amp;&amp; rm -f $file &amp;&amp; /usr/bin/msgfmt -o $file ../../po/zh_TW.po
make[2]: Leaving directory `/home/colin/padev/build/po'
make[2]: Entering directory `/home/colin/padev/build'
make[2]: Leaving directory `/home/colin/padev/build'
make[1]: Leaving directory `/home/colin/padev/build'
[colin@jimmy build (master)]$</pre>
<p>Now that it's built successfully we can run it, but we'll do a little bit of preparation first. As ALSA currently lacks UCM  (Use Case Management) (although this is due to be added soon),  PulseAudio supports a fairly robust "probing" system to determine how  your sound hardware works. In order to run these probes it has to know  where to look for the "mixer profile" definitions. As we are running  from the build tree, we'll cheat a little and use a symlink so that our  development build can find the files.</p>
<pre>[colin@jimmy build (master)]$ mkdir -p share/pulseaudio
[colin@jimmy build (master)]$ ln -s ../../../src/modules/alsa/mixer share/pulseaudio/alsa-mixer
[colin@jimmy build (master)]$</pre>
<p>In order to run some test tools, we also need to manually create some symlinks that are normally done as part of the install process.</p>
<pre>[colin@jimmy build (master)]$ ln -s pacat src/paplay
[colin@jimmy build (master)]$ ln -s pacat src/parec
[colin@jimmy build (master)]$</pre>
<h2>Run, Forest, Run!</h2>
<p>Now that things are built and some symlinks are in place, we can run our nice shiny development version. You should first ensure that the system-installed PulseAudio daemon is not running. In order to do this, you should disable autospawn by doing:</p>
<pre>echo "autospawn=no" &gt;&gt; ~/.pulse/client.conf</pre>
<p>Once this is done, you should reboot. PulseAudio will likely still start when you log in to X11 by virtue of the start-pulseaudio-x11 script that is run at login, but some systems that rely on PA autospawn may not initialise correctly (e.g. under KDE knotify and kmix may start in 'ALSA mode'. This is generally not a problem, but you should be aware of the consequences.</p>
<p>So if your system PA has been run, simply execute:</p>
<pre>pulseaudio -k</pre>
<p>To kill the currently running daemon. You can then start your development version via:</p>
<pre>[colin@jimmy build (master)]$ src/pulseaudio -n -F src/default.pa -p $(pwd)/src/.libs/ -vvvv
W: main.c: Couldn't canonicalize binary path, cannot self execute.
I: main.c: setrlimit(RLIMIT_NICE, (31, 31)) failed: Operation not permitted
I: main.c: setrlimit(RLIMIT_RTPRIO, (9, 9)) failed: Operation not permitted
D: core-rtclock.c: Timer slack is set to 50 us.
D: core-util.c: RealtimeKit worked.
I: core-util.c: Successfully gained nice level -11.
I: main.c: This is PulseAudio 0.9.19-562-g395da
...</pre>
<p>This will produce a lot of debug output, so you should leave that terminal running. The command line arguments are as follows: "-n" says "do not process the (system) default.pa". This is generally only needed if you have a ~/.pulse/default.pa file, but it does no harm to include it always. "-F src/default.pa" says to "process the script src/default.pa" and "-p $(pwd)/src/.libs" tells PA where to look for it's modules (i.e. from your build tree).</p>
<p>Note that the state files saved by PulseAudio in ~/.pulse/ folder will very likely NOT conflict with your system PA's files. This is because our development PA build does not know the right path to look for /var/lib/dbus/machine-id. Because of this, the prefix used on files will default to the host name of your machine, not the string of apparently random numbers and letters that you may see in there already. If you cross reference, the output from cat /var/lib/dbus/machine-id will show the same number as used here. We do this to ensure we can have separate preferences for different machines when your home directory is shared over e.g. NFS - the machine-id is more stable than the hostname which is why we prefer that as a prefix.</p>
<h2>Running a Client App</h2>
<p>So now that everything is running, you should be able to run a client application. As the build tree comes with some utilities you can run them directly from there:</p>
<pre>[colin@jimmy build (master)]$ src/paplay -vv /usr/share/sounds/ia_ora-startup.wav
Opening a playback stream with sample specification 's16le 2ch 22050Hz' and channel map 'front-left,front-right'.
Connection established.
Stream successfully created.
Buffer metrics: maxlength=4194304, tlength=176400, prebuf=174640, minreq=1764
Using sample spec 's16le 2ch 22050Hz', channel map 'front-left,front-right'.
Connected to device alsa_output.pci-0000_00_1b.0.analog-stereo (0, not suspended).
Stream started.
Stream underrun.
Playback stream drained.: 1007045 usec.
Draining connection to server.</pre>
<p>If, however you want to run a more advanced client application, then you need to employ a little hack to tell your system to use your development version of libpulse. This is quite trivial:</p>
<pre>[colin@jimmy build (master)]$ export LD_LIBRARY_PATH=$(pwd)/src/.libs
[colin@jimmy build (master)]$ mplayer /path/to/your/fav.mp3
...</pre>
<p>Easy eh? That's all you need to do to run PulseAudio from git. You can now easily try out patches, write your own modules and help contribute! Happy hacking.</p>
<h2>Some notes on Overlinking</h2>
<p>So, just before I sign off, I thought it was best to mention overlinking. PulseAudio itself uses a shared library that is used by both client and server. This library is "libpulsecommon-0.9.x.so". Client applications should NOT link to this file directly - instead libpulse will load it in for you. This can lead to some strange results. e.g. consider the following output:</p>
<pre>[colin@jimmy ~]$ ldd `which paplay` | grep pulse
	libpulse.so.0 =&gt; /usr/lib64/libpulse.so.0 (0x00007f5bd9fc7000)
	libpulsecommon-0.9.21.so =&gt; /usr/lib64/libpulsecommon-0.9.21.so (0x00007f5bd9d76000)
[colin@jimmy ~]$ ldd `which mplayer` | grep pulse
	libpulse.so.0 =&gt; /usr/lib64/libpulse.so.0 (0x00007f617c1f4000)
	libpulsecommon-0.9.21.so =&gt; /usr/lib64/libpulsecommon-0.9.21.so (0x00007f6175f08000)</pre>
<p>This looks more or less the same right? Not quite. Compare this to:</p>
<pre>[colin@jimmy ~]$ objdump -p `which paplay` | grep pulse
  NEEDED               libpulse.so.0
  NEEDED               libpulsecommon-0.9.21.so
  required from libpulse.so.0:
[colin@jimmy ~]$ objdump -p `which mplayer` | grep pulse
  NEEDED               libpulse.so.0
  required from libpulse.so.0:</pre>
<p>So what you can see here is that my paplay really does need both, but mplayer actually only does not directly need libpulsecommon-0.9.21.so. But what does this mean to you when running things? Well, due to the fact that PulseAudio has this kind of circular dependancy internally, we cannot use the --no-undefined or --as-needed build options. This means that the PulseAudio package is Over linked. This is why the paplay utility needs libpulsecommond-0.9.21.so directly, unlike mplayer, which does not.</p>
<p>So if you try and use the above guide and ultimately run the system provided paplay utility, you'll find you run into problems. This is because the system libpulsecommon-0.9.21.so will be used, not your freshly compiled version (which could have a completely different version number - e.g. libpulsecommon-0.9.19.so!).</p>
<p>While we don't need to run the system paplay (as we have built our own version), it's easy to forget this quirk and break things. If you want to be sure, you can place a symlink in your build folder to fool the system into loading your libpulsecommon, even when the versions don't "match". As this is an overlinking problem, there is little danger in doing this hack:</p>
<pre>[colin@jimmy build (master)]$ ln -s libpulsecommon-0.9.19.so src/.libs/libpulsecommon-0.9.21.so
[colin@jimmy build (master)]$</pre>
<p>This puts the necessary symlink in place to make my dev build (0.9.19) replace the system build (0.9.21). This only has effect with the LD_LIBRARY_PATH variable set, so it wont interfere with anything on your system.</p>
<p>Depending on your your distro packages things, the problems of overlinking may be present in more than just the paplay utility. So check this out and use objdump -p to confirm the client application you want to run is linked correctly and use the symlink hack if needed.</p>
<div class='sociable'><div><span class='sociable-tagline'>Share and Enjoy:</span></div><ul><li><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F09%2Fcompiling-and-running-pulseaudio-from-git%2F&amp;title=Compiling%20and%20running%20PulseAudio%20from%20git&amp;bodytext=A%20few%20budding%20developers%20have%20asked%20me%20recently%20about%20this%20and%20to%20make%20life%20easy%2C%20I%20decided%20to%20write%20up%20this%20guide%21%20There%20are%20some%20gotchas%20to%20look%20out%20for%20so%20please%20read%20carefully%21%0D%0A%0D%0AAre%20we%20ready%3F%20OK%2C%20lets%20being%21%0D%0A%0D%0AThe%20shell%20output%20shown%20below%20will" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a></li><li><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F09%2Fcompiling-and-running-pulseaudio-from-git%2F&amp;title=Compiling%20and%20running%20PulseAudio%20from%20git" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a></li><li><a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F09%2Fcompiling-and-running-pulseaudio-from-git%2F&amp;title=Compiling%20and%20running%20PulseAudio%20from%20git&amp;notes=A%20few%20budding%20developers%20have%20asked%20me%20recently%20about%20this%20and%20to%20make%20life%20easy%2C%20I%20decided%20to%20write%20up%20this%20guide%21%20There%20are%20some%20gotchas%20to%20look%20out%20for%20so%20please%20read%20carefully%21%0D%0A%0D%0AAre%20we%20ready%3F%20OK%2C%20lets%20being%21%0D%0A%0D%0AThe%20shell%20output%20shown%20below%20will" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a></li><li><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F09%2Fcompiling-and-running-pulseaudio-from-git%2F&amp;t=Compiling%20and%20running%20PulseAudio%20from%20git" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a></li><li><a rel="nofollow"   href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F09%2Fcompiling-and-running-pulseaudio-from-git%2F&amp;submitHeadline=Compiling%20and%20running%20PulseAudio%20from%20git&amp;submitSummary=A%20few%20budding%20developers%20have%20asked%20me%20recently%20about%20this%20and%20to%20make%20life%20easy%2C%20I%20decided%20to%20write%20up%20this%20guide%21%20There%20are%20some%20gotchas%20to%20look%20out%20for%20so%20please%20read%20carefully%21%0D%0A%0D%0AAre%20we%20ready%3F%20OK%2C%20lets%20being%21%0D%0A%0D%0AThe%20shell%20output%20shown%20below%20will&amp;submitCategory=science&amp;submitAssetType=text" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/yahoobuzz.png" class="sociable-img sociable-hovers" title="Yahoo! Buzz" alt="Yahoo! Buzz" /></a></li><li><a rel="nofollow"   href="http://twitter.com/home?status=Compiling%20and%20running%20PulseAudio%20from%20git%20-%20http%3A%2F%2Fcolin.guthr.ie%2F2010%2F09%2Fcompiling-and-running-pulseaudio-from-git%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a></li><li><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F09%2Fcompiling-and-running-pulseaudio-from-git%2F&amp;title=Compiling%20and%20running%20PulseAudio%20from%20git&amp;annotation=A%20few%20budding%20developers%20have%20asked%20me%20recently%20about%20this%20and%20to%20make%20life%20easy%2C%20I%20decided%20to%20write%20up%20this%20guide%21%20There%20are%20some%20gotchas%20to%20look%20out%20for%20so%20please%20read%20carefully%21%0D%0A%0D%0AAre%20we%20ready%3F%20OK%2C%20lets%20being%21%0D%0A%0D%0AThe%20shell%20output%20shown%20below%20will" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a></li><li><a rel="nofollow"   href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F09%2Fcompiling-and-running-pulseaudio-from-git%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/identica.png" class="sociable-img sociable-hovers" title="Identi.ca" alt="Identi.ca" /></a></li><li><a rel="nofollow"   href="http://slashdot.org/bookmark.pl?title=Compiling%20and%20running%20PulseAudio%20from%20git&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F09%2Fcompiling-and-running-pulseaudio-from-git%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/slashdot.png" class="sociable-img sociable-hovers" title="Slashdot" alt="Slashdot" /></a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://colin.guthr.ie/2010/09/compiling-and-running-pulseaudio-from-git/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>There is no spoon (but there is a fork)</title>
		<link>http://colin.guthr.ie/2010/09/there-is-no-spoon-but-there-is-a-fork/</link>
		<comments>http://colin.guthr.ie/2010/09/there-is-no-spoon-but-there-is-a-fork/#comments</comments>
		<pubDate>Sat, 18 Sep 2010 18:23:57 +0000</pubDate>
		<dc:creator>Colin</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mageia]]></category>
		<category><![CDATA[mandriva]]></category>

		<guid isPermaLink="false">http://colin.guthr.ie/?p=298</guid>
		<description><![CDATA[As many followers of the Linux ecosystem will already be aware, Mandriva Linux (my personal distro of choice) has been through some turbulent times of late. Financial troubles meant that Edge IT (a subsidiary of Mandriva SA) was liquidated and all employees made redundant as a result. While it was not widely known, many of [...]]]></description>
			<content:encoded><![CDATA[<p>As many followers of the Linux ecosystem will already be aware, Mandriva Linux (my personal distro of choice) has been through some turbulent times of late. Financial troubles meant that Edge IT (a subsidiary of Mandriva SA) was liquidated and all employees made redundant as a result. While it was not widely known, many of the core developers were technically employees of Edge IT rather than Mandriva SA, so this lay off was actually quite drastic.</p>
<p>Those of us involved in the community surrounding Mandriva have obviously been worried that the future of our favourite distro is in doubt, so it is with great pleasure that I pass on news of the upcoming fork of Mandriva Linux: <a href="http://www.mageia.org/">Mageia</a></p>
<p>Obviously the obligatory <a href="http://linux.slashdot.org/story/10/09/18/1437248/Developers-Fork-Mandriva-Linux-Creating-Mageia">slashdot</a> story only really draws comments on the choice of name. Personally, I quite like it (more so than the name "Mandriva" (which itself was a contraction of Mandrake and Conectiva - partly due to the use of the name Mandrake drawing some legal issues)). And choosing a name is no easy business: there are trademark issues to consider and domain names to secure: this can seriously limit your choice. Regardless of the practicalities, "that which we call a rose, by any other name, would smell as sweet". In other words, the name doesn't matter, what really matters is the work done and the contributions to be made to the wider Linux ecosystem.</p>
<p>Mandriva has long been regarded as a good participant in upstream projects, contributing to the Kernel, Graphic and Audio subsystems as well as being a very active contributor to higher level desktop environments such as KDE (and GNOME and XFCE and others too). With so many of the key contributors following this fork and contributing to Mageia, I feel this tradition will continue and grow with time.</p>
<p>So, as I said in one of the many "goodbye" emails I've had to write following the lay offs: The future is unwritten. Let's write it!</p>
<div class='sociable'><div><span class='sociable-tagline'>Share and Enjoy:</span></div><ul><li><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F09%2Fthere-is-no-spoon-but-there-is-a-fork%2F&amp;title=There%20is%20no%20spoon%20%28but%20there%20is%20a%20fork%29&amp;bodytext=As%20many%20followers%20of%20the%20Linux%20ecosystem%20will%20already%20be%20aware%2C%20Mandriva%20Linux%20%28my%20personal%20distro%20of%20choice%29%20has%20been%20through%20some%20turbulent%20times%20of%20late.%20Financial%20troubles%20meant%20that%20Edge%20IT%20%28a%20subsidiary%20of%20Mandriva%20SA%29%20was%20liquidated%20and%20all%20em" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a></li><li><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F09%2Fthere-is-no-spoon-but-there-is-a-fork%2F&amp;title=There%20is%20no%20spoon%20%28but%20there%20is%20a%20fork%29" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a></li><li><a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F09%2Fthere-is-no-spoon-but-there-is-a-fork%2F&amp;title=There%20is%20no%20spoon%20%28but%20there%20is%20a%20fork%29&amp;notes=As%20many%20followers%20of%20the%20Linux%20ecosystem%20will%20already%20be%20aware%2C%20Mandriva%20Linux%20%28my%20personal%20distro%20of%20choice%29%20has%20been%20through%20some%20turbulent%20times%20of%20late.%20Financial%20troubles%20meant%20that%20Edge%20IT%20%28a%20subsidiary%20of%20Mandriva%20SA%29%20was%20liquidated%20and%20all%20em" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a></li><li><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F09%2Fthere-is-no-spoon-but-there-is-a-fork%2F&amp;t=There%20is%20no%20spoon%20%28but%20there%20is%20a%20fork%29" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a></li><li><a rel="nofollow"   href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F09%2Fthere-is-no-spoon-but-there-is-a-fork%2F&amp;submitHeadline=There%20is%20no%20spoon%20%28but%20there%20is%20a%20fork%29&amp;submitSummary=As%20many%20followers%20of%20the%20Linux%20ecosystem%20will%20already%20be%20aware%2C%20Mandriva%20Linux%20%28my%20personal%20distro%20of%20choice%29%20has%20been%20through%20some%20turbulent%20times%20of%20late.%20Financial%20troubles%20meant%20that%20Edge%20IT%20%28a%20subsidiary%20of%20Mandriva%20SA%29%20was%20liquidated%20and%20all%20em&amp;submitCategory=science&amp;submitAssetType=text" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/yahoobuzz.png" class="sociable-img sociable-hovers" title="Yahoo! Buzz" alt="Yahoo! Buzz" /></a></li><li><a rel="nofollow"   href="http://twitter.com/home?status=There%20is%20no%20spoon%20%28but%20there%20is%20a%20fork%29%20-%20http%3A%2F%2Fcolin.guthr.ie%2F2010%2F09%2Fthere-is-no-spoon-but-there-is-a-fork%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a></li><li><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F09%2Fthere-is-no-spoon-but-there-is-a-fork%2F&amp;title=There%20is%20no%20spoon%20%28but%20there%20is%20a%20fork%29&amp;annotation=As%20many%20followers%20of%20the%20Linux%20ecosystem%20will%20already%20be%20aware%2C%20Mandriva%20Linux%20%28my%20personal%20distro%20of%20choice%29%20has%20been%20through%20some%20turbulent%20times%20of%20late.%20Financial%20troubles%20meant%20that%20Edge%20IT%20%28a%20subsidiary%20of%20Mandriva%20SA%29%20was%20liquidated%20and%20all%20em" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a></li><li><a rel="nofollow"   href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F09%2Fthere-is-no-spoon-but-there-is-a-fork%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/identica.png" class="sociable-img sociable-hovers" title="Identi.ca" alt="Identi.ca" /></a></li><li><a rel="nofollow"   href="http://slashdot.org/bookmark.pl?title=There%20is%20no%20spoon%20%28but%20there%20is%20a%20fork%29&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F09%2Fthere-is-no-spoon-but-there-is-a-fork%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/slashdot.png" class="sociable-img sociable-hovers" title="Slashdot" alt="Slashdot" /></a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://colin.guthr.ie/2010/09/there-is-no-spoon-but-there-is-a-fork/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Mix it up</title>
		<link>http://colin.guthr.ie/2010/01/mix-it-up/</link>
		<comments>http://colin.guthr.ie/2010/01/mix-it-up/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 11:11:28 +0000</pubDate>
		<dc:creator>Colin</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mandriva]]></category>
		<category><![CDATA[pulseaudio]]></category>
		<category><![CDATA[sound]]></category>

		<guid isPermaLink="false">http://colin.guthr.ie/?p=199</guid>
		<description><![CDATA[Hot on the heels of my Phonon PulseAudio integration, here is another set of patches for kdemultimedia that adds PulseAudio support to KMix \o/ Quick screenie before a more detailed description: What does this mean? Well it means you will typically get three or four tabs in KMix that represent (in order), "Playback Devices", "Capture [...]]]></description>
			<content:encoded><![CDATA[<p>Hot on the heels of my <a href="http://colin.guthr.ie/2009/10/kde-plus-pulseaudio-does-not-equal-sucks/">Phonon PulseAudio integration</a>, here is another set of patches for kdemultimedia that adds PulseAudio support to KMix \o/</p>
<p>Quick screenie before a more detailed description:</p>
<p><a href="http://colin.guthr.ie/wp-content/uploads/2010/01/kmix-pulse.png"><img class="alignnone size-medium  wp-image-201" title="KMix  showing sliders from PulseAudio" src="http://colin.guthr.ie/wp-content/uploads/2010/01/kmix-pulse-300x221.png" alt="KMix window showing two devices, one Stereo, one 5.1" width="300" height="221" /></a><br />
<span id="more-199"></span></p>
<h1>What does this mean?</h1>
<p>Well it means you will typically get three or four tabs in KMix that represent (in order), "Playback Devices", "Capture Devices", "Playback Stream" and "Capture Streams".</p>
<p>All the physical (and virtual) cards' output "sinks" will appear under "Playback Devices". I'm sure the names are pretty obvious so I wont explain further!</p>
<p>The functionality is close to pavucontrol, but with three important exceptions:</p>
<ol>
<li> There is no equiv of the "Configuration" tab to change "Profile" for a given card.</li>
<li>There is no way to change "Ports" for a given Sink/Source (not all sound hardware supports this and it is intended to make this automatic in some cases - i.e. Headphone Jack Sensing - once it becomes reliable upstream in ALSA, but sometimes it will still be user choice (e.g. Amplified vs. Non-Amplified))</li>
<li>There is no way to move an given application from one output to another.</li>
</ol>
<p>For 1 and 2 I intend to (eventually) provide a KCM to go alongside the Multimedia tab. For 3 you can move "categories" of applications to different devices via the Phonon settings in System Settings -&gt; Multimedia already thanks to my previous patches.</p>
<h1>Where can I get it?</h1>
<p>It's already in Mandriva Cooker or you can grab it from my Git repo here: <a href="http://colin.guthr.ie/git/kdemultimedia/log/?h=pulse">http://colin.guthr.ie/git/kdemultimedia/log/?h=pulse</a></p>
<p>The master branch is upstream svn. The pulse branch is my changes. Do a clone then issue:</p>
<pre> git diff master..pulse &gt;mypatch.patch</pre>
<p>or just build it directly.</p>
<p>Hopefully it'll be committed to trunk soon and if all goes well it can be easily backported to Mandriva 2010 too.</p>
<h1>Caveats</h1>
<p>Every time a new slider appears it is added to the "Shortcuts" system. This is OK for hardware devices, but for every application it can get a bit much.... I'll try and find a way to disable this (see "What's Left" below).</p>
<p>PulseAudio supports a pretty crazy limit on the number of channels a device or stream can have. Kmix only has support for a fairly standard set of elements. In come cases not all channels of a given device/stream may be shown in kmix due to this limitation. Stereo -&gt; 5.1 setups should work fine tho'.</p>
<h1>You Suck, I use PA but I want a Real Man's ALSA mixer!</h1>
<p>Whatever floats your boat baby!</p>
<pre> $  KMIX_PULSEAUDIO_DISABLE=1 kmix</pre>
<p>Knock yourself out!</p>
<h1>What's Left?</h1>
<p>I have two remaining issues that I do not think are show stoppers:</p>
<ol>
<li>Everytime a new device shows up a new Global Shortcut dialog appears. I don't think this is any different to ALSA but as I now have per-app volume control, this dialog is also shown everytime a new application plays sound. It only happens the first time a given application plays a sound, but it could still be considered annoying by some.</li>
<li> If there are no capture streams running at startup the tab for that will never be displayed - likewise if the stream restore module in PA is not loaded (unlikely) the "Playback Streams" tab will never be displayed.</li>
<li>There are various things that could be more efficient (e.g. refreshing the GUI for a new device or application current redraws all tabs, not just the one that has changed when a new application appears or disappears)</li>
<li> Make KMix dumber! KMix is pretty clever and it tries to do some smart things like saving and restoring volume for you. But when PA is used, it knows better, so I need to ensure that KMix does not do any saving/restoring of actual volume values.</li>
<li>Use application icons for per-application streams. Just for eye candy, it would be nice to use the applications own icon in the GUI.</li>
</ol>
<div class='sociable'><div><span class='sociable-tagline'>Share and Enjoy:</span></div><ul><li><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F01%2Fmix-it-up%2F&amp;title=Mix%20it%20up&amp;bodytext=Hot%20on%20the%20heels%20of%20my%20Phonon%20PulseAudio%20integration%2C%20here%20is%20another%20set%20of%20patches%20for%20kdemultimedia%20that%20adds%20PulseAudio%20support%20to%20KMix%20%5Co%2F%0D%0A%0D%0AQuick%20screenie%20before%20a%20more%20detailed%20description%3A%0D%0A%0D%0A%0D%0A%0D%0AWhat%20does%20this%20mean%3F%0D%0AWell%20it%20means%20you%20will%20" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a></li><li><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F01%2Fmix-it-up%2F&amp;title=Mix%20it%20up" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a></li><li><a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F01%2Fmix-it-up%2F&amp;title=Mix%20it%20up&amp;notes=Hot%20on%20the%20heels%20of%20my%20Phonon%20PulseAudio%20integration%2C%20here%20is%20another%20set%20of%20patches%20for%20kdemultimedia%20that%20adds%20PulseAudio%20support%20to%20KMix%20%5Co%2F%0D%0A%0D%0AQuick%20screenie%20before%20a%20more%20detailed%20description%3A%0D%0A%0D%0A%0D%0A%0D%0AWhat%20does%20this%20mean%3F%0D%0AWell%20it%20means%20you%20will%20" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a></li><li><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F01%2Fmix-it-up%2F&amp;t=Mix%20it%20up" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a></li><li><a rel="nofollow"   href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F01%2Fmix-it-up%2F&amp;submitHeadline=Mix%20it%20up&amp;submitSummary=Hot%20on%20the%20heels%20of%20my%20Phonon%20PulseAudio%20integration%2C%20here%20is%20another%20set%20of%20patches%20for%20kdemultimedia%20that%20adds%20PulseAudio%20support%20to%20KMix%20%5Co%2F%0D%0A%0D%0AQuick%20screenie%20before%20a%20more%20detailed%20description%3A%0D%0A%0D%0A%0D%0A%0D%0AWhat%20does%20this%20mean%3F%0D%0AWell%20it%20means%20you%20will%20&amp;submitCategory=science&amp;submitAssetType=text" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/yahoobuzz.png" class="sociable-img sociable-hovers" title="Yahoo! Buzz" alt="Yahoo! Buzz" /></a></li><li><a rel="nofollow"   href="http://twitter.com/home?status=Mix%20it%20up%20-%20http%3A%2F%2Fcolin.guthr.ie%2F2010%2F01%2Fmix-it-up%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a></li><li><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F01%2Fmix-it-up%2F&amp;title=Mix%20it%20up&amp;annotation=Hot%20on%20the%20heels%20of%20my%20Phonon%20PulseAudio%20integration%2C%20here%20is%20another%20set%20of%20patches%20for%20kdemultimedia%20that%20adds%20PulseAudio%20support%20to%20KMix%20%5Co%2F%0D%0A%0D%0AQuick%20screenie%20before%20a%20more%20detailed%20description%3A%0D%0A%0D%0A%0D%0A%0D%0AWhat%20does%20this%20mean%3F%0D%0AWell%20it%20means%20you%20will%20" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a></li><li><a rel="nofollow"   href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F01%2Fmix-it-up%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/identica.png" class="sociable-img sociable-hovers" title="Identi.ca" alt="Identi.ca" /></a></li><li><a rel="nofollow"   href="http://slashdot.org/bookmark.pl?title=Mix%20it%20up&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2010%2F01%2Fmix-it-up%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/slashdot.png" class="sociable-img sociable-hovers" title="Slashdot" alt="Slashdot" /></a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://colin.guthr.ie/2010/01/mix-it-up/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>PulseAudio Phonon Support now in KDE trunk and heading towards 4.4</title>
		<link>http://colin.guthr.ie/2009/11/pulseaudio-phonon-support-now-in-kde-trunk-and-heading-towards-4-4/</link>
		<comments>http://colin.guthr.ie/2009/11/pulseaudio-phonon-support-now-in-kde-trunk-and-heading-towards-4-4/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 09:48:40 +0000</pubDate>
		<dc:creator>Colin</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[pulseaudio]]></category>

		<guid isPermaLink="false">http://colin.guthr.ie/?p=192</guid>
		<description><![CDATA[I've very pleased to announce that my work on Phonon to integrate support for PulseAudio has now been committed to trunk and will form part of KDE 4.4 \o/ There were a few teething problems due to some last minute merges I did (which I clearly didn't test properly - my bad) and which I [...]]]></description>
			<content:encoded><![CDATA[<p>I've very pleased to announce that my work on Phonon to integrate support for PulseAudio has now been committed to trunk and will form part of KDE 4.4 \o/</p>
<p>There were a few teething problems due to some last minute merges I did (which I clearly didn't test properly - my bad) and which I then went on to mis-interpret which led me to commit two rather silly things in phonon (a revert and then a revert of that revert!). What can I say... I need more caffeine obviously!<span id="more-192"></span></p>
<p><strong>Update</strong>: <a href="http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/5265">PulseAudio 0.9.21</a> is now out and has all the necessary fixes to make the below patches unnecessary.</p>
<p>The slightly annoying news is that the support needed for this to work is not yet in a released version of PA. I do however have a simple patch for you <a href="http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/pulseaudio/current/SOURCES/0200-Module-Device-Manager-in-development.patch?revision=466708&amp;view=markup">here</a>, that distro packagers are welcome to <span style="text-decoration: line-through;">steal</span>liberate from the Mandriva SVN. If you do this, you'll also need to apply this minor patch to phonon:</p>
<pre>diff --git a/phonon/CMakeLists.txt b/phonon/CMakeLists.txt
index c5ce57a..50a3851 100644
--- a/phonon/CMakeLists.txt
+++ b/phonon/CMakeLists.txt
@@ -8,7 +8,6 @@ endif (PHONON_BUILD_EXAMPLES)

 add_subdirectory(experimental)

-set(PULSEAUDIO_MINIMUM_VERSION "0.9.21")
 macro_optional_find_package(PulseAudio)
 macro_log_feature(PULSEAUDIO_FOUND "PulseAudio" "A cross-platform, networked sound server." "http://www.pulseaudio.org" FALSE "" "Allows audio playback via the PulseAudio soundserver when it is running")
 macro_optional_find_package(GLIB2)</pre>
<p>Just so that it recognises your PA build.</p>
<p>There don't seem to be any specific bugs yet, although I am dealing with something relating to streams going AWOL with Xine, but I'm not sure the problem is in this code. Further testing and feedback is much appreciated. Feel free to report problems to me directly or assign bugs to my kde (at) &lt;this domain&gt; account in b.k.o.</p>
<p>Have fun!</p>
<div class='sociable'><div><span class='sociable-tagline'>Share and Enjoy:</span></div><ul><li><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2009%2F11%2Fpulseaudio-phonon-support-now-in-kde-trunk-and-heading-towards-4-4%2F&amp;title=PulseAudio%20Phonon%20Support%20now%20in%20KDE%20trunk%20and%20heading%20towards%204.4&amp;bodytext=I%27ve%20very%20pleased%20to%20announce%20that%20my%20work%20on%20Phonon%20to%20integrate%20support%20for%20PulseAudio%20has%20now%20been%20committed%20to%20trunk%20and%20will%20form%20part%20of%20KDE%204.4%20%5Co%2F%0D%0A%0D%0AThere%20were%20a%20few%20teething%20problems%20due%20to%20some%20last%20minute%20merges%20I%20did%20%28which%20I%20clearly%20did" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a></li><li><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcolin.guthr.ie%2F2009%2F11%2Fpulseaudio-phonon-support-now-in-kde-trunk-and-heading-towards-4-4%2F&amp;title=PulseAudio%20Phonon%20Support%20now%20in%20KDE%20trunk%20and%20heading%20towards%204.4" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a></li><li><a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fcolin.guthr.ie%2F2009%2F11%2Fpulseaudio-phonon-support-now-in-kde-trunk-and-heading-towards-4-4%2F&amp;title=PulseAudio%20Phonon%20Support%20now%20in%20KDE%20trunk%20and%20heading%20towards%204.4&amp;notes=I%27ve%20very%20pleased%20to%20announce%20that%20my%20work%20on%20Phonon%20to%20integrate%20support%20for%20PulseAudio%20has%20now%20been%20committed%20to%20trunk%20and%20will%20form%20part%20of%20KDE%204.4%20%5Co%2F%0D%0A%0D%0AThere%20were%20a%20few%20teething%20problems%20due%20to%20some%20last%20minute%20merges%20I%20did%20%28which%20I%20clearly%20did" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a></li><li><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcolin.guthr.ie%2F2009%2F11%2Fpulseaudio-phonon-support-now-in-kde-trunk-and-heading-towards-4-4%2F&amp;t=PulseAudio%20Phonon%20Support%20now%20in%20KDE%20trunk%20and%20heading%20towards%204.4" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a></li><li><a rel="nofollow"   href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fcolin.guthr.ie%2F2009%2F11%2Fpulseaudio-phonon-support-now-in-kde-trunk-and-heading-towards-4-4%2F&amp;submitHeadline=PulseAudio%20Phonon%20Support%20now%20in%20KDE%20trunk%20and%20heading%20towards%204.4&amp;submitSummary=I%27ve%20very%20pleased%20to%20announce%20that%20my%20work%20on%20Phonon%20to%20integrate%20support%20for%20PulseAudio%20has%20now%20been%20committed%20to%20trunk%20and%20will%20form%20part%20of%20KDE%204.4%20%5Co%2F%0D%0A%0D%0AThere%20were%20a%20few%20teething%20problems%20due%20to%20some%20last%20minute%20merges%20I%20did%20%28which%20I%20clearly%20did&amp;submitCategory=science&amp;submitAssetType=text" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/yahoobuzz.png" class="sociable-img sociable-hovers" title="Yahoo! Buzz" alt="Yahoo! Buzz" /></a></li><li><a rel="nofollow"   href="http://twitter.com/home?status=PulseAudio%20Phonon%20Support%20now%20in%20KDE%20trunk%20and%20heading%20towards%204.4%20-%20http%3A%2F%2Fcolin.guthr.ie%2F2009%2F11%2Fpulseaudio-phonon-support-now-in-kde-trunk-and-heading-towards-4-4%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a></li><li><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fcolin.guthr.ie%2F2009%2F11%2Fpulseaudio-phonon-support-now-in-kde-trunk-and-heading-towards-4-4%2F&amp;title=PulseAudio%20Phonon%20Support%20now%20in%20KDE%20trunk%20and%20heading%20towards%204.4&amp;annotation=I%27ve%20very%20pleased%20to%20announce%20that%20my%20work%20on%20Phonon%20to%20integrate%20support%20for%20PulseAudio%20has%20now%20been%20committed%20to%20trunk%20and%20will%20form%20part%20of%20KDE%204.4%20%5Co%2F%0D%0A%0D%0AThere%20were%20a%20few%20teething%20problems%20due%20to%20some%20last%20minute%20merges%20I%20did%20%28which%20I%20clearly%20did" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a></li><li><a rel="nofollow"   href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fcolin.guthr.ie%2F2009%2F11%2Fpulseaudio-phonon-support-now-in-kde-trunk-and-heading-towards-4-4%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/identica.png" class="sociable-img sociable-hovers" title="Identi.ca" alt="Identi.ca" /></a></li><li><a rel="nofollow"   href="http://slashdot.org/bookmark.pl?title=PulseAudio%20Phonon%20Support%20now%20in%20KDE%20trunk%20and%20heading%20towards%204.4&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2009%2F11%2Fpulseaudio-phonon-support-now-in-kde-trunk-and-heading-towards-4-4%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/slashdot.png" class="sociable-img sociable-hovers" title="Slashdot" alt="Slashdot" /></a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://colin.guthr.ie/2009/11/pulseaudio-phonon-support-now-in-kde-trunk-and-heading-towards-4-4/feed/</wfw:commentRss>
		<slash:comments>36</slash:comments>
		</item>
		<item>
		<title>So how does the KDE PulseAudio support work anyway?</title>
		<link>http://colin.guthr.ie/2009/10/so-how-does-the-kde-pulseaudio-support-work-anyway/</link>
		<comments>http://colin.guthr.ie/2009/10/so-how-does-the-kde-pulseaudio-support-work-anyway/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 14:42:22 +0000</pubDate>
		<dc:creator>Colin</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[pulseaudio]]></category>
		<category><![CDATA[sound]]></category>

		<guid isPermaLink="false">http://colin.guthr.ie/2009/10/so-how-does-the-kde-pulseaudio-support-work-anyway/</guid>
		<description><![CDATA[So I think it's probably worth me writing up just exactly how the PulseAudio support in KDE's Phonon library actually works and why using it will give you some nice extra features! This article follows on from my previous articles here and here. If you've not read them, then it would make sense to give [...]]]></description>
			<content:encoded><![CDATA[<p>So I think it's probably worth me writing up just exactly how the PulseAudio support in KDE's Phonon library actually works and why using it will give you some nice extra features!<span id="more-174"></span></p>
<p>This article follows on from my previous articles <a href="http://colin.guthr.ie/2009/10/kde-plus-pulseaudio-does-not-equal-sucks/">here</a> and <a href="http://colin.guthr.ie/2009/10/update-on-kdepulseaudio/">here</a>. If you've not read them, then it would make sense to give them a quick glance <img src='http://colin.guthr.ie/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  (also as this was composed on my phone while on a flight, please forgive me any silly spelling errors I didn't spot when reviewing it!!)</p>
<p>First of all it's probably worth explaining what happens and what the phonon backend itself needs to be aware of and how it can interoperate with pulse.</p>
<p>So when libphonon is used in an application, a connection to PulseAudio will be attempted. If that connection fails everything will work as currently and nothing much changes. If the connection succeeds, we establish if "module-device-manager" is loaded. This is a module specifically written to implement the routing policy (an ordered priority list of devices for each category of sound produced - e.g. Notifications, Music or Video). If this module is not detected we offer a reduced/cut-down PulseAudio integration where the user will only see a single, virtual "PulseAudio" sound "device" listed in the KDE configuration system's multimedia section. If m-d-m is detected however, users will get the full rich experience. All of the devices ever seen by PulseAudio (I.e. Built in sound cards, PCI devices, USB speakers and headsets, Bluetooth devices and Apple Airtunes devices etc.) will be listed. If the device is not currently available, it will be shown greyed out as expected and you can of course  reorder them to suit your own preferences.</p>
<p>So all that is well and good from a user perspective but "how does it work internally?" I hear you scream!</p>
<h2>The Nitty Gritty</h2>
<p>When m-d-m is used the device preference order is not actually stored in phonon itself as is the case when PulseAudio is not used, it is instead passed across to PulseAudio which takes over responsibility for keeping this priority list up to date. Why do it this way? Well while the preferences stored in KDE work fine for phonon apps they do not cover any non-phonon ones (which still make up the vast majority of sound producing applications on Linux). As someone involved with sound on Linux I've often been asked by confused users why their preferences are not honoured in e.g. Audacious or other non-phonon apps. As PulseAudio is integrated lower down the sound stack than phonon, ensuring it knows your device order preferences also ensures that it can route your audio appropriately according to your preferences for all apps! A clear bonus <img src='http://colin.guthr.ie/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Now as you may know phonon has it's own API calls to move streams to specific devices. This is something also handled in PulseAudio so it makes sense to simply wrap up the phonon API around these PA call which is exactly what I do! However, there is a complication. As phonon has pluggable backends, we don't actually speak to pulse directly to do the sound output (our connection to the PulseAudio daemon is only for querying and control purposes) so we don't know which stream is ours when the audio is actually playing. To get around this obscurity introduced by the pluggable backends, we take advantage of a facility in PulseAudio to attach arbitrary metadata to our streams by way of setting special environment variables. When phonon is instructed to start outputting audio, we set both the PulseAudio "media.role" property (this is the equivalent of the Phonon Categories system and we happily have an easy 1:1 mapping) and we generate a GUID for our stream and assign it as the "phonon.streamid" property. Our control connection sees all audio streams played in PulseAudio and can use this streamid to map back the PulseAudio streams to the phonon streams. This then allows us to process the stream move requests! It's a bit of a round about road to get this capability but it is the only way we can skirt around the obscurity provided by a pluggable backend system in a general way (the opaque interfaces provided by e.g. Xine, GStreamer and other backends would not expose this info directly anyway).</p>
<p>"But wait!" I hear those of you paying close attention scream. "Didn't you say above that PulseAudio will do the routing for us according to our preferences? Why not let it do that for phonon streams as well as non-phonon streams and forget about the whole GUID thing?" Well, if truth be told, I did start off doing it this way but it had two major issues. The first was the "Test" button not working properly - it always resulted in the highest priority device being used, no the one the user had selected! Not really ideal and more than a little confusing I'm sure you'll agree! The second problem related to visual feedback. When you reorder your devices or plug in a device of higher priority when sound is currently playing, phonon will visually inform the user of the device change. Handing over wholesale to PulseAudio meant that this feedback was lost. Again this is certainly not what I'd call seamless integration!</p>
<p>So at present the stream will be routed to the correct device by PulseAudio and then Phonon will also issue a move command which should in most cases be a NOOP. Likewise when devices are hotplugged (or unplugged!) PulseAudio will route them correctly and phonon will follow this up with a specific move request which will again end up being a NOOP.  While this may seem pointless it does allow for the phonon API to be use properly (as needed by the test button) and give visual feedback)</p>
<h2>Backends</h2>
<p>So what does it mean for a backend? Well the backend needs to be somewhat aware of PulseAudio. Thankfully this is pretty trivial thanks to the PulseSupport class I've written. The backend should ask PulseSupport if pulse is detected if so it should check for and enable it's own PulseAudio output system. If this cannot be fond or activated it can tell PulseSupport that it's a no go and everything should fall back to how things work without any PulseAudio support. There are a couple other bits and bobs that a backend needs to do to work fully but that's the bulk of it.</p>
<p>So I hope I've provided a good and in-depth overview of how this support works. Please keep any comments on topic. If you want to post comments about PA in general, please do so on (and after reading!) <a href="http://colin.guthr.ie/2009/08/sound-on-linux-anti-fud-calm-certainty-and-confidence/">this article</a>.</p>
<p>This support is included in the upcoming <a href="http://www.mandriva.com/">Mandriva 2010.0 Release</a> which will be hitting the streets very soon.</p>
<div class='sociable'><div><span class='sociable-tagline'>Share and Enjoy:</span></div><ul><li><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2009%2F10%2Fso-how-does-the-kde-pulseaudio-support-work-anyway%2F&amp;title=So%20how%20does%20the%20KDE%20PulseAudio%20support%20work%20anyway%3F&amp;bodytext=So%20I%20think%20it%27s%20probably%20worth%20me%20writing%20up%20just%20exactly%20how%20the%20PulseAudio%20support%20in%20KDE%27s%20Phonon%20library%20actually%20works%20and%20why%20using%20it%20will%20give%20you%20some%20nice%20extra%20features%21%0D%0A%0D%0AThis%20article%20follows%20on%20from%20my%20previous%20articles%20here%20and%20here.%20I" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a></li><li><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcolin.guthr.ie%2F2009%2F10%2Fso-how-does-the-kde-pulseaudio-support-work-anyway%2F&amp;title=So%20how%20does%20the%20KDE%20PulseAudio%20support%20work%20anyway%3F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a></li><li><a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fcolin.guthr.ie%2F2009%2F10%2Fso-how-does-the-kde-pulseaudio-support-work-anyway%2F&amp;title=So%20how%20does%20the%20KDE%20PulseAudio%20support%20work%20anyway%3F&amp;notes=So%20I%20think%20it%27s%20probably%20worth%20me%20writing%20up%20just%20exactly%20how%20the%20PulseAudio%20support%20in%20KDE%27s%20Phonon%20library%20actually%20works%20and%20why%20using%20it%20will%20give%20you%20some%20nice%20extra%20features%21%0D%0A%0D%0AThis%20article%20follows%20on%20from%20my%20previous%20articles%20here%20and%20here.%20I" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a></li><li><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcolin.guthr.ie%2F2009%2F10%2Fso-how-does-the-kde-pulseaudio-support-work-anyway%2F&amp;t=So%20how%20does%20the%20KDE%20PulseAudio%20support%20work%20anyway%3F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a></li><li><a rel="nofollow"   href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fcolin.guthr.ie%2F2009%2F10%2Fso-how-does-the-kde-pulseaudio-support-work-anyway%2F&amp;submitHeadline=So%20how%20does%20the%20KDE%20PulseAudio%20support%20work%20anyway%3F&amp;submitSummary=So%20I%20think%20it%27s%20probably%20worth%20me%20writing%20up%20just%20exactly%20how%20the%20PulseAudio%20support%20in%20KDE%27s%20Phonon%20library%20actually%20works%20and%20why%20using%20it%20will%20give%20you%20some%20nice%20extra%20features%21%0D%0A%0D%0AThis%20article%20follows%20on%20from%20my%20previous%20articles%20here%20and%20here.%20I&amp;submitCategory=science&amp;submitAssetType=text" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/yahoobuzz.png" class="sociable-img sociable-hovers" title="Yahoo! Buzz" alt="Yahoo! Buzz" /></a></li><li><a rel="nofollow"   href="http://twitter.com/home?status=So%20how%20does%20the%20KDE%20PulseAudio%20support%20work%20anyway%3F%20-%20http%3A%2F%2Fcolin.guthr.ie%2F2009%2F10%2Fso-how-does-the-kde-pulseaudio-support-work-anyway%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a></li><li><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fcolin.guthr.ie%2F2009%2F10%2Fso-how-does-the-kde-pulseaudio-support-work-anyway%2F&amp;title=So%20how%20does%20the%20KDE%20PulseAudio%20support%20work%20anyway%3F&amp;annotation=So%20I%20think%20it%27s%20probably%20worth%20me%20writing%20up%20just%20exactly%20how%20the%20PulseAudio%20support%20in%20KDE%27s%20Phonon%20library%20actually%20works%20and%20why%20using%20it%20will%20give%20you%20some%20nice%20extra%20features%21%0D%0A%0D%0AThis%20article%20follows%20on%20from%20my%20previous%20articles%20here%20and%20here.%20I" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a></li><li><a rel="nofollow"   href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fcolin.guthr.ie%2F2009%2F10%2Fso-how-does-the-kde-pulseaudio-support-work-anyway%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/identica.png" class="sociable-img sociable-hovers" title="Identi.ca" alt="Identi.ca" /></a></li><li><a rel="nofollow"   href="http://slashdot.org/bookmark.pl?title=So%20how%20does%20the%20KDE%20PulseAudio%20support%20work%20anyway%3F&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2009%2F10%2Fso-how-does-the-kde-pulseaudio-support-work-anyway%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/slashdot.png" class="sociable-img sociable-hovers" title="Slashdot" alt="Slashdot" /></a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://colin.guthr.ie/2009/10/so-how-does-the-kde-pulseaudio-support-work-anyway/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Finding (and purging) orphaned packages</title>
		<link>http://colin.guthr.ie/2009/10/finding-and-purging-orphaned-packages/</link>
		<comments>http://colin.guthr.ie/2009/10/finding-and-purging-orphaned-packages/#comments</comments>
		<pubDate>Sun, 11 Oct 2009 11:53:45 +0000</pubDate>
		<dc:creator>Colin</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mandriva]]></category>

		<guid isPermaLink="false">http://colin.guthr.ie/?p=158</guid>
		<description><![CDATA[For a couple of releases Mandriva's package management tool, urpmi, has come with a feature that tracks and reports on orphaned packages. It does this by tracking which packages were installed as dependencies of others and then reporting back when the package that contained the dependency is no longer present (or it's dep has changed). [...]]]></description>
			<content:encoded><![CDATA[<p>For a couple of releases Mandriva's package management tool, urpmi, has come with a feature that tracks and reports on orphaned packages. It does this by tracking which packages were installed as dependencies of others and then reporting back when the package that contained the dependency is no longer present (or it's dep has changed). This works pretty well, but sometimes you want something that is not based on a tracked state, and just looks at the packages available and those that are installed.<span id="more-158"></span></p>
<p>If you have kept the same install for several distro releases, with just upgrades rather than fresh installs, then chances are you will have quite a few old libraries installed on your system. The easiest way to purge all these no longer needed libraries is to compare the packages that are available via urpmi and what packages are installed. If you have packages that are installed but that are not available to install, chances are it's an orphan.</p>
<p>So I wrote a very simple script that compares the two outputs and I include it here so you can do your own spring cleaning! This is very similar to the yum orphan finding tool on Fedora (well I last tried it a while back, so it may have moved on since then!).</p>
<p>Hope it's useful to some people:</p>
<pre>#!/bin/bash

TMP_AVAILABLE=$(mktemp /tmp/orphans.XXXXXX)
TMP_INSTALLED=$(mktemp /tmp/orphans.XXXXXX)
urpmq -fa . | sort -u &gt;$TMP_AVAILABLE
rpm -qa --nosignature --nodigest --qf '%{name}-%{version}-%{release}.%{arch}\n' | sort -u &gt;$TMP_INSTALLED

diff -u $TMP_AVAILABLE $TMP_INSTALLED | grep "^+[^+]" | cut -b2-

rm -f $TMP_AVAILABLE $TMP_INSTALLED</pre>
<div class='sociable'><div><span class='sociable-tagline'>Share and Enjoy:</span></div><ul><li><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2009%2F10%2Ffinding-and-purging-orphaned-packages%2F&amp;title=Finding%20%28and%20purging%29%20orphaned%20packages&amp;bodytext=For%20a%20couple%20of%20releases%20Mandriva%27s%20package%20management%20tool%2C%20urpmi%2C%20has%20come%20with%20a%20feature%20that%20tracks%20and%20reports%20on%20orphaned%20packages.%20It%20does%20this%20by%20tracking%20which%20packages%20were%20installed%20as%20dependencies%20of%20others%20and%20then%20reporting%20back%20when%20th" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a></li><li><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcolin.guthr.ie%2F2009%2F10%2Ffinding-and-purging-orphaned-packages%2F&amp;title=Finding%20%28and%20purging%29%20orphaned%20packages" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a></li><li><a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fcolin.guthr.ie%2F2009%2F10%2Ffinding-and-purging-orphaned-packages%2F&amp;title=Finding%20%28and%20purging%29%20orphaned%20packages&amp;notes=For%20a%20couple%20of%20releases%20Mandriva%27s%20package%20management%20tool%2C%20urpmi%2C%20has%20come%20with%20a%20feature%20that%20tracks%20and%20reports%20on%20orphaned%20packages.%20It%20does%20this%20by%20tracking%20which%20packages%20were%20installed%20as%20dependencies%20of%20others%20and%20then%20reporting%20back%20when%20th" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a></li><li><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcolin.guthr.ie%2F2009%2F10%2Ffinding-and-purging-orphaned-packages%2F&amp;t=Finding%20%28and%20purging%29%20orphaned%20packages" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a></li><li><a rel="nofollow"   href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fcolin.guthr.ie%2F2009%2F10%2Ffinding-and-purging-orphaned-packages%2F&amp;submitHeadline=Finding%20%28and%20purging%29%20orphaned%20packages&amp;submitSummary=For%20a%20couple%20of%20releases%20Mandriva%27s%20package%20management%20tool%2C%20urpmi%2C%20has%20come%20with%20a%20feature%20that%20tracks%20and%20reports%20on%20orphaned%20packages.%20It%20does%20this%20by%20tracking%20which%20packages%20were%20installed%20as%20dependencies%20of%20others%20and%20then%20reporting%20back%20when%20th&amp;submitCategory=science&amp;submitAssetType=text" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/yahoobuzz.png" class="sociable-img sociable-hovers" title="Yahoo! Buzz" alt="Yahoo! Buzz" /></a></li><li><a rel="nofollow"   href="http://twitter.com/home?status=Finding%20%28and%20purging%29%20orphaned%20packages%20-%20http%3A%2F%2Fcolin.guthr.ie%2F2009%2F10%2Ffinding-and-purging-orphaned-packages%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a></li><li><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fcolin.guthr.ie%2F2009%2F10%2Ffinding-and-purging-orphaned-packages%2F&amp;title=Finding%20%28and%20purging%29%20orphaned%20packages&amp;annotation=For%20a%20couple%20of%20releases%20Mandriva%27s%20package%20management%20tool%2C%20urpmi%2C%20has%20come%20with%20a%20feature%20that%20tracks%20and%20reports%20on%20orphaned%20packages.%20It%20does%20this%20by%20tracking%20which%20packages%20were%20installed%20as%20dependencies%20of%20others%20and%20then%20reporting%20back%20when%20th" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a></li><li><a rel="nofollow"   href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fcolin.guthr.ie%2F2009%2F10%2Ffinding-and-purging-orphaned-packages%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/identica.png" class="sociable-img sociable-hovers" title="Identi.ca" alt="Identi.ca" /></a></li><li><a rel="nofollow"   href="http://slashdot.org/bookmark.pl?title=Finding%20%28and%20purging%29%20orphaned%20packages&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2009%2F10%2Ffinding-and-purging-orphaned-packages%2F" ><img src="http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/slashdot.png" class="sociable-img sociable-hovers" title="Slashdot" alt="Slashdot" /></a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://colin.guthr.ie/2009/10/finding-and-purging-orphaned-packages/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>

