144 Commits
Author SHA1 Message Date
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
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 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
Siiiiinth 91701902e6 fixed playTrackAt when double clicking track 2026-02-20 15:57:54 +01:00
Siiiiinth dccd2d8f1a clarify loadItems functionality 2026-02-15 20:54:14 +01:00
Siiiiinth 9919f59b47 changed comment 2026-02-15 18:53:44 +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 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
Siiiiinth 46c3fb15c4 fixed TODOs, first checkpoint saving queue on server 2026-02-01 18:46:49 +01:00
Siiiiinth e05542844a save shuffle state in config 2026-02-01 14:21:57 +01:00
Siiiiinth 149cf7f717 Merge branch 'main' into feature/shuffle 2026-01-29 14:27:56 +01:00
Drew Weymouth 7b09418017 Fix #614: Update go-upnpcast for device discovery fix 2026-01-28 19:34:38 -08:00
Siiiiinth 3da08f78de use new play queue len func in playbackmanager 2026-01-25 18:22:42 +01:00
Siiiiinth 902e6e3dc8 getPlayQueue func 2026-01-24 23:32:02 +01:00
Siiiiinth 6e812d7c77 Merge branch 'main' into feature/shuffle 2026-01-24 21:18:52 +01:00
Drew Weymouth 8e2e4c6d89 Fix #810: only enqueue autoplay tracks when 10 sec from end of play queue 2026-01-24 10:23:35 -08:00
Siiiiinth 71a5df9d51 added shuffle button to UI + base data flow 2026-01-17 19:03:33 +01:00
Siiiiinth 81c935fdd0 moved logic to playbackengine, forceRestart preserves pause state 2026-01-05 00:25:33 +01:00
Siiiiinth 0bdc991dc8 renamed stopAfterCurrent -> pauseAfterCurrent 2026-01-03 19:21:47 +01:00
Siiiiinth 68b7456b31 fixed stopAfterCurrent bug 2025-12-26 23:09:44 +01:00
Drew Weymouth 4c1a95e851 add settings for skipping one-star or tracks with keyword (#724) 2025-09-24 18:59:55 -07: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 2ca19acef8 Fix #703: don't crash if there are fewer than 20 random albums 2025-09-05 16:01:09 -07:00
Drew Weymouth d6ad0de122 add stop after current check to pop up queue 2025-08-08 08:10:20 -07:00
Drew Weymouth 6c4435314c Fix bug of incomplete waveform when playing new track twice in quick succession 2025-08-04 08:17:33 -07:00
Drew Weymouth 8e3ec5e11b use a zero waveform image with single horizontal line when none exists 2025-08-01 17:52:05 -07:00
Drew Weymouth 5209c08444 add setting to disable waveform seekbar 2025-08-01 09:07:52 -07:00
Drew Weymouth 9a1325b92d fix mpv mem leak, waveform gen when double-clicking to play tracks; clean up logs 2025-07-28 18:15:12 -07:00
Drew Weymouth 333b96dd3b switch back to using HTTP server to stream file to MPV - it doesn't idle after playing FIFO 2025-07-27 17:39:48 -07:00
Drew Weymouth 9844bbf6cb waveforms of first played track now generating, but still bugs with ending the task 2025-07-27 17:07:11 -07:00
Drew Weymouth c521c617ec incremental waveform generation (kind-of) working 2025-07-26 15:33:22 -07:00
Drew Weymouth 88b7f62e50 some progress in generating waveform images ahead of time 2025-07-25 18:38:59 -07:00
Drew Weymouth 43f6d501c9 create waveform seekbar widget; still more to do 2025-07-24 08:51:25 -07:00
Drew Weymouth ae7cb55c8c very WIP - proof of concept for waveform seekbar 2025-07-23 22:10:33 -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 28baf912f2 fix behavior of switching players while paused 2025-04-05 10:57:19 -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 084aa6cdba show current player in casting menu, show error toasts on failures 2025-03-29 15:15:14 -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 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 8bd1c8183d more work for preparing for casting 2025-03-29 15:15:13 -07:00
Drew Weymouth 568e380a51 add Play random button to album page 2025-02-20 16:13:11 -08:00