Commit Graph
600 Commits
Author SHA1 Message Date
owen cab5a987b0 add features 2026-07-29 04:35:25 -05:00
Drew Weymouth 0e49d4bd58 add missing MPRIS shuffle handlers 2026-07-24 16:16:50 -07:00
Kryštof Baksa 2ffbbba3db Add "All Tracks" option to Startup page (#955) 2026-06-17 08:48:56 -07:00
BELzEBUB 1794d690ee Skip autoplay when a radio station is playing (#950)
Autoplay for similar songs should not apply to radio streams, which
have no meaningful "end of queue" to extend.
2026-06-09 15:41:56 -07:00
Lucas cbe148a1bd Prevent race condition when using altHostname (#946)
Fixes #740 by preventing the slower connection from returning a value via goroutine.
This prevent the 401 auth errors that break loading data from the api after the first connection.
2026-06-06 14:20:13 -07: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 2d864a5320 add support for OpenSubsonic playbackReport extension (#910)
* add support for OpenSubsonic playbackReport extension

* better style
2026-04-22 11:00:51 -07:00
tdakkota cfa45a4647 feat(ipc): add an endpoint for getting current track (#911) 2026-04-20 19:36:11 -07:00
Drew Weymouth 84440f9935 support cover art for internet radio stations 2026-04-09 08:25:43 -07:00
Drew Weymouth 8636e54c3a Fix #877: use XML API for Funkwhale servers since they don't implement JSON correctly 2026-04-05 13:11:57 -07:00
tk 6aa53d6cfe Merge pull request #896 from Tim-Kaiser/ISSUE-895
Fix #895: Fix crash on track change and scrobble
2026-04-05 09:53:30 -07:00
Drew Weymouth e23dfb8554 Fix #875: ensure shuffle button on album/playlist/etc pages works regardless of queue shuffle 2026-03-13 07:59:09 -07:00
Drew Weymouth 03fd760589 use JSON instead of XML in Subsonic API 2026-03-11 07:38:58 -07:00
Drew Weymouth 02e12b3cbe handle switch players while in pendingLoadPaused state 2026-03-05 06:59:28 -08:00
Drew Weymouth cfcd7a52e4 delete accidental committed file 2026-03-05 06:54:51 -08:00
Drew Weymouth c3b9763724 handle stop properly when pendingLoadPaused 2026-03-05 06:42:22 -08:00
Drew Weymouth 47668bcec9 stop waveform from refreshing when unpausing the initial track 2026-02-27 08:29:57 -08:00
Drew Weymouth 6782e8d470 make sure waveform shows up for track loaded paused when starting app 2026-02-21 10:17:20 -08: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
Drew Weymouth c462720424 fix bug where unshuffling while playing last track in linear queue order crashes at end of track 2026-02-20 18:11:17 -08:00
Drew Weymouth 68268c323b fix order of operations when toggling shuffle 2026-02-20 17:46:37 -08:00
Siiiiinth 294be9a0a3 fix track restarting on shuffle 2026-02-20 16:16:52 +01:00
Siiiiinth 91701902e6 fixed playTrackAt when double clicking track 2026-02-20 15:57:54 +01: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 9dd606ce73 Normalize server URLs before connecting (#861)
* Fix #304: normalize server URLs before connecting

Prepend http:// when no scheme is present and strip trailing slashes
for all server types. For Jellyfin, additionally strip /web/index.html
and /web path suffixes that users copy from the browser URL bar.

Normalization is applied in ServerManager.connect() on the by-value
parameter, so stored config is never mutated.

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

* move url normalize funcs

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-17 19:34:47 -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 279bc997aa removed unnecessary guard 2026-02-15 21:14:30 +01:00
Siiiiinth dccd2d8f1a clarify loadItems functionality 2026-02-15 20:54:14 +01: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 9919f59b47 changed comment 2026-02-15 18:53:44 +01:00
Siiiiinth cc35b54898 fixed typo 2026-02-15 18:44:41 +01:00
Siiiiinth cba4d9bd27 fixed track removal 2026-02-15 10:16:04 +01:00
Siiiiinth 3b22a1b261 Merge branch 'main' into feature/shuffle 2026-02-15 10:02:44 +01:00
Drew Weymouth 497c61e724 Fix #854: bounds-check for setNextTrack during handleTimePosUpdate 2026-02-13 07:47:19 -08:00
Siiiiinth d463971ce8 fixed bug in SetShuffle 2026-02-09 19:12:19 +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 f2440d9d15 some log cleanup 2026-02-08 17:46:20 -08:00
Drew Weymouth 6c84910553 renaming 2026-02-08 17:15:38 -08:00
Drew Weymouth b52aa5b36f rate-current CLI option (#847) 2026-02-07 10:18:51 -08:00
Gianluca Boiano f302612d53 chore: remove dead code 2026-02-06 18:06:59 +01:00
Drew Weymouth 7956174c0e fix fC of 10-band eq 2026-02-06 08:48:30 -08:00
Drew Weymouth daf0440fbc extend searchdialog / SearchResult to properly support headphone profiles 2026-02-06 08:27:52 -08:00
Gianluca Boiano b0b2dc46f9 Update player to support both 10-band and 15-band equalizers 2026-02-06 02:50:40 +01:00
Gianluca Boiano 0097b0a052 Add 10-band equalizer support and AutoEQ integration 2026-02-06 02:50:39 +01:00