-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Expand file tree
/
Copy pathTrackTime.qml
More file actions
62 lines (53 loc) · 1.49 KB
/
Copy pathTrackTime.qml
File metadata and controls
62 lines (53 loc) · 1.49 KB
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 1.0 as Mixxx
import QtQuick 2.12
Skin.EmbeddedText {
id: root
enum Display {
Elapsed,
Remaining,
Both
}
enum Mode {
Traditional,
TraditionalCoarse,
Seconds,
SecondsLong,
KiloSeconds,
HectoSeconds
}
property var display: TrackTime.Mode.Display
property double elapsed: durationControl.value
property string group: "[Channel1]"
property var mode: TrackTime.Mode.Traditional
property double remaining: durationControl.value * (1 - playPositionControl.value)
function toTime(value) {
if (!Number.isFinite(value)) {
return "";
}
const sign = value < 0 ? "-" : "";
return sign + Mixxx.DurationFormatter.format(Math.abs(value), root.mode);
}
text: {
switch (root.display) {
case TrackTime.Display.Remaining:
return `-${toTime(root.remaining)}`;
case TrackTime.Display.Both:
return `${toTime(root.elapsed)} -${toTime(root.remaining)}`;
default:
console.warn(`Unsupported track time display: ${root.display}. Defaulting to elapsed`);
case TrackTime.Display.Elapsed:
return toTime(root.elapsed);
}
}
Mixxx.ControlProxy {
id: durationControl
group: root.group
key: "duration"
}
Mixxx.ControlProxy {
id: playPositionControl
group: root.group
key: "playposition"
}
}