Hello again<br><br>This is a draft of a gosoc project proposal that i am posting for feedback.<br><br>I have never written anything like this and was semi-unsure when I was writing. So there is frequent use of subjective language that I will later (hopefully) remove.<br>
<br>It also could be more formally written.<br><br>all feedback welcome.<br><br>Jeff<br><br>


        <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
        <title></title>
        <meta name="GENERATOR" content="OpenOffice.org 2.4  (Linux)">
        <style type="text/css">
        <!--
                @page { size: 8.5in 11in; margin: 0.79in }
                P { margin-bottom: 0.08in }
        -->
        </style>

<p style="margin-bottom: 0in;"><b>Amarok UPnP support</b></p>
<p style="margin-bottom: 0in;"><br>
</p>
<p style="margin-bottom: 0in;"><b>Jeff Balinsky</b></p>
<p style="margin-bottom: 0in;"><br>
</p>
<p style="margin-bottom: 0in;"><b>Summary</b></p>
<p style="margin-bottom: 0in;"><br>
</p>
<p style="margin-bottom: 0in;"> Many modern home entertainment devices
(most notably the Xbox 360 and PS3)  have the ability to play content
of of UPnP shares. In the public domain there are several backends
allowing a user to set up a mediaserver on their linux pc (coherence,
ushare) and others allowing the browsing of  and rendering of those
shares(coherence, djmount). 
</p>
<p style="margin-bottom: 0in;"> Primarily, I will add the ability to
use amarok to share music in the amarok library as an UPnP share
creating a <span style="">UPnP MediaServer DCP</span>
. A main goal while doing this will be making configuration  as easy
as possible.</p>
<p style="margin-bottom: 0in;"> Secondarily, I will add the ability to
use amarok as an <span style="">UPnP MediaServer
ControlPoint which would allow the playing of media off other shares.</span></p>
<p style="margin-bottom: 0in;"><br>
</p>
<p style="margin-bottom: 0in;"><b>Details</b></p>
<p style="margin-bottom: 0in;"><span style="">  In
my experience on the user end using UPnP and linux (I have used
ushare to share movies to my Xbox 360) things are not seamless. There
is no graphical way to configure ushare just a .conf. When something
in the filesystem changes (say I add a movie) I must manually restart
the server. Wifi is also hit or miss. I will aim to address all of
these issues.</span></p>
<p style="margin-bottom: 0in;"><span style="">  As
far as amarok is concerned one of the biggest issues with sharing
collections will be unsupported files. If I try to share music with
ushare between unsupported files and weird meta tags it renders the
graphical browsing on my 360 useless. This can be addressed by
incorporating the ability to only share a subset of the amarok
collection via UPnP. A possible preexisting framework for this would
be to use a playlist for the shared media. Another possibility would
be to have preset filters for popular devices.</span></p>
<p style="margin-bottom: 0in;"><span style="">  Djmount
discovers automatically all UPnP AV Media Servers a network and makes
the content available in a directory tree. A backend such as this
could be used to allow amarok to browse and play media off of other
servers. Servers may be able to be browsed right under the local
collection in the collection browser.</span></p>
<p style="margin-bottom: 0in;"><br>
</p>
<p style="margin-bottom: 0in;"><b>Implementation</b><span style="">?</span></p>
<p style="margin-bottom: 0in;"><span style="">  My
guess is that I would implement this as two scripts. This is unless
this is better implemented in the main options dialog </span>
</p>
<p style="margin-bottom: 0in;"><br>
</p>
<p style="margin-bottom: 0in;"><b>Fuzzy Work Timeline</b><span style="">
</span>
</p>
<p style="margin-bottom: 0in;"><span style="">GoSoC
Has two evaluation deadlines midterm in early July and final in late
August thus I split this in two parts</span></p>
<p style="margin-bottom: 0in;"><br>
</p>
<p style="margin-bottom: 0in;"><span style="">First
Part – Make it work</span></p>
<p style="margin-bottom: 0in;"><span style="">  Functionality
– get to the point where amarok can share and play UPnP </span>
</p>
<p style="margin-bottom: 0in;"><br>
</p>
<p style="margin-bottom: 0in;"><span style="">Second
Part</span></p>
<p style="margin-bottom: 0in;"><span style="">  Creme
Filling – This is where things get pretty. Make it so a 4</span><sup><span style="">th</span></sup><span style="">
grader can configure with a easy  gui. Add fun features(subsets etc,
automatic port forwarding if necessary). While I am in there so to
speak it may be easy to use the same server to add simple directory
based sharing of other *gasp* non audio sharing.</span></p>
<p style="margin-bottom: 0in;"><br>
</p>
<p style="margin-bottom: 0in;"><b>Qualifications</b></p>
<p style="margin-bottom: 0in;"><span style="">In
the fall of '09 I will be a senior CS major at Hood College
(<a href="http://cs.hood.edu">http://cs.hood.edu</a>).  I have been programming for about 5 years
through high school and college. I am currently using Qt and C++ and
am comfortable with both. The idea of using kdelibs doesn't
particularly bother me. I consider myself functionally knowledgeable
in networking and data com theory. I want to do more network type
programming.</span></p>
<br>