Commit Graph
259 Commits
Author SHA1 Message Date
Michael Manganiello 801967a530 misc: Upgrade Go to v1.21
Upgrade to 1.21 as 1.20 is now unmaintained.

Most changes are related to the new `slices` package from standard
library, which can replace some existing custom functions.
2024-03-05 09:49:10 -03:00
Michael Manganiello a6fefc992d Refactor and temporarily disable sharing artists 2024-03-03 21:01:48 -03:00
Michael Manganiello 9d3725cb51 feat: Add Share option for artists, albums, and tracks
This feature is only available on the Subsonic media provider. Using a
Jellyfin server will make Supersonic hide the "Share" option.

* Artists: Option available in grid view and in Artist view.
* Albums: Option available in grid view and in Album view.
* Tracks: Option available in tracklist, when a single track is selected.
2024-03-03 20:44:58 -03:00
Drew Weymouth cd31274a81 remove defunct NowPlayingPageConfig 2024-03-03 14:06:19 -08:00
Drew Weymouth 9b72ff9d17 add OnPlayQueueChange hook 2024-03-03 10:38:12 -08:00
Drew Weymouth 9ed2d8502b add GetFullSizeCoverArtAsync 2024-03-01 16:59:04 -08:00
Drew Weymouth 6a9f488db0 Merge pull request #333 from adamantike/fix/mpris-broken-art-url-on-linux
fix: MPRIS broken cover art on Linux
2024-02-24 11:05:43 -08:00
Michael Manganiello c7dfc9efb3 fix: Enable Loop mode sync for MPRIS
Loop mode changes were being correctly reflected in Supersonic, when
updated in the toolbar, but not the other way around. We were only
missing an `Options` changes emit when loop mode is changed in
Supersonic.
2024-02-24 15:17:13 -03:00
Michael Manganiello 21751221fc fix: MPRIS broken cover art on Linux
Problem:

When changing tracks, the toolbar display on Linux sometimes misses the
track cover art, and displays a placeholder instead.

Solution:

Copy same callback as the one used for MacOS, which calls
`GetCoverArtUrl` first, to avoid missing cover arts.
2024-02-24 15:04:03 -03:00
Michael Manganiello 56c78aad0c fix: MPRIS Seek functionality on Linux
Problem:

The operating system toolbar's component to control Supersonic playback
had its Seek functionality broken on Linux. When playing a song, seeking
for a different position from Supersonic worked as expected, but seeking
from the toolbar did nothing to the current track.

I found that the underlying reason was in `MPRISHandler.SetPosition`, as
the `if m.curTrackPath == trackId` always returned false.

`m.curTrackPath` was the right value, but `trackId` was wrong: On the
first song being played for a tracklist, `trackId` when trying to seek
was set to `/org/mpris/MediaPlayer2/TrackList/NoTrack`. When moving to
the next song, `trackId` then became the Track ID of the previously
played song.

Solution:

