Import fmit upstream version 0.97.6
[fmit.git] / src / modules / GLVolumeHistory.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
20
21 #ifndef _GLVolumeHistory_h_
22 #define _GLVolumeHistory_h_
23
24 #include <deque>
25 using namespace std;
26 #include <qgl.h>
27 #include <qaction.h>
28 class QTimer;
29 #include "View.h"
30
31 class GLVolumeHistory : public QGLWidget, public View
32 {
33         Q_OBJECT
34
35   public:
36         GLVolumeHistory(QWidget* parent);
37
38         struct Note
39         {
40                 int ht;
41                 QString factor;
42                 deque<float> volumes;
43                 Note(int h);
44                 Note(int h, int num, int den);
45                 Note(int h, float cents);
46                 QString getName() const;
47         };
48         deque<Note> m_notes;
49         void addNote(GLVolumeHistory::Note note);
50         void addVolume(float vol);
51
52         int m_volume_treshold;
53
54         // settings
55         QAction* setting_keep;
56         virtual void save();
57         virtual void load();
58         virtual void clearSettings();
59
60   public slots:
61         void initializeGL();
62         void paintGL();
63         void resizeGL( int w, int h );
64         void keepPreviousNotes(bool keep);
65         void setVolumeTreshold(int treshold);
66 };
67
68 #endif // _GLVolumeHistory_h_