4 #include "someplayer.h"
6 #include <QSqlDatabase>
11 #define _DATABASE_NAME_ "/library.sqlite3"
13 // represents database storage
14 // it store date into some database (e.g. tracks)
16 using SomePlayer::DataObjects::Playlist;
17 using SomePlayer::DataObjects::Track;
19 namespace SomePlayer {
22 class DbStorage : public Storage {
24 DbStorage(QString path);
26 QList<QString> getArtists();
27 QList<QString> getAlbumsForArtist(QString artist);
28 QList<Track> getTracksForAlbum(QString album, QString artist); // hm...
30 Playlist getFavorites();
31 Playlist getMostPlayed();
32 Playlist getNeverPlayed();
33 Playlist getRecentlyAdded();
35 void removeTrack(Track track);
36 void addToFavorites(Track track);
38 void updateTrack(Track track);
39 void addTrack(Track track);
43 void _create_database_structure();
44 void _prepare_queries();
46 int _check_add_artist(QString artist);
47 int _check_add_album(QString album, int artist_id);
50 QSqlQuery *_get_artists_query;
51 QSqlQuery *_get_albums_for_artist_query;
52 QSqlQuery *_get_tracks_for_album_query;
53 QSqlQuery *_get_favorites_query;
54 QSqlQuery *_get_most_played_query;
55 QSqlQuery *_get_never_played_query;
56 QSqlQuery *_get_recently_added_query;
58 QSqlQuery *_check_artist_query;
59 QSqlQuery *_check_album_query;
60 QSqlQuery *_check_track_query;
62 QSqlQuery *_insert_artist_query;
63 QSqlQuery *_insert_album_query;
65 QSqlQuery *_insert_track_query;
66 QSqlQuery *_insert_date_query;