4 #include "someplayer.h"
8 #include "filestorage.h"
9 #include "mediascanner.h"
10 #include "tagresolver.h"
12 #define _DATABASE_PATH_ "/tmp"
13 #define _PLAYLISTS_PATH_ "/tmp"
15 // represents media library: tracks, playlists
16 // it uses different media storages for tracks and playlists
17 // but dynamic playlits will be stored with tracks into the same storage
19 using SomePlayer::DataObjects::Track;
20 using SomePlayer::DataObjects::Playlist;
21 using SomePlayer::Storage::DbStorage;
22 using SomePlayer::Storage::FileStorage;
23 using SomePlayer::Storage::MediaScanner;
25 namespace SomePlayer {
26 namespace DataObjects {
28 class Library : public QObject {
31 Library(QString databasePath, QString playlistsPath);
34 void addDirectory(QString path);
35 void addFile(QString path);
37 QList<QString> getArtists();
38 QList<QString> getAlbumsForArtist(QString artist);
39 QList<Track> getTracksForAlbum(QString album, QString artist);
41 Playlist getFavorites();
42 Playlist getMostPlayed();
43 Playlist getNeverPlayed();
44 Playlist getRecentlyAdded();
46 QList<Playlist> getPlaylists();
47 QStringList getPlaylistsNames();
48 Playlist getPlaylist(QString name);
49 void savePlaylist(const Playlist &playlist);
50 void removePlaylist(const Playlist &playlist);
51 void removePlaylist(QString name);
53 Playlist getCurrentPlaylist();
54 void saveCurrentPlaylist(const Playlist &playlist);
61 DbStorage *_library_storage;
62 FileStorage *_playlist_storage;
63 MediaScanner *_scanner;
64 TagResolver *_resolver;
67 void removeTrack(Track);
69 void addToFavorites(Track);
70 void updateTrackCount(Track);