<div dir="ltr"><b id="docs-internal-guid-565c1139-41a1-e198-3f35-de57e722d642" style="color:rgb(0,0,0);font-family:'Times New Roman';font-size:medium;font-weight:normal"><p dir="ltr" style="line-height:1.6;margin-top:0pt;margin-bottom:0pt">

<span style="font-size:15px;font-family:Arial;font-weight:bold;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Short description</span><span style="font-size:12px;font-family:Arial;font-weight:bold;vertical-align:baseline;white-space:pre-wrap"> : </span><span style="font-size:12px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap">My proposal aims at revamping the Amarok scripting interface, and adding an intuitive Script Creator graphical application allowing easy script creation by non-coders and coders alike. This involves getting rid of dangerous and obsolete methods, and adding accessors for all the new features added to Amarok over the years. Every major type will have a QtScript object representation, allowing unparalleled scripting flexibility. I also plan on writing unit tests to allow automated testing of the Amarok scripting API. The third part involves documentation of the entire scripting API in-source and automating the generation of Amarok Scripting API documentation from the in-source documentation. All of this will lead to a cleaner and more feature rich well-documented scripting API hopefully generating new interest in Amarok script. Other features I plan to work upon, if time permits, are allowing users to terminate long running or stuck scripts instead of forcing a restart, adding GUI handling to the script creation utility and porting popular Amarok 1.4 scripts, if possible, to the newer QtScript based interface.</span></p>

<br><span style="font-size:15px;font-family:Arial;font-weight:bold;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap"></span><p dir="ltr" style="line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;font-weight:bold;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Name</span><span style="font-size:15px;font-family:Arial;font-weight:bold;vertical-align:baseline;white-space:pre-wrap"> : </span><span style="font-size:15px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap">Anmol Ahuja</span><span style="font-size:15px;font-family:Arial;font-weight:bold;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap"></span></p>

<p dir="ltr" style="line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;font-weight:bold;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Email Address</span><span style="font-size:15px;font-family:Arial;font-weight:bold;vertical-align:baseline;white-space:pre-wrap"> : </span><span style="font-size:15px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap"><a href="mailto:darthcodus@gmail.com">darthcodus@gmail.com</a></span><span style="font-size:15px;font-family:Arial;font-weight:bold;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap"> </span></p>

<p dir="ltr" style="line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;font-weight:bold;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Freenode IRC Nick</span><span style="font-size:15px;font-family:Arial;font-weight:bold;vertical-align:baseline;white-space:pre-wrap"> : </span><span style="font-size:15px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap">darthcodus</span><span style="font-size:15px;font-family:Arial;font-weight:bold;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap"></span></p>

<p dir="ltr" style="line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;font-weight:bold;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">IM Service and Username</span><span style="font-size:15px;font-family:Arial;font-weight:bold;vertical-align:baseline;white-space:pre-wrap"> : </span><span style="font-size:15px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap"> Gtalk</span></p>

<p dir="ltr" style="line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap"> <span class="" style="white-space:pre">       </span><span class="" style="white-space:pre">  </span><span class="" style="white-space:pre">  </span><span class="" style="white-space:pre">  </span>   darthcodus</span></p>

<p dir="ltr" style="line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;font-weight:bold;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Location (City, Country and/or Time Zone)</span><span style="font-size:15px;font-family:Arial;font-weight:bold;vertical-align:baseline;white-space:pre-wrap"> : </span><span style="font-size:15px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap">New Delhi, India</span></p>

<p dir="ltr" style="line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap">        <span class="" style="white-space:pre"> </span><span class="" style="white-space:pre">  </span><span class="" style="white-space:pre">  </span><span class="" style="white-space:pre">  </span><span class="" style="white-space:pre">  </span>                   GMT +5:30</span><span style="font-size:15px;font-family:Arial;font-weight:bold;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap"> </span></p>

<p dir="ltr" style="line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:19px;font-family:Arial;font-weight:bold;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Proposal Title</span><span style="font-size:19px;font-family:Arial;font-weight:bold;vertical-align:baseline;white-space:pre-wrap"> : </span></p>

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:16px;font-family:Arial;font-weight:bold;vertical-align:baseline;white-space:pre-wrap">Revamping Amarok’s Scripting Interface</span></p>

