Import fmit upstream version 0.97.6
[fmit.git] / src / modules / GLSample.h
1 // Copyright 2004 "Gilles Degottex"
2
3 // This file is part of "fmit"
4
5 // "fmit" is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation; either version 2 of the License, or
8 // (at your option) any later version.
9 // 
10 // "fmit" is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
14 // 
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software
17 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18
19 #ifndef _GLSample_h_
20 #define _GLSample_h_
21
22 #include <deque>
23 using namespace std;
24
25 #include <qgl.h>
26 #include <qaction.h>
27 #include <qspinbox.h>
28 class QTimer;
29 #include "View.h"
30
31 class GLSample : public QGLWidget, public View
32 {
33         Q_OBJECT
34
35         virtual void mouseReleaseEvent(QMouseEvent* e){View::mouseReleaseEvent(e);}
36
37         double m_max_value;
38
39   public:
40         GLSample(QWidget* parent);
41
42         struct Sample
43         {
44                 double time;
45                 deque<double> data;
46                 double max_value;
47                 Sample(double t, const deque<double>& d);
48         };
49         deque<Sample> m_samples;
50
51         void add(double time, const deque<double>& data);
52         void clear()    {m_samples.clear();}
53
54         // settings
55         QAction* setting_hasFading;
56         QSpinBox* setting_spinNumFading;
57         virtual void save();
58         virtual void load();
59         virtual void clearSettings();
60
61   public slots:
62         void initializeGL();
63         void paintGL();
64         void resizeGL( int w, int h );
65 };
66
67 #endif // _GLSample_h_
68