![]() |
Mixxx
|
00001 00002 #ifndef WGLWAVEFORMVIEWER_H 00003 #define WGLWAVEFORMVIEWER_H 00004 00005 #include <qgl.h> 00006 #include <QList> 00007 #include <QEvent> 00008 #include <QDateTime> 00009 #include <QMutex> 00010 #include <QDragEnterEvent> 00011 #include <QDropEvent> 00012 #include <QTimerEvent> 00013 #include <QGLContext> 00014 #include <QtDebug> 00015 00016 #include "wwidget.h" 00017 #include "defs.h" 00018 00019 class EngineBuffer; 00020 class WaveformRenderer; 00021 class ControlObjectThreadMain; 00022 00023 class WGLWaveformViewer : public QGLWidget 00024 { 00025 Q_OBJECT 00026 public: 00027 WGLWaveformViewer(const char *group, WaveformRenderer* pWaveformRenderer, 00028 QWidget *pParent=0, const QGLWidget *pShareWidget = 0, 00029 QGLContext *ctxt = 0, 00030 Qt::WFlags f = 0); 00031 virtual ~WGLWaveformViewer(); 00032 00033 bool directRendering(); 00034 void dragEnterEvent(QDragEnterEvent *event); 00035 void dropEvent(QDropEvent *event); 00036 void setup(QDomNode node); 00037 bool eventFilter(QObject *o, QEvent *e); 00038 00039 public slots: 00040 void setValue(double); 00041 void refresh(); 00042 00043 signals: 00044 void valueChangedLeftDown(double); 00045 void valueChangedRightDown(double); 00046 void trackDropped(QString filename, QString group); 00047 00048 protected: 00049 void paintEvent(QPaintEvent* event); 00050 void resizeEvent(QResizeEvent* e); 00051 00052 private: 00054 int m_iMouseStart; 00055 00057 WaveformRenderer *m_pWaveformRenderer; 00058 00059 ControlObjectThreadMain* m_pScratchEnable; 00060 ControlObjectThreadMain* m_pScratch; 00061 ControlObjectThreadMain* m_pTrackSamples; 00062 ControlObjectThreadMain* m_pTrackSampleRate; 00063 ControlObjectThreadMain* m_pRate; 00064 ControlObjectThreadMain* m_pRateRange; 00065 ControlObjectThreadMain* m_pRateDir; 00066 00067 bool m_bScratching; 00068 bool m_bBending; 00069 bool m_painting; 00070 QMutex m_paintMutex; 00071 00072 const char *m_pGroup; 00073 }; 00074 00075 #endif