36 lines
943 B
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]
|
|
}
|
|
}
|