mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-04-03 20:32:07 -04:00
cleanup audio services
This commit is contained in:
@@ -56,21 +56,9 @@ Column {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Repeater {
|
Repeater {
|
||||||
model: {
|
model: Pipewire.nodes.values.filter(node => {
|
||||||
if (!Pipewire.ready || !Pipewire.nodes || !Pipewire.nodes.values)
|
return node.audio && node.isSink && !node.isStream
|
||||||
return []
|
})
|
||||||
|
|
||||||
let sinks = []
|
|
||||||
for (var i = 0; i < Pipewire.nodes.values.length; i++) {
|
|
||||||
let node = Pipewire.nodes.values[i]
|
|
||||||
if (!node || node.isStream)
|
|
||||||
continue
|
|
||||||
|
|
||||||
if ((node.type & PwNodeType.AudioSink) === PwNodeType.AudioSink)
|
|
||||||
sinks.push(node)
|
|
||||||
}
|
|
||||||
return sinks
|
|
||||||
}
|
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
width: parent.width
|
width: parent.width
|
||||||
|
|||||||
@@ -56,22 +56,9 @@ Column {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Repeater {
|
Repeater {
|
||||||
model: {
|
model: Pipewire.nodes.values.filter(node => {
|
||||||
if (!Pipewire.ready || !Pipewire.nodes || !Pipewire.nodes.values)
|
return node.audio && !node.isSink && !node.isStream
|
||||||
return []
|
})
|
||||||
|
|
||||||
let sources = []
|
|
||||||
for (var i = 0; i < Pipewire.nodes.values.length; i++) {
|
|
||||||
let node = Pipewire.nodes.values[i]
|
|
||||||
if (!node || node.isStream)
|
|
||||||
continue
|
|
||||||
|
|
||||||
if ((node.type & PwNodeType.AudioSource) === PwNodeType.AudioSource
|
|
||||||
&& !node.name.includes(".monitor"))
|
|
||||||
sources.push(node)
|
|
||||||
}
|
|
||||||
return sources
|
|
||||||
}
|
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
width: parent.width
|
width: parent.width
|
||||||
|
|||||||
@@ -6,14 +6,6 @@ import qs.Widgets
|
|||||||
Column {
|
Column {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
property real volumeLevel: Math.min(
|
|
||||||
100,
|
|
||||||
(AudioService.sink && AudioService.sink.audio
|
|
||||||
&& AudioService.sink.audio.volume * 100)
|
|
||||||
|| 0)
|
|
||||||
property bool volumeMuted: (AudioService.sink && AudioService.sink.audio
|
|
||||||
&& AudioService.sink.audio.muted) || false
|
|
||||||
|
|
||||||
width: parent.width
|
width: parent.width
|
||||||
spacing: Theme.spacingM
|
spacing: Theme.spacingM
|
||||||
|
|
||||||
@@ -30,40 +22,31 @@ Column {
|
|||||||
width: parent.width
|
width: parent.width
|
||||||
minimum: 0
|
minimum: 0
|
||||||
maximum: 100
|
maximum: 100
|
||||||
leftIcon: root.volumeMuted ? "volume_off" : "volume_down"
|
value: AudioService.sink?.ready && AudioService.sink.audio ? Math.round(AudioService.sink.audio.volume * 100) : 0
|
||||||
|
leftIcon: (AudioService.sink?.ready && AudioService.sink.audio && AudioService.sink.audio.muted) ? "volume_off" : "volume_down"
|
||||||
rightIcon: "volume_up"
|
rightIcon: "volume_up"
|
||||||
enabled: !root.volumeMuted
|
enabled: !(AudioService.sink?.ready && AudioService.sink.audio && AudioService.sink.audio.muted)
|
||||||
showValue: true
|
showValue: true
|
||||||
unit: "%"
|
unit: "%"
|
||||||
|
|
||||||
Connections {
|
|
||||||
target: AudioService.sink
|
|
||||||
&& AudioService.sink.audio ? AudioService.sink.audio : null
|
|
||||||
function onVolumeChanged() {
|
|
||||||
volumeSlider.value = Math.round(
|
|
||||||
AudioService.sink.audio.volume * 100)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Component.onCompleted: {
|
|
||||||
if (AudioService.sink && AudioService.sink.audio) {
|
|
||||||
value = Math.round(AudioService.sink.audio.volume * 100)
|
|
||||||
}
|
|
||||||
|
|
||||||
let leftIconItem = volumeSlider.children[0].children[0]
|
|
||||||
if (leftIconItem) {
|
|
||||||
let mouseArea = Qt.createQmlObject(
|
|
||||||
'import QtQuick; import qs.Services; MouseArea { anchors.fill: parent; hoverEnabled: true; cursorShape: Qt.PointingHandCursor; onClicked: { if (AudioService.sink && AudioService.sink.audio) AudioService.sink.audio.muted = !AudioService.sink.audio.muted; } }',
|
|
||||||
leftIconItem, "dynamicMouseArea")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
onSliderValueChanged: newValue => {
|
onSliderValueChanged: newValue => {
|
||||||
if (AudioService.sink
|
if (AudioService.sink?.ready && AudioService.sink.audio) {
|
||||||
&& AudioService.sink.audio) {
|
AudioService.sink.audio.volume = newValue / 100
|
||||||
AudioService.sink.audio.muted = false
|
}
|
||||||
AudioService.sink.audio.volume = newValue / 100
|
}
|
||||||
}
|
|
||||||
}
|
MouseArea {
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
width: Theme.iconSize
|
||||||
|
height: parent.height
|
||||||
|
hoverEnabled: true
|
||||||
|
cursorShape: Qt.PointingHandCursor
|
||||||
|
onClicked: {
|
||||||
|
if (AudioService.sink?.ready && AudioService.sink.audio) {
|
||||||
|
AudioService.sink.audio.muted = !AudioService.sink.audio.muted
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user