comparison widgets/UnitConverter.h @ 898:2be9753651c8 cxx11

Merge from default branch
author Chris Cannam
date Mon, 09 Feb 2015 10:31:07 +0000
parents 78ae34f388f6
children
comparison
equal deleted inserted replaced
879:899c4d7e7e63 898:2be9753651c8
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2
3 /*
4 Sonic Visualiser
5 An audio file viewer and annotation editor.
6 Centre for Digital Music, Queen Mary, University of London.
7
8 This program is free software; you can redistribute it and/or
9 modify it under the terms of the GNU General Public License as
10 published by the Free Software Foundation; either version 2 of the
11 License, or (at your option) any later version. See the file
12 COPYING included with this distribution for more information.
13 */
14
15 #ifndef UNIT_CONVERTER_H
16 #define UNIT_CONVERTER_H
17
18 #include <QDialog>
19
20 #include "base/PropertyContainer.h"
21
22 class QSpinBox;
23 class QDoubleSpinBox;
24 class QComboBox;
25 class QLabel;
26
27 class UnitConverter : public QDialog
28 {
29 Q_OBJECT
30
31 public:
32 UnitConverter(QWidget *parent = 0);
33 virtual ~UnitConverter();
34
35 private slots:
36 void freqChanged();
37 void midiChanged();
38 void noteChanged();
39 void octaveChanged();
40 void centsChanged();
41
42 void samplesChanged();
43 void periodChanged();
44 void bpmChanged();
45 void tempofreqChanged();
46 void samplerateChanged();
47
48 void preferenceChanged(PropertyContainer::PropertyName);
49
50 private:
51 QDoubleSpinBox *m_freq;
52 QSpinBox *m_midi;
53 QComboBox *m_note;
54 QSpinBox *m_octave;
55 QDoubleSpinBox *m_cents;
56 QLabel *m_pitchPrefsLabel;
57 void updatePitchesFromFreq();
58 void updatePitchPrefsLabel();
59
60 QDoubleSpinBox *m_samples;
61 QDoubleSpinBox *m_period;
62 QDoubleSpinBox *m_bpm;
63 QDoubleSpinBox *m_tempofreq;
64 QComboBox *m_samplerate;
65 void updateTempiFromSamples();
66
67 double getSampleRate();
68
69 void setTo(QSpinBox *, int);
70 void setTo(QDoubleSpinBox *, double);
71 };
72
73 #endif