mpris popup working
This commit is contained in:
@@ -6,8 +6,7 @@ import Quickshell.Services.Mpris
|
||||
Singleton {
|
||||
id: root
|
||||
|
||||
property MprisPlayer defaultPlayer: Mpris.players.values[0]
|
||||
property real pos: defaultPlayer.position / defaultPlayer.length
|
||||
property MprisPlayer defaultPlayer: Mpris.players.values[0] || null
|
||||
|
||||
function getPlaying() {
|
||||
if (!defaultPlayer) {
|
||||
@@ -17,6 +16,55 @@ Singleton {
|
||||
}
|
||||
}
|
||||
|
||||
function getTimeString() {
|
||||
let trackInfo = getTrackInfo();
|
||||
let position = trackInfo["position"];
|
||||
let length = trackInfo["length"];
|
||||
if (length.hours > 0) {
|
||||
return position.hours + ":" + position.minutes + ":" + position.seconds + "/" + length.hours
|
||||
+ ":" + length.minutes + ":" + length.seconds;
|
||||
} else {
|
||||
return position.minutes + ":" + position.seconds + "/" + length.minutes + ":" + length.seconds;
|
||||
}
|
||||
}
|
||||
|
||||
function getTrackInfo() {
|
||||
let trackName = root.defaultPlayer.trackTitle;
|
||||
let trackArtist = root.defaultPlayer.trackArtist;
|
||||
let trackAlbum = root.defaultPlayer.trackAlbum;
|
||||
let trackPosition = root.defaultPlayer.position;
|
||||
let trackLength = root.defaultPlayer.length;
|
||||
let trackArt = root.defaultPlayer.trackArtUrl;
|
||||
return {
|
||||
"name": trackName,
|
||||
"artist": trackArtist,
|
||||
"album": trackAlbum,
|
||||
"position": msToArray(trackPosition),
|
||||
"length": msToArray(trackLength),
|
||||
"lengthRemaining": msToArray(trackLength - trackPosition),
|
||||
"lengthPercent": trackPosition / trackLength,
|
||||
"albumArt": trackArt
|
||||
};
|
||||
}
|
||||
|
||||
function msToArray(time) {
|
||||
time = Math.max(0, Number(time));
|
||||
|
||||
const inthours = Math.floor(time / 3600000);
|
||||
const intminutes = Math.floor((time % 60000) / 60);
|
||||
const intseconds = Math.floor((time % 1000) % 60);
|
||||
|
||||
const hours = String(inthours).padStart(2, "0");
|
||||
const minutes = String(intminutes).padStart(2, "0");
|
||||
const seconds = String(intseconds).padStart(2, "0");
|
||||
|
||||
return {
|
||||
hours,
|
||||
minutes,
|
||||
seconds
|
||||
};
|
||||
}
|
||||
|
||||
function prev() {
|
||||
defaultPlayer.previous();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user