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