1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2025-12-05 21:15:38 -05:00

ipc: move mpris to global controller

This commit is contained in:
bbedward
2025-10-15 09:08:26 -04:00
parent aa7a07fd99
commit 437fd29e96
2 changed files with 44 additions and 44 deletions

View File

@@ -262,4 +262,48 @@ Item {
target: "inhibit"
}
IpcHandler {
function list(): string {
return MprisController.availablePlayers.map(p => p.identity).join("\n")
}
function play(): void {
if (MprisController.activePlayer && MprisController.activePlayer.canPlay) {
MprisController.activePlayer.play()
}
}
function pause(): void {
if (MprisController.activePlayer && MprisController.activePlayer.canPause) {
MprisController.activePlayer.pause()
}
}
function playPause(): void {
if (MprisController.activePlayer && MprisController.activePlayer.canTogglePlaying) {
MprisController.activePlayer.togglePlaying()
}
}
function previous(): void {
if (MprisController.activePlayer && MprisController.activePlayer.canGoPrevious) {
MprisController.activePlayer.previous()
}
}
function next(): void {
if (MprisController.activePlayer && MprisController.activePlayer.canGoNext) {
MprisController.activePlayer.next()
}
}
function stop(): void {
if (MprisController.activePlayer) {
MprisController.activePlayer.stop()
}
}
target: "mpris"
}
}

View File

@@ -13,48 +13,4 @@ Singleton {
readonly property list<MprisPlayer> availablePlayers: Mpris.players.values
property MprisPlayer activePlayer: availablePlayers.find(p => p.isPlaying) ?? availablePlayers.find(p => p.canControl && p.canPlay) ?? null
IpcHandler {
target: "mpris"
function list(): string {
return root.availablePlayers.map(p => p.identity).join("\n")
}
function play(): void {
if (root.activePlayer && root.activePlayer.canPlay) {
root.activePlayer.play()
}
}
function pause(): void {
if (root.activePlayer && root.activePlayer.canPause) {
root.activePlayer.pause()
}
}
function playPause(): void {
if (root.activePlayer && root.activePlayer.canTogglePlaying) {
root.activePlayer.togglePlaying()
}
}
function previous(): void {
if (root.activePlayer && root.activePlayer.canGoPrevious) {
root.activePlayer.previous()
}
}
function next(): void {
if (root.activePlayer && root.activePlayer.canGoNext) {
root.activePlayer.next()
}
}
function stop(): void {
if (root.activePlayer) {
root.activePlayer.stop()
}
}
}
}