summaryrefslogtreecommitdiffstats
path: root/res/qml/MicrophoneDuckingPanel.qml
blob: c209039ada286518eded3eea6f2ba6666d812041 (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
55
56
57
58
59
60
61
62
import "." as Skin
import Mixxx 0.1 as Mixxx
import QtQuick 2.12
import "Theme"

Column {

    enum DuckingMode {
        Off,
        Auto,
        Manual,
        NumModes // This always needs to be the last value
    }

    Skin.ControlSlider {
        width: 50
        height: 26
        orientation: Qt.Horizontal
        group: "[Master]"
        key: "duckStrength"
        barColor: Theme.crossfaderBarColor
        barStart: 1
        fg: Theme.imgMicDuckingSliderHandle
        bg: Theme.imgMicDuckingSlider
    }

    Skin.Button {
        id: pflButton

        text: duckingControl.duckingModeName
        activeColor: Theme.pflActiveButtonColor
        highlight: duckingControl.duckingEnabled
        onClicked: duckingControl.nextMode()

        Mixxx.ControlProxy {
            id: duckingControl

            property string duckingModeName: {
                switch (value) {
                case MicrophoneDuckingPanel.DuckingMode.Auto:
                    return "Auto";
                case MicrophoneDuckingPanel.DuckingMode.Manual:
                    return "Manual";
                default:
                    return "Off";
                }
            }
            property bool duckingEnabled: {
                return (value == MicrophoneDuckingPanel.DuckingMode.Auto || value == MicrophoneDuckingPanel.DuckingMode.Manual);
            }

            function nextMode() {
                value = (value + 1) % MicrophoneDuckingPanel.DuckingMode.NumModes;
            }

            group: "[Master]"
            key: "talkoverDucking"
        }

    }

}