Split extra functionality off into plugins

Registered by Daniel Fore on 2012-02-03

Something we've seen come up in IRC and in comments has been a desire to keep BeatBox clean and simple. Another conflicting desire, however, is to extend BeatBox's functionality with things like Radio, Music Store(s), Podcasts, Device Syncing, etc.

This blueprint proposes to split out the existing functionality from BeatBox into a plugin system. This would allow us to keep BeatBox's core simple and stable while having it easily extendable just by installing necessary packages (for example: "beatbox-plugin-android" to add Android device support).

Another advantage here is allowing OEM's to customize BeatBox for their needs. A Tablet, for example, may not have the necessary ports to make mobile syncing practical or a distributor (like Ubuntu) may want to include a very specific music store experience.

Blueprint information

Status:
Started
Approver:
Victor Martinez
Priority:
Medium
Drafter:
xapantu
Direction:
Approved
Assignee:
Scott Ringwelski
Definition:
Approved
Series goal:
Proposed for 1.x
Implementation:
Beta Available
Milestone target:
milestone icon 1.0
Started by
Victor Martinez on 2012-02-05

Whiteboard

Do we need a new section in the Preferences where plugins can be enabled/disabled and configured? --Matthew

IMO, it would be better to just have it plug in automatically. If its installed, it's enabled. Uninstalled disabled. --DanRabbit

Sounds good Dan, except that what will be done in the case of eg. Last.fm? Where does a user enter their account details? I think that we need a place somewhere that plugins can be configured. --Matthew

There will be a preference hook, where plugins will be able to add section or tabs to the settings dialog. -- xapantu

The most appropriate place for online accounts data is in the system-wide online accounts plug I think ;) --DanRabbit

For now, we'll let the different views in the core. The Podcasts and Radio Station things will be split into plugins. Then we'll probably do LastFM. -- xapantu

I'll tell my user opinion. Now I see that all players that was light and simple sometime ago, then have added plugins functionality, and now they are too slow and fat. Maybe you cam (or must?) split out existing functionality, but, if you there will be developing of other plugins (e.g. "beatbox-plugin-android" - do you really need it? why?), Beatbox can become be like Rhythmbox, Banshee etc. -- gxoptg

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.