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
|
#include "skin/qml/qmleffectslotproxy.h"
#include <QObject>
#include <QQmlEngine>
#include "effects/effectrack.h"
#include "effects/effectslot.h"
#include "skin/qml/qmleffectmanifestparametersmodel.h"
namespace mixxx {
namespace skin {
namespace qml {
QmlEffectSlotProxy::QmlEffectSlotProxy(EffectRackPointer pRack,
EffectChainSlotPointer pChainSlot,
EffectSlotPointer pEffectSlot,
QObject* parent)
: QObject(parent),
m_pRack(pRack),
m_pChainSlot(pChainSlot),
m_pEffectSlot(pEffectSlot) {
DEBUG_ASSERT(m_pRack);
DEBUG_ASSERT(m_pChainSlot);
DEBUG_ASSERT(m_pEffectSlot);
connect(m_pEffectSlot.get(),
&EffectSlot::updated,
this,
&QmlEffectSlotProxy::effectIdChanged);
connect(m_pEffectSlot.get(),
&EffectSlot::updated,
this,
&QmlEffectSlotProxy::parametersModelChanged);
}
int QmlEffectSlotProxy::getRackNumber() const {
return m_pRack->getRackNumber();
}
QString QmlEffectSlotProxy::getRackGroup() const {
return m_pRack->getGroup();
}
int QmlEffectSlotProxy::getChainSlotNumber() const {
return m_pChainSlot->getChainSlotNumber();
}
QString QmlEffectSlotProxy::getChainSlotGroup() const {
return m_pChainSlot->getGroup();
}
int QmlEffectSlotProxy::getNumber() const {
return m_pEffectSlot->getEffectSlotNumber();
}
QString QmlEffectSlotProxy::getGroup() const {
return m_pEffectSlot->getGroup();
}
QString QmlEffectSlotProxy::getEffectId() const {
const EffectPointer pEffect = m_pEffectSlot->getEffect();
if (!pEffect) {
return QString();
}
const EffectManifestPointer pManifest = pEffect->getManifest();
return pManifest->id();
}
void QmlEffectSlotProxy::setEffectId(const QString& effectId) {
m_pRack->maybeLoadEffect(
m_pChainSlot->getChainSlotNumber(),
m_pEffectSlot->getEffectSlotNumber(),
effectId);
}
QmlEffectManifestParametersModel* QmlEffectSlotProxy::getParametersModel() const {
const EffectPointer pEffect = m_pEffectSlot->getEffect();
if (!pEffect) {
return nullptr;
}
const EffectManifestPointer pManifest = pEffect->getManifest();
VERIFY_OR_DEBUG_ASSERT(pManifest) {
return nullptr;
}
QmlEffectManifestParametersModel* pModel = new QmlEffectManifestParametersModel(pManifest);
QQmlEngine::setObjectOwnership(pModel, QQmlEngine::JavaScriptOwnership);
return pModel;
}
} // namespace qml
} // namespace skin
} // namespace mixxx
|