Bug 14061 - XMLBrowse CMs should work like Local Music CMs
: XMLBrowse CMs should work like Local Music CMs
Status: CLOSED FIXED
Product: Logitech Media Server
Classification: Unclassified
Component: Player UI
: 7.4.0
: PC Other
: P1 normal (vote)
: 7.4.0
Assigned To: Ben Klaas
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2009-09-15 11:19 UTC by Joerg Schwieder
Modified: 2009-10-05 14:29 UTC (History)
2 users (show)

See Also:
Category: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Joerg Schwieder 2009-09-15 11:19:44 UTC
Most Music Services (I tested Last.fm, Napster and Rhapsody) don't have context menus for playable items.

That is, they DO have context menus but these menus are wrong:
- None of them contains "Play/Add/Add-Next" items that are needed for "touch-to-play" to work
- higher-level items, such as Playlists and Albums typically only contain their content, that is the list of tracks plus an "Add to library" item. Here, at least "Play/Add/Add Next" should be present plus the tracks should be removed
Comment 1 Andy Grundman 2009-09-15 11:23:39 UTC
Right, music service items don't have context menus, they have special sub-menus that are sort of used as context menus.
Comment 2 Joerg Schwieder 2009-09-15 11:48:54 UTC
No, they DO have context menus, these context menus are just wrong.
Hold an album on Rhapsody on the Touch.
Or try to add a single track from Rhapsody to a playlist on the touch.
Comment 3 Andy Grundman 2009-09-15 11:54:13 UTC
OK, the bug is probably that that kind of item shouldn't have a context menu.  You get the same 'album menu' whether you touch or touch-hold.

Or, the code on the SC side needs to construct a context menu based on the type of item, but that's probably too hard for now.
Comment 4 Joerg Schwieder 2009-09-15 12:18:56 UTC
Sorry, but for Rhapsody that won't do.
From an iPeng perspective I'm fine as a context menu for a playable item either contains "play, add, add next" commands or no there is no context menu at all, unless you are on the lowst level, where I don't care at all.
But for Touch and also Baby that won't do.
Again: try to add a track on Rhapsody.
Comment 5 Ben Klaas 2009-09-15 12:45:02 UTC
estimating 4 hrs because XMLBrowser is such a pita
Comment 6 SVN Bot 2009-09-18 22:47:03 UTC
 == Auto-comment from SVN commit #7661 to the jive repo by bklaas ==
 == https://svn.slimdevices.com/jive?view=revision&revision=7661 ==

Bug: 14061, 13969
Description: send a flag for requests on more handler to flag as a CM request. This is needed for SC's XMLBrowser to fork the request off to a special CM that is a playlist control menu
Comment 7 SVN Bot 2009-09-18 22:53:39 UTC
 == Auto-comment from SVN commit #28573 to the slim repo by bklaas ==
 == https://svn.slimdevices.com/slim?view=revision&revision=28573 ==

Fixed Bug: 14061, 13969
Description: fork any request that comes in with xmlBrowseInterimCM param to a special three item CM that only has controls for Add to End/Play Next/Play

note: the Play Next in album context (e.g. Rhapsody or Napster album) does not work yet. This will have a separate bug filed against it.

XMLBrowse CMs should be richer than this in content, but this is likely going to be where it stops for initial 7.4 release.

This fix only deals with playable items in the XMLBrowse world. Rhapsody artists, for example, do not have CM support as they are not playable items.
Comment 8 Joerg Schwieder 2009-09-19 15:58:16 UTC
You are aware that this change stripped the previously present "TrackInfo" menus out of Rhapsody?

Apart from that: How do I get these context menus? I can see them on the Touch but I don't get them through iPeng.
Comment 9 Ben Klaas 2009-09-19 18:09:19 UTC
give this tagged param to the command to have it return a three item CM
xmlBrowseInterimCM:1

If you read comment #7 you'll see I'm aware that it removed trackinfo. Bug 14145 is the one to accomplish a better CM for XMLBrowse items. Not for 7.4.
Comment 10 Joerg Schwieder 2009-09-19 18:17:27 UTC
Understand.
Can I add this to any context menu or how do you identify those where you can?
"menu:myapps"?
Or is there any (other) way to know (on the client side) that a menu is an XMLBrowser menu?

Am I correct to assume that the 3-item menu will just contain the same "play" "add" and "insert" commands that are already presented for the item (in the normal menu, not the context menu)?

If this is the case I think for the time being I'll create the 3-item menu on the client side (I have this in anyway for 7.3-support) since this allows me to keep the TrackInfo menu (by just adding the three items to the menu).
Comment 11 Ben Klaas 2009-09-21 07:28:59 UTC
The 3-item callback will work for any non-local item that is playable. Local music provide much richer CMs through the *info menus.

so, it works e.g.
Rhapsody albums
Rhapsody tracks
Napster albums
Napster tracks
Internet radio streams
MP3tunes albums
Pandora stations
Slacker stations
etc.

It will not work for non-local items that are _not_ playable. A key example is a Rhapsody artist.

Creating the three item CM on the client-side is certainly an option, given you know what the callback commands are for that item. Do your client-side callbacks work for, say, a Rhapsody album? a Rhapsody track?
Comment 12 Joerg Schwieder 2009-09-21 08:49:23 UTC
I believe they do.

The menus I build are just composed of the "play", "add" and "add-hold" commands you have in there anyway so as long as the menu works on the controller I believe I will be safe as to that part.

The hard part on the client side is to determine whether something is actually playable.

I was missing a few cases and maybe still do, but the ones I found so far are ones that don't work anyway (e.g. News Ticker->BBC->Item->Play) so I'm confident you will fix this :-)

I did NOT test MP3tunes and Pandora but Napster, Last.fm and Rhapsody work fine.

I'm also more confident that this is going to work with 3rd party plugins like AlienBBC, BBC iPlayer, NPR Radio etc.

I mainly do this because I handle tracks a bit different from you (I usually try play the whole album no matter what if you tap a track, from that track on, that is).
Comment 13 James Richardson 2009-10-05 14:29:23 UTC
This bug has been marked as fixed in the 7.4.0 release version of SqueezeBox Server!
    * SqueezeCenter: 28672
    * Squeezebox 2 and 3: 130
    * Transporter: 80
    * Receiver: 65
    * Boom: 50
    * Controller: 7790
    * Radio: 7790  

Please see the Release Notes for all the details: http://wiki.slimdevices.com/index.php/Release_Notes

If you haven't already, please download and install the new version from http://www.logitechsqueezebox.com/support/download-squeezebox-server.html

If you are still experiencing this problem, feel free to reopen the bug with your new comments and we'll have another look.