so here is my newest up-to-date proposal:
Short description: I propose a feature that allows the user to take his content with him on mobile devices (phones/tablets/laptops). The user should be able to decide what content should be locally available manually, or he could use a "sync policy" - a service plugin that automatically decides what files to make locally available.
How will I achieve this:
- Design a system that can associate a local file to a mobile one and prefer the local one if available. If done right, users should be able to copy files outside of xbmc or use already existing files (like the local iTunes music).
- expose a new context menu "make locally available" and "remove local copy" that triggers a file copy.
- For copying I will reuse the file management features already in xbmc. One addition I will make, is to implement the Import-/ExportRessource() UPnP features, so we can copy files from any UPnP Device supporting those
- Extend the python API to allow service plugins to programmatically decide when a file should be locally available.
What will the project focus on: One crucial part will be the layout of the local filesystem and how we associate them to the online counterparts.
Benefits: With XBMC now running on iOS and Android, user will now be able to really use xbmc away from home.
What does it touch in XBMC:
- implement Import/exportRessource() functions in our UPnP server
- extension of Python-Bindings and JSON-RPC. Since i will only add things, I expect backwards compatibility.
- My proposal will probably touch a lot of xbmc's subsystems with mostly small changes: the player should prefer a local file over an online one, Expose a "isOfflineAvailable" flag to skinners, store "isOffline" in the db, so we don't hit the HDD all the time...
Requirements: C/C++ for the core parts, python for the sync policies
Possible mentors: Place to add possible mentors (Team-XBMC will add this).
forum/contact name: Fice