![]() |
Mixxx
|
00001 #ifndef PLAYLISTDAO_H 00002 #define PLAYLISTDAO_H 00003 00004 #include <QObject> 00005 #include <QSqlDatabase> 00006 00007 #include "library/dao/dao.h" 00008 #include "util.h" 00009 00010 #define PLAYLIST_TABLE "Playlists" 00011 #define PLAYLIST_TRACKS_TABLE "PlaylistTracks" 00012 00013 const QString PLAYLISTTRACKSTABLE_TRACKID = "track_id"; 00014 const QString PLAYLISTTRACKSTABLE_POSITION = "position"; 00015 const QString PLAYLISTTRACKSTABLE_PLAYLISTID = "playlist_id"; 00016 00017 class PlaylistDAO : public QObject, public virtual DAO { 00018 Q_OBJECT 00019 public: 00020 PlaylistDAO(QSqlDatabase& database); 00021 virtual ~PlaylistDAO(); 00022 00023 void initialize(); 00024 void setDatabase(QSqlDatabase& database) { m_database = database; }; 00026 bool createPlaylist(QString name, bool hidden = false); 00028 void deletePlaylist(int playlistId); 00030 void renamePlaylist(int playlistId, const QString& newName); 00032 bool setPlaylistLocked(int playlistId, bool locked); 00034 bool isPlaylistLocked(int playlistId); 00036 void appendTrackToPlaylist(int trackId, int playlistId); 00038 unsigned int playlistCount(); 00040 QString getPlaylistName(unsigned int position); 00041 // Get the playlist id by its name 00042 int getPlaylistIdFromName(QString name); 00046 int getPlaylistId(int position); 00047 // Returns true if the playlist with playlistId is hidden 00048 bool isHidden(int playlistId); 00050 void removeTrackFromPlaylists(int trackId); 00052 void removeTrackFromPlaylist(int playlistId, int position); 00054 void insertTrackIntoPlaylist(int trackId, int playlistId, int position); 00056 void addToAutoDJQueue(int playlistId); 00057 signals: 00058 void added(int playlistId); 00059 void deleted(int playlistId); 00060 void changed(int playlistId); 00061 void trackAdded(int playlistId, int trackId, int position); 00062 void trackRemoved(int playlistId, int trackId, int position); 00063 private: 00064 QSqlDatabase& m_database; 00065 DISALLOW_COPY_AND_ASSIGN(PlaylistDAO); 00066 }; 00067 00068 #endif //PLAYLISTDAO_H