fix some logic errors from refactoring
This commit is contained in:
+34
-18
@@ -251,32 +251,48 @@ func (m *MPRISHandler) Metadata() (types.Metadata, error) {
|
||||
trackObjPath = m.curTrackPath
|
||||
}
|
||||
status := m.pm.PlayerStatus()
|
||||
var tr mediaprovider.Track
|
||||
|
||||
var meta mediaprovider.MediaItemMetadata
|
||||
// metadata that can come only from tracks
|
||||
var discNumber, trackNumber, userRating, playCount, year int
|
||||
var genre string
|
||||
|
||||
if np := m.pm.NowPlaying(); np != nil && status.State != player.Stopped {
|
||||
meta = np.Metadata()
|
||||
if track, ok := np.(*mediaprovider.Track); ok {
|
||||
tr = *track
|
||||
discNumber = track.DiscNumber
|
||||
trackNumber = track.TrackNumber
|
||||
userRating = track.Rating
|
||||
playCount = track.PlayCount
|
||||
year = track.Year
|
||||
genre = track.Genre
|
||||
}
|
||||
}
|
||||
var artURL string
|
||||
if tr.ID != "" && m.ArtURLLookup != nil {
|
||||
if u, err := m.ArtURLLookup(tr.CoverArtID); err == nil {
|
||||
if meta.ID != "" && m.ArtURLLookup != nil {
|
||||
if u, err := m.ArtURLLookup(meta.CoverArtID); err == nil {
|
||||
artURL = u
|
||||
}
|
||||
}
|
||||
return types.Metadata{
|
||||
TrackId: dbus.ObjectPath(trackObjPath),
|
||||
Length: secondsToMicroseconds(status.Duration),
|
||||
Title: tr.Title,
|
||||
Album: tr.Album,
|
||||
Artist: tr.ArtistNames,
|
||||
DiscNumber: tr.DiscNumber,
|
||||
TrackNumber: tr.TrackNumber,
|
||||
Genre: []string{tr.Genre},
|
||||
UserRating: float64(tr.Rating) / 5,
|
||||
ContentCreated: strconv.Itoa(tr.Year),
|
||||
UseCount: tr.PlayCount,
|
||||
ArtUrl: artURL,
|
||||
}, nil
|
||||
mprisMeta := types.Metadata{
|
||||
TrackId: dbus.ObjectPath(trackObjPath),
|
||||
Length: secondsToMicroseconds(status.Duration),
|
||||
Title: meta.Name,
|
||||
Album: meta.Album,
|
||||
Artist: meta.Artists,
|
||||
DiscNumber: discNumber,
|
||||
TrackNumber: trackNumber,
|
||||
UserRating: float64(userRating) / 5,
|
||||
UseCount: playCount,
|
||||
ArtUrl: artURL,
|
||||
}
|
||||
if genre != "" {
|
||||
mprisMeta.Genre = []string{genre}
|
||||
}
|
||||
if year != 0 {
|
||||
mprisMeta.ContentCreated = strconv.Itoa(year)
|
||||
}
|
||||
return mprisMeta, nil
|
||||
}
|
||||
|
||||
func (m *MPRISHandler) Volume() (float64, error) {
|
||||
|
||||
Reference in New Issue
Block a user