Author: bklaas
Date: Sat Jan 26 22:20:21 2008
New Revision: 1633
URL: http://svn.slimdevices.com?rev=1633&root=Jive&view=rev
Log:
Bug: 6800
Description:
Create a special showTrackOne method in slimbrowser that inspects playerStatus
and pushes a songinfo window for track #1 on screen
Add hook in NowPlaying to use this method when playlist size == 1
Modified:
branches/7.0/jive/src/pkg/jive/share/applets/NowPlaying/NowPlayingApplet.lua
branches/7.0/jive/src/pkg/jive/share/applets/SlimBrowser/SlimBrowserApplet.lua
Modified:
branches/7.0/jive/src/pkg/jive/share/applets/NowPlaying/NowPlayingApplet.lua
URL:
http://svn.slimdevices.com/branches/7.0/jive/src/pkg/jive/share/applets/NowPlaying/NowPlayingApplet.lua?rev=1633&root=Jive&r1=1632&r2=1633&view=diff
==============================================================================
---
branches/7.0/jive/src/pkg/jive/share/applets/NowPlaying/NowPlayingApplet.lua
(original)
+++
branches/7.0/jive/src/pkg/jive/share/applets/NowPlaying/NowPlayingApplet.lua
Sat Jan 26 22:20:21 2008
@@ -424,6 +424,8 @@
if windowStyle == 'browse' then
local browser = appletManager:getAppletInstance("SlimBrowser")
+ local playerStatus = self.player and
self.player:getPlayerStatus()
+ local playlistSize = playerStatus and
playerStatus.playlist_tracks
self[windowStyle].listeners[2] = window:addListener(
EVENT_KEY_PRESS,
function(event)
@@ -435,8 +437,13 @@
return EVENT_CONSUME
elseif (keyPress == KEY_GO) then
- -- to playlist
- browser:showPlaylist()
+ if playlistSize == 1 then
+ -- use special showTrackOne
method from SlimBrowser
+ browser:showTrackOne()
+ else
+ -- show playlist
+ browser:showPlaylist()
+ end
return EVENT_CONSUME
end
return EVENT_UNUSED
Modified:
branches/7.0/jive/src/pkg/jive/share/applets/SlimBrowser/SlimBrowserApplet.lua
URL:
http://svn.slimdevices.com/branches/7.0/jive/src/pkg/jive/share/applets/SlimBrowser/SlimBrowserApplet.lua?rev=1633&root=Jive&r1=1632&r2=1633&view=diff
==============================================================================
---
branches/7.0/jive/src/pkg/jive/share/applets/SlimBrowser/SlimBrowserApplet.lua
(original)
+++
branches/7.0/jive/src/pkg/jive/share/applets/SlimBrowser/SlimBrowserApplet.lua
Sat Jan 26 22:20:21 2008
@@ -1588,6 +1588,73 @@
end
+-- showTrackOne
+--
+-- pushes the song info window for track one on stage
+-- this method is used solely by NowPlaying Applet for
+-- skipping the playlist screen when the playlist size == 1
+function showTrackOne()
+ local playerStatus = _player:getPlayerStatus()
+ local item = playerStatus and playerStatus.item_loop and
playerStatus.item_loop[1]
+ local iWindow = _safeDeref(item, 'window')
+
+ local baseData = playerStatus and playerStatus.base
+ local bWindow = _safeDeref(baseData, 'window')
+
+ local bAction = _safeDeref(baseData, 'actions', 'go')
+ local iAction = _safeDeref(item, 'actions', 'go')
+
+ local jsonAction
+
+ -- if the action is defined in the item, then do that
+ if iAction then
+ jsonAction = iAction
+ -- bAction contains (possibly) the start of the songinfo command for
track 1
+ else
+ jsonAction = bAction
+ local params = jsonAction["params"]
+ if not params then
+ params = {}
+ end
+ -- but also get params in the item
+ if item["params"] then
+ for k,v in pairs(item['params']) do
+ params[k] = v
+ end
+ end
+ jsonAction["params"] = params
+ end
+
+ -- determine style
+ local menuStyle = _priorityAssign('menuStyle', "", iWindow, bWindow)
+ local newWindowSpec = {
+ ["windowStyle"] = "",
+ ["labelTitleStyle"] = _priorityAssign('titleStyle', iWindow,
bWindow, 'album') .. "title",
+ ["menuStyle"] = menuStyle .. "menu",
+ ["labelItemStyle"] = menuStyle .. "item",
+ ["text"] = _priorityAssign('text',
item["text"], iWindow, bWindow),
+ ["icon-id"] = _priorityAssign('icon-id',
item["icon-id"], iWindow, bWindow),
+ ["icon"] = _priorityAssign('icon',
item["icon"], iWindow, bWindow),
+ }
+
+ local step, sink = _newDestination(nil, item, newWindowSpec,
_browseSink)
+ step.window:addListener(EVENT_KEY_PRESS,
+ function(event)
+ local evtCode = event:getKeycode()
+ if evtCode == KEY_BACK then
+ _goNowPlaying(Window.transitionPushRight)
+ return EVENT_CONSUME
+ end
+ end
+ )
+ step.window:show()
+ _curStep = step
+
+ -- send the command
+ local from, qty
+ _performJSONAction(jsonAction, 0, 200, sink)
+end
+
-- showPlaylist
--
function showPlaylist()
_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/cgi-bin/mailman/listinfo/jive-checkins