Show remote content (albums, artists and songs) in the main views
Submitted by Florian Will
This probably needs some input from a designer.
Currently, the only way to listen to content from remote sources is by starting a search and choosing a remote source from the drop down menu.
- Involves keyboard input + 2 "difficult" clicks (i.e. clickable areas are small compared to the size of an album or artist name; scanning the source list takes some time as well) + 1 or 2 more clicks to start playback
- It's impossible to get a complete list of a remote source's content, making it difficult to decide which artist/album to listen to. You can't just browse the collection, you need to search for a specific term.
I'd like to have content from remote sources shown right next to local content in the albums/artists/… view. It should be possible to enable/disable sources, for example I don't want the views to be spammed with loads of Jamendo content (I guess nobody wants that, so Jamendo should be excluded…). I want everything from minidlna on a certain host to be included, however. (That setting should be persistent, I guess grilo provides something like a UUID for each source.)
If this is OK from a design POV, there are of course technical issues. Last time I checked, grilo didn't provide an API to retrieve all albums/artists. Searching through all the containers is not something to consider obviously.
The only solution I see is to use queries in the source-specific query language. Right now query.py has all the queries implemented for tracker sources. I know DLNA/UPnP has a query language that allows something like "list all albums" (and artist names can then be extracted from the albums list), and it's pretty fast with minidlna. Even "list all songs" should be possible, not sure about the remote/network load it causes. However, I'm not sure if a query like "get_album_for_song_id()" is possible with DLNA (i.e. I'm not sure what that query does, it seems pretty complex).