From d6ab56765d0fdd0b266ed8843b57d8e4abb77b06 Mon Sep 17 00:00:00 2001 From: Drew Weymouth Date: Sun, 21 Apr 2024 09:13:34 -0700 Subject: [PATCH] don't crash on exit when saving play queue with nothing playing --- .../mediaprovider/subsonic/subsonicmediaprovider.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/backend/mediaprovider/subsonic/subsonicmediaprovider.go b/backend/mediaprovider/subsonic/subsonicmediaprovider.go index 6c07c07..4a4bfc5 100644 --- a/backend/mediaprovider/subsonic/subsonicmediaprovider.go +++ b/backend/mediaprovider/subsonic/subsonicmediaprovider.go @@ -381,14 +381,16 @@ func (s *subsonicMediaProvider) GetLyrics(track *mediaprovider.Track) (*mediapro // CanSavePlayQueue interface -func (s *subsonicMediaProvider) SavePlayQueue(trackIDs []string, currentTrackPos int, timeSeconds int) error { +func (s *subsonicMediaProvider) SavePlayQueue(trackIDs []string, currentTrackIdx int, timeSeconds int) error { if len(trackIDs) == 0 { return nil // don't save an empty queue } - return s.client.SavePlayQueue(trackIDs, map[string]string{ - "current": trackIDs[currentTrackPos], - "position": strconv.Itoa(timeSeconds * 1000), - }) + params := make(map[string]string) + if currentTrackIdx >= 0 { + params["position"] = strconv.Itoa(timeSeconds * 1000) + params["current"] = trackIDs[currentTrackIdx] + } + return s.client.SavePlayQueue(trackIDs, params) } func (s *subsonicMediaProvider) GetPlayQueue() (*mediaprovider.SavedPlayQueue, error) {