Skip to content

Commit 5a038f0

Browse files
committed
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.
1 parent e223408 commit 5a038f0

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

src/services/mpris/player.cpp

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -271,16 +271,21 @@ void MprisPlayer::onMetadataChanged() {
271271

272272
auto trackChanged = false;
273273

274+
QString trackId;
274275
auto trackidVariant = this->pMetadata.get().value("mpris:trackid");
275-
if (trackidVariant.isValid() && trackidVariant.canConvert<QString>()) {
276-
auto trackId = trackidVariant.toString();
277-
278-
if (trackId != this->mTrackId) {
279-
this->mTrackId = trackId;
280-
trackChanged = true;
276+
if (trackidVariant.isValid()) {
277+
if (trackidVariant.canConvert<QString>()) {
278+
trackId = trackidVariant.toString();
279+
} else if (trackidVariant.canConvert<QDBusObjectPath>()) {
280+
trackId = trackidVariant.value<QDBusObjectPath>().path();
281281
}
282282
}
283283

284+
if (trackId != this->mTrackId) {
285+
this->mTrackId = trackId;
286+
trackChanged = true;
287+
}
288+
284289
// Helps to catch players without trackid.
285290
auto urlVariant = this->pMetadata.get().value("xesam:url");
286291
if (urlVariant.isValid() && urlVariant.canConvert<QString>()) {

0 commit comments

Comments
 (0)