diff options
| author | Nippy <nippy@rp1.hu> | 2026-07-28 15:11:02 +0200 |
|---|---|---|
| committer | Nippy <nippy@rp1.hu> | 2026-07-28 15:11:02 +0200 |
| commit | 077a92c901cb4f31bdb47a1a19a73636be0b4a48 (patch) | |
| tree | d86acead5a642dd4d2dde332c0733012b37079c4 /raveos-hyprland-theme/theme-data/dms/Services/MprisController.qml | |
| parent | 0bd16bd038538d879cbf21f3ef0731f06c3bfb24 (diff) | |
| download | RaveOS-PKGBUILD-077a92c901cb4f31bdb47a1a19a73636be0b4a48.tar.gz RaveOS-PKGBUILD-077a92c901cb4f31bdb47a1a19a73636be0b4a48.zip | |
new settings
Diffstat (limited to 'raveos-hyprland-theme/theme-data/dms/Services/MprisController.qml')
| -rw-r--r-- | raveos-hyprland-theme/theme-data/dms/Services/MprisController.qml | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/raveos-hyprland-theme/theme-data/dms/Services/MprisController.qml b/raveos-hyprland-theme/theme-data/dms/Services/MprisController.qml deleted file mode 100644 index 44ad135..0000000 --- a/raveos-hyprland-theme/theme-data/dms/Services/MprisController.qml +++ /dev/null @@ -1,78 +0,0 @@ -pragma Singleton -pragma ComponentBehavior: Bound - -import QtQuick -import Quickshell -import Quickshell.Services.Mpris -import qs.Common - -Singleton { - id: root - - readonly property list<MprisPlayer> availablePlayers: Mpris.players.values - property MprisPlayer activePlayer: null - - onAvailablePlayersChanged: _resolveActivePlayer() - Component.onCompleted: _resolveActivePlayer() - - Instantiator { - model: root.availablePlayers - delegate: Connections { - required property MprisPlayer modelData - target: modelData - function onIsPlayingChanged() { - if (modelData.isPlaying) - root._resolveActivePlayer(); - } - } - } - - function _resolveActivePlayer(): void { - const playing = availablePlayers.find(p => p.isPlaying); - if (playing) { - activePlayer = playing; - _persistIdentity(playing.identity); - return; - } - if (activePlayer && availablePlayers.indexOf(activePlayer) >= 0) - return; - const savedId = SessionData.lastPlayerIdentity; - if (savedId) { - const match = availablePlayers.find(p => p.identity === savedId); - if (match) { - activePlayer = match; - return; - } - } - activePlayer = availablePlayers.find(p => p.canControl && p.canPlay) ?? null; - if (activePlayer) - _persistIdentity(activePlayer.identity); - } - - function setActivePlayer(player: MprisPlayer): void { - activePlayer = player; - if (player) - _persistIdentity(player.identity); - } - - function _persistIdentity(identity: string): void { - if (identity && SessionData.lastPlayerIdentity !== identity) - SessionData.set("lastPlayerIdentity", identity); - } - - Timer { - interval: 1000 - running: root.activePlayer?.playbackState === MprisPlaybackState.Playing - repeat: true - onTriggered: root.activePlayer?.positionChanged() - } - - function previousOrRewind(): void { - if (!activePlayer) - return; - if (activePlayer.position > 8 && activePlayer.canSeek) - activePlayer.position = 0; - else if (activePlayer.canGoPrevious) - activePlayer.previous(); - } -} |