![]() |
Mixxx
|
00001 00002 #ifndef DLGTRACKINFO_H 00003 #define DLGTRACKINFO_H 00004 00005 #include <QDialog> 00006 #include <QMutex> 00007 #include <QHash> 00008 #include <QList> 00009 00010 #include "ui_dlgtrackinfo.h" 00011 00012 #include "trackinfoobject.h" 00013 #include "controlbeat.h" 00014 00015 class Cue; 00016 00017 class DlgTrackInfo : public QDialog, public Ui::DlgTrackInfo { 00018 Q_OBJECT 00019 public: 00020 DlgTrackInfo(QWidget* parent); 00021 virtual ~DlgTrackInfo(); 00022 00023 public slots: 00024 // Not thread safe. Only invoke via AutoConnection or QueuedConnection, not 00025 // directly! 00026 void loadTrack(TrackPointer pTrack); 00027 00028 signals: 00029 void next(); 00030 void previous(); 00031 00032 private slots: 00033 void slotNext(); 00034 void slotPrev(); 00035 void apply(); 00036 void cancel(); 00037 void trackUpdated(); 00038 00039 void cueActivate(); 00040 void cueDelete(); 00041 00042 void slotBpmDouble(); 00043 void slotBpmHalve(); 00044 void slotBpmTap(); 00045 00046 void reloadTrackMetadata(); 00047 00048 private: 00049 void populateFields(TrackPointer pTrack); 00050 void populateCues(TrackPointer pTrack); 00051 void unloadTrack(bool save); 00052 void clear(); 00053 00054 QHash<int, Cue*> m_cueMap; 00055 TrackPointer m_pLoadedTrack; 00056 00057 CSAMPLE m_bpmTapFilter[filterLength]; 00058 QTime m_bpmTapTimer; 00059 00060 QMutex m_mutex; 00061 00062 }; 00063 00064 #endif /* DLGTRACKINFO_H */ 00065