summaryrefslogtreecommitdiffstats
path: root/src/skin/qml/qmleffectslotproxy.h
blob: 29044657e1c2e6836eda0132aeb4241bf0f84b56 (plain)
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
#pragma once
#include <QObject>

#include "effects/effectsmanager.h"

namespace mixxx {
namespace skin {
namespace qml {

class QmlEffectManifestParametersModel;

class QmlEffectSlotProxy : public QObject {
    Q_OBJECT
    Q_PROPERTY(int rackNumber READ getRackNumber CONSTANT)
    Q_PROPERTY(QString rackGroup READ getRackGroup CONSTANT)
    Q_PROPERTY(int chainSlotNumber READ getChainSlotNumber CONSTANT)
    Q_PROPERTY(QString chainSlotGroup READ getChainSlotGroup CONSTANT)
    Q_PROPERTY(int number READ getNumber CONSTANT)
    Q_PROPERTY(QString group READ getGroup CONSTANT)
    Q_PROPERTY(QString effectId READ getEffectId WRITE setEffectId NOTIFY effectIdChanged)
    Q_PROPERTY(mixxx::skin::qml::QmlEffectManifestParametersModel* parametersModel
                    READ getParametersModel NOTIFY parametersModelChanged)

  public:
    explicit QmlEffectSlotProxy(EffectRackPointer pEffectRack,
            EffectChainSlotPointer pChainSlot,
            EffectSlotPointer pEffectSlot,
            QObject* parent = nullptr);

    int getRackNumber() const;
    QString getRackGroup() const;
    int getChainSlotNumber() const;
    QString getChainSlotGroup() const;
    int getNumber() const;
    QString getGroup() const;
    QString getEffectId() const;
    QmlEffectManifestParametersModel* getParametersModel() const;

  public slots:
    void setEffectId(const QString& effectId);

  signals:
    void effectIdChanged();
    void parametersModelChanged();

  private:
    const EffectRackPointer m_pRack;
    const EffectChainSlotPointer m_pChainSlot;
    const EffectSlotPointer m_pEffectSlot;
};

} // namespace qml
} // namespace skin
} // namespace mixxx