Commit Graph
137 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
tdakkota cfa45a4647 feat(ipc): add an endpoint for getting current track (#911) 2026-04-20 19:36:11 -07:00
Drew WeymouthandClaude Sonnet 4.6 dba540861f fix: defer MPV playback start until user unpauses on session restore
Instead of play → pause → sleep → seek when restoring a paused session,
introduce loadTrackPaused which sets internal state and fires UI/OS
callbacks (song change, paused) without touching MPV. On Continue(),
detect pendingLoadPaused and start MPV playback from the saved position.

Also triggers waveform pre-generation for the paused track via the
onBeforeSongChange hook.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 09:40:59 -08:00
Siiiiinth 194e15cff6 Merge branch 'main' into feature/shuffle 2026-02-20 15:18:22 +01:00
Drew Weymouth 6b382c6293 Fix #857: Clear in-memory cache as well as on disk 2026-02-19 08:27:32 -08:00
Drew WeymouthandClaude Sonnet 4.6 e21908cd24 Add -reload-theme CLI flag to re-apply the current theme file (#860)
* Add -reload-theme CLI flag to re-apply theme via IPC

Sends a reload-theme IPC message to a running instance, causing it to
call fyne.CurrentApp().Settings().SetTheme(m.theme). Follows the same
callback pattern as -show (OnReactivate) and quit (OnExit).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* actually re-read theme file

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-17 16:56:51 -08:00
Siiiiinth a9b3a3d9f4 typo 2026-02-15 19:26:02 +01:00
Siiiiinth bf2cb25a7a move err handling 2026-02-15 19:24:56 +01:00
Siiiiinth cc35b54898 fixed typo 2026-02-15 18:44:41 +01:00
Siiiiinth d077bfb953 load full queue state on start 2026-02-09 18:48:50 +01:00
Siiiiinth 1e1e3f7106 fixed various bugs with inserting and adding tracks 2026-02-09 13:43:36 +01:00
Siiiiinth a54d81ccca merge conflicts 2026-02-09 08:11:05 +01:00
Siiiiinth 48226d5461 wip restore queues on start 2026-02-09 08:09:01 +01: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 b52aa5b36f rate-current CLI option (#847) 2026-02-07 10:18:51 -08:00
Gianluca Boiano b0b2dc46f9 Update player to support both 10-band and 15-band equalizers 2026-02-06 02:50:40 +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 Boiano ada1564be7 Fix WidgetPool goroutine and ticker leak
- Add context cancellation to WidgetPool cleanup goroutine
- Properly stop ticker when context is canceled
- Add BackgroundContext() getter method to App for context access
- Pass application context to NewWidgetPool for lifecycle management

This fixes a resource leak where the cleanup goroutine would run
indefinitely without any way to stop it, preventing proper cleanup
on application shutdown.
2026-02-02 16:31:56 +01:00
Siiiiinth 46c3fb15c4 fixed TODOs, first checkpoint saving queue on server 2026-02-01 18:46:49 +01:00
zacaj 7c9b4074cb setting to disable fade out on pause 2026-01-17 05:08:12 +00:00
Siiiiinth 0bdc991dc8 renamed stopAfterCurrent -> pauseAfterCurrent 2026-01-03 19:21:47 +01:00
Drew Weymouth 0ff57513c2 add button to Advanced settings tab to clear caches 2025-11-07 19:48:09 -08:00
Drew Weymouth 711d564509 refactor: extract lyric fetching logic to LyricsManager 2025-11-01 09:58:30 -07:00
Drew Weymouth 887d3bb2c7 Fix #579: Save play queue on all queue changes 2025-10-09 08:13:56 -07:00
E1int 59082cd6d6 Handle server disconnections/changes 2025-08-11 17:15:57 +02:00
E1int ef8f0f0454 Merge from main 2025-08-09 23:39:44 +02:00
E1int 6c8d82cda1 Add search CLI commands 2025-08-09 22:42:30 +02:00
Drew Weymouth 041e4d3ba7 add icons to taskbar control buttons 2025-08-08 19:15:46 -07:00
Drew Weymouth aedaa32de4 add Windows taskbar control buttons (TODO: icons) 2025-08-08 19:15:46 -07:00
Drew Weymouth 30ee5deb9c add CLI flag to set stop after current 2025-08-08 08:16:33 -07:00
E1int 647984e92e Add play CLI commands for albums, playlists and tracks 2025-08-06 00:52:46 +02:00
Drew Weymouth dbea096edf Merge pull request #671 from E1int/start-minimized-flag
Add CLI flag to start app minimized
2025-08-04 11:01:50 -07:00
Drew Weymouth d8ef747b8b don't use audio cache to pre-download files if not using waveform seekbar 2025-08-04 08:27:02 -07:00
E1int c832d13099 Handle server connection in minimized start 2025-08-01 22:45:34 +02:00
E1int aa3b030a26 Add CLI flag to start app minimized 2025-08-01 21:05:10 +02:00
Drew Weymouth c521c617ec incremental waveform generation (kind-of) working 2025-07-26 15:33:22 -07:00
Drew Weymouth bcc0007042 pre-cache next two files in queue; TODO - use them 2025-07-18 17:36:39 -07:00
Drew Weymouth b568e23133 WIP - pre-download audio files for queued tracks 2025-07-17 08:49:15 -07:00
Drew Weymouth 0fd8b4621b Fix #625: Allow customization of grid card size 2025-05-28 09:21:24 -07:00
Drew Weymouth af1ae4641e Add setting to disable OS media player APIs 2025-05-26 17:17:00 -07:00
Magnus Larsen 876ac22ee1 WindowsSMTC: Use playback status' track duration 2025-04-06 17:41:52 -07:00
Drew Weymouth 28baf912f2 fix behavior of switching players while paused 2025-04-05 10:57:19 -07:00
Drew Weymouth d4c1b560d5 do fast scan for remote players on startup 2025-03-29 15:15:13 -07:00
Drew Weymouth 6a7f06769d ensure casting playback stops when quitting app 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 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 ed36879cda Fix #571:make timeout configurable and bump default to 15 sec 2025-03-05 07:47:52 -08:00
Drew Weymouth 95ef3eae38 expose more config file settings in the UI 2025-02-21 16:31:04 -08:00