<br><span style="font-size:19px;font-family:Arial;background-color:transparent;font-weight:bold;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap"></span><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">

<span style="font-size:19px;font-family:Arial;background-color:transparent;font-weight:bold;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Motivation for Proposal</span><span style="font-size:19px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;white-space:pre-wrap">:</span></p>

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Amarok has a thriving scripting community, but the existing scripting API is:</span></p>

<i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:disc;font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">

<span style="font-size:15px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Undocumented</span></p></li><i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline">

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Currently, Amarok script functions must be documented manually on the wiki, and the documentation in its current state only includes only names of Global objects and methods, with no description or example to clarify their purpose or usage. [</span><a href="https://bugs.kde.org/show_bug.cgi?id=313283" style="text-decoration:none"><span style="font-size:15px;background-color:transparent;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">BR 313283</span></a><span style="font-size:15px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">]</span></p>

</li></ul></i><li dir="ltr" style="list-style-type:disc;font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Untested</span></p>

</li><i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">

<span style="font-size:15px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">No tests for Amarok’s scripting interface exist as of this writing</span></p></li></ul></i><li dir="ltr" style="list-style-type:disc;font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline">

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Unreliable </span></p></li><i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt">

<li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Inconsistent signals [</span><a href="https://bugs.kde.org/show_bug.cgi?id=299218" style="text-decoration:none"><span style="font-size:15px;background-color:transparent;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">BR 299218</span></a><span style="font-size:15px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">]</span></p>

</li></ul></i><li dir="ltr" style="list-style-type:disc;font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Incomplete</span></p>

</li><i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">

<span style="font-size:15px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">No scripting interface for new features added to Amarok over the years, like saved playlists and playlist object, CollectionManact, query for tracks using CollectionBrowser-like queries...)</span></p>

</li></ul></i><li dir="ltr" style="list-style-type:disc;font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Dangerous</span></p>

</li><i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">

<span style="font-size:15px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Allows direct access to the underlying SQL database</span></p></li></ul></i><li dir="ltr" style="list-style-type:disc;font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline">

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Obsolete</span></p></li><i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt">

<li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Uses deprecated methods and calls, for instance, the Collection methods called in AmarokCollectionScript</span></p>

</li></ul></i></ul></i><br><span style="font-size:15px;font-family:Arial;background-color:transparent;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap"></span><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">

<span style="font-size:19px;font-family:Arial;background-color:transparent;font-weight:bold;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Implementation Details</span><span style="font-size:19px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;white-space:pre-wrap">:</span></p>

<br><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">My proposal involves four main parts :</span></p>

<br><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span><i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:square;font-size:16px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline">

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:16px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Part I : Revamping the Scripting API</span></p>

</li></ul></i><br><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span><i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt">
<li dir="ltr" style="list-style-type:disc;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;margin-left:48px">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Clean up existing scripting API and add accessors for the other Amarok features to the Amarok scripting API </span><span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap">( I will be documenting code as I write it ) </span><span style="font-size:15px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">:</span><span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"></span></p>

</li></ul></i><i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt"><i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;margin-left:48px">

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap">Add global CollectionManager object</span></p>

</li><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;margin-left:48px"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">

<span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap">Remove AmarokCollectionScript and re-implement as QScriptObject</span></p></li><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;margin-left:48px">

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap">Remove direct SQL access</span></p>

</li><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;margin-left:48px"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">

<span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap">CollectionLocation</span></p></li><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;margin-left:48px">

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap">Transcoding</span></p></li>
<li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;margin-left:48px">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap">QueryMaker</span></p></li><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;margin-left:48px">

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap">Playlists</span></p></li><i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt">

<i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline">

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap">Dynamic Playlists</span></p>

</li><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">

<span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap">Automatic Playlist Generator</span></p></li></ul></i></ul></i><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;margin-left:48px">

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap">Bookmarks</span></p></li><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;margin-left:48px">

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap">Implement Equalizer support in the AmarokEngineScript</span></p>

</li><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;margin-left:48px"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">

<span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap">Synchronization Job</span></p></li><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;margin-left:48px">

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap">Podcast Management</span></p>

</li><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;margin-left:48px"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">

<span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap">Others</span></p></li><i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt"><i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt">

<li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap">Add suspend inhibition to AmarokScript</span></p>

</li><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">

<span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap">TagMatchEditWidget access</span></p></li></ul></i></ul></i></ul></i><li dir="ltr" style="list-style-type:disc;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;margin-left:48px">

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Add other requested features/ wishes and fix bugs</span></p>

</li><i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;margin-left:48px">

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><a href="https://bugs.kde.org/show_bug.cgi?id=213376" style="text-decoration:none"><span style="font-size:15px;background-color:transparent;font-weight:normal;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Bug 213376</span></a><span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"> - Implement setter for Amarok.Engine.currentTrack().imageURL</span></p>

</li><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;margin-left:48px"><h2 dir="ltr" style="line-height:1.3;margin-top:10pt;margin-bottom:0pt">

<a href="https://bugs.kde.org/show_bug.cgi?id=183497" style="text-decoration:none"><span style="font-size:15px;font-weight:normal;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Bug 183497</span></a><span style="font-size:15px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"> - Scripting API to add a context menu to everything representing a song or file</span></h2>

</li><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;margin-left:48px"><h2 dir="ltr" style="line-height:1.3;margin-top:10pt;margin-bottom:0pt">

<a href="https://bugs.kde.org/show_bug.cgi?id=187957" style="text-decoration:none"><span style="font-size:15px;font-weight:normal;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Bug 187957</span></a><span style="font-size:15px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"> - Create submenus from the Scripting interface</span></h2>

</li><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;margin-left:48px"><h2 dir="ltr" style="line-height:1.3;margin-top:10pt;margin-bottom:0pt">

<a href="https://bugs.kde.org/show_bug.cgi?id=176663" style="text-decoration:none"><span style="font-size:15px;background-color:transparent;font-weight:normal;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Bug 176663</span></a><span style="font-size:15px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"> - Installing a new script requires a restart of amarok</span></h2>

</li><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;margin-left:48px"><h2 dir="ltr" style="line-height:1.3;margin-top:10pt;margin-bottom:0pt">

<a href="https://bugs.kde.org/show_bug.cgi?id=232711" style="text-decoration:none"><span style="font-size:15px;font-weight:normal;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Bug 23271</span></a><span style="font-size:15px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap">: - Provide scripting interface to customize collection display (filter, sort, group, displayed tags, etc.)</span></h2>

</li><i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline">

<h2 dir="ltr" style="line-height:1.3;margin-top:10pt;margin-bottom:0pt"><a href="https://bugs.kde.org/show_bug.cgi?id=205509" style="text-decoration:none"><span style="font-size:15px;background-color:transparent;font-weight:normal;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Bug 205509</span></a><span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"> :</span><span style="font-size:17px;font-family:'Trebuchet MS';background-color:transparent;vertical-align:baseline;white-space:pre-wrap"> </span><span style="font-size:15px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap">Add dbus functions to update podcasts and download podcast tracks</span><span style="font-size:17px;font-family:'Trebuchet MS';background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span></h2>

</li></ul></i></ul></i></ul></i><br><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span><i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt">

<i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;margin-left:48px">

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap">Others ( Covered earlier/ later ):</span></p>

</li><i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;margin-left:48px">

<h2 dir="ltr" style="line-height:1.3;margin-top:10pt;margin-bottom:0pt"><a href="https://bugs.kde.org/show_bug.cgi?id=299218" style="text-decoration:none"><span style="font-size:15px;font-weight:normal;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Bug 299218</span></a><span style="font-size:15px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"> - Amarok script API track signals are unreliable, undocumented ( Covered by Step 3 )</span></h2>

</li><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;margin-left:48px"><h2 dir="ltr" style="line-height:1.3;margin-top:10pt;margin-bottom:0pt">

<a href="https://bugs.kde.org/show_bug.cgi?id=150610" style="text-decoration:none"><span style="font-size:15px;background-color:transparent;font-weight:normal;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Bug 150610</span></a><span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"> -</span><span style="font-size:17px;font-family:'Trebuchet MS';background-color:transparent;vertical-align:baseline;white-space:pre-wrap"> </span><span style="font-size:15px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap">Add Dynamic Playlist API for scripts</span></h2>

