From eccdd26804c887da7527878f55c2103af8834096 Mon Sep 17 00:00:00 2001 From: Kai Blaschke Date: Tue, 28 Oct 2025 17:37:44 +0100 Subject: [PATCH] Fix playlist shuffle, index upper bound off-by-one This caused projectM to sometimes stop switching presets if the index chosen was the end of the given interval. Since the preset switch fails in this case, no additional switches will happen unless the user manually switches to a new preset. Signed-off-by: Kai Blaschke --- src/playlist/Playlist.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/playlist/Playlist.cpp b/src/playlist/Playlist.cpp index e49bc8457..5096a989a 100644 --- a/src/playlist/Playlist.cpp +++ b/src/playlist/Playlist.cpp @@ -253,7 +253,7 @@ auto Playlist::NextPresetIndex() -> uint32_t if (m_shuffle) { - std::uniform_int_distribution randomDistribution(0, static_cast(m_items.size())); + std::uniform_int_distribution randomDistribution(0, static_cast(m_items.size() - 1)); m_currentPosition = randomDistribution(m_randomGenerator); } else @@ -280,7 +280,7 @@ auto Playlist::PreviousPresetIndex() -> uint32_t if (m_shuffle) { - std::uniform_int_distribution randomDistribution(0, static_cast(m_items.size())); + std::uniform_int_distribution randomDistribution(0, static_cast(m_items.size() - 1)); m_currentPosition = randomDistribution(m_randomGenerator); } else