Commit Graph
22 Commits
Author SHA1 Message Date
Andrew G. Dunn 6b6701e973 Populate richer DIDL-Lite metadata for DLNA cast (#934)
Extend MediaItemMetadata with TrackNumber, Size, BitRate, SampleRate,
BitDepth, and ChannelCount (all already present on Track) and populate
them in Track.Metadata(). Thread them through dlnaplayer.go into the
avtransport.MediaItem so the renderer's DIDL-Lite includes upnp:artist,
upnp:album, upnp:originalTrackNumber, plus <res> attributes for
duration, size, bitrate, sampleFrequency, bitsPerSample, and
nrAudioChannels. The previously dropped Duration field is now
populated too.

For cover art, add a CoverArtPathFn callback on PlaybackManager wired
to ImageManager.GetCoverArtPath in app.go. The DLNA player invokes it
when a track is queued, registers the cached cover-thumbnail path
with the local proxy, and emits the resulting proxy URL as
upnp:albumArtURI so the renderer can display album art alongside the
audio.

Bumps go-upnpcast to pull in the MediaItem fields and DIDL-Lite
emission added in supersonic-app/go-upnpcast#4.
2026-06-01 16:39:48 -07:00
Gianluca Boiano c692fbf1ee Update tooling and fix build issues
- Migrate golangci-lint config to v2 format
- Update GitHub Actions: checkout v3→v4, Go 1.24→1.25
- Update golangci-lint-action v6→v9 with golangci-lint v2.8
- Fix dlnaplayer.go: use RequestHandler interface for go-upnpcast
- Fix go.mod replace directive version mismatch for fyne fork
2026-01-26 22:30:12 +01:00
Jacalz 534a7bfaaf Run modernise on the project
This will be available in "go fix" within Go 1.26 but in the meantime:

go run golang.org/x/tools/gopls/internal/analysis/modernize/cmd/modernize@latest -fix -test ./...
2025-09-17 22:28:16 +02:00
Drew Weymouth 5dd71c7ce6 fix crashing when DLNA casting and toggling stop after current 2025-08-08 08:26:25 -07:00
Drew Weymouth c521c617ec incremental waveform generation (kind-of) working 2025-07-26 15:33:22 -07:00
Drew Weymouth dfa493501d wait to set next track until near end of current. (still needs more testing/review) 2025-07-19 09:33:15 -07:00
Simon Symeonidis 5d9fea19d4 Remove unused unimplemented error due to lint
A quick check shows that this is not used anywhere else in the codebase.

        $ ag unimplemented
        backend/player/dlna/dlnaplayer.go
        34:var unimplemented = errors.New("unimplemented")
2025-05-17 21:56:15 -04:00
Drew Weymouth 6e7480f48a pass MIME type and seekable flag to DLNA players 2025-03-30 14:39:27 -07:00
Drew Weymouth 9001dc296f keep hanging DLNA player from hanging Supersonic when quitting/switching players 2025-03-30 13:51:50 -07:00
Drew Weymouth 2701bb3f7f sync playback time when seeking and starting new tracks 2025-03-30 13:08:18 -07:00
Drew Weymouth f9c9f290bd seek to correct position when switching players 2025-03-29 15:57:34 -07:00
Drew Weymouth 084aa6cdba show current player in casting menu, show error toasts on failures 2025-03-29 15:15:14 -07:00
Drew Weymouth 31c7692ec4 seeking while paused stays paused 2025-03-29 15:15:13 -07:00
Drew Weymouth 379309c27f handle case where SetNextAVTransportURI fails 2025-03-29 15:15:13 -07:00
Drew Weymouth e4c187b4df keep only 3 most recently used proxy URLs active 2025-03-29 15:15:13 -07:00
Drew Weymouth ff455528d6 shorten retry time, clean up logging 2025-03-29 15:15:13 -07:00
Drew Weymouth 7828614d91 add HTTP retries for DLNA player 2025-03-29 15:15:13 -07:00
Drew Weymouth 417b1b262d add timer to fire track change event 2025-03-29 15:15:13 -07:00
Drew Weymouth 436df0f199 reorganize; add stopwatch to dlna player for play time tracking 2025-03-29 15:15:13 -07:00
Drew Weymouth e5c8027a82 shutdown proxy server when switching back to local; debounce vol slider 2025-03-29 15:15:13 -07:00
Drew Weymouth 5a37b1e39f gapless DLNA working 2025-03-29 15:15:13 -07:00
Drew Weymouth 4f731833c0 very WIP for DLNA casting 2025-03-29 15:15:13 -07:00