Mixxx

/home/maxime/Projets/Mixxx/1.10/mixxx/src/widget/wglwaveformviewer.h

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