summaryrefslogtreecommitdiffstats
path: root/src/waveform/renderers/waveformsignalcolors.h
blob: 825323c195f8f4e9e2a360bc4f4d408e391783f7 (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
#ifndef WAVEFORMSIGNALCOLORS_H
#define WAVEFORMSIGNALCOLORS_H

#include <QColor>
#include <QDomNode>

#include "skin/skincontext.h"

class WaveformSignalColors {
  public:
    WaveformSignalColors();
    virtual ~WaveformSignalColors() {}

    bool setup(const QDomNode &node, const SkinContext& context);

    inline const QColor& getSignalColor() const { return m_signalColor; }
    inline const QColor& getLowColor() const { return m_lowColor; }
    inline const QColor& getMidColor() const { return m_midColor; }
    inline const QColor& getHighColor() const { return m_highColor; }
    inline const QColor& getRgbLowColor() const { return m_rgbLowColor; }
    inline const QColor& getRgbMidColor() const { return m_rgbMidColor; }
    inline const QColor& getRgbHighColor() const { return m_rgbHighColor; }
    inline const QColor& getAxesColor() const { return m_axesColor; }
    inline const QColor& getPlayPosColor() const { return m_playPosColor; }
    inline const QColor& getPlayedOverlayColor() const { return m_playedOverlayColor; }
    inline const QColor& getBgColor() const { return m_bgColor; }

  protected:
    void fallBackFromSignalColor();
    void fallBackDefaultColor();

    float stableHue(float hue) const;

  private:
    QColor m_signalColor;
    QColor m_lowColor;
    QColor m_midColor;
    QColor m_highColor;
    QColor m_rgbLowColor;
    QColor m_rgbMidColor;
    QColor m_rgbHighColor;
    QColor m_axesColor;
    QColor m_playPosColor;
    QColor m_playedOverlayColor;
    QColor m_bgColor;
};

#endif // WAVEFORMSIGNALCOLORS_H