Mercurial > hg > easaier-soundaccess
annotate widgets/Plotter.h @ 282:d9319859a4cf tip
(none)
author | benoitrigolleau |
---|---|
date | Fri, 31 Oct 2008 11:00:24 +0000 |
parents | e006f4a57f86 |
children |
rev | line source |
---|---|
benoitrigolleau@211 | 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ |
benoitrigolleau@211 | 2 |
benoitrigolleau@211 | 3 /* Sound Access |
benoitrigolleau@211 | 4 EASAIER client application. |
benoitrigolleau@211 | 5 Silogic 2007. Benoit Rigolleau. |
benoitrigolleau@211 | 6 |
benoitrigolleau@211 | 7 This program is free software; you can redistribute it and/or |
benoitrigolleau@211 | 8 modify it under the terms of the GNU General Public License as |
benoitrigolleau@211 | 9 published by the Free Software Foundation; either version 2 of the |
benoitrigolleau@211 | 10 License, or (at your option) any later version. See the file |
benoitrigolleau@211 | 11 COPYING included with this distribution for more information. |
benoitrigolleau@211 | 12 */ |
benoitrigolleau@211 | 13 |
benoitrigolleau@211 | 14 |
benoitrigolleau@211 | 15 #ifndef PLOTTER_H |
benoitrigolleau@211 | 16 #define PLOTTER_H |
benoitrigolleau@211 | 17 |
benoitrigolleau@211 | 18 #include <QMap> |
benoitrigolleau@211 | 19 #include <QPixmap> |
benoitrigolleau@211 | 20 #include <QVector> |
benoitrigolleau@211 | 21 #include <QWidget> |
benoitrigolleau@211 | 22 |
benoitrigolleau@211 | 23 |
benoitrigolleau@211 | 24 class Plotter : public QWidget |
benoitrigolleau@211 | 25 { |
benoitrigolleau@211 | 26 Q_OBJECT |
benoitrigolleau@211 | 27 |
benoitrigolleau@211 | 28 public: |
benoitrigolleau@211 | 29 Plotter(QWidget *parent = 0); |
benoitrigolleau@211 | 30 |
benoitrigolleau@211 | 31 void setCurveData(const QVector<QPoint> &data); |
benoitrigolleau@211 | 32 void clearCurve(); |
benoitrigolleau@211 | 33 void setSignalSize(int m_signalWidth, int m_signalHeight); |
benoitrigolleau@211 | 34 void setMargin(int margin); |
benoitrigolleau@211 | 35 |
lbajardsilogic@229 | 36 signals: |
lbajardsilogic@233 | 37 void filterChanged(QVector<float>&); |
lbajardsilogic@229 | 38 |
lbajardsilogic@229 | 39 public slots: |
lbajardsilogic@229 | 40 void setCurve(float *); |
lbajardsilogic@232 | 41 void setFilter(float *); |
lbajardsilogic@235 | 42 void enableDrawCurve(bool); |
lbajardsilogic@232 | 43 |
lbajardsilogic@229 | 44 |
benoitrigolleau@211 | 45 protected: |
benoitrigolleau@211 | 46 void paintEvent(QPaintEvent *event); |
benoitrigolleau@211 | 47 void resizeEvent(QResizeEvent *event); |
benoitrigolleau@211 | 48 void mousePressEvent(QMouseEvent *event); |
benoitrigolleau@211 | 49 void mouseMoveEvent(QMouseEvent *event); |
benoitrigolleau@211 | 50 void mouseReleaseEvent(QMouseEvent *event); |
benoitrigolleau@211 | 51 |
benoitrigolleau@211 | 52 private: |
benoitrigolleau@211 | 53 void refreshPixmap(); |
benoitrigolleau@211 | 54 void drawGrid(QPainter *painter); |
benoitrigolleau@211 | 55 void drawCurve(QPainter *painter); |
benoitrigolleau@211 | 56 void drawMaskCurve(QPainter *painter); |
benoitrigolleau@211 | 57 QVector<QPoint> m_curve; |
lbajardsilogic@233 | 58 QVector<float> m_curveMask; |
benoitrigolleau@240 | 59 QVector<float> m_oldCurveMask; |
benoitrigolleau@211 | 60 QPixmap m_pixmap; |
benoitrigolleau@211 | 61 int m_signalHeight; |
benoitrigolleau@211 | 62 int m_signalWidth; |
benoitrigolleau@211 | 63 int m_margin; |
benoitrigolleau@211 | 64 bool m_curveMaskActive; |
benoitrigolleau@211 | 65 QPoint m_lastPoint; |
lbajardsilogic@235 | 66 |
lbajardsilogic@235 | 67 bool m_enableDrawCurve; |
benoitrigolleau@211 | 68 }; |
benoitrigolleau@211 | 69 |
benoitrigolleau@211 | 70 |
benoitrigolleau@211 | 71 #endif |
benoitrigolleau@211 | 72 |