Skip to content

Commit f22515c

Browse files
committed
reimplement effect gui without qml
1 parent c6d6c4b commit f22515c

24 files changed

+258
-286
lines changed

effects/CMakeLists.txt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,14 @@ endif (APPLE)
2020

2121
QT4_ADD_RESOURCES (qrc_effects_files
2222
zita1/zita.qrc
23-
# freeverb/freeverb.qrc
24-
noeffect/noeffect.qrc
2523
)
2624

2725
QT4_WRAP_CPP(effectMocs
2826
effectgui.h
29-
# freeverb/freeverb.h
3027
zita1/zita.h
28+
zita1/zitagui.h
3129
noeffect/noeffect.h
30+
noeffect/noeffectgui.h
3231
effect.h
3332
)
3433

@@ -40,8 +39,6 @@ add_library (effects STATIC
4039
effect.cpp
4140
effectgui.cpp
4241
noeffect/noeffect.cpp
43-
# freeverb/freeverb.cpp
44-
# freeverb/freeverbgui.cpp
4542
zita1/zita.cpp
4643
zita1/zitagui.cpp
4744
${INCS}

effects/effect.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,15 @@ class Effect : public QObject {
4242
Q_OBJECT
4343

4444
protected:
45-
EffectGui* _gui;
45+
EffectGui* _gui { nullptr };
4646

4747
public slots:
4848
virtual void setValue(const QString& name, double value);
4949
virtual void setValue(int idx, double value);
5050
virtual void setNValue(int idx, double value) = 0;
5151

5252
public:
53-
Effect() : QObject() { _gui = 0; }
53+
Effect() : QObject() { }
5454
virtual ~Effect() {}
5555
virtual void process(int frames, float*, float*) = 0;
5656
virtual const char* name() const = 0;

effects/effectgui.cpp

Lines changed: 3 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -12,57 +12,22 @@
1212

1313
#include "effectgui.h"
1414
#include "effect.h"
15-
#include <QQmlContext>
1615

1716
namespace Ms {
1817

1918
//---------------------------------------------------------
2019
// EffectGui
2120
//---------------------------------------------------------
2221

23-
EffectGui::EffectGui(Effect* e)
24-
: QQuickWidget()
22+
EffectGui::EffectGui(Effect* e, QWidget* parent)
23+
: QWidget(parent)
2524
{
2625
_effect = e;
27-
setResizeMode(QQuickWidget::SizeViewToRootObject);
28-
// setFocusPolicy(Qt::StrongFocus);
29-
connect(this, SIGNAL(statusChanged(QQuickWidget::Status)), SLOT(reportErrors(QQuickWidget::Status)));
30-
}
31-
32-
//---------------------------------------------------------
33-
// reportErrors
34-
//---------------------------------------------------------
35-
36-
void EffectGui::reportErrors(QQuickWidget::Status status)
37-
{
38-
// printf("EffectGui::statusChange: %d\n", int(status));
39-
if (status == QQuickWidget::Error) {
40-
for (auto e : errors())
41-
qDebug("EffectGui: Error: %s", qPrintable(e.toString()));
42-
}
43-
}
44-
45-
//---------------------------------------------------------
46-
// init
47-
//---------------------------------------------------------
48-
49-
void EffectGui::init(QUrl& url)
50-
{
51-
if (_effect) {
52-
rootContext()->setContextProperty("myEffect", _effect);
53-
setSource(url);
54-
55-
if (rootObject()) {
56-
connect(rootObject(), SIGNAL(valueChanged(QString, qreal)),
57-
SLOT(valueChanged(QString, qreal)));
58-
}
59-
else
60-
qDebug("no root object for %s", qPrintable(_effect->name()));
61-
}
6226
}
6327

6428
//---------------------------------------------------------
6529
// valueChanged
30+
// a value in the gui was changed
6631
//---------------------------------------------------------
6732

6833
void EffectGui::valueChanged(const QString& msg, qreal val)
@@ -73,17 +38,5 @@ void EffectGui::valueChanged(const QString& msg, qreal val)
7338
}
7439
}
7540

76-
//---------------------------------------------------------
77-
// updateValues
78-
//---------------------------------------------------------
79-
80-
void EffectGui::updateValues()
81-
{
82-
if (rootObject()) {
83-
if (!QMetaObject::invokeMethod(rootObject(), "updateValues")) {
84-
qDebug("EffectGui::updateValues: failed");
85-
}
86-
}
87-
}
8841
}
8942

effects/effectgui.h

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,24 +21,20 @@ class Effect;
2121
// EffectGui
2222
//---------------------------------------------------------
2323

