35 lines
831 B
QML
35 lines
831 B
QML
pragma Singleton
|
|
|
|
import QtQuick
|
|
import Quickshell
|
|
import Quickshell.Io
|
|
import Quickshell.Services.Pipewire
|
|
|
|
Singleton {
|
|
id: root
|
|
|
|
// Ensure the volume is readonly from outside
|
|
readonly property alias volume: root._volume
|
|
property real _volume: 0
|
|
|
|
readonly property alias muted: root._muted
|
|
property bool _muted: false
|
|
|
|
PwObjectTracker {
|
|
objects: [Pipewire.defaultAudioSink]
|
|
}
|
|
|
|
Connections {
|
|
target: Pipewire.defaultAudioSink?.audio ? Pipewire.defaultAudioSink?.audio : null
|
|
|
|
function onVolumeChanged() {
|
|
root._volume = (Pipewire.defaultAudioSink?.audio.volume ?? 0)
|
|
console.log("[Audio] onVolumeChanged: " + volume)
|
|
}
|
|
|
|
function onMutedChanged() {
|
|
root._muted = (Pipewire.defaultAudioSink?.audio.muted ?? true)
|
|
console.log("[Audio] onMuteChanged " + muted)
|
|
}
|
|
}
|
|
}
|