</li><i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline">

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><a href="https://bugs.kde.org/show_bug.cgi?id=279701" style="text-decoration:none"><span style="font-size:15px;background-color:transparent;font-weight:normal;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Bug 279701</span></a><span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"> - Scripting support for the equalizer</span></p>

</li><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">

<a href="https://bugs.kde.org/show_bug.cgi?id=243096" style="text-decoration:none"><span style="font-size:15px;background-color:transparent;font-weight:normal;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Bug 243096</span></a><span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"> - Load a saved playlist in database from script</span></p>

</li></ul></i></ul></i></ul></i></ul></i><br><span style="font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;white-space:pre-wrap"></span><i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt">

<li dir="ltr" style="list-style-type:disc;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;margin-left:48px"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">

<span style="font-size:15px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Add new scripts demonstrating the new scripting API </span><span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap">( and adding cool new features )</span><span style="font-size:15px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span></p>

</li><i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;margin-left:48px">

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap">A generic full-fledged synchronization framework like iTunes written in Amarok Script for media devices</span></p>

</li><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;margin-left:48px"><h2 dir="ltr" style="line-height:1.3;margin-top:10pt;margin-bottom:0pt">

<span style="font-size:15px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap">Link to Google Music Search for currently playing artist (also </span><a href="https://bugs.kde.org/show_bug.cgi?id=136502" style="text-decoration:none"><span style="font-size:15px;font-weight:normal;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Bug 136502</span></a><span style="font-size:15px;font-weight:normal;vertical-align:baseline;white-space:pre-wrap">)</span></h2>

</li><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;margin-left:48px"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">

<span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap">Automatic adjust equalizer according to genre (also </span><a href="https://bugs.kde.org/show_bug.cgi?id=129374" style="text-decoration:none"><span style="font-size:15px;background-color:transparent;font-weight:normal;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Bug 129374</span></a><span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap">)</span></p>

</li></ul></i></ul></i><br><span style="font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;white-space:pre-wrap"></span><i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt">

<li dir="ltr" style="list-style-type:square;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Part II : Design a graphical Script Creator utility</span></p>

</li></ul></i><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;margin-left:36pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Create a user-friendly script creation GUI allowing everybody, coders and non-coders alike to write scripts for Amarok. The utility will be generic enough to allow easy porting to other KDE apps.</span></p>

<br><span style="font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;white-space:pre-wrap"></span><i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt">

<li dir="ltr" style="list-style-type:square;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Part III : Automated Testing Scripts</span></p>

</li></ul></i><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;margin-left:36pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Write scripts for unit-testing the scripting interface. Look into existing solutions like QSTestLib ( </span><a href="http://blog.qt.digia.com/blog/2007/11/05/unit-testing-with-qt-script/" style="text-decoration:none"><span style="font-size:15px;font-family:Arial;background-color:transparent;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">http://blog.qt.digia.com/blog/2007/11/05/unit-testing-with-qt-script/</span></a><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"> ) to see if they’re viable for </span></p>

<br><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span><i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:square;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline">

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Part IV: Automating Documentation</span><span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"></span></p>

</li></ul></i><i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">

<span style="font-size:15px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Document any undocumented scripting API code</span></p></li><li dir="ltr" style="list-style-type:circle;font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline">

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Use Doxygen for generating the wiki Scripting API Documentation content from in source documentation. [Or should I write my own scripts for that?]</span></p>

</li></ul></i><br><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span><i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt">
<li dir="ltr" style="list-style-type:square;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Others ( if time permits, can be continued after GSoC )</span></p>

</li><i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:disc;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline">

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Add GUI Handling to the Script Creator utility</span><span style="font-size:15px;background-color:transparent;font-weight:normal;vertical-align:baseline;white-space:pre-wrap"></span></p>

</li></ul></i></ul></i><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;margin-left:36pt;text-indent:36pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Add support for handling  GUIs  to the Script Creator utility. GUIs can be made</span></p>

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;margin-left:36pt;text-indent:36pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"> in QtCreator and the .ui files loaded in script. The Script Creator  will allow</span></p>

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;margin-left:36pt;text-indent:36pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"> handling UI elements both for input and output.</span></p>

<i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:disc;font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;margin-left:48px">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">
<span style="font-size:15px;background-color:transparent;font-weight:bold;vertical-align:baseline;white-space:pre-wrap">Allow abortion of long running scripts</span><span style="font-size:15px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span></p>

</li></ul></i><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;margin-left:72pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">The scripting engine is blocking, and poorly written scripts freeze the UI. Popup a dialog box (popup delay user configurable) allowing users to terminate long running scripts.</span></p>

<i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt"><i style="font-style:normal"><ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:disc;font-size:15px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline">

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Port popular Amarok 1.4 scripts to the newer QtScript based scripting API if possible, and more scripts!</span></p>

</li></ul></i></ul></i><br><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">

<span style="font-size:19px;font-family:Arial;background-color:transparent;font-weight:bold;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Tentative Timeline</span><span style="font-size:19px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;white-space:pre-wrap">:</span><span style="font-size:19px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span></p>

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">May 27 - May 30 : Familiarize myself with members of the Amarok team. Discuss  proposal with team-members and fine-tune implementation details based on the feedback.</span></p>

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">May 31 - June 5 : Finalize all implementation details and the work plan, resolving any ambiguities.</span></p>

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">June 6 - June 17 :</span><span style="font-size:15px;font-family:Arial;color:rgb(153,153,153);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"> Unavailable due to my exams</span></p>

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">June 17 - June 23 : Work on cleaning up existing API,  implement CollectionManager and write QtScriptObject accessor for for Collections and CollectionLocations</span></p>

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">June 24 - June 30 : Implement file copying and moving among CollectionLocations, with script configurable transcoding support</span></p>

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">June 31  - July 6  :  Write QtScriptObject for Querymaker and Bookmarks. Add accessor for QueryMaker to Collections object</span></p>

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">July 7  - July 13 : Podcast Management. Synchronization Jobs.</span></p>

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">July 14  - July 20 :  Dynamic playlists and automatic playlist generators</span></p>

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">July 21 - July 27 : Other requested features and bug-fixes</span></p>

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">July 27 - July 31 : Other features, like suspend inhibition and TagMatchEditWidget access.</span></p>

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;color:rgb(204,65,37);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><--------August 2----------> Midterm Evaluations Deadline</span></p>

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">August 3  - August 9 : Write the new scripts</span></p>

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">August 10 - August 16 : Design a UI for Amarok Script Creator</span></p>

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">August 17  - August 23 : Write code for Script Creator</span></p>

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">August 24  - August 30 : Test script creator, add new features based on community feedback</span></p>

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;color:rgb(106,168,79);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><----- All components of the scripting interface ready at this point-----></span></p>

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">August 31  -  September 9 : Write unit tests for the Amarok scripting interface</span></p>

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">September 10 - September 16 : Write missing documentation, set up automatic documentation generation</span></p>

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;color:rgb(204,65,37);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><-----September 16-----> Suggested Pencils Down</span></p>

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">September 17   - September 23  : (Buffer Time)  Finish any pending tasks, implement miscellaneous features (GUI handling in Script Creator, abortion of long running scripts, porting Amarok 1.4 scripts)</span></p>

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;color:rgb(204,65,37);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><----- September 23----->Firm Pencils Down</span></p>

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">September 23 and on - tweaking, bug fixing, polishing interface based on community feedback</span></p>

<br><span style="font-size:19px;font-family:Arial;background-color:transparent;font-weight:bold;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap"></span><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">

<span style="font-size:19px;font-family:Arial;background-color:transparent;font-weight:bold;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">About Me</span><span style="font-size:19px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;white-space:pre-wrap">:</span></p>

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">I’m Anmol, an engineering student studying Computer Science and Engineering in New Delhi, India.</span></p>

<br><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">I  was introduced to KDE by my college senior Rishab (spacetime) as a solution to my session management problem, and I was hooked. Being an avid music fan, I was naturally drawn to Amarok as my music player of choice, and eventually the first  open source project I decided to contribute to.</span></p>

<br><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">The Amarok community has been very welcoming, especially </span><span style="font-size:15px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap">Matěj (strohel)</span><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"> and Myriam (Mamarok)</span><span style="font-size:15px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap">, guiding me through my open source journey, and it’s been a lot of fun  working with them. Even more exciting has been adding features from my wishlist to Amarok myself and watching them being accepted upstream, knowing they’ll eventually reach the entire Amarok user-base [ waiting for 2.8 ;) ].</span></p>

<br><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">I am a proficient C++ developer, it being the first language I started coding in four years ago in high school. I have worked in several other languages over the years, including Python, Java, Javascript and Dart . I have made some projects in college, and an Android app </span><a href="https://play.google.com/store/apps/details?id=com.anm.bwished" style="text-decoration:none"><span style="font-size:15px;font-family:Arial;background-color:transparent;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">B’Wished</span></a><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"> (now defunct), and have been an active member of the Amarok community.</span></p>

<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">After GSoC, I will continue contributing to Amarok as I have been, and hopefully contribute to some other KDE software too!</span><span style="font-size:13px;font-family:Arial;color:rgb(80,0,80);vertical-align:baseline;white-space:pre-wrap"></span></p>

<br><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">My contributions to Amarok include the following patches:</span></p>

<br><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:19px;font-family:Arial;background-color:transparent;font-weight:bold;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Contributions to Amarok</span><span style="font-size:19px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;white-space:pre-wrap">:</span><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span></p>

<br><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span><div dir="ltr"><table style="border:none;border-collapse:collapse;width:624px"><colgroup><col width="*"><col width="*"><col width="*"></colgroup><tbody><tr style="height:0px">

<td style="border:1px solid rgb(0,0,0);vertical-align:top;padding:7px"><p dir="ltr" style="line-height:1;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Description</span></p>

</td><td style="border:1px solid rgb(0,0,0);vertical-align:top;padding:7px"><p dir="ltr" style="line-height:1;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Reviewboard Link</span></p>

</td><td style="border:1px solid rgb(0,0,0);vertical-align:top;padding:7px"><p dir="ltr" style="line-height:1;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Commit</span></p>

</td></tr><tr style="height:0px"><td style="border:1px solid rgb(0,0,0);vertical-align:top;padding:7px"><p dir="ltr" style="line-height:1;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Added power management options to Amarok-</span></p>

<p dir="ltr" style="line-height:1;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">allow pausing playback on suspend and inhibiting automatic suspend if playing</span></p>

</td><td style="border:1px solid rgb(0,0,0);vertical-align:top;padding:7px"><p dir="ltr" style="line-height:1;margin-top:0pt;margin-bottom:0pt"><a href="https://git.reviewboard.kde.org/r/109846/" style="text-decoration:none"><span style="font-size:15px;font-family:Arial;background-color:transparent;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">https://git.reviewboard.kde.org/r/109846/</span></a><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span></p>

</td><td style="border:1px solid rgb(0,0,0);vertical-align:top;padding:7px"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">71e55e7bdd9b31642d09145a5801777c0e120454</span><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span></p>

</td></tr><tr style="height:0px"><td style="border:1px solid rgb(0,0,0);vertical-align:top;padding:7px"><p dir="ltr" style="line-height:1;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Added  fine-tuning transcode control options while copying and moving tracks</span></p>

</td><td style="border:1px solid rgb(0,0,0);vertical-align:top;padding:7px"><p dir="ltr" style="line-height:1;margin-top:0pt;margin-bottom:0pt"><a href="https://git.reviewboard.kde.org/r/109781/" style="text-decoration:none"><span style="font-size:15px;font-family:Arial;background-color:transparent;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">https://git.reviewboard.kde.org/r/109781/</span></a><span style="font-size:15px;font-family:Arial;color:rgb(17,85,204);background-color:transparent;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap"></span></p>

</td><td style="border:1px solid rgb(0,0,0);vertical-align:top;padding:7px"><p dir="ltr" style="line-height:1;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">PENDING</span></p>

</td></tr><tr style="height:0px"><td style="border:1px solid rgb(0,0,0);vertical-align:top;padding:7px"><p dir="ltr" style="line-height:1;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Added tooltips describing why a track doesn’t play</span></p>

</td><td style="border:1px solid rgb(0,0,0);vertical-align:top;padding:7px"><p dir="ltr" style="line-height:1;margin-top:0pt;margin-bottom:0pt"><a href="https://git.reviewboard.kde.org/r/109817/" style="text-decoration:none"><span style="font-size:15px;font-family:Arial;background-color:transparent;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">https://git.reviewboard.kde.org/r/109817/</span></a><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span></p>

</td><td style="border:1px solid rgb(0,0,0);vertical-align:top;padding:7px"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">0b1391318ae98c5f077b301ccb76a23b7efd1c3f</span><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span></p>

</td></tr><tr style="height:0px"><td style="border:1px solid rgb(0,0,0);vertical-align:top;padding:7px"><p dir="ltr" style="line-height:1;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Handle Data CDs in Amarok</span></p>

</td><td style="border:1px solid rgb(0,0,0);vertical-align:top;padding:7px"><p dir="ltr" style="line-height:1;margin-top:0pt;margin-bottom:0pt"><a href="https://git.reviewboard.kde.org/r/109752/" style="text-decoration:none"><span style="font-size:15px;font-family:Arial;background-color:transparent;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">https://git.reviewboard.kde.org/r/109752/</span></a><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span></p>

</td><td style="border:1px solid rgb(0,0,0);vertical-align:top;padding:7px"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">6dd3e1e190118dd079c7c414a44f22eaecffc5d5</span><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span></p>

</td></tr><tr style="height:0px"><td style="border:1px solid rgb(0,0,0);vertical-align:top;padding:7px"><p dir="ltr" style="line-height:1;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Added 3 different seek options to Amarok</span></p>

</td><td style="border:1px solid rgb(0,0,0);vertical-align:top;padding:7px"><p dir="ltr" style="line-height:1;margin-top:0pt;margin-bottom:0pt"><a href="https://git.reviewboard.kde.org/r/108964/" style="text-decoration:none"><span style="font-size:15px;font-family:Arial;background-color:transparent;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">https://git.reviewboard.kde.org/r/108964/</span></a><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span></p>

</td><td style="border:1px solid rgb(0,0,0);vertical-align:top;padding:7px"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">265696b694559e09cad34f4b5e06077b92f91dce</span><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span></p>

</td></tr><tr style="height:0px"><td style="border:1px solid rgb(0,0,0);vertical-align:top;padding:7px"><p dir="ltr" style="line-height:1;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">SIGNAL SLOT Normalization patch</span></p>

</td><td style="border:1px solid rgb(0,0,0);vertical-align:top;padding:7px"><p dir="ltr" style="line-height:1;margin-top:0pt;margin-bottom:0pt"><a href="https://git.reviewboard.kde.org/r/109794/" style="text-decoration:none"><span style="font-size:15px;font-family:Arial;background-color:transparent;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">https://git.reviewboard.kde.org/r/109794/</span></a><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span></p>

</td><td style="border:1px solid rgb(0,0,0);vertical-align:top;padding:7px"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">7a72f13d7f57e83efdae66b5078b7f1aa0131b2d</span><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span></p>

</td></tr><tr style="height:0px"><td style="border:1px solid rgb(0,0,0);vertical-align:top;padding:7px"><p dir="ltr" style="line-height:1;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Added a prepareToQuit() signal to amarokWindowScript</span></p>

</td><td style="border:1px solid rgb(0,0,0);vertical-align:top;padding:7px"><p dir="ltr" style="line-height:1;margin-top:0pt;margin-bottom:0pt"><a href="https://git.reviewboard.kde.org/r/109695/" style="text-decoration:none"><span style="font-size:15px;font-family:Arial;background-color:transparent;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">https://git.reviewboard.kde.org/r/109695/</span></a><span style="font-size:15px;font-family:Arial;color:rgb(17,85,204);background-color:transparent;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap"></span></p>

</td><td style="border:1px solid rgb(0,0,0);vertical-align:top;padding:7px"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">b0c79900429e8987c018112f875e09e565126408</span></p>

</td></tr></tbody></table></div><br><span style="font-size:19px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;white-space:pre-wrap"></span><br><span style="font-size:19px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;white-space:pre-wrap"></span><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">

<span style="font-size:19px;font-family:Arial;background-color:transparent;font-weight:bold;vertical-align:baseline;white-space:pre-wrap">Other Obligations:</span></p><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">

<span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">I have my current semester’s final exams from June 4 to June 17, during which I will unavailable. I have no other obligations for the rest of my summer vacations and will be available for my GSoC work.</span></p>

<div><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><br></span></div></b></div>