aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/modules/sound/Service.qml
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/modules/sound/Service.qml')
-rw-r--r--desktop/modules/sound/Service.qml12
1 files changed, 12 insertions, 0 deletions
diff --git a/desktop/modules/sound/Service.qml b/desktop/modules/sound/Service.qml
index e509a94..22a4520 100644
--- a/desktop/modules/sound/Service.qml
+++ b/desktop/modules/sound/Service.qml
@@ -24,6 +24,18 @@ Scope {
readonly property real volume: sink?.audio?.volume ?? 0
readonly property bool muted: sink?.audio?.muted ?? false
+ // The devices that can be made the default. A stream is an application,
+ // not a device, and a monitor node is the loopback view of a sink rather
+ // than something to record from, so both are filtered out. `isSink` true
+ // means the node accepts audio (an output device); false means it outputs
+ // audio (an input device, a microphone).
+ readonly property var outputs:
+ Pipewire.nodes.values.filter(n => n.audio && !n.isStream && n.isSink
+ && !String(n.name).endsWith(".monitor"))
+ readonly property var inputs:
+ Pipewire.nodes.values.filter(n => n.audio && !n.isStream && !n.isSink
+ && !String(n.name).endsWith(".monitor"))
+
// Which node changed last, and whether it was the input. The OSD draws
// this one; null means nothing to show.
property PwNode active: null