Mixxx

/home/maxime/Projets/Mixxx/1.10/mixxx/src/waveform/waveformrendermark.h

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