summaryrefslogtreecommitdiff
path: root/services/Audio.qml
diff options
context:
space:
mode:
author2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-08-05 18:03:40 +1000
committer2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-08-05 18:03:40 +1000
commita7990173b43bbcfcd066075f346f0ce8722b5d0f (patch)
treee97db220e41d639d8606767af555ef92d6577f35 /services/Audio.qml
parentcontrolcenter/bt: better toggles collapsing logic (diff)
downloadcaelestia-shell-a7990173b43bbcfcd066075f346f0ce8722b5d0f.tar.gz
caelestia-shell-a7990173b43bbcfcd066075f346f0ce8722b5d0f.tar.bz2
caelestia-shell-a7990173b43bbcfcd066075f346f0ce8722b5d0f.zip
audio: clamp volume
Closes #350
Diffstat (limited to 'services/Audio.qml')
-rw-r--r--services/Audio.qml19
1 files changed, 12 insertions, 7 deletions
diff --git a/services/Audio.qml b/services/Audio.qml
index 54cea3b..ed2e41b 100644
--- a/services/Audio.qml
+++ b/services/Audio.qml
@@ -8,11 +8,16 @@ Singleton {
readonly property var nodes: Pipewire.nodes.values.reduce((acc, node) => {
if (!node.isStream) {
- if (node.isSink) acc.sinks.push(node)
- else if (node.audio) acc.sources.push(node)
+ if (node.isSink)
+ acc.sinks.push(node);
+ else if (node.audio)
+ acc.sources.push(node);
}
- return acc
- }, { sources: [], sinks: [] })
+ return acc;
+ }, {
+ sources: [],
+ sinks: []
+ })
readonly property list<PwNode> sinks: nodes.sinks
readonly property list<PwNode> sources: nodes.sources
@@ -26,16 +31,16 @@ Singleton {
function setVolume(newVolume: real): void {
if (sink?.ready && sink?.audio) {
sink.audio.muted = false;
- sink.audio.volume = newVolume;
+ sink.audio.volume = Math.max(0, Math.min(1, newVolume));
}
}
function setAudioSink(newSink: PwNode): void {
- Pipewire.preferredDefaultAudioSink = newSink
+ Pipewire.preferredDefaultAudioSink = newSink;
}
function setAudioSource(newSource: PwNode): void {
- Pipewire.preferredDefaultAudioSource = newSource
+ Pipewire.preferredDefaultAudioSource = newSource;
}
PwObjectTracker {