nova-shell/shell/services/PipewireService.qml

36 lines
943 B
QML

pragma Singleton
import QtQuick
import Quickshell.Services.Pipewire
QtObject {
id: root
readonly property var sink: Pipewire.defaultAudioSink
readonly property real volume: sink?.audio?.volume ?? 0
readonly property bool muted: sink?.audio?.muted ?? false
readonly property var sinks: {
const list = [];
if (Pipewire.nodes) {
for (const node of Pipewire.nodes.values)
if (!node.isStream && node.isSink)
list.push(node);
}
return list;
}
readonly property var streams: {
const list = [];
if (Pipewire.nodes) {
for (const node of Pipewire.nodes.values)
if (node.isStream && node.audio)
list.push(node);
}
return list;
}
property PwObjectTracker _tracker: PwObjectTracker {
objects: [Pipewire.defaultAudioSink, ...root.streams]
}
}