forked from grame-cncm/faust
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfaustvstqt.h
68 lines (56 loc) · 1.59 KB
/
faustvstqt.h
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
#ifndef FAUSTVSTQT_H
#define FAUSTVSTQT_H
#include <QObject>
#include <aeffeditor.h>
#include <faust/gui/QTUI.h>
class VSTWrapper;
#ifdef OSCCTRL
class OSCUI;
#endif
#ifdef HTTPCTRL
class httpdUI;
#endif
class VSTQtGUI : public QObject, public AEffEditor {
Q_OBJECT
VSTWrapper* effect;
QScrollArea* widget;
void *uidsp;
#ifdef OSCCTRL
OSCUI* oscinterface;
#endif
#ifdef HTTPCTRL
httpdUI *httpdinterface;
#endif
QTGUI* qtinterface;
// vector of all GUI controls, indexed by parameter indices
QVector< QList<QObject*> > controls;
// cached control values, so that we only update the GUI when needed
float *control_values;
// vector of all passive controls needing continuous update (this isn't used
// right now, as all live updates are done through the controls vector, but
// we keep it around for debugging purposes)
QVector<QObject*> passive_controls;
public:
VSTQtGUI(VSTWrapper* effect);
~VSTQtGUI();
// open(): opens the GUI
virtual bool open(void *ptr);
// getRect(): determines the size of the GUI
virtual bool getRect (ERect** rect);
// idle(): event processing is done here
virtual void idle ();
// close(): closes the GUI
virtual void close();
float valueToVST(double value, double minimum, double maximum);
void updateQTGUI(QObject* object, float value, bool init = true);
void updatePassiveControl(QObject* object, float value);
protected:
ERect rectangle;
float voices_zone, tuning_zone;
public slots:
void updateVST_buttonPressed();
void updateVST_buttonReleased();
void updateVST_checkBox();
void updateVST();
};
#endif // FAUSTVSTQT_H