![]() |
Mixxx
|
00001 // 00002 // C++ Interface: woverview 00003 // 00004 // Description: 00005 // 00006 // 00007 // Author: Tue Haste Andersen <haste@diku.dk>, (C) 2003 00008 // 00009 // Copyright: See COPYING file that comes with this distribution 00010 // 00011 // 00012 #ifndef WOVERVIEW_H 00013 #define WOVERVIEW_H 00014 00015 #include <QPaintEvent> 00016 #include <QMouseEvent> 00017 #include <QPixmap> 00018 #include <QColor> 00019 #include <QList> 00020 00021 #include "trackinfoobject.h" 00022 #include "widget/wwidget.h" 00023 00024 00031 class ControlObject; 00032 00033 class WOverview : public WWidget 00034 { 00035 Q_OBJECT 00036 public: 00037 WOverview(const char* pGroup, QWidget *parent=NULL); 00038 virtual ~WOverview(); 00039 void setup(QDomNode node); 00040 void setData(const QByteArray *pWaveformSummary, long liSampleDuration); 00041 void mouseMoveEvent(QMouseEvent *e); 00042 void mouseReleaseEvent(QMouseEvent *e); 00043 void mousePressEvent(QMouseEvent *e); 00044 void paintEvent(QPaintEvent *); 00045 void paintTrackProgress(QPainter& painter); 00046 void redrawPixmap(); 00047 QColor getMarkerColor(); 00048 QColor getSignalColor(); 00049 00050 public slots: 00051 void setValue(double); 00052 void slotLoadNewWaveform(TrackInfoObject* pTrack); 00053 void slotTrackLoaded(TrackPointer pTrack); 00054 void slotUnloadTrack(TrackPointer pTrack); 00055 void slotTrackProgress(TrackPointer pTrack, int progress); 00056 00057 signals: 00058 void trackDropped(QString filename, QString group); 00059 00060 protected: 00061 virtual void dragEnterEvent(QDragEnterEvent* event); 00062 virtual void dropEvent(QDropEvent* event); 00063 00064 private slots: 00065 void cueChanged(double v); 00066 void loopStartChanged(double v); 00067 void loopEndChanged(double v); 00068 void loopEnabledChanged(double v); 00069 00070 private: 00071 const char* m_pGroup; 00072 bool waveformChanged; 00073 00074 // Current active track 00075 TrackPointer m_pCurrentTrack; 00076 bool m_analysing; 00077 int m_iProgress; 00078 00079 // Loop controls and values 00080 ControlObject* m_pLoopStart; 00081 ControlObject* m_pLoopEnd; 00082 ControlObject* m_pLoopEnabled; 00083 double m_dLoopStart, m_dLoopEnd; 00084 bool m_bLoopEnabled; 00085 00086 // Hotcue controls and values 00087 QList<ControlObject*> m_hotcueControls; 00088 QMap<QObject*, int> m_hotcueMap; 00089 QList<int> m_hotcues; 00090 00092 QByteArray m_waveformSummary; 00094 int m_liSampleDuration; 00096 bool m_bDrag; 00098 int m_iPos, m_iStartMousePos; 00100 QPixmap *m_pScreenBuffer; 00101 QPixmap m_backgroundPixmap; 00102 QString m_backgroundPixmapPath; 00103 QColor m_qColorBackground; 00104 QColor m_qColorMarker; 00105 QColor m_qColorSignal; 00106 QColor m_qColorProgress; 00107 int m_iProgressAlpha; 00108 }; 00109 00110 #endif