Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor QueueEntry design #3554

Merged
merged 1 commit into from
May 5, 2024

Conversation

nielsvanvelzen
Copy link
Member

Changes

In the current design we have a base-interface "QueueEntry" and the idea was that it would contain some core properties and additional ones could be implemented via inheritance. This works with the current implementation as not much data is bound to the entries, it doesn't work in the long run.

The new design is inspired by the ECS architecture mostly found in games. The QueueEntry is now just a regular class with all of it's data added via elements. This allows for various features to read/write those elements.
Right now there are two elements: metadata en baseitem. In the future this will expand for stuff like lyrics to display, the chosen streams (audio/subs), replay gain to use and lots more. There will probably also be a way to be notified about element changes (add/update/remove).

Issues

Part of #1057

@nielsvanvelzen nielsvanvelzen added enhancement New feature or request playback Issue related to media playback labels May 5, 2024
@nielsvanvelzen nielsvanvelzen added this to the v0.17.0 milestone May 5, 2024
@nielsvanvelzen nielsvanvelzen merged commit 01642e6 into jellyfin:master May 5, 2024
6 checks passed
@nielsvanvelzen nielsvanvelzen deleted the playback-elements branch May 5, 2024 14:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request playback Issue related to media playback
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants