[go: up one dir, main page]

Menu

[r89]: / trunk / Metronome.h  Maximize  Restore  History

Download this file

122 lines (100 with data), 2.6 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#ifndef METRONOMEWIDGET_H
#define METRONOMEWIDGET_H
#include <QtWidgets/QDialog>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QMenu>
#include <QTranslator>
#include <QList>
#include <QFont>
#include <cmath>
#include "Led.h"
#include "Logger.h"
#include "Knob.h"
#include "Preferences.h"
#ifdef QT_PHONON_LIB
#include <phonon/audiooutput.h>
#include <phonon/mediaobject.h>
#include <phonon/mediasource.h>
#endif
// UDP
#include <QHostAddress>
#include <QUdpSocket>
#include <QDateTime>
#include <QHostInfo>
#include <QProcess>
namespace Ui {
class Metronome;
}
class Metronome : public QDialog
{
Q_OBJECT
public:
explicit Metronome(QWidget *parent = 0);
~Metronome();
bool isActive();
int getBpm();
private:
Ui::Metronome *ui;
bool isRunning;
QHBoxLayout * horizontalLayout;
Led * led;
QTimer * timer;
QTimer * tapTempoTimer;
QAction * tapTempoAction;
QAction * startStopAction;
QAction * incrementAction;
QAction * decrementAction;
int tapTempoCount;
int nextBeatTime;
QList<int> tapTempoRecords;
QTime tapTempoStopwatch;
QString localHostName;
QString currentPresetName;
// UDP
QUdpSocket * udpSocketSend;
// QUdpSocket * udpSocketGet;
// QHostAddress * host;
QHostAddress * bcast;
#ifdef QT_PHONON_LIB
Phonon::MediaObject *clickMedia;
Phonon::AudioOutput *clickAudioOutput;
Phonon::Path phononPath;
QString clickFile;
void refreshVolume(int volumePercent);
#endif
void refreshActive(bool active);
void refreshBpm(int bpm);
void playClickSound();
void emitMetronomeInfo();
void sendUDP();
int udpOrdinal;
QString obtainBroadcastIp();
QString obtainHostName();
private slots:
void setBpm(int bpm);
void slotStartStopPressed();
void setActive(bool active);
void slotTimeOut();
void slotTapTempo();
void slotStartStop();
void slotIncrement();
void slotDecrement();
void slotTapTempoTimeOut();
// void slotShowContextMenu(const QPoint& pos);
#ifdef QT_PHONON_LIB
void setVolume(int volumePercent);
void slotPhononStateLog();
#endif
// UDP
//void readPendingDatagrams();
public slots:
void slotSetActive(bool active);
void slotSetBpm(int bpm);
#ifdef QT_PHONON_LIB
void slotSetVolume(int volumePercent);
#endif
void slotSetMetronome(bool isActive, int bpm ,int volume, QString currentPresetName = "");
signals:
void changed(bool isActive, int bpm, int volume);
};
#endif // METRONOMEWIDGET_H