Sunday, 30 June 2013

Amarok MTP (Android) GSoC: week 2

Heya, this is my second weekly report describing my work on my Google Summer of Code project to rewrite MTP (Android) support in Amarok from scratch. This week I've done a lot of work on MtpCollection class regarding device initialization.
Information for Android users
What I've done this week:
  • MTP devices detected by Solid are actually matched with the ones that libmtp sees.
  • Created an asynchronous job to initialize the MTP device for use by Amarok (query vendor, product, serial number, supported file types, ...).
  • Created an asynchronous job to list device storage drives.
  • Added a refresh button to trigger rebuilding the list of available storage and the list of tracks (in future).
  • Added support for showing device capacity and free space:
    Everyone loves the nice capacity bars
  • Started working on a job to parse tracks found on the device (not presented in the UI yet).
Problems I've faced:
  • Forgetting to call LIBMTP_Initialize() leads to strange errors. :-)
What's next:
  • Diving into full meta system: MtpTrack, album, artist, ...
You can view and test my code by checking out gsoc branch of my personal Amarok clone repository. And finally...
Yay, I'll be there!


  1. Thiago Jung Bauermann30 June 2013 at 17:37


    Thanks for this work, it will be great to have seamless support for Android devices in Amarok. Is this work related somehow to kio_mtp? Do you share code with it? Will it benefit from your work?

  2. See for rationale why kio-mtp is not used in my GSoC project (acked by kio-mtp author). We don't share code directly, but we both contribute effort (well, Philipp contributes more currently), see
    for the long-term plan how to deal with MTP devices in Linux Desktop.
    I'll make sure Amarok will be one of the early adopters of it.

  3. Thiago Jung Bauermann1 July 2013 at 00:14

    That's great. Thanks for the clarification.