diff options
| author | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-08-05 18:03:40 +1000 |
|---|---|---|
| committer | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-08-05 18:03:40 +1000 |
| commit | a7990173b43bbcfcd066075f346f0ce8722b5d0f (patch) | |
| tree | e97db220e41d639d8606767af555ef92d6577f35 /services | |
| parent | controlcenter/bt: better toggles collapsing logic (diff) | |
| download | caelestia-shell-a7990173b43bbcfcd066075f346f0ce8722b5d0f.tar.gz caelestia-shell-a7990173b43bbcfcd066075f346f0ce8722b5d0f.tar.bz2 caelestia-shell-a7990173b43bbcfcd066075f346f0ce8722b5d0f.zip | |
audio: clamp volume
Closes #350
Diffstat (limited to 'services')
| -rw-r--r-- | services/Audio.qml | 19 |
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 { |