![]() |
Mixxx
|
00001 00002 #ifndef WAVEFORMRENDERSIGNALTILES_H 00003 #define WAVEFORMRENDERSIGNALTILES_H 00004 00005 #include <QObject> 00006 #include <QColor> 00007 #include <QVector> 00008 #include <QList> 00009 #include <QLineF> 00010 #include <QDomNode> 00011 #include <QPainter> 00012 #include <QPaintEvent> 00013 #include <QPixmap> 00014 00015 #include "renderobject.h" 00016 00017 class ControlObjectThreadMain; 00018 class WaveformRenderer; 00019 class SoundSourceProxy; 00020 00021 struct Tile { 00022 int start_subpixel; 00023 int end_subpixel; 00024 QPixmap pixmap; 00025 }; 00026 00027 class WaveformRenderSignalTiles : public RenderObject { 00028 Q_OBJECT 00029 public: 00030 WaveformRenderSignalTiles(const char *group, WaveformRenderer *parent); 00031 void resize(int w, int h); 00032 void setup(QDomNode node); 00033 void draw(QPainter *pPainter, QPaintEvent *event, QVector<float> *buffer, double playPos, double rateAdjust); 00034 void newTrack(TrackPointer pTrack); 00035 00036 private: 00037 Tile* getTileForSubpixel(int subpixel, QVector<float> *buffer); 00038 void resetTiles(); 00039 00040 WaveformRenderer *m_pParent; 00041 int m_iWidth, m_iHeight; 00042 TrackPointer m_pTrack; 00043 QColor signalColor; 00044 00045 QHash<int, Tile*> m_qTileMap; 00046 QList<Tile*> m_qFreeTiles; 00047 QList<Tile*> m_qTiles; 00048 int kiTileWidth; 00049 }; 00050 00051 #endif