Remote service enhancement
Firstly, this incorporates the changes in @michaelherger 's SlimBrowse-Metadata branch. As discussed on the forum, this is work in progress and only directed towards Material Skin at present. Qobuz is used as the example remote service.
The matching Material and Qobuz changes are here: https://github.com/darrell-k/lms-material/tree/remote-service-enhancement https://github.com/darrell-k/SqueezeboxQobuz/tree/remote-service-enhancement
This PR is for review/comments on the approach. There is much commented out code and the new code could certainly be refactored once we have the functionality sorted out. I've also added hopefully useful comments in the code here and there.
Objective
- Use the native db interface for remote albums when browsed from the plugin, even when they are not imported into the local library.
- Ensure full play queue hyperlink and MAI functionality for these albums.
Design
- Based around a new Protocol Handler
getAlbumTracksin the remote service plugin, which uses the existing plugin Importer logic to return data to LMS in the required format. - LMS will supply the client with the remote service name and remote track numbers will be identified by being made negative. (This works for Qobuz but will need to be rethought if other remote services use non-numeric track numbers!) The client can then amend subsequent LMS requests based on these values.
Current State
- There are bugs, including multi-delete from the play queue (eg "remove release") not yet working and probably many more.
- Can't yet seem to get an image for a remote-only artist to show in the MAI view.
- Remote service "extras" (eg pdf booklet, add/remove remote service favourites) not yet implemented. I want these to be present equally whether the album is browsed via library search/browse or remote service search/browse.
- Much more to be done: default/classic skins, and the big one: ensuring backwards compatibility with whatever combinations of LMS/Material/Remote Service plugin the user is using.
@michaelherger / @CDrummond and anyone else, please review/criticise/suggest design and other changes.