Changing the call to `OnTitle()` is enough to fix the issue, as the
MPRIS `Metadata()` generation depends on the value of `m.curTrackPath`.
Because it was being called before changing its value, the received
`trackId` was always off.
2024-02-24 13:26:04 -03:00
Drew Weymouth b61afb1ba5 Fix #319: show cancelable modal dialog while connecting to server on startup 2024-02-15 09:04:14 -08:00
Drew Weymouth 91aa92706d Fix #316: Add setting to show notification on track change 2024-01-20 14:42:22 -08:00
Drew Weymouth edc3ef7bfa Fix #315: Pre-select most recent playlist in "Add to playlist" dialog 2024-01-20 14:22:30 -08:00
Drew Weymouth e1bc745645 refactor: split a lower-level playbackEngine out of PlaybackManager 2024-01-13 11:53:18 -08:00
Drew Weymouth ee275cb9ed update Fyne fork to 2.4.3 baseline 2024-01-12 08:53:21 -08:00
Drew Weymouth e9d462e655 move player package into backend 2024-01-08 18:53:13 -08:00
Drew Weymouth 7cfd176c59 extract deepCopy helper function 2024-01-08 17:17:12 -08:00
Drew Weymouth fca5abca94 ignore/skip failure to restore individual tracks from queue 2024-01-08 08:14:45 -08:00
Drew Weymouth 793b570999 load saved play position on startup 2024-01-07 17:14:57 -08:00
Drew Weymouth c4c4a71d5e save and load play queue on exit/startup (partial impl) 2024-01-07 16:25:15 -08:00
Drew Weymouth 9c2f72d9f2 Fix #33: allow reordering of play queue 2024-01-06 14:22:18 -08:00
Drew Weymouth ca25756db7 fix regression- crashing on Repeat One when nothing playing 2024-01-06 11:11:34 -08:00
Drew Weymouth 10feaad1f3 Merge pull request #305 from dweymouth/feature/jukebox
Redesign of PlaybackManager
2023-12-23 10:52:55 -08:00
Drew Weymouth 91951ebfd2 implement new logic for RemoveTracksFromQueue 2023-12-22 17:58:36 -08:00
Drew Weymouth cfb8739a61 when changing loop mode, only call player.SetNext if needed 2023-12-22 17:22:40 -08:00
Drew Weymouth d089151f85 remove extra replaygain set 2023-12-22 16:28:34 -08:00
Drew Weymouth cf41795659 handle LoopMode logic, plus some reorganization 2023-12-22 16:21:29 -08:00
Drew Weymouth de6ba5c120 move LoopMode 2023-12-22 16:01:56 -08:00
Drew Weymouth d9eca8d807 Beginning of reworked PlaybackManager - PARTIAL 2023-12-22 15:50:39 -08:00
Drew Weymouth 4c3d638aed some simplification of PlaybackManager 2023-12-21 20:18:53 -08:00
Drew Weymouth 81dde8ee2e bump to Go 1.20 and rm deprecated rand.Seed 2023-12-19 17:59:24 -08:00
Drew Weymouth 1e466e4cdf start of JukeboxPlayer backend 2023-12-19 17:31:10 -08:00
Drew Weymouth f8f8a3a5cb rework settings dialog to be aware of different player types 2023-12-19 08:41:07 -08:00
Drew Weymouth bcf95ba26c don't assume MPV player in now playing page 2023-12-19 08:23:12 -08:00
Drew Weymouth df6c53a3f5 add interface to decouple MPV player from PlaybackManager 2023-12-18 20:22:24 -08:00
Drew Weymouth 1665281ad7 Refactor pt. 2: route player transport controls+callbacks through PlaybackManager 2023-12-18 09:06:17 -08:00
Drew Weymouth bd4db95f64 fix non-Mac build 2023-12-18 07:52:59 -08:00
Drew Weymouth 55f9461410 Refactor pt. 1: move MPV player to own package and extract some types 2023-12-17 13:50:30 -08:00
Drew Weymouth 53dc9277ec Add Comment column to tracklist 2023-12-16 15:54:03 -08:00
Drew Weymouth 1521c0c4ba add ReleaseTypes to the album model 2023-12-16 13:44:16 -08:00
Drew Weymouth 79b8d34430 #284: fix artist radio for Jellyfin 2023-11-16 08:17:32 -08:00
Drew Weymouth 87fc88e308 Fix #157: Add "Auto" ReplayGain mode to auto-choose between Track and Album 2023-11-15 08:14:31 -08:00
Drew Weymouth 2e223c6141 Fix #179: add experimental setting to scale down or up UI size 2023-11-14 19:12:00 -08:00
Drew Weymouth 2ffcac9b88 add scrobbling for Jellyfin 2023-11-14 18:08:55 -08:00
Drew Weymouth b7f54054d8 correctly distinguish user/pass auth errors from other connectivity errors again 2023-11-14 17:36:07 -08:00
Drew Weymouth d1380d6a41 remove dead obsolete code 2023-11-14 17:05:10 -08:00
Drew Weymouth aba2076894 remove Recently Played, Frequently Played album sort orders for Jellyfin 2023-11-14 16:58:04 -08:00
Drew Weymouth 80a3104e79 all playlist functionality works now 2023-11-14 09:05:02 -08:00
Drew Weymouth 470fe4b31a backfill Subsonic to missing ServerTypes in config 2023-11-14 09:05:02 -08:00
Drew Weymouth cafca00b1b editing playlist metadata is working now 2023-11-14 09:05:02 -08:00