![]() |
Mixxx
|
00001 00002 #ifndef WAVEFORMRENDERMARK_H 00003 #define WAVEFORMRENDERMARK_H 00004 00005 #include <QObject> 00006 #include <QColor> 00007 #include <QPixmap> 00008 #include <QVector> 00009 00010 class QDomNode; 00011 class QPainter; 00012 class QPaintEvent; 00013 00014 #include "configobject.h" 00015 #include "waveform/renderobject.h" 00016 00017 class ConfigKey; 00018 class ControlObjectThreadMain; 00019 class WaveformRenderer; 00020 00021 class WaveformRenderMark : public RenderObject { 00022 Q_OBJECT 00023 public: 00024 WaveformRenderMark(const char* pGroup, WaveformRenderer *parent); 00025 virtual ~WaveformRenderMark(); 00026 00027 void resize(int w, int h); 00028 void setup(QDomNode node); 00029 void draw(QPainter *pPainter, QPaintEvent *event, 00030 QVector<float> *buffer, double playPos, double rateAdjust); 00031 void newTrack(TrackPointer pTrack); 00032 00033 public slots: 00034 void slotUpdateMarkPoint(double mark); 00035 void slotUpdateTrackSamples(double samples); 00036 void slotUpdateTrackSampleRate(double sampleRate); 00037 00038 private: 00039 void setupMarkPixmap(); 00040 00041 enum MarkAlign { 00042 TOP = 0, 00043 BOTTOM, 00044 CENTER 00045 }; 00046 00047 const char* m_pGroup; 00048 WaveformRenderer *m_pParent; 00049 ControlObjectThreadMain *m_pMarkPoint; 00050 ControlObjectThreadMain *m_pTrackSamples; 00051 ControlObjectThreadMain *m_pTrackSampleRate; 00052 00053 int m_iMarkPoint; 00054 int m_iWidth, m_iHeight; 00055 QColor m_markColor; 00056 QColor m_textColor; 00057 QString m_markText; 00058 QString m_markPixmapPath; 00059 MarkAlign m_markAlign; 00060 QPixmap m_markPixmap; 00061 bool m_bHasCustomPixmap; 00062 double m_dSamplesPerDownsample; 00063 00064 int m_iNumSamples; 00065 int m_iSampleRate; 00066 }; 00067 00068 #endif