edde746
f63d0fe49e
fix(music): shuffle the head of a shuffled queue too
...
Starting a music playlist, album, or artist on shuffle always opened on
the list's first track: MusicQueueController.load anchored _order[cursor]
and shuffled only the rest, and _startQueue collapsed "no start track"
into startIndex 0, so the anchor was always the head.
Anchoring is right for the two callers that do have a track which must
play first -- the now-playing shuffle toggle, and a load with an explicit
start track -- so make "no explicit start" representable instead of
inferring it from the index: load takes int? startIndex and shuffles the
whole list, head included, when it is null. A start track the list turns
out not to contain now drops the anchor rather than falling back to 0.
Video playback was never affected: Plex shuffles server-side via
/playQueues and Jellyfin already shuffles its full local list.
The queue's Random is injectable so the service-level regression is
deterministic without depending on the SDK's seeded-PRNG sequence.
Close #1811
2026-08-06 06:11:12 +02:00
..
2026-08-04 16:56:54 +02:00
2026-08-05 06:09:26 +02:00
2026-08-06 04:21:24 +02:00
2026-08-06 06:11:12 +02:00
2026-07-26 19:41:23 +02:00
2026-08-02 15:35:42 +02:00
2026-08-05 12:03:05 +02:00
2026-07-24 03:46:46 +02:00
2026-08-05 06:09:26 +02:00
2026-07-30 11:55:13 +02:00
2026-07-26 03:41:19 +02:00
2026-07-26 04:24:55 +02:00
2026-05-04 22:40:18 +02:00
2026-08-02 04:37:29 +02:00
2026-05-28 15:46:08 -04:00
2026-08-05 06:09:26 +02:00
2026-08-06 03:45:09 +02:00
2026-08-05 06:09:26 +02:00
2026-08-04 16:56:54 +02:00
2026-06-14 13:40:16 +02:00
2026-07-30 01:40:24 +02:00
2026-07-12 17:31:15 +02:00
2026-07-24 03:56:40 +02:00
2026-07-30 20:03:04 +02:00
2026-05-01 01:20:36 +02:00
2026-07-26 06:09:47 +02:00
2026-08-06 03:47:43 +02:00
2026-08-06 03:47:43 +02:00
2026-07-26 06:09:48 +02:00
2026-08-06 03:45:09 +02:00
2026-07-26 19:41:23 +02:00
2026-07-24 03:46:46 +02:00
2026-05-01 01:20:36 +02:00
2026-08-03 02:34:37 +02:00
2026-07-24 03:56:40 +02:00
2026-08-05 07:14:11 +02:00
2026-07-26 03:41:19 +02:00
2026-07-10 19:06:51 +02:00
2026-08-05 06:09:26 +02:00
2026-08-05 06:09:26 +02:00
2026-08-05 06:09:26 +02:00
2026-08-05 06:09:26 +02:00
2026-08-05 06:09:26 +02:00
2026-07-12 08:42:25 +02:00
2026-08-05 06:09:26 +02:00
2026-08-05 06:09:26 +02:00
2026-08-05 06:09:26 +02:00
2026-08-03 17:07:05 +02:00
2026-07-31 21:45:33 +02:00
2026-07-05 15:55:52 +02:00
2026-08-05 06:09:26 +02:00
2026-06-26 00:26:26 +02:00
2026-07-29 04:24:04 +02:00
2026-08-04 04:35:06 +02:00
2026-07-18 20:04:09 +02:00
2026-07-18 20:04:09 +02:00
2026-07-05 14:29:57 +02:00
2026-07-31 21:45:32 +02:00
2026-07-26 06:09:48 +02:00
2026-08-06 04:21:24 +02:00
2026-07-26 06:09:48 +02:00
2026-07-24 03:46:46 +02:00
2026-08-05 06:09:26 +02:00
2026-07-17 23:09:07 +02:00
2026-08-05 06:09:26 +02:00
2026-04-16 23:13:15 +02:00
2026-04-21 12:04:48 +02:00
2026-08-06 04:21:24 +02:00
2026-06-06 11:45:34 +02:00
2026-07-26 06:09:48 +02:00
2026-07-26 06:09:47 +02:00
2026-07-05 19:26:28 +02:00
2026-07-26 06:09:49 +02:00
2026-08-04 16:10:02 +02:00
2026-08-05 06:09:26 +02:00
2026-08-02 16:16:19 +02:00
2026-07-17 23:09:07 +02:00
2026-07-26 06:09:49 +02:00
2026-08-04 16:10:02 +02:00
2026-07-26 06:09:48 +02:00
2026-08-05 06:09:26 +02:00
2026-07-26 06:09:50 +02:00
2026-08-04 16:56:54 +02:00
2026-07-05 15:55:52 +02:00
2026-07-30 01:33:46 +02:00
2026-07-16 14:36:48 +02:00
2026-08-02 03:59:56 +02:00
2026-08-02 03:59:56 +02:00
2026-08-02 04:55:54 +02:00
2026-08-02 04:37:29 +02:00
2026-07-24 03:46:46 +02:00
2026-05-28 15:46:08 -04:00
2026-08-05 12:03:05 +02:00
2026-05-01 01:20:36 +02:00
2026-07-12 08:42:25 +02:00
2026-08-06 03:45:09 +02:00
2026-08-06 03:45:09 +02:00
2026-07-26 06:09:49 +02:00
2026-05-10 13:33:02 +02:00
2026-07-26 06:09:49 +02:00
2026-07-26 06:09:49 +02:00
2026-08-02 04:37:29 +02:00
2026-07-31 21:45:32 +02:00
2026-07-30 02:46:10 +02:00
2026-07-26 19:41:23 +02:00
2026-07-26 06:09:48 +02:00
2026-08-03 17:07:14 +02:00
2026-08-05 06:09:26 +02:00
2026-07-24 03:56:40 +02:00
2026-07-30 20:03:04 +02:00
2026-08-03 00:04:03 +02:00
2026-07-24 03:46:46 +02:00
2026-06-12 14:09:21 +02:00
2026-07-26 06:09:48 +02:00