One thing I don't understand and which is currently between me and a
good iPeng support for this: how is the usage model for this supposed to
look like?

The most important part causing confusion seems to be what that change provides: as Erland suggested in the other thread there's no real UI to this yet (except for the LibraryDemo implementation which I mostly did to verify my changes). It's an infrastructure to allow filtered views on a library.

The title might be slightly misleading. I could have called it "Virtual Library" or "Filtered Library View" instead.

BUT it's up to a plugin developer to a.) create the filter and b.) define how it's being used.

If the plugin dev does care about b.) then he can provide his own menu item, without changing the behaviour of the existing menus. Imagine eg. an Audiobook plugin which registered a custom menu to specifically browse your audiobooks only by Author, Title etc. This mode already should work with iPeng etc. the very same way as existing extensions work (eg. SmartMix).

In the simplest case the dev doesn't care about b.) though. In this case LMS would provide a "Select Library View" menu item in My Music. When the user selects one of those views, then a player pref is set with a library_id. S::M::BrowseLibrary will use that library_id to provide the existing My Music browse modes, but limited to that particular virtual library.

This case will cause problems with iPeng et al. if they're not using S::M::BrowseLibrary. They'll have to take care of requesting data with the library_id on their own. Adding the library_id to the player status might be one solution to let you know about it.

If you think purely player-centric as in SqueezePlay I can kind of get
it but the Squeezebox system, after all, is also a multiroom system so
you need some way to handle that.

This change is mostly about accessing your library. If you have eg. synchronized players and you select a filtered view on player one, then player two would still provide the full browsing, but would play whatever you chose on player one. Or you could play anything on player two by controlling it through player one. It's really only (mostly) the view on your collection while browsing it which changes.

How is this supposed to look like? Is this like different servers all
with their respective players?

No. It's a filtered view on your one server.

How do I know which player belongs to which virtual server?

All players are still connected to the same player. But potentially using a different view on your players.

Is there a way to learn about these assignments?

Limited at this point: you can always use the player's pref query to get the library_id value. But other than that I'm planning to provide CLI support to get the list of libraries available, and as you suggested, add the library_id to the player status.

How do I switch players between them?

You don't have to switch players. You have to tell LMS by what library_id you want your artists/albums etc. filtered. eg.

artists 0 200 library_id:abcde

What about MySB?

Has nothing to do with this.

At least in iPeng, all main menus are NOT player-specific (the caching
effort for people with lots of players and/or large libraries would
probably be prohibitive) so to get this usable we need some kind of user
model of how this whole thing is supposed to work.

I don't know how plugin developers/users are going to use this feature. Eg. how many different libraries there will be for a user. I would not cache by player, but by library. Most users probably will never use more than one library at any time. They'll probably use custom menu items (Audiobooks), but not fully filtered views on their library. And if they did, they probably use two or three (eg. Kids music, lossless library, no DSD on Classic etc.).

As a 3rd party developer I consider using this for SmartMix: users can define what part of their music should be mixed. But they'd probably never use this library view to browse their music.

--

Michael
_______________________________________________
beta mailing list
beta@lists.slimdevices.com
http://lists.slimdevices.com/mailman/listinfo/beta

Reply via email to