Amarok/Proposals/RefactorCollection

From KDE Community Wiki

Introduction

While Amarok's current collection handling is pretty powerful, it is not really extensible. An example for the limitations of the current architecture is the DAAP media plugin. It would be a lot better if Amarok could use DAAP shares exactly like its own local collection, so that we could easily create smart and dynamic playlists which play music from a DAAP share. A similar problem exits for media devices: Amarok should be able automatically select and play songs from a friend's ipod or other media device. At the moment, you have to drag the songs into the playlist manually which is very annoying:)

Goals

  • allow Amarok to use multiple collections at the same time
  • allow (automatic) adding/removing of collections at runtime
  • make it easier to add new collection types
  • allow smart and dynamic playlists to load songs from multiple collections

Architecture

I've created a class diagram in Umbrello which shows my proposed changes. Instead of inserting an image of it here, i am going to put it into SVN. That way you can read the comments I've added to the classes and methods and make changes to it.