Mixxx

/home/maxime/Projets/Mixxx/1.10/mixxx/src/library/dao/playlistdao.h

Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines