2013-04-01, 00:54
The basic idea was that the client would just combine listings (with duplicates removed/replaced as required) post-listing. There could well be a local database holding that information, but it wouldn't be at the database level, rather an aggregation of remote databases.
i.e. each machine would simply advertise what it has (via JSON-RPC, UPnP etc.) and the other machines would aggregate those listings into their local cache for listing/searching. Duplicate resolving would be critical, as you want to play the local version if it exists.
Your idea of being able to duplicate content from one machine to the other would ofcourse be able to come into this - I'd suggest making it reasonably generic, in that you can choose content based on some VFS entry (or database query via smartplaylists) and duplicate that onto the local client. I expect much of the sync might be doable using an add-on (i.e. not really much core code required).
i.e. each machine would simply advertise what it has (via JSON-RPC, UPnP etc.) and the other machines would aggregate those listings into their local cache for listing/searching. Duplicate resolving would be critical, as you want to play the local version if it exists.
Your idea of being able to duplicate content from one machine to the other would ofcourse be able to come into this - I'd suggest making it reasonably generic, in that you can choose content based on some VFS entry (or database query via smartplaylists) and duplicate that onto the local client. I expect much of the sync might be doable using an add-on (i.e. not really much core code required).