Autoremoving emty artists and empty albyms
[someplayer] / src / dbstorage.h
index 5c1b761..1e1fb8c 100644 (file)
@@ -43,7 +43,7 @@ namespace SomePlayer {
                        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();
@@ -51,10 +51,13 @@ namespace SomePlayer {
                        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:
@@ -63,21 +66,25 @@ namespace SomePlayer {
                        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;
@@ -86,6 +93,10 @@ namespace SomePlayer {
                        QSqlQuery *_insert_favorites_query;
 
                        QSqlQuery *_update_track_count_query;
+
+                       QSqlQuery *_remove_track_query;
+                       QSqlQuery *_remove_empty_artists_query;
+                       QSqlQuery *_remove_empty_albums_query;
                };
        };
 };