Fixed bug with no_repeate mode, improved prev button behaviour
[someplayer] / src / dbstorage.h
index 1e1fb8c..60b63ee 100644 (file)
@@ -42,6 +42,7 @@ namespace SomePlayer {
                public:
                        DbStorage(QString path);
                        ~DbStorage();
+                       QList<QString> getDirectories();
                        QList<QString> getArtists();
                        QMap<QString, int> getAlbumsForArtist(QString artist);
                        QList<Track> getTracksForAlbum(QString album, QString artist); // hm...
@@ -51,15 +52,25 @@ namespace SomePlayer {
                        Playlist getNeverPlayed();
                        Playlist getRecentlyAdded();
 
-                       QList<Track> search(QString pattern);
+                       QList<Track> searchTracks(QString pattern);
+
+                       int getArtistsCount();
+                       int getAlbumsCount();
+                       int getTracksCount();
 
                        void removeTrack(Track track);
                        void addToFavorites(Track track);
+                       void removeFromFavorites(Track track);
 
                        void updateTrackCount(Track track);
                        Track updateTrack(Track);
                        void addTrack(Track track);
 
+                       void deleteTracksFrom(QString path);
+                       void checkTracksFrom(QString path);
+
+                       bool isFavorite(Track);
+
                private:
                        QSqlDatabase db;
                        void _create_database_structure();
@@ -67,6 +78,7 @@ namespace SomePlayer {
 
                        int _check_add_artist(QString artist);
                        int _check_add_album(QString album, int artist_id, int year);
+                       int _check_add_directory(QString path);
 
                        void _cleanup();
 
@@ -79,24 +91,35 @@ namespace SomePlayer {
                        QSqlQuery *_get_most_played_query;
                        QSqlQuery *_get_never_played_query;
                        QSqlQuery *_get_recently_added_query;
-                       QSqlQuery *_get_track_count;
+                       QSqlQuery *_get_track_count_query;
                        QSqlQuery *_get_tracks_by_pattern_query;
                        QSqlQuery *_get_track_id_by_source_query;
+                       QSqlQuery *_get_directories_query;
+                       QSqlQuery *_get_artists_count_query;
+                       QSqlQuery *_get_albums_count_query;
+                       QSqlQuery *_get_tracks_count_query;
+                       QSqlQuery *_get_tracks_source_from_query;
 
                        QSqlQuery *_check_artist_query;
                        QSqlQuery *_check_album_query;
+                       QSqlQuery *_check_directory_query;
+                       QSqlQuery *_check_favorite_query;
 
                        QSqlQuery *_insert_artist_query;
                        QSqlQuery *_insert_album_query;
                        QSqlQuery *_insert_track_query;
                        QSqlQuery *_insert_date_query;
                        QSqlQuery *_insert_favorites_query;
+                       QSqlQuery *_insert_directory_query;
 
                        QSqlQuery *_update_track_count_query;
 
                        QSqlQuery *_remove_track_query;
                        QSqlQuery *_remove_empty_artists_query;
                        QSqlQuery *_remove_empty_albums_query;
+                       QSqlQuery *_remove_tracks_from_query;
+                       QSqlQuery *_remove_directory_query;
+                       QSqlQuery *_remove_track_from_favorites_query;
                };
        };
 };