Add application volume mixer

This commit is contained in:
Gabriel Brown
2026-08-18 15:00:18 -04:00
parent 0f3bddc452
commit db34b1e6ed
7 changed files with 236 additions and 7 deletions
+52 -1
View File
@@ -9,11 +9,55 @@ import qs.services
import qs.modules.settings
ShellRoot {
id: root
QtObject {
id: fixtureAudio
property real volume: 0.42
property bool muted: false
}
QtObject {
id: fixtureNode
property QtObject audio: fixtureAudio
}
readonly property var fixtureApplication: ({
key: "fixture.player",
label: "Fixture Player",
icon: "audio-x-generic-symbolic",
nodes: [fixtureNode]
})
SoundPage {
width: 760
height: 900
}
ApplicationMixer {
id: populatedMixer
width: 620
visible: false
applications: [root.fixtureApplication]
pipewireReady: true
}
ApplicationMixer {
id: emptyMixer
width: 620
visible: false
applications: []
pipewireReady: true
}
ApplicationMixer {
id: unavailableMixer
width: 620
visible: false
applications: []
pipewireReady: false
}
PwObjectTracker {
objects: AudioDevices.outputs.concat(AudioDevices.inputs)
}
@@ -26,8 +70,15 @@ ShellRoot {
ready: Pipewire.ready,
outputs: AudioDevices.outputs.length,
inputs: AudioDevices.inputs.length,
applications: AudioDevices.applications.length,
defaultOutput: AudioDevices.label(AudioDevices.current(true)),
defaultInput: AudioDevices.label(AudioDevices.current(false))
defaultInput: AudioDevices.label(AudioDevices.current(false)),
populatedRows: populatedMixer.rowCount,
populatedStatus: populatedMixer.statusText,
emptyRows: emptyMixer.rowCount,
emptyStatus: emptyMixer.statusText,
unavailableRows: unavailableMixer.rowCount,
unavailableStatus: unavailableMixer.statusText
});
}
}