forked from quickshell/quickshell
service/mpris: support trackids in object path form
Chromium reports trackids as object paths, which caused us to fall back to Seek, which is also entirely broken on chromium.
This commit is contained in:
parent
e223408143
commit
5a038f085d
1 changed files with 11 additions and 6 deletions
|
@ -271,16 +271,21 @@ void MprisPlayer::onMetadataChanged() {
|
|||
|
||||
auto trackChanged = false;
|
||||
|
||||
QString trackId;
|
||||
auto trackidVariant = this->pMetadata.get().value("mpris:trackid");
|
||||
if (trackidVariant.isValid() && trackidVariant.canConvert<QString>()) {
|
||||
auto trackId = trackidVariant.toString();
|
||||
|
||||
if (trackId != this->mTrackId) {
|
||||
this->mTrackId = trackId;
|
||||
trackChanged = true;
|
||||
if (trackidVariant.isValid()) {
|
||||
if (trackidVariant.canConvert<QString>()) {
|
||||
trackId = trackidVariant.toString();
|
||||
} else if (trackidVariant.canConvert<QDBusObjectPath>()) {
|
||||
trackId = trackidVariant.value<QDBusObjectPath>().path();
|
||||
}
|
||||
}
|
||||
|
||||
if (trackId != this->mTrackId) {
|
||||
this->mTrackId = trackId;
|
||||
trackChanged = true;
|
||||
}
|
||||
|
||||
// Helps to catch players without trackid.
|
||||
auto urlVariant = this->pMetadata.get().value("xesam:url");
|
||||
if (urlVariant.isValid() && urlVariant.canConvert<QString>()) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue