Wavelink
Wavelink copied to clipboard
Rewrite: Player
This issue is for discussing and collating the issues and wanted improvements of Wavelink's Player for the rewrite project.
If any particular point gets a lot of attention, consider creating a dedicated issue ticket to discuss it in further detail and to collate all the details specific to it there to ensure this issue is kept relatively clean and focused on the feature as a whole.
Improvements
- handles getting best nodes
- when a node fails/closes it can automatically shift to another suitable node if available (node pool)
- Implements the new dpy VoiceProtocol
We discussed the best way to store custom/extended information about Track objects (like Spotify-based attributes for those who use it as a search backend for extended metadata) and came to the conclusion that being able to subclass Track would be the ideal way to keep __slots__ for memory efficiency without having to reimplement every method if we were to use ABCs.
That means Player would have to accept a cls=MyTrack argument for search methods.