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!

Tuesday, 25 June 2013

Amarok MTP GSoC: week 1

Hi, this is my first 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 laid the very basic building blocks and I even have some screen-shots. :-)
Entries for the newly (re)written MTP collections show up at appropriate places
What I've done this week:
  • Got rid of the old MTP collection implementation and cleaned up some stuff that is no longer needed
  • Started new MTP implementation by coding MtpCollectionFactory, which is responsible for creating collections for devices as they are plugged in and destroying collections for removed devices. This works fine now and the class is 95% done now.
  • Created stub MtpCollection class so that we can show something in the Collection Browser.
  • Created .desktop file for Solid so that an action to open MTP devices with Amarok shows up in Plasma Device Notifier, see below.
    Device Notifier showing Amarok action
Problems I've faced:
  • None yet, they are expected later. :-)
What's next:
  • Great deal of work on MtpCollection regarding track and other metadata parsing, libmtp interaction, threading, locking...
You can view and test my code by checking out gsoc branch of my personal Amarok clone repository.