diff --git a/backend/playbackmanager.go b/backend/playbackmanager.go index b3af65d..7522681 100644 --- a/backend/playbackmanager.go +++ b/backend/playbackmanager.go @@ -3,6 +3,7 @@ package backend import ( "context" "log" + "math/rand" "time" "github.com/dweymouth/supersonic/backend/mediaprovider" @@ -180,7 +181,7 @@ func (p *PlaybackManager) LoadTracks(tracks []*mediaprovider.Track, appendToQueu } nums := util.Range(len(tracks)) if shuffle { - util.ShuffleSlice(nums) + rand.Shuffle(len(nums), func(i, j int) { nums[i], nums[j] = nums[j], nums[i] }) } for _, i := range nums { url, err := p.sm.Server.GetStreamURL(tracks[i].ID, p.transcodeCfg.ForceRawFile) diff --git a/backend/util/util.go b/backend/util/util.go index 43fe28b..26ad5f8 100644 --- a/backend/util/util.go +++ b/backend/util/util.go @@ -2,9 +2,7 @@ package util import ( "io" - "math/rand" "os" - "time" ) // Return a slice of range [0, n) @@ -16,11 +14,6 @@ func Range(n int) []int { return s } -func ShuffleSlice(a []int) { - rand.Seed(time.Now().UnixNano()) - rand.Shuffle(len(a), func(i, j int) { a[i], a[j] = a[j], a[i] }) -} - func CopyFile(srcPath, dstPath string) error { fin, err := os.Open(srcPath) if err != nil { diff --git a/go.mod b/go.mod index 15a09b8..369c2a1 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/dweymouth/supersonic -go 1.19 +go 1.20 require ( fyne.io/fyne/v2 v2.4.1