![]() |
Mixxx
|
00001 // waveformrendermarkrange.h 00002 // Created 11/14/2009 by RJ Ryan (rryan@mit.edu) 00003 00004 #ifndef WAVEFORMRENDERMARKRANGE_H 00005 #define WAVEFORMRENDERMARKRANGE_H 00006 00007 #include <QObject> 00008 #include <QColor> 00009 #include <QVector> 00010 00011 class QDomNode; 00012 class QPainter; 00013 class QPaintEvent; 00014 00015 #include "configobject.h" 00016 #include "waveform/renderobject.h" 00017 00018 class ConfigKey; 00019 class ControlObjectThreadMain; 00020 class WaveformRenderer; 00021 00022 class WaveformRenderMarkRange : public RenderObject { 00023 Q_OBJECT 00024 public: 00025 WaveformRenderMarkRange(const char* pGroup, WaveformRenderer *parent); 00026 virtual ~WaveformRenderMarkRange(); 00027 00028 void resize(int w, int h); 00029 void setup(QDomNode node); 00030 void draw(QPainter *pPainter, QPaintEvent *event, 00031 QVector<float> *buffer, double playPos, double rateAdjust); 00032 void newTrack(TrackPointer pTrack); 00033 00034 public slots: 00035 void slotUpdateMarkStartPoint(double mark); 00036 void slotUpdateMarkEndPoint(double mark); 00037 void slotUpdateMarkEnabled(double mark); 00038 void slotUpdateTrackSamples(double samples); 00039 void slotUpdateTrackSampleRate(double samples); 00040 00041 private: 00042 const char* m_pGroup; 00043 WaveformRenderer *m_pParent; 00044 00045 ControlObjectThreadMain *m_pMarkStartPoint; 00046 ControlObjectThreadMain *m_pMarkEndPoint; 00047 ControlObjectThreadMain *m_pMarkEnabled; 00048 ControlObjectThreadMain *m_pTrackSamples; 00049 ControlObjectThreadMain *m_pTrackSampleRate; 00050 00051 bool m_bMarkEnabled; 00052 int m_iMarkStartPoint, m_iMarkEndPoint; 00053 int m_iWidth, m_iHeight; 00054 QColor m_markColor; 00055 QColor m_markDisabledColor; 00056 00057 double m_dSamplesPerDownsample; 00058 int m_iNumSamples; 00059 int m_iSampleRate; 00060 }; 00061 00062 #endif