From a7990173b43bbcfcd066075f346f0ce8722b5d0f Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Tue, 5 Aug 2025 18:03:40 +1000 Subject: audio: clamp volume Closes #350 --- services/Audio.qml | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'services') 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 sinks: nodes.sinks readonly property list 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 { -- cgit v1.2.3-freya