#include "mediascanner.h"
#include "tagresolver.h"
-#define _DATABASE_PATH_ "/tmp"
-#define _PLAYLISTS_PATH_ "/tmp"
-
// represents media library: tracks, playlists
// it uses different media storages for tracks and playlists
// but dynamic playlits will be stored with tracks into the same storage
Library(QString databasePath, QString playlistsPath);
~Library();
- void addDirectory(QString path);
+ void addDirectory(QString path, bool async = true);
void addFile(QString path);
+ QList<QString> getDirectories();
QList<QString> getArtists();
- QList<QString> getAlbumsForArtist(QString artist);
+ QMap<QString, int> getAlbumsForArtist(QString artist);
QList<Track> getTracksForAlbum(QString album, QString artist);
+ QList<Track> getAllTracksForArtist(QString artist);
+
+ QList<Track> searchTracks(QString pattern);
Playlist getFavorites();
Playlist getMostPlayed();
Playlist getNeverPlayed();
Playlist getRecentlyAdded();
+ int getArtistsCount();
+ int getAlbumsCount();
+ int getTracksCount();
+
QList<Playlist> getPlaylists();
QStringList getPlaylistsNames();
Playlist getPlaylist(QString name);
Playlist getCurrentPlaylist();
void saveCurrentPlaylist(const Playlist &playlist);
+ LastPlayed getLastPlayedForCurPlaylist();
+
+ void updateDirectories(QList<QString> directories);
+ void updateAll();
+ void deleteDirectories(QList<QString> directories);
+
+ bool isFavorite(Track);
signals:
+ void started();
void done();
void busy(QString);
+ void allCount(int);
+ void tick();
private:
DbStorage *_library_storage;
MediaScanner *_scanner;
TagResolver *_resolver;
+ private slots:
+ void _scanned(QStringList);
+ void _decoded(Track);
+
public slots:
void removeTrack(Track);
void addTrack(Track);
void addToFavorites(Track);
+ void removeFromFavorites(Track);
void updateTrackCount(Track);
+ void updateTrackMetadata(Track);
+ void updatePlaylists();
+ void saveLastPlayedForCurPlaylist(LastPlayed);
};
};