24-
class EffectGui : public QQuickWidget {
24+
class EffectGui : public QWidget {
2525
Q_OBJECT
2626
Effect* _effect;
2727

2828
signals:
2929
void valueChanged();
3030

31-
private slots:
32-
void reportErrors(QQuickWidget::Status);
33-
3431
public slots:
3532
void valueChanged(const QString& name, qreal);
3633

3734
public:
38-
EffectGui(Effect*);
39-
void init(QUrl& url);
35+
EffectGui(Effect*, QWidget* parent = 0);
4036
Effect* effect() const { return _effect; }
41-
virtual void updateValues();
37+
virtual void updateValues() = 0;
4238
};
4339

4440
}

effects/noeffect/noeffect.cpp

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,36 @@
1313
#include "effects/effect.h"
1414
#include "effects/effectgui.h"
1515
#include "noeffect.h"
16+
#include "noeffectgui.h"
1617

1718
namespace Ms {
1819

19-
static const std::vector<ParDescr> noeffectPd;
20-
2120
//---------------------------------------------------------
2221
// gui
2322
//---------------------------------------------------------
2423

2524
EffectGui* NoEffect::gui()
2625
{
27-
EffectGui* eg = new EffectGui(this);
28-
QUrl url("qrc:/noeffect/noeffect.qml");
29-
eg->init(url);
30-
return eg;
26+
if (!_gui) {
27+
_gui = new NoEffectGui(this);
28+
_gui->setGeometry(0, 0, 644, 79);
29+
_gui->show();
30+
}
31+
return _gui;
32+
}
33+
34+
//---------------------------------------------------------
35+
// NoEffectGui
36+
//---------------------------------------------------------
37+
38+
NoEffectGui::NoEffectGui(Effect* e, QWidget* parent)
39+
: EffectGui(e, parent)
40+
{
41+
QLabel* l = new QLabel;
42+
l->setText(tr("no plugin"));
43+
QLayout* la = new QVBoxLayout;
44+
la->addWidget(l);
45+
setLayout(la);
3146
}
3247

3348
//---------------------------------------------------------
@@ -36,9 +51,14 @@ EffectGui* NoEffect::gui()
3651

3752
const std::vector<ParDescr>& NoEffect::parDescr() const
3853
{
54+
static const std::vector<ParDescr> noeffectPd;
3955
return noeffectPd;
4056
}
4157

58+
//---------------------------------------------------------
59+
// process
60+
//---------------------------------------------------------
61+
4262
void NoEffect::process(int n, float* src, float* dst)
4363
{
4464
memcpy(dst, src, n * 2 * sizeof(float));

effects/noeffect/noeffect.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,17 @@ class NoEffect : public Effect
3030
public:
3131
NoEffect() {}
3232

33-
virtual void init(float) {}
34-
virtual void process(int, float*, float*);
33+
virtual void init(float) override {}
34+
virtual void process(int, float*, float*) override;
3535

36-
virtual void setValue(int, double) {}
37-
virtual void setNValue(int, double) {}
38-
virtual double value(int) const { return 0.0; }
39-
virtual double nvalue(int) const { return 0.0; }
36+
virtual void setValue(int, double) override {}
37+
virtual void setNValue(int, double) override {}
38+
virtual double value(int) const override { return 0.0; }
39+
virtual double nvalue(int) const override { return 0.0; }
4040

41-
virtual const char* name() const { return "NoEffect"; }
42-
virtual EffectGui* gui();
43-
virtual const std::vector<ParDescr>& parDescr() const;
41+
virtual const char* name() const override { return "NoEffect"; }
42+
virtual EffectGui* gui() override;
43+
virtual const std::vector<ParDescr>& parDescr() const override;
4444
};
4545
}
4646

effects/noeffect/noeffect.qml

Lines changed: 0 additions & 24 deletions
This file was deleted.

effects/noeffect/noeffect.qrc

Lines changed: 0 additions & 7 deletions
This file was deleted.

effects/noeffect/noeffectgui.cpp

Lines changed: 0 additions & 48 deletions
This file was deleted.

effects/noeffect/noeffectgui.h

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,27 +10,22 @@
1010
// the file LICENCE.GPL
1111
//=============================================================================
1212

13-
#ifndef __NOEFFECTGUI_H__
14-
#define __NOEFFECTGUI_H__
15-
1613
#include "effects/effectgui.h"
1714

1815
namespace Ms {
1916

20-
class NoEffect;
21-
2217
//---------------------------------------------------------
23-
// gui
18+
// NoEffectGui
2419
//---------------------------------------------------------
2520

2621
class NoEffectGui : public EffectGui {
2722
Q_OBJECT
2823

24+
virtual void updateValues() {}
25+
2926
public:
30-
NoEffectGui(NoEffect*, QWidget* parent = 0);
27+
NoEffectGui(Effect* e, QWidget* parent = 0);
3128
};
32-
}
33-
34-
#endif
3529

30+
}
3631

0 commit comments

Comments
 (0)