From 19bd6aefa25e94e9a2b9d170f96f88837241b286 Mon Sep 17 00:00:00 2001 From: Rob Emery Date: Sun, 19 Jan 2025 19:27:14 +0000 Subject: [PATCH] Track numbers populated correctly --- dlna/contenddirectoryservice.go | 9 ++++++--- dlna/upnpav/upnpav.go | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/dlna/contenddirectoryservice.go b/dlna/contenddirectoryservice.go index af469df95..c512928b0 100644 --- a/dlna/contenddirectoryservice.go +++ b/dlna/contenddirectoryservice.go @@ -11,6 +11,7 @@ import ( "path" "path/filepath" "slices" + "strconv" "strings" "time" @@ -256,10 +257,10 @@ func (cds *contentDirectoryService) doMediaFiles(tracks model.MediaFiles, basePa } title := track.Title artist := track.Artist - //date := track.Date //TODO album := track.Album genre := track.Genre trackNo := track.TrackNumber + trackDuration := strconv.FormatFloat(float64(track.Duration), 'f', -1, 64) obj := upnpav.Object{ ID: child.Id, @@ -271,7 +272,7 @@ func (cds *contentDirectoryService) doMediaFiles(tracks model.MediaFiles, basePa var mimeType = "audio/mp3" //TODO obj.Class = "object.item.audioItem.musicTrack" - obj.Date = upnpav.Timestamp{Time: time.Now()} + obj.Date = upnpav.Timestamp{Time:time.Now()} //TODO obj.Artist = artist obj.Album = album obj.Genre = genre @@ -291,7 +292,8 @@ func (cds *contentDirectoryService) doMediaFiles(tracks model.MediaFiles, basePa ProtocolInfo: fmt.Sprintf("http-get:*:%s:%s", mimeType, dlna.ContentFeatures{ SupportRange: false, }.String()), - Size: uint64(1048576), //TODO TRACKSIZE + Size: uint64(track.Size), + Duration: trackDuration, }) ret = append(ret, item) } @@ -403,6 +405,7 @@ func (cds *contentDirectoryService) Handle(action string, argsXML []byte, r *htt objs = objs[:browse.RequestedCount] } result, err := xml.Marshal(objs) + log.Debug(fmt.Sprintf("XMLResponse: '%s'", result)) if err != nil { return nil, err } diff --git a/dlna/upnpav/upnpav.go b/dlna/upnpav/upnpav.go index 88790f1be..a3f5c15e4 100644 --- a/dlna/upnpav/upnpav.go +++ b/dlna/upnpav/upnpav.go @@ -50,8 +50,8 @@ type Object struct { Album string `xml:"upnp:album,omitempty"` Genre string `xml:"upnp:genre,omitempty"` AlbumArtURI string `xml:"upnp:albumArtURI,omitempty"` - Searchable int `xml:"searchable,attr"` // - OriginalTrackNumber int `xml:"originalTrackNumber,omitempty"` + OriginalTrackNumber int `xml:"upnp:originalTrackNumber,omitempty"` + Searchable int `xml:"searchable,attr"` } // Timestamp wraps time.Time for formatting purposes type Timestamp struct {