X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fdbstorage.h;h=8dfd025bd4dd3baf7305d330450b7083b77bc4f2;hb=refs%2Ftags%2F1.4.0;hp=822140de62eec2cd088c2875c31eb6dc3a039596;hpb=68e7e55646f7caf47dd678a5f2f51644ddacd751;p=someplayer diff --git a/src/dbstorage.h b/src/dbstorage.h index 822140d..8dfd025 100644 --- a/src/dbstorage.h +++ b/src/dbstorage.h @@ -42,8 +42,9 @@ namespace SomePlayer { public: DbStorage(QString path); ~DbStorage(); + QList getDirectories(); QList getArtists(); - QList getAlbumsForArtist(QString artist); + QMap getAlbumsForArtist(QString artist); QList getTracksForAlbum(QString album, QString artist); // hm... Playlist getFavorites(); @@ -51,6 +52,12 @@ namespace SomePlayer { Playlist getNeverPlayed(); Playlist getRecentlyAdded(); + QList searchTracks(QString pattern); + + int getArtistsCount(); + int getAlbumsCount(); + int getTracksCount(); + void removeTrack(Track track); void addToFavorites(Track track); @@ -58,38 +65,56 @@ namespace SomePlayer { Track updateTrack(Track); void addTrack(Track track); + void deleteTracksFrom(QString path); + void checkTracksFrom(QString path); + private: QSqlDatabase db; void _create_database_structure(); 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); + int _check_add_directory(QString path); + + 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_track_by_source_query; + 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_track_query; + QSqlQuery *_check_directory_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; }; }; };