Add update thread asserts to `RoomManager` methods
RoomManager
Add support for enqueueing items in host-only mode, and changing arbitrary playlist items
Fix potential crash due to children being mutated after disposal
Add the ability to create playlists of 2 weeks ~ 3 months in duration
OpenSongSelection
Cleanup duplicated classes in DrawableRoomPlaylistItem
Fix the unmute notification potentially overwriting user's volume levels unnecessarily
Fix incorrect test namespace
Implement multiplayer playlist item removal
Refactor OsuDifficultyHitObject for readability/understandability
Cleanup DrawableRoomPlaylist and DrawableRoomPlaylistItem
This is a bit of an unfortunate edge case where the unbind-on-disposal doesn't help, since the binding is happening in BDL, and the usage is in a nested `LoadComponentAsync` call. Combine those and you have a recipe for disaster.
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
Add `IsManaged` helper method to EF classes to match realm implementation
Add sounds for IME composition
`RNG.Next` is exclusive of the upper bound, meaning that the last sample would never be played.