Commit Graph
51 Commits
Author SHA1 Message Date
owen e82bc81081 Fix radio station playback 2026-07-29 16:53:42 -05:00
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
Drew Weymouth ead7364632 Merge pull request #835 from M0Rf30/feat/equalizer-improvements
Add equalizer preset management and AutoEQ integration
2026-02-08 17:50:07 -08:00
Drew Weymouth 7956174c0e fix fC of 10-band eq 2026-02-06 08:48:30 -08:00
Gianluca Boiano 0097b0a052 Add 10-band equalizer support and AutoEQ integration 2026-02-06 02:50:39 +01:00
Drew Weymouth 3c46889014 Extract and display radio ICY metadata (#845)
* extract and display radio ICY metadata

* fix crash when casting radio station
2026-02-05 07:51:15 -08:00
Gianluca BoianoandDrew Weymouth 6c038df537 Fix equalizer audio filter string construction (#834)
* Fix equalizer audio filter string construction

* some code style cleanup

* import strings

---------

Co-authored-by: Drew Weymouth <dweymouth@users.noreply.github.com>
2026-01-28 19:32:16 -08: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
zacaj 7c9b4074cb setting to disable fade out on pause 2026-01-17 05:08:12 +00:00
Siiiiinth 62332551ed fixed ForceRestartPlayback 2026-01-05 00:29:37 +01:00
Siiiiinth 81c935fdd0 moved logic to playbackengine, forceRestart preserves pause state 2026-01-05 00:25:33 +01:00
Drew Weymouth 5c209c0412 Fix #775: quickly fade out mpv player on pause 2025-12-03 07:08:56 -08:00
Jacalz 08f335da44 Run gofumpt on the project 2025-09-17 22:30:49 +02: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
Andy Williams ffe4fa61ee Build on a mac without environment variables 2025-08-22 11:32:34 +01: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 22755a924a Remove unused nextTrackTimer due to lint
It seems that this field is not used elsewhere in the project:

        $ ag nextTrackTimer
        backend/player/jukebox/jukeboxplayer.go
        30:     nextTrackTimer     *time.Timer
2025-05-17 21:56:15 -04:00
Simon Symeonidis 4a4596f144 Remove unused handleNextTrack method due to lint
I didn't see any other usages of this method:
        $ ag handleNextTrack
        backend/player/jukebox/jukeboxplayer.go
        158:func (j *JukeboxPlayer) handleNextTrack() {
2025-05-17 21:56:15 -04: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 a0c97f0be1 signal correct play pos to OS when switching back to MPV player 2025-03-29 16:03:27 -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 8bd1c8183d more work for preparing for casting 2025-03-29 15:15:13 -07:00
Drew Weymouth 4f731833c0 very WIP for DLNA casting 2025-03-29 15:15:13 -07:00
Drew Weymouth e8737f47b3 Fix #483: workaround MPV failing to begin playback of track with new sample rate on Windows 2024-12-21 12:40:56 -08:00
Drew Weymouth faf067ce7e add shared callback impl between mpv and jukebox players 2024-09-01 08:45:09 -07:00
Drew Weymouth c2efb048e2 more jukebox work 2024-08-31 09:09:12 -07:00
Drew Weymouth 3bad04a74a update jukebox player to synchronous 2024-08-30 16:48:44 -07:00
Drew Weymouth 0e9a8fc38b change module locations 2024-08-06 20:30:44 -07:00
Drew Weymouth 92d2fb042d don't leak memory in the error cases 2024-07-23 17:43:54 -07:00
Drew Weymouth 02e5c784b3 query MPV astats node directly in C for efficiency 2024-07-23 17:38:43 -07:00
Drew Weymouth b78b235341 tweaks and optimizations 2024-07-23 08:24:50 -07:00
Drew Weymouth 9d0b381572 add controller logic for visualizations and add to gear menu 2024-07-22 18:16:18 -07:00
Drew Weymouth 1b5cf118e1 WIP: peak/rms meter visualization 2024-07-22 09:27:09 -07:00
Drew Weymouth d9cec2e493 limit MPV back cache too 2024-06-25 07:34:16 -07:00
Drew Weymouth ee275cb9ed update Fyne fork to 2.4.3 baseline 2024-01-12 08:53:21 -08:00