One of the features currently missing from the onebrowser branch is the
level of support for -mixers- that is available in the trunk. In
particular, the Play-Hold types of action in the ip3k Player-UI and the
SqueezePlay-UI, and the *M* icon in the Web-UI.

The philosophy of onebrowser is such that the data in the -feed-
accepted by the various XMLBrowser implementations should be
UI-neutral. This is not always the case at present, in that some of the
{Album,Artist,Genre,Year,Track}info menu items may contain UI-specific
elements but, in general, this has been eliminated.

The existing API used by mixers does not fit well with this philosophy.
In fact it is a really bad match.

The existing mixer implementation is also possibly more complex than
really necessary, in that it allows multiple mixer-providing
implementations to be active simultaneously.

The only mixer functionality included to any degree with SbS is the
MusicIP plugin. The MusicIP service is, effectively, obsolete and no
longer maintained or supported. Currently, it is still possible to
download the necessary libraries. It has to be questioned whether it
makes sense to continue to provide support for MusicIP, at least as a
built in part of SbS.

It is clear that mixers provide some very interesting functionality. It
also seems clear that, for those that use it, the Play-Hold
functionality is important. We have no real idea how many people use
mixers but one has to think that it is a very small part of the user
population.

There are probably three classes of play-hold functionality:
  
- from artists, album, track, genre or year while browsing the
  library;
- from a now-playing screen or track in a current playlist (I think
  this still works, at least for SP and probably never worked for
  ip3k);
- from a context-menu item - for example, the "Album" item of a track
  context-menu (how useful is this?); note this is not the same as an
  item in a context menu that specifically invokes a mixer.
  

Is there anyone who would be interested in:
  
- Designing the feed API for XMLBrowser necessary to support mixers
  in cross-UI manner, along with any necessary implementation in the
  three UI-specific XMLBrowser implementations? I have a simple idea
  below.
- Taking ownership of the MusicIP plugin as a third-party plugin and
  porting it to the new API above?
  

I have in mind a basic API:
  
- An -action- (in the sense of -actions- supported by the XMLBrowser
  implementations in onebrowser) would be defined: 'create_mix'.
- This action would be included in the BrowseLibrary results for all
  suitable queries (which is probably all of them), if at least one
  mixer is in use.
- The SP-UI implementation would map to 'play-hold'; the ip3k
  Player-UI implementation to the 'create_mix' function (itself mapped
  from play-hold in Default.map; the Web-UI implementation would map to
  the *M* icon.
- The command invoked, which would be an XMLBrowser command, would
  call the Mixer API in some way. If successful, then the returned
  XMLBrowser feed would send the UI (ip3k and SP) to Now Playing,
  otherwise it would display an error via a show-briefly. The existing
  CLI *mixermenu* command might be a good start.
- The mixer API invoked would not have access to a Slim::Schema
  object. It could have access to the id and type of the object. The
  mixer plugin would then be responsible for recreating the
  Slim::Schema object if needed.
- I guess it would be easy enough to have single- and multiple-mixer
  versions of the command but is that really worthwhile?
- It could be that the Mixer API would return an XMLBrowser feed,
  instead of just a boolean result, in which case that would allow for
  more complex interactions - is this necessary?
- Any UI-specific stuff in existing mixers that would be related to
  play-hold functionality would be obsolete.


-- 
awy
------------------------------------------------------------------------
awy's Profile: http://forums.slimdevices.com/member.php?userid=7480
View this thread: http://forums.slimdevices.com/showthread.php?t=85896

_______________________________________________
beta mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/beta

Reply via email to