init: working version
This commit is contained in:
commit
7d8d7dacae
109 changed files with 15066 additions and 0 deletions
85
services/Audio.qml
Normal file
85
services/Audio.qml
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
pragma Singleton
|
||||
|
||||
import qs.config
|
||||
import qs.custom
|
||||
import Quickshell
|
||||
import Quickshell.Services.Pipewire
|
||||
|
||||
Singleton {
|
||||
id: root
|
||||
|
||||
readonly property PwNode sink: Pipewire.defaultAudioSink
|
||||
readonly property PwNode source: Pipewire.defaultAudioSource
|
||||
|
||||
PwObjectTracker {
|
||||
objects: [root.sink, root.source]
|
||||
}
|
||||
|
||||
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, s: PwNode): void {
|
||||
if (!s) s = sink;
|
||||
if (s?.ready && s?.audio) {
|
||||
s.audio.volume = Math.max(0, Math.min(1, newVolume));
|
||||
}
|
||||
}
|
||||
|
||||
function increaseVolume(amount: real, s: PwNode): void {
|
||||
setVolume(volume + (amount || Config.osd.volumeIncrement), s);
|
||||
}
|
||||
|
||||
function decreaseVolume(amount: real, s: PwNode): void {
|
||||
setVolume(volume - (amount || Config.osd.volumeIncrement), s);
|
||||
}
|
||||
|
||||
CustomShortcut {
|
||||
name: "volumeUp"
|
||||
description: "Increase volume"
|
||||
onPressed: root.increaseVolume()
|
||||
}
|
||||
|
||||
CustomShortcut {
|
||||
name: "volumeDown"
|
||||
description: "Decrease volume"
|
||||
onPressed: root.decreaseVolume()
|
||||
}
|
||||
|
||||
CustomShortcut {
|
||||
name: "mute"
|
||||
description: "Toggle muting of output (Pipewire default audio sink)"
|
||||
onPressed: root.sink.audio.muted = !root.muted
|
||||
}
|
||||
|
||||
CustomShortcut {
|
||||
name: "muteMic"
|
||||
description: "Toggle muting of input (Pipewire default audio source)"
|
||||
onPressed: root.source.audio.muted = !root.sourceMuted
|
||||
}
|
||||
|
||||
function setSourceVolume(newVolume: real, s: PwNode): void {
|
||||
if (!s) s = source;
|
||||
if (s?.ready && s?.audio) {
|
||||
s.audio.volume = Math.max(0, Math.min(1, newVolume));
|
||||
}
|
||||
}
|
||||
|
||||
function incrementSourceVolume(amount: real, s: PwNode): void {
|
||||
setSourceVolume(sourceVolume + (amount || Config.osd.micIncrement), s);
|
||||
}
|
||||
|
||||
function decrementSourceVolume(amount: real, s: PwNode): void {
|
||||
setSourceVolume(sourceVolume - (amount || Config.osd.micIncrement), s);
|
||||
}
|
||||
|
||||
function setAudioSink(newSink: PwNode): void {
|
||||
Pipewire.preferredDefaultAudioSink = newSink;
|
||||
}
|
||||
|
||||
function setAudioSource(newSource: PwNode): void {
|
||||
Pipewire.preferredDefaultAudioSource = newSource;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue