DbStorage(QString path);
~DbStorage();
QList<QString> getArtists();
- QList<QString> getAlbumsForArtist(QString artist);
+ QMap<QString, int> getAlbumsForArtist(QString artist);
QList<Track> getTracksForAlbum(QString album, QString artist); // hm...
Playlist getFavorites();
Playlist getNeverPlayed();
Playlist getRecentlyAdded();
+ QList<Track> search(QString pattern);
+
void removeTrack(Track track);
void addToFavorites(Track track);
void updateTrackCount(Track track);
+ Track updateTrack(Track);
void addTrack(Track track);
private:
void _prepare_queries();
int _check_add_artist(QString artist);
- int _check_add_album(QString album, int artist_id);
+ int _check_add_album(QString album, int artist_id, int year);
+
+ void _cleanup();
// queries
QSqlQuery *_get_artists_query;
- QSqlQuery *_get_albums_for_artist_query;
+ QSqlQuery *_get_albums_for_artist_sort_name_query;
+ QSqlQuery *_get_albums_for_artist_sort_year_query;
QSqlQuery *_get_tracks_for_album_query;
QSqlQuery *_get_favorites_query;
QSqlQuery *_get_most_played_query;
QSqlQuery *_get_never_played_query;
QSqlQuery *_get_recently_added_query;
QSqlQuery *_get_track_count;
+ QSqlQuery *_get_tracks_by_pattern_query;
+ QSqlQuery *_get_track_id_by_source_query;
QSqlQuery *_check_artist_query;
QSqlQuery *_check_album_query;
- QSqlQuery *_check_track_query;
QSqlQuery *_insert_artist_query;
QSqlQuery *_insert_album_query;
QSqlQuery *_insert_favorites_query;
QSqlQuery *_update_track_count_query;
+
+ QSqlQuery *_remove_track_query;
+ QSqlQuery *_remove_empty_artists_query;
+ QSqlQuery *_remove_empty_albums_query;
};
};
};