<html>
<body>
<div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
<table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
<tr>
<td>
This is an automatically generated e-mail. To reply, visit:
<a href="http://git.reviewboard.kde.org/r/100000/">http://git.reviewboard.kde.org/r/100000/</a>
</td>
</tr>
</table>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<p style="margin-top: 0;">On September 22nd, 2010, 2:22 a.m., <b>Leo Franchi</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
<thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
<a href="/r/100000/diff/1/?file=6#file6line791" style="color: black; font-weight: bold; text-decoration: underline;">src/CMakeLists.txt</a>
<span style="font-weight: normal;">
(Diff revision 1)
</span>
</th>
</tr>
</thead>
<tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
<tr>
<td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
</tr>
</tbody>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
<td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
<th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">791</font></th>
<td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "> xine</pre></td>
</tr>
</tbody>
</table>
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I'm not sure about the hard dependency of Xine. We don't depend on any particular audio backend since we use Phonon---what is the feasibility of using Phonon's AudioDataOutput for extracting the audio data, do you know? Some Amarok devs have been looking in to using it for audio fingerprinting, but it wasn't completely bug-free last I checked.</pre>
</blockquote>
</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I didn't know that Phonon has such class, thank you.</pre>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<p style="margin-top: 0;">On September 22nd, 2010, 2:22 a.m., <b>Leo Franchi</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
<thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
<a href="/r/100000/diff/1/?file=21#file21line49" style="color: black; font-weight: bold; text-decoration: underline;">src/dialogs/MusicBrainzTagger.h</a>
<span style="font-weight: normal;">
(Diff revision 1)
</span>
</th>
</tr>
</thead>
<tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
<tr>
<td colspan="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
<td colspan="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">class MusicBrainzTagger : public KDialog</pre></td>
</tr>
</tbody>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
<td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
<th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">49</font></th>
<td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "> <span class="n">QMap</span><span class="o"><</span><span class="n">Meta</span><span class="o">::</span><span class="n">TrackPtr</span><span class="p">,</span> <span class="n">QVariantMap</span> <span class="o">></span> <span class="o">*</span><span class="n">tags</span><span class="p">,</span> <span class="n">QWidget</span> <span class="o">*</span><span class="n">parent</span> <span class="o">=</span> <span class="mi">0</span> <span class="p">);</span></pre></td>
</tr>
</tbody>
</table>
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">For the sake of elegance, you could return the resulting const QMap<Meta::TrackPtr,QvariantMap>& in a signal when the dialog is done, rather than passing in a pointer. But not a huge deal, just a more signal/slot-like mechanism.</pre>
</blockquote>
</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Done.</pre>
<br />
<p>- Sergey</p>
<br />
<p>On September 22nd, 2010, 9:23 a.m., Sergey Ivanov wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.orgrb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
<tr>
<td>
<div>Review request for amarok.</div>
<div>By Sergey Ivanov.</div>
<p style="color: grey;"><i>Updated 2010-09-22 09:23:42</i></p>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">MusicBrainz and MusicDNS services support implementation.
There are three independent parts:
1. MusicBrainzFinder class - used to make requests to MusicBrainz server and process replies. All relies process in separate threads by MusicBrainzXmlParser class. For a search uses guessed from a file name track information. No external dependences required.
2. MusicDNSFinder class - used for the same purpose as MusicBrainzFinder, but i communicate with musicdns server and receives track's PUID as a reply. Replies ether process in separate threads by MusicDNSXmlParser class. Fingerprints generated by libofa (the only external dependence in entire patch). For track decompressing (MusicDNSAudioDecoder class) used xine engine (I'm not sure is It a good choice, but amarok based on phonon media-engine, that uses xine. So we don't deed to pull any other dependences). Received PUIDs sends to MusicBrainzFinder class, for a search routine.
3. View. All classes used for store (MusicBrainzTagsModel, MusicBrainzTrackListModel) and display (MusicBrainzTagsModelDelegate) purposes.</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>CMakeLists.txt <span style="color: grey">(191b02e)</span></li>
<li>cmake/modules/FindLibOFA.cmake <span style="color: grey">(PRE-CREATION)</span></li>
<li>config-amarok.h.cmake <span style="color: grey">(981b7b7)</span></li>
<li>src/CMakeLists.txt <span style="color: grey">(42614ff)</span></li>
<li>src/core-impl/capabilities/timecode/TimecodeEditCapability.h <span style="color: grey">(6e15303)</span></li>
<li>src/core-impl/capabilities/timecode/TimecodeEditCapability.cpp <span style="color: grey">(8205d45)</span></li>
<li>src/core-impl/collections/mediadevicecollection/MediaDeviceMeta.h <span style="color: grey">(e35b57f)</span></li>
<li>src/core-impl/collections/mediadevicecollection/MediaDeviceMeta.cpp <span style="color: grey">(9be62d9)</span></li>
<li>src/core-impl/collections/proxycollection/ProxyCollectionMeta.cpp <span style="color: grey">(8bdbf75)</span></li>
<li>src/core-impl/collections/sqlcollection/CapabilityDelegateImpl.cpp <span style="color: grey">(b5cb083)</span></li>
<li>src/core-impl/collections/sqlcollection/SqlMeta.h <span style="color: grey">(ee3ec21)</span></li>
<li>src/core-impl/collections/sqlcollection/SqlMeta.cpp <span style="color: grey">(2da0333)</span></li>
<li>src/core-impl/meta/file/File.h <span style="color: grey">(6d4d395)</span></li>
<li>src/core-impl/meta/file/File.cpp <span style="color: grey">(30cd2ff)</span></li>
<li>src/core-impl/meta/file/TagLibUtils.cpp <span style="color: grey">(15b64a4)</span></li>
<li>src/core-impl/meta/proxy/MetaProxy.h <span style="color: grey">(2ef3805)</span></li>
<li>src/core-impl/meta/proxy/MetaProxy.cpp <span style="color: grey">(341e076)</span></li>
<li>src/core/capabilities/EditCapability.h <span style="color: grey">(79344bd)</span></li>
<li>src/dialogs/MusicBrainzTagger.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/dialogs/MusicBrainzTagger.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/dialogs/MusicBrainzTagger.ui <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/dialogs/TagDialog.h <span style="color: grey">(50cd801)</span></li>
<li>src/dialogs/TagDialog.cpp <span style="color: grey">(68fc5e3)</span></li>
<li>src/dialogs/TagDialogBase.ui <span style="color: grey">(9974d0b)</span></li>
<li>src/musicbrainz/MusicBrainzFinder.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicBrainzFinder.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicBrainzMetaClasses.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicBrainzMetaClasses.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicBrainzTagsModel.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicBrainzTagsModel.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicBrainzTagsModelDelegate.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicBrainzTagsModelDelegate.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicBrainzTrackListModel.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicBrainzTrackListModel.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicBrainzXmlParser.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicBrainzXmlParser.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicDNSAudioDecoder.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicDNSAudioDecoder.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicDNSFinder.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicDNSFinder.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicDNSXmlParser.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicDNSXmlParser.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>tests/core-impl/collections/proxycollection/TestProxyCollectionMeta.cpp <span style="color: grey">(55d1914)</span></li>
</ul>
<p><a href="http://git.reviewboard.kde.org/r/100000/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>