[meta] Rewrite player.py
Merge request !67 (merged) has been a huge step forward to simplify player.py
code. However, a lot of changes are still needed. A lot of new features cannot be added because of this.
This issue tries to tackle all the necessary steps and discussions to achieve this rewrite.
Main goals
-
MPRIS code is too intertwined: MPRIS should just be a consumer/actor on the player object
- Investigate what functionality does the MPRIS object really need and expose that in a sensible way
-
Discovery can be ripped out, but is the current design of discovery how we want it?
-
Maybe just lazily discover the whole playlist on load? (how does that work with shuffle?)
-
Is discovery a function of the player object or is it just a task to run on a new playlist?
-
-
Split logic and UI
-
Does playlist order logic really belong here: shuffle/repeat etc. or are they a function of the playlist itself?
-
Player
should not mess with aTreeModel
at all.
-
Roadmap
Not necessarily in the right order
-
Factor out gstreamer !67 (merged) -
Split logic and ui !124 (merged) -
Rethink MPRIS and player interactions -
Rethink discovery logic (!182 (merged)) -
Rethink playlist logic (!182 (merged)) -
Replace track
term withsong
!148 (merged) -
Player
should not interact with aTreeModel