4 #include "someplayer.h"
8 #include "filestorage.h"
9 #include "mediascanner.h"
10 #include "tagresolver.h"
12 // represents media library: tracks, playlists
13 // it uses different media storages for tracks and playlists
14 // but dynamic playlits will be stored with tracks into the same storage
16 using SomePlayer::DataObjects::Track;
17 using SomePlayer::DataObjects::Playlist;
18 using SomePlayer::Storage::DbStorage;
19 using SomePlayer::Storage::FileStorage;
20 using SomePlayer::Storage::MediaScanner;
22 namespace SomePlayer {
23 namespace DataObjects {
25 class Library : public QObject {
28 Library(QString databasePath, QString playlistsPath);
31 void addDirectory(QString path);
32 void addFile(QString path);
34 QList<QString> getArtists();
35 QList<QString> getAlbumsForArtist(QString artist);
36 QList<Track> getTracksForAlbum(QString album, QString artist);
38 Playlist getFavorites();
39 Playlist getMostPlayed();
40 Playlist getNeverPlayed();
41 Playlist getRecentlyAdded();
43 QList<Playlist> getPlaylists();
44 QStringList getPlaylistsNames();
45 Playlist getPlaylist(QString name);
46 void savePlaylist(Playlist playlist);
47 void removePlaylist(Playlist playlist);
48 void removePlaylist(QString name);
50 Playlist getCurrentPlaylist();
51 void saveCurrentPlaylist(Playlist playlist);
54 DbStorage *_library_storage;
55 FileStorage *_playlist_storage;
56 MediaScanner *_scanner;
57 TagResolver *_resolver;
60 void removeTrack(Track);
62 void addToFavorites(Track);
63 void updateTrack(Track);