summaryrefslogtreecommitdiffstats
path: root/src/preferences/dialog/dlgprefcrossfader.h
blob: 28d2e25641ea321f50a4e4c0e1515f6307f5375f (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
#ifndef DLGPREFCROSSFADER_H
#define DLGPREFCROSSFADER_H

#include <QWidget>

#include "preferences/dialog/ui_dlgprefcrossfaderdlg.h"
#include "configobject.h"
#include "controlobjectslave.h"
#include "preferences/dlgpreferencepage.h"


class DlgPrefCrossfader : public DlgPreferencePage, public Ui::DlgPrefCrossfaderDlg  {
    Q_OBJECT
  public:
    DlgPrefCrossfader(QWidget* parent, ConfigObject<ConfigValue>* _config);
    virtual ~DlgPrefCrossfader();

  public slots:
    // Update X-Fader
    void slotUpdateXFader();
    // Apply changes to widget
    void slotApply();
    void slotUpdate();
    void slotResetToDefaults();

  signals:
    void apply(const QString &);

  private:
    void loadSettings();
    void drawXfaderDisplay();

    // Pointer to config object
    ConfigObject<ConfigValue>* m_config;

    QGraphicsScene* m_pxfScene;

    // X-fader values
    double m_xFaderMode, m_transform, m_cal;

    ControlObjectSlave m_mode;
    ControlObjectSlave m_curve;
    ControlObjectSlave m_calibration;
    ControlObjectSlave m_reverse;
    ControlObjectSlave m_crossfader;

    bool m_xFaderReverse;
};

#endif