Mixxx

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

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