![]() |
Mixxx
|
00001 // cratedao.h 00002 // Created 10/22/2009 by RJ Ryan (rryan@mit.edu) 00003 00004 #ifndef CRATEDAO_H 00005 #define CRATEDAO_H 00006 00007 #include <QObject> 00008 #include <QSqlDatabase> 00009 00010 #include "library/dao/dao.h" 00011 #include "util.h" 00012 00013 #define CRATE_TABLE "crates" 00014 #define CRATE_TRACKS_TABLE "crate_tracks" 00015 00016 const QString CRATETRACKSTABLE_TRACKID = "track_id"; 00017 const QString CRATETRACKSTABLE_CRATEID = "crate_id"; 00018 00019 class CrateDAO : public QObject, public virtual DAO { 00020 Q_OBJECT 00021 public: 00022 CrateDAO(QSqlDatabase& database); 00023 virtual ~CrateDAO(); 00024 00025 void setDatabase(QSqlDatabase& database) { m_database = database; }; 00026 00027 // Initialize this DAO, create the tables it relies on, etc. 00028 void initialize(); 00029 00030 unsigned int crateCount(); 00031 bool createCrate(const QString& name); 00032 bool deleteCrate(int crateId); 00033 bool renameCrate(int crateId, const QString& newName); 00034 bool setCrateLocked(int crateId, bool locked); 00035 bool isCrateLocked(int crateId); 00036 int getCrateIdByName(const QString& name); 00037 int getCrateId(int position); 00038 QString crateName(int crateId); 00039 unsigned int crateSize(int crateId); 00040 bool addTrackToCrate(int trackId, int crateId); 00041 void removeTrackFromCrates(int trackId); 00042 bool removeTrackFromCrate(int trackId, int crateId); 00043 00044 signals: 00045 void added(int crateId); 00046 void deleted(int crateId); 00047 void changed(int crateId); 00048 void trackAdded(int crateId, int trackId); 00049 void trackRemoved(int crateId, int trackId); 00050 00051 private: 00052 QSqlDatabase& m_database; 00053 DISALLOW_COPY_AND_ASSIGN(CrateDAO); 00054 }; 00055 00056 #endif /* CRATEDAO_H */ 00057