PATCHES: Exaile does not support multiple simultaneous player objects

Bug #905108 reported by Dustin Spicuzza
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Exaile
Fix Released
Wishlist
Dustin Spicuzza

Bug Description

Exaile *almost* has support for multiple simultaneous player objects playing audio at the same time. This set of patches intends to make this fully possible. It is intended that these changes will be 100% backwards-compatible for users, and will present only minimal constraints on plugin authors.

Use case:
 - In a DJ setup, it would be useful for a user to be able to be playing audio on a primary device, and previewing music on a secondary device on the computer

There are a number of changes that are required to make this work, and I will post all related patches to this bug. Changes I intend to make:

- each player needs to have its own per-instance settings. This will be accomplished by saving settings to <player-name>/option_name . The primary player will be called 'player', and thus backwards compatibility will not be broken. This is in the first patch.
- events
    - all events on a player/audio element must be associated with a particular player, otherwise changes to one player will affect the other player unexpectedly. This is completed and in the first patch.
    - all events on the user interface should be associated with a particular player, otherwise you may get random unexpected behavior as the players are cycling through their tracks. This is a big change, and will be in a separate patch(es).

Patches are based on whatever my dj_improvements branch happens to look like at the time, since it is very far ahead of trunk right now.

Related branches

Revision history for this message
Dustin Spicuzza (dustin-virtualroadside) wrote :
Revision history for this message
Dustin Spicuzza (dustin-virtualroadside) wrote :
Revision history for this message
Dustin Spicuzza (dustin-virtualroadside) wrote :
Revision history for this message
Dustin Spicuzza (dustin-virtualroadside) wrote :
Revision history for this message
Dustin Spicuzza (dustin-virtualroadside) wrote :

Ok, after a bit of a break, I've got the rest of the changes made. This last patch is a bit bigger than the rest because I was lazier than I should have been... but this final patch makes it so that exaile *really* supports having multiple player objects without something accidentally affecting a player object that it didn't intend to affect.

Note that many plugins will only do whatever it is that they're doing on the first player object, and dealing with that is more annoying than I feel like dealing with at the moment.

Additionally, the 'Marker' functionality of the playback bar only works on the main player object... and it seems like the marker stuff would need to be rewritten to actually support multiple players -- basically, it assumes that the PlaybackProgressBar object can only be associated with the main player, regardless of which player it's actually associated with. Since almost nothing uses the Marker stuff, I've elected to leave that mostly alone for now.

Revision history for this message
Dustin Spicuzza (dustin-virtualroadside) wrote :

One more patch, apparently forgot to test with the unified player.

Mathias Brodala (mathbr)
Changed in exaile:
assignee: nobody → Dustin Spicuzza (dustin-virtualroadside)
importance: Undecided → Wishlist
milestone: none → 0.3.3.0
status: New → Fix Committed
Changed in exaile:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.