1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2026-01-16 00:50:59 +00:00
serenity/Userland/Applications/SoundPlayer
Leandro Pereira 314b8a374b SoundPlayer: Implement playlist shuffle mode
The shuffling algorithm uses a naïve bloom filter to provide random
uniformity, avoiding items that were recently played.  With 32 bits,
double hashing, and an error rate of ~10%, this bloom filter should
be able to hold around ~16 keys, which should be sufficient to give the
illusion of fairness to the shuffling algorithm.

This avoids having to shuffle the playlist itself (user might have
spent quite a bit of time to sort them, so it's not a good idea to mess
with it), or having to create a proxy model that shuffles (that could
potentially use quite a bit of memory).
2021-10-25 23:37:18 +02:00
..
AudioAlgorithms.cpp Everywhere: Use AK/Math.h if applicable 2021-07-19 16:34:21 +04:30
AudioAlgorithms.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
BarsVisualizationWidget.cpp SoundPlayer: Convert to double before calculating 2021-09-04 22:52:02 +02:00
BarsVisualizationWidget.h SoundPlayer: Fix inconsistencies and code duplication 2021-10-25 23:37:18 +02:00
CMakeLists.txt SoundPlayer: Fix inconsistencies and code duplication 2021-10-25 23:37:18 +02:00
Common.h SoundPlayer: Fix playback slider page stepping 2021-06-02 09:39:30 +02:00
M3UParser.cpp SoundPlayer: Make M3UParser more idiomatic 2021-10-25 23:37:18 +02:00
M3UParser.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
main.cpp SoundPlayer: Implement playlist shuffle mode 2021-10-25 23:37:18 +02:00
NoVisualizationWidget.cpp LibGfx: Use "try_" prefix for static factory functions 2021-07-21 18:02:15 +02:00
NoVisualizationWidget.h SoundPlayer: Fix inconsistencies and code duplication 2021-10-25 23:37:18 +02:00
PlaybackManager.cpp SoundPlayer: Don't try to dereference null-pointer buffers 2021-09-04 03:28:33 +02:00
PlaybackManager.h SoundPlayer: Fix inconsistencies and code duplication 2021-10-25 23:37:18 +02:00
Player.cpp SoundPlayer: Implement playlist shuffle mode 2021-10-25 23:37:18 +02:00
Player.h SoundPlayer: Implement playlist shuffle mode 2021-10-25 23:37:18 +02:00
Playlist.cpp SoundPlayer: Implement playlist shuffle mode 2021-10-25 23:37:18 +02:00
Playlist.h SoundPlayer: Implement playlist shuffle mode 2021-10-25 23:37:18 +02:00
PlaylistWidget.cpp SoundPlayer: Fix inconsistencies and code duplication 2021-10-25 23:37:18 +02:00
PlaylistWidget.h Everywhere: Replace Model::update() with Model::invalidate() 2021-08-06 19:14:31 +02:00
SampleWidget.cpp Everywhere: Use AK/Math.h if applicable 2021-07-19 16:34:21 +04:30
SampleWidget.h SoundPlayer: Fix inconsistencies and code duplication 2021-10-25 23:37:18 +02:00
SoundPlayerWidgetAdvancedView.cpp SoundPlayer: Implement playlist shuffle mode 2021-10-25 23:37:18 +02:00
SoundPlayerWidgetAdvancedView.h SoundPlayer: Implement playlist shuffle mode 2021-10-25 23:37:18 +02:00
VisualizationWidget.h SoundPlayer: Fix inconsistencies and code duplication 2021-10-25 23:37:18 +02:00