diff options
Diffstat (limited to 'services/Audio.qml')
| -rw-r--r-- | services/Audio.qml | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/services/Audio.qml b/services/Audio.qml index e156e6e..a0475d0 100644 --- a/services/Audio.qml +++ b/services/Audio.qml @@ -29,6 +29,9 @@ Singleton { readonly property bool muted: !!sink?.audio?.muted readonly property real volume: sink?.audio?.volume ?? 0 + readonly property bool sourceMuted: !!source?.audio?.muted + readonly property real sourceVolume: source?.audio?.volume ?? 0 + function setVolume(newVolume: real): void { if (sink?.ready && sink?.audio) { sink.audio.muted = false; @@ -44,6 +47,21 @@ Singleton { setVolume(volume - (amount || Config.services.audioIncrement)); } + function setSourceVolume(newVolume: real): void { + if (source?.ready && source?.audio) { + source.audio.muted = false; + source.audio.volume = Math.max(0, Math.min(1, newVolume)); + } + } + + function incrementSourceVolume(amount: real): void { + setSourceVolume(sourceVolume + (amount || Config.services.audioIncrement)); + } + + function decrementSourceVolume(amount: real): void { + setSourceVolume(sourceVolume - (amount || Config.services.audioIncrement)); + } + function setAudioSink(newSink: PwNode): void { Pipewire.preferredDefaultAudioSink = newSink; } |