X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fdbstorage.h;h=8dfd025bd4dd3baf7305d330450b7083b77bc4f2;hb=982975a8bdfa1d5a8da1cda0732d80c778d3aff6;hp=5c1b76106319de364c4f647d50109b3b99811a5c;hpb=f9685f48a0d412250d81fa0ed67054d8978f4a21;p=someplayer diff --git a/src/dbstorage.h b/src/dbstorage.h index 5c1b761..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,41 +52,69 @@ namespace SomePlayer { Playlist getNeverPlayed(); Playlist getRecentlyAdded(); + QList searchTracks(QString pattern); + + int getArtistsCount(); + int getAlbumsCount(); + int getTracksCount(); + void removeTrack(Track track); void addToFavorites(Track track); void updateTrackCount(Track track); + 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_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; }; }; };