<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://svn.reviewboard.kde.org/r/5853/">http://svn.reviewboard.kde.org/r/5853/</a>
     </td>
    </tr>
   </table>
   <br />


<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://svn.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 Solid.</div>
<div>By Alex Merry.</div>





<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;">Adds support to the Solid udev backend for Portable Media Players.

There are several FIXMEs in the code, all related to libmtp.  Basically, MTP is not supported at all.  In hal, support is provided by libmtp installing an FDI file that gets merged with the standard 10-usb-music-players.fdi.  All the relevant details are in one place, everyone is happy.

In this brave new world, the information that used to be shipped with hal (actually, with hal-info) about media players is now in the media-player-info package.  That doesn&#39;t include any details about MTP access, however.  libmtp ships some udev rules, but these just create a symlink (/dev/libmtp-%n) and don&#39;t provide us with anything useful.

Note that MTP devices are likely to be picked up by libgphoto2, however, and will be ID_MEDIA_PLAYER set to 1.  However, there is no way to distinguish these from random cameras.  Also, if a single USB device can operate as both an MTP device and a storage device (and these modes are not distinguished by a model id, for example), libgphoto2&#39;s udev rules can potentially overwrite the (useful) value of ID_MEDIA_PLAYER set by the media-player-info rules.

Basically, it&#39;s a big fat mess.</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </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;">solid-hardware lists &quot;storage&quot; as a supported protocol for my Sansa Clip+ when it&#39;s operating in MSC (storage) mode.</pre>
  </td>
 </tr>
</table>



<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Bugs: </b>


 <a href="https://bugs.kde.org/show_bug.cgi?id=253671">253671</a>


</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>/trunk/KDE/kdelibs/solid/solid/CMakeLists.txt <span style="color: grey">(1196931)</span></li>

 <li>/trunk/KDE/kdelibs/solid/solid/backends/udev/udevdevice.cpp <span style="color: grey">(1196931)</span></li>

 <li>/trunk/KDE/kdelibs/solid/solid/backends/udev/udevmanager.cpp <span style="color: grey">(1196931)</span></li>

 <li>/trunk/KDE/kdelibs/solid/solid/backends/udev/udevportablemediaplayer.h <span style="color: grey">(1196931)</span></li>

 <li>/trunk/KDE/kdelibs/solid/solid/backends/udev/udevportablemediaplayer.cpp <span style="color: grey">(1196931)</span></li>

 <li>/trunk/KDE/kdelibs/solid/solid/xdgbasedirs.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/trunk/KDE/kdelibs/solid/solid/xdgbasedirs_p.h <span style="color: grey">(PRE-CREATION)</span></li>

</ul>

<p><a href="http://svn.reviewboard.kde.org/r/5853/diff/" style="margin-left: 3em;">View Diff</a></p>




  </td>
 </tr>
</table>




  </div>
 </body>
</html>