<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";
        mso-fareast-language:EN-US;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:"Calibri","sans-serif";}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=SV link=blue vlink=purple><div class=WordSection1><p class=MsoPlainText><span lang=EN-US>Hi!<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>>'Twas brillig, and Emil Ohlsson at 30/06/11 15:51 did gyre and gimble:<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>>> I?m currently developing a amplifier with Ethernet interface and I <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>>> would like to be able to use this amplifier as a shared sound card <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>>> using PulseAudio.<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>>Awesome!!!!!<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>Thanks </span><span lang=EN-US style='font-family:Wingdings'>J</span><span lang=EN-US><o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>>> Is there some kind of documentation on how the native protocol works? <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>>> Or some guide on the structure of the source code. I?ve taken a look <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>>> at pulscore/protocol-native.[ch] to try to understand the protocol but <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>>> it?s a pretty much information to take in all at once, so any comments <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>>> would be very welcome.<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>>Well, the native protocol is a little nasty in this regard. I'm not sure I would recommend anyone try and implement it >outside of the PA client library itself.<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>>Can you describe some other things about your amp to us so we can maybe see if there are other, easier and more >future proof ways to support it before deciding if supporting the native protocol is the best option?<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>The amp is part of my master thesis, I’m doing a study a of Audio over Ethernet using embedded systems. The amp is supposed to act as a network connected sound card. The best thing would be if the amp would be indistinguishable from other sound cards on the computer. That is why I was looking at PulseAudio in the first place, could the device support native protocol then it would blend in well with most major Linux distributions.<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>The SNAP will also be able to take an RTP stream and convert it to sound. So perhaps it is better to try to tell the amp when to start listen for an RTP stream instead, perhaps this could be done using DNS-SD?<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>>1) Does your amp run Linux?<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>No, it will be a tiny embedded system. But it is supposed to support mDNS/DNS-SD, so it can be detected using avahi.<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>>the rest of the questions kinda assume "yes" to the above, but not fully...<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>>2) Would there be a way to use ALSA output from an app running on the amp?<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>>3) Could you run PA itself on your amp?<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>>4) Could your amp accept RTP streams?<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>>5) Could your amp run avahi.<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>>That's probably enough to start with :)<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>>Col<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>Thanks a lot </span><span lang=EN-US style='font-family:Wingdings'>J</span><span lang=EN-US><o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>/Emil<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>>-- <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>>Colin Guthrie<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>>gmane(at)colin.guthr.ie<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>></span><a href="http://colin.guthr.ie/"><span lang=EN-US>http://colin.guthr.ie/</span></a><span lang=EN-US><o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US>>Day Job:<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> Tribalogic Limited [http://www.tribalogic.net/] Open Source:<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> Mageia Contributor [http://www.mageia.org/]<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>> PulseAudio Hacker [http://www.pulseaudio.org/]<o:p></o:p></span></p><p class=MsoPlainText>> Trac Hacker [http://trac.edgewall.org/